comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP>
Subject: Re: Runtime startup code for the GNAT Runtime...and a bit of humble pie.
Date: Tue, 19 Mar 2013 12:51:12 +0000 (UTC)
Date: 2013-03-19T12:51:12+00:00	[thread overview]
Message-ID: <ki9n00$b1$1@dont-email.me> (raw)
In-Reply-To: ki9d7h$3os$2@dont-email.me

On 2013-03-19, Brian Drummond <brian@shapes.demon.co.uk> wrote:
>
> There was an email just today on gcc-help@gnu.org with part of the 
> picture - in the thread entitled "Controlling ld and as with backend" on 
> how to configure the start.s and end.s subroutines, using the "config/t-
><target>" files.
>
> My own view is that for a minimal Ada RTS, they should do as little as 
> possible unlike the crt.o stuff and that the standard packages' 
> initialisation parts should add whatever is necessary for their inclusion.
>
> But this is only a view; I am just beginning down this path (with the TI 
> MSP430 processor, see msp430ada on sourceforge) where the C startup does 
> a lot with e.g. the watchdog timer that is unnecessary if the Ada 
> application decides to turn it off...
>
> So I am interested in other views and good documents, should you find any!
>

I would like to offer one take on this which has not been mentioned yet
and that is the issue of reliability of the resulting system as a whole.

One of the reasons to use Ada over, say C, is for the increased reliability
of the code. However, what if the ported Ada RTS actually results in more
unreliable code because of issues the person porting the RTS did not fully
understand or was simply was not aware of ?

That's not too bad if your faulty project is sitting on your workbench when
it fails, but what if you have chosen to run Ada in a robot or model aircraft
because you wanted increased reliability in those environments ?

I've gone back and forth on this in my mind for quite some time and my
current thinking is to use C for the low-end bare metal parts of a project
and to use Ada (under say RTEMS) for the higher level parts of a project.

I've looked around for languages with real time capabilities, a small
footprint, easy to port to a range of new environments in a reliable way,
and under active development but after considering the options, I chose
(reluctantly) to stay with C for the low end bare metal code.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world



  reply	other threads:[~2013-03-19 12:51 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-18 20:59 Runtime startup code for the GNAT Runtime...and a bit of humble pie Diogenes
2013-03-18 21:14 ` Robert A Duff
2013-03-19  0:07 ` Diogenes
2013-03-19 10:04   ` Brian Drummond
2013-03-19 12:51     ` Simon Clubley [this message]
2013-03-19 18:16       ` Ludovic Brenta
2013-03-20  1:05         ` Simon Clubley
2013-03-20 10:13           ` Mike H
2013-03-20 20:44             ` Ludovic Brenta
2013-03-19 21:43       ` Randy Brukardt
2013-03-20  8:24         ` Dmitry A. Kazakov
2013-03-21  0:16           ` Randy Brukardt
2013-03-21 19:08             ` Shark8
2013-03-21 23:34               ` Randy Brukardt
2013-03-22 16:39                 ` Jacob Sparre Andersen
2013-03-23 10:56                   ` Thomas Løcke
2013-03-19 23:13       ` Brian Drummond
2013-03-20  0:54         ` Simon Clubley
2013-03-20 11:50           ` Brian Drummond
2013-03-20 13:18             ` Simon Clubley
2013-03-26 11:04               ` Brian Drummond
2013-03-26 22:38                 ` Simon Clubley
2013-03-27 11:34                   ` Brian Drummond
2013-03-27 14:38                     ` Simon Clubley
2013-03-27 22:58                       ` Brian Drummond
2013-03-20 14:17           ` Lucretia
2013-03-20 15:00             ` Lucretia
2013-03-21 16:39             ` Brian Drummond
2013-03-23  4:35 ` Diogenes
2013-03-26 21:27 ` Diogenes
2013-03-26 21:57   ` Shark8
2013-03-27  0:28     ` Diogenes
2013-03-27  2:27       ` Shark8
2013-03-27 10:05       ` Brian Drummond
2013-03-27 12:23         ` Simon Wright
2013-03-27 19:07   ` Randy Brukardt
2013-03-27 21:10     ` Diogenes
replies disabled

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