comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Help with embedded hardware/software platform selection for ADA
Date: Fri, 5 Jul 2013 16:08:40 -0500
Date: 2013-07-05T16:08:40-05:00	[thread overview]
Message-ID: <kr7ckq$rv1$1@loke.gir.dk> (raw)
In-Reply-To: 1042950743394579585.161198laguest-archeia.com@nntp.aioe.org

"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:1042950743394579585.161198laguest-archeia.com@nntp.aioe.org...
> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>> "Luke A. Guest" <laguest@archeia.com> wrote in message
>> news:237325009394503647.389498laguest-archeia.com@nntp.aioe.org...
>>> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>>>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very
>>>> specialized circumstances (typically, some sort of certification
>>>> requirement). Otherwise, one ought to forget about it and use Ada as it
>>>> was
>>>> intended.
>>>
>>> The point of this thread is this, you can't use stock GNAT rts with 
>>> these
>>> small boards, it has to be custom and is something I'm working on.
>>
>> You can't really use Ada on those very small systems -- you can only use 
>> a
>> tiny Ada subset, one that reduces the advantages of Ada a lot. Unless 
>> you're
>> in the tiny minority of people that prefer the Ada *syntax* to that of C,
>> you're not really gaining anything. (Ada witthout exceptions and most
>> tasking isn't Ada at all, IMHO). RRS tried to serve that market back in 
>> the
>> early days and got nowhere.
>
> You can have local exceptions no propagation, also can have a small
> secondary stack and tasking.

A "local exception" is just a very complicated way to write a go-to. 
Propagation (at least from a subprogram to its caller) is the entire point; 
without it, you have to handle potential errors after every call which 
clutters the code far too much. (Think a subprogram that includes a bunch of 
Puts; without exception propagation, one has to check for errors after every 
Put, even though write errors are very unlikely.)

I don't see any point in worrying about a secondary stack; that's mainly 
used for returning objects of unknown size from functions, and that's a 
capability that can easily be avoided in programs (even if you don't allow 
heap use). (Besides the fact that it is better, IMHO to use managed heap for 
that anyway, especially on very memory-limited systems; programs that can't 
use the heap need very strong determinism and thus are going to be very 
limited in constructs in any case.)

                                          Randy.


  reply	other threads:[~2013-07-05 21:08 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
2013-06-14 17:05 ` Dmitry A. Kazakov
2013-06-17 15:51   ` Max Herman
2013-06-17 17:12     ` Dmitry A. Kazakov
2013-06-14 17:45 ` G.B.
2013-06-14 20:52   ` Simon Wright
2013-06-14 20:16 ` RasikaSrinivasan
2013-06-14 20:51   ` Simon Wright
2013-06-17 16:00   ` Max Herman
2013-06-17  0:38 ` Luke A. Guest
2013-06-17 16:05   ` Max Herman
2013-07-04 16:13     ` Lucretia
2013-06-17  6:55 ` Help with embedded hardware/software platform selection for Ada Jacob Sparre Andersen
2013-06-17 16:15   ` Max Herman
2013-06-26 23:58   ` Luke A. Guest
2013-06-17 21:46 ` Help with embedded hardware/software platform selection for ADA Marcus F
2013-07-01 18:45   ` mjsilva
2013-07-01 19:32     ` Dmitry A. Kazakov
2013-07-01 23:35       ` Simon Clubley
2013-07-02  7:27         ` Georg Bauhaus
2013-07-02  8:46           ` Dmitry A. Kazakov
2013-07-02  9:09             ` Georg Bauhaus
2013-07-02 14:50               ` Shark8
2013-07-02 15:08             ` mjsilva
2013-07-02 16:53               ` Robert A Duff
2013-07-02 22:47               ` Randy Brukardt
2013-07-03  0:22                 ` Luke A. Guest
2013-07-03 19:13                   ` Randy Brukardt
2013-07-03 19:19                     ` Randy Brukardt
2013-07-03 20:50                       ` Georg Bauhaus
2013-07-08 12:53                         ` Eryndlia Mavourneen
2013-07-03 21:29                       ` Luke A. Guest
2013-07-03 22:02                       ` Niklas Holsti
2013-07-04 16:02                     ` Luke A. Guest
2013-07-05 21:08                       ` Randy Brukardt [this message]
2013-07-03  1:01                 ` mjsilva
2013-07-03  2:41                   ` Luke A. Guest
2013-07-03  7:17                     ` Shark8
2013-07-02 16:52             ` Simon Clubley
2013-07-02 17:27               ` Dmitry A. Kazakov
2013-07-02 19:29                 ` Simon Clubley
2013-07-02 20:21                   ` Dmitry A. Kazakov
2013-07-03 12:08                     ` Simon Clubley
2013-07-03 12:47                       ` Dmitry A. Kazakov
2013-07-03 16:56                         ` Simon Clubley
2013-07-02 22:21                 ` mjsilva
2013-07-03  7:18                   ` Dmitry A. Kazakov
2013-07-03  8:03                     ` Georg Bauhaus
2013-07-03 11:11                       ` Dmitry A. Kazakov
2013-07-03 12:49                         ` G.B.
2013-07-03 16:14                           ` Dmitry A. Kazakov
2013-07-03 14:50                     ` mjsilva
2013-07-02  8:26         ` Dmitry A. Kazakov
2013-07-02 10:44           ` Bill Findlay
2013-07-02 13:02             ` Dmitry A. Kazakov
2013-07-02 13:59               ` Bill Findlay
2013-07-02 14:41                 ` Dmitry A. Kazakov
2013-07-02 16:45                   ` Simon Clubley
2013-07-02 17:40                     ` Dmitry A. Kazakov
2013-07-02 16:57           ` Simon Clubley
2013-07-02 17:44             ` Dmitry A. Kazakov
2013-07-02 14:55         ` mjsilva
2013-07-02 15:20           ` Dmitry A. Kazakov
2013-07-02 15:58             ` mjsilva
2013-07-02 16:58               ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox