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,3025dd6d917b499c X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.66.81.200 with SMTP id c8mr9135402pay.1.1351478331289; Sun, 28 Oct 2012 19:38:51 -0700 (PDT) Path: s9ni64517pbb.0!nntp.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!novia!news-peer1!btnet!zen.net.uk!hamilton.zen.co.uk!xlned.com!feeder1.xlned.com!border2.nntp.ams.giganews.com!nntp.giganews.com!newsreader4.netcologne.de!news.netcologne.de!news.swapon.de!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail From: Brian Drummond Newsgroups: comp.lang.ada Subject: Re: Ada, the best language with the not-so-best tool chain Date: Thu, 25 Oct 2012 08:42:52 +0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: <38af7fb8-b0a4-4a31-87aa-b7b698cc89c3@googlegroups.com> <18ats2960nsvm$.kfufsnul13aq$.dlg@40tude.net> <5072c9ae$0$6562$9b4e6d93@newsspool4.arcor-online.net> <4keoa6epdxt7.1nnwxy7v7ar90.dlg@40tude.net> <5072dc68$0$6554$9b4e6d93@newsspool4.arcor-online.net> <1f7cmfp1l65w1.1deog8cfxbs0u$.dlg@40tude.net> <5072e37a$0$6556$9b4e6d93@newsspool4.arcor-online.net> <1wzhg6cdjkwjj$.uq66rzr2nlgy.dlg@40tude.net> <7xzk3ckxbv.fsf@ruckus.brouhaha.com> <96e29613-fec6-488b-842b-8f5dbcf44a03@googlegroups.com> <7xtxtjvoag.fsf@ruckus.brouhaha.com> <7xk3uflt4b.fsf@ruckus.brouhaha.com> <7xlievo745.fsf@ruckus.brouhaha.com> Mime-Version: 1.0 Injection-Date: Thu, 25 Oct 2012 08:42:52 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="0e44dd4a3c4e0a6e83a86f947fb780ae"; logging-data="25871"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Lo7088LH0wWM0PJ+Ya715mIo9JAjGoIM=" User-Agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 30dc37b master) Cancel-Lock: sha1:xrPcroU1fC3p0mIg4Y2nuySlNLM= X-Original-Bytes: 3691 X-Received-Bytes: 3820 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: 2012-10-25T08:42:52+00:00 List-Id: On Wed, 24 Oct 2012 15:08:58 -0700, Paul Rubin wrote: > Brian Drummond writes: >> And there is no equivalent to the AVR-Ada runtime. One would probably >> have to start a port from scratch, using the AVR one as a guide. (It's >> not really a *run*time so much as providing compile time support for >> access to the AVR's peripherals and I/O pins etc...) > > Thanks for the informative post. One question about the runtime: how > much different is Ada from C, in terms of what the runtime is expected > to do? In particular, I gather there is some kind of interface for > calling C functions from Ada. Could that be used to interface an > existing C library for those i/o pins and so on? What about using a > regular libc (through a wrapper) for basic i/o? Full Ada is very different, but that is not what we are talking about with the AVR. I haven't explicitly tried calling C or vice-versa, I don't have any C code for the AVR! However the C interface seems to be there and working; it is currently used (instead of the normal Ada syntax) for installing interrupt routines (written in Ada, naturally!). The Ada RTS with AVR has a lot of restrictions (naturally, enforced by the compiler, there is a file full of restriction pragmas) including no tasking. Exceptions are allowed within a block, but you cannot propagate them out of the block, etc etc. And you do need avr-libc, so it is likely that the AVR RTS uses avr-libc (it is probably mostly a wrapper as you suggest) Others may be able to fill in more of the details... - Brian