From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,cc3c5a58c46ea9c4 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit X-Received: by 10.224.185.79 with SMTP id cn15mr10303608qab.4.1364343866449; Tue, 26 Mar 2013 17:24:26 -0700 (PDT) MIME-Version: 1.0 Path: k8ni26989qas.0!nntp.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newsgate.cuhk.edu.hk!goblin2!goblin.stu.neva.ru!aioe.org!eternal-september.org!feeder.eternal-september.org!mx05.eternal-september.org!.POSTED!not-for-mail From: Simon Clubley Newsgroups: comp.lang.ada 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) Organization: A noiseless patient Spider Message-ID: References: <21ad4ef7-0e4a-40ba-ac3f-fe21018c7bd9@googlegroups.com> Injection-Date: Tue, 19 Mar 2013 12:51:12 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="3a7522c45acd2a6c162b080668fa4020"; logging-data="353"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18fSFwD/2tgWBMXc6nocowN9kPm2qxX/5Y=" User-Agent: slrn/0.9.8.1 (VMS/Multinet) Cancel-Lock: sha1:21dK9IrO/CytRlj2uWMuoB7o5jI= Date: 2013-03-19T12:51:12+00:00 List-Id: On 2013-03-19, Brian Drummond 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- >" 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