From: "Randy Brukardt" <randy@rrsoftware.com>
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
Date: 2013-07-10T17:39:45-05:00 [thread overview]
Message-ID: <krknri$el7$1@loke.gir.dk> (raw)
In-Reply-To: 4be25699-a21d-42f9-b44a-38631e866357@googlegroups.com
<mjsilva@scriptoriumdesigns.com> 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:
>> <mjsilva@scriptoriumdesigns.com> 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.
next prev parent reply other threads:[~2013-07-10 22:39 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-19 7:51 Point a beginner in the right direction? Cheap bare-board to run with a RTOS for running ADA Marcus F
2013-06-19 18:20 ` Point a beginner in the right direction? Cheap bare-board to run with a RTOS for running Ada Jacob Sparre Andersen
2013-06-19 18:59 ` Marcus F
2013-06-19 19:25 ` Marcus F
2013-07-12 20:35 ` Rego, P.
2013-07-12 20:37 ` Rego, P.
2013-07-07 9:16 ` Point a beginner in the right direction? Cheap bare-board to run with a RTOS for running ADA Lucretia
2013-07-07 9:56 ` Dmitry A. Kazakov
2013-07-07 10:58 ` Simon Clubley
2013-07-07 15:00 ` Dmitry A. Kazakov
2013-07-07 16:27 ` Niklas Holsti
2013-07-08 7:43 ` Dmitry A. Kazakov
2013-07-08 10:54 ` G.B.
2013-07-08 12:14 ` Dmitry A. Kazakov
2013-07-08 12:56 ` Simon Clubley
2013-07-08 14:06 ` Dmitry A. Kazakov
2013-07-08 14:43 ` G.B.
2013-07-08 17:23 ` Simon Clubley
2013-07-08 18:55 ` Dmitry A. Kazakov
2013-07-09 11:53 ` Simon Clubley
2013-07-09 12:57 ` Dmitry A. Kazakov
2013-07-09 13:11 ` Simon Clubley
2013-07-09 20:30 ` Randy Brukardt
2013-07-09 22:23 ` Georg Bauhaus
2013-07-10 8:06 ` Dmitry A. Kazakov
2013-07-10 12:25 ` Simon Clubley
2013-07-10 22:17 ` Randy Brukardt
2013-07-11 16:58 ` Eryndlia Mavourneen
2013-07-11 22:07 ` Randy Brukardt
2013-07-08 13:15 ` G.B.
2013-07-08 13:59 ` Dmitry A. Kazakov
2013-07-09 0:53 ` mjsilva
2013-07-08 20:31 ` Randy Brukardt
2013-07-08 20:45 ` Dmitry A. Kazakov
2013-07-09 0:19 ` mjsilva
2013-07-09 0:27 ` mjsilva
2013-07-09 7:51 ` Dmitry A. Kazakov
2013-07-09 8:33 ` Georg Bauhaus
2013-07-09 9:12 ` Dmitry A. Kazakov
2013-07-09 11:08 ` G.B.
2013-07-09 12:28 ` Dmitry A. Kazakov
2013-07-09 14:20 ` G.B.
2013-07-09 15:00 ` Dmitry A. Kazakov
2013-07-09 23:13 ` Peter C. Chapin
2013-07-09 15:38 ` mjsilva
2013-07-09 19:48 ` Dmitry A. Kazakov
2013-07-09 20:10 ` Randy Brukardt
2013-07-09 22:09 ` Georg Bauhaus
2013-07-10 22:21 ` Randy Brukardt
2013-07-11 6:12 ` Georg Bauhaus
2013-07-11 22:00 ` Randy Brukardt
2013-07-10 1:31 ` mjsilva
2013-07-10 8:17 ` Dmitry A. Kazakov
2013-07-10 22:39 ` Randy Brukardt [this message]
2013-07-09 13:53 ` Shmuel Metz
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox