[net.lang.ada] Personal Opinions on Pragmas and Ada Run-Time Environments

harbaughs@EGLIN-VAX.ARPA ("Samuel S. Harbaugh") (11/03/85)

It's been awhile since a list of suggested Pragmas was collected
via info-Ada. I think i'll stir things up by saying:
** Down with Pragmas **
I consider Pragmas to be outside the Ada language when they do
anything that causes the compiled code to be different than if
they were not present. I consider Pragmas that turn the source 
code listing on or off to be an annoyance and I would rather
not have them at all.
Pragmas make me dependent on the compiler vendor and I want to
be able to have a suite of compilers selecting the one best
suited for the application and situation.(Remember when you
would use the Fortran compiler for everyday use and then, when
your masterpiece was almost done, reach for the optimizing
compiler, H level I recall).
Suppose I want to add a function and I imagine that I can do it
either with a Pragma or as a library function (e.g. Disable Interrupts).
If I make it a library function I can write it myself and be done
with it. If I specify a Pragma then I must get my compiler
vendors to modify the compiler which may take a long time.
--
While I'm stirring let me also propose:
** I Don't Want  an Ada Run-Time Environment **
There is the computer. There is Ada. Writing in Ada
I want to be able to completely control the hardware. I will
functionally layer the Ada, and I will name the layer next to
the hardware "Applications Run-Time Environment" but it will be
written in Ada. Therefore I expect the vendor who is supplying me
Ada for a "Bare Target" to give me a package system that gives
me complete control of the underlying hardware (e.g. interrupts).
I want the library supplied by  the vendor to also contain a selection
of preprogrammed components for my Application Run-Time Environment
such as a selection of task dispatchers, interrupt handlers etc. that
I can modify and recompile if I wish. 
The Ada run-time environment concept makes me dependent on the
vendor ( I'm in an independent mood lately). I don't want the 
vendor to decide how my tasks are dispatched. I don't want a
vendor specific pragma timeslice. I want my computer and Ada
and I don't want any compiler vendor toolmarks on my Ada.
[Constructive comments are invited]
--
regards, sam harbaugh
---------------------
------