From: Maciej Sobczak on
Hi,

The N442 document states that Ravenscar profile forbids task termination.
I understand that task termination is the fact of a task finishing its
job and completing.

Do I understand correctly that Ravenscar programs are by definition
running forever? What about programs that are expected to finish?


--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
From: Ludovic Brenta on
Maciej Sobczak writes:
> The N442 document states that Ravenscar profile forbids task termination.
> I understand that task termination is the fact of a task finishing its
> job and completing.
>
> Do I understand correctly that Ravenscar programs are by definition
> running forever? What about programs that are expected to finish?

Yes, it is my understanding as well, and I'm happy with that.

I remember being impressed with Ada because you could write an
infinite loop without a faked up condition. The idea being that in
Ada the typical infinite loop would normally be terminated by
detonation. -- Larry Wall

The Ravenscar profile is specifically targeted at high-integrity
systems, where infinite loops are, I think, the norm.

--
Ludovic Brenta.
From: Maciej Sobczak on
Ludovic Brenta wrote:

>> Do I understand correctly that Ravenscar programs are by definition
>> running forever? What about programs that are expected to finish?
>
> Yes, it is my understanding as well, and I'm happy with that.
>
> I remember being impressed with Ada because you could write an
> infinite loop without a faked up condition. The idea being that in
> Ada the typical infinite loop would normally be terminated by
> detonation. -- Larry Wall

:-)

> The Ravenscar profile is specifically targeted at high-integrity
> systems, where infinite loops are, I think, the norm.

Sorry, but I don't see anything in the concept of high-integrity
software that would make it a norm. High-integrity software is a set of
quality objectives, whereas infinite loops are (or aren't) part of
system requirements. These should stay independent, even though I
understand that expectations for both often come in pairs.

OK, just nit-picking. ;-)
I wanted to be sure that I understand it correctly, thanks.
Still, it looks like I cannot say:

pragma Profile(Ravenscar);

in my Hello World program even though this program meets the objectives
of the profile. That's not fair! :-)

--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
From: matteo.bordin on
> Sorry, but I don't see anything in the concept of high-integrity
> software that would make it a norm. High-integrity software is a set of
> quality objectives, whereas infinite loops are (or aren't) part of
> system requirements. These should stay independent, even though I
> understand that expectations for both often come in pairs.

The Ravenscar profile is aimed to high-integrity real-time systems. A
static set of working tasks
is a requirement to perform sound feasibility analysis (at least
within a given execution mode).

> Still, it looks like I cannot say:
>
> pragma Profile(Ravenscar);
>
> in my Hello World program even though this program meets the objectives
> of the profile. That's not fair! :-)

On real-time kernels supporting the Ravenscar profile, even the main
procedure must contain an infinite loop.

Regards,

M.B.

From: Markus E Leypold on

Maciej Sobczak <no.spam(a)no.spam.com> writes:

> Ludovic Brenta wrote:
>
>>> Do I understand correctly that Ravenscar programs are by definition
>>> running forever? What about programs that are expected to finish?
>> Yes, it is my understanding as well, and I'm happy with that.
>> I remember being impressed with Ada because you could write an
>> infinite loop without a faked up condition. The idea being that in
>> Ada the typical infinite loop would normally be terminated by
>> detonation. -- Larry Wall
>
> :-)
>
>> The Ravenscar profile is specifically targeted at high-integrity
>> systems, where infinite loops are, I think, the norm.
>
> Sorry, but I don't see anything in the concept of high-integrity
> software that would make it a norm. High-integrity software is a set
> of quality objectives, whereas infinite loops are (or aren't) part of
> system requirements. These should stay independent, even though I
> understand that expectations for both often come in pairs.
>
> OK, just nit-picking. ;-)
> I wanted to be sure that I understand it correctly, thanks.
> Still, it looks like I cannot say:
>
> pragma Profile(Ravenscar);
>
> in my Hello World program even though this program meets the
> objectives of the profile. That's not fair! :-)

Well, it terminates. What does termination mean in a "high integrity"
embedded system -- does the hardware go away? :-). I think if someone
wants to shutdown such a system the thing happening is, that every
task goes into idle mode and the last thing a controlling task does,
is, to display (or otherwise indicate) "you may now shut off power,
the countdown to eject the warp core has been stopped" or something
like this.

:-)

Regards -- Markus