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=unavailable autolearn_force=no version=3.4.4 Path: border1.nntp.dca3.giganews.com!border2.nntp.dca3.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!usenet.blueworldhosting.com!feeder02.blueworldhosting.com!reality.xs3.de!news.jacob-sparre.dk!loke.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Point a beginner in the right direction? Cheap bare-board to run with a RTOS for running ADA Date: Wed, 10 Jul 2013 17:39:45 -0500 Organization: Jacob Sparre Andersen Research & Innovation Message-ID: References: <8a3093bb-90b3-4081-9b0b-dfde5aa6b851@googlegroups.com> <993despcuk1d.1ifczvyo501px.dlg@40tude.net> <04244d3e-2a29-4980-b7a1-0dad4569caa2@googlegroups.com> <1czx18gollwt5$.n1wi7pmd0bqh$.dlg@40tude.net> <81c8e4a2-f0bb-4559-b2b7-0eba08ddca99@googlegroups.com> <4be25699-a21d-42f9-b44a-38631e866357@googlegroups.com> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: loke.gir.dk 1373495986 15015 69.95.181.76 (10 Jul 2013 22:39:46 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Wed, 10 Jul 2013 22:39:46 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Original-Bytes: 4608 Xref: number.nntp.dca.giganews.com comp.lang.ada:182447 Date: 2013-07-10T17:39:45-05:00 List-Id: wrote in message news:4be25699-a21d-42f9-b44a-38631e866357@googlegroups.com... > On Tuesday, July 9, 2013 1:10:19 PM UTC-7, Randy Brukardt wrote: >> wrote in message ... >> He hasn't, he's just telling the truth. On tiny systems > What is tiny? 128k of program memory? 256k? 512k? 1MByte? Anything that needs an Ada subset to succeed. >> 90% of Ada's advantages are negated; > > What is the absolute minimum system that can run "100% Ada"? Our 16-bit 8086 compilers (for validated Ada 83) had a minimum size of about 16K without tasking and 64K with tasking. Ada 2012 would be larger, but probably not more than twice that (Janus/Ada was built from the ground up for small code size, so *everything* emphasizes that, and that support is still in the compiler). The main problem for bare machine compilers is that one has to have access to timers, some sort of bootstrap loader, and possibly interrupt controllers to support anything. (And then you have a compiler with no I/O, which makes debugging interesting.) And those things are different on every board, every processor revision, and the like. You never have a large enough market to commercially support anything; doing it individually is too expensive for most customers. So you're stuck. Don't get me wrong, I'd love to support bare-metal Ada systems again. But I'd only do it if someone was willing and able to support the work -- I don't make enough now to take on lots of freebee work in the hopes of making some money down the road (especially when experience says that it would be a money-losing proposition). >> you're talking about systems with no exceptions, >> extremely limited tasking (Ravenscar is far too limited to be usable >> outside >> >> of the hands of experts with lots of time to spend on analysis), very >> >> limited numerics (usually integers only) > > Why integers only? Surely Ada compilers don't use OS services for > floating or fixed point. None of the "tiny processors" that I'm aware of have any hardware floating point support. Doing it in software would be horribly expensive (the library we wrote for 8086 machines took several months to write and debug; it's 6500 lines of assembler), and programs for such processors don't usually need it anyway (else they'd use a processor with such support), so it isn't worth supporting. Janus/Ada uses floating point to implement fixed point I/O, conversions, and in some cases in generics, so it isn't practical to support fixed point on machines without any floating point support. Some compilers might be able to support very limited forms of fixed point without any floating point support (only a limited number of binary smalls, for instance) -- I don't find such things very interesting (decimal smalls are manditory in my view, since we work in decimal, not binary). Randy.