W. Wesley Groleau (Wes) wrote: >> someone here attempted that with gnat. >> the runtime did not fit on his 128k 68k board. >> it barely fits in 256k, and big as it is, it still doesn't do >> what he wanted it to do, in interrupt handling. >> obviously he stripped out as much crud as he could. >> it is not straightforward to strip it down, not least because it is >> very big and very complicated. since i've written a reasonably lean >> ada run-time implementation for ada83, it's hard for me to imagine >> why this one is as big as it is. >> if Ada95 really requires this much, you can pretty much forget it as >> a language for embedded systems controllers, at least where gnat is >> concerned. > > Well, at least we have some evidence instead of just predictions! While I agree that the runtime is large, it really is well crafted and very straight forward. Of course, there is a lot of material to digest. The simplest experiment to try is to write a null application, compile it and see what object modules get linked (use the -v option with gnatbld to see the set of Ada routines). Besides the Ada routines, there are several C routines from libgnat as well as some assembly/C routines from libgcc. Given this list, I just walked through the source tree and read the comments. The code is certainly much easier to understand than most systems I am paid to deal with! Beware of Ada.Text_IO. It is a massive package and does pull in lots of other packages. If you write a simple "Hello World", I recommend using Gnat.Io instead. It is simple implementation of C stdio and does not use other packages. I have had a great deal of success in understanding the run time system, decoding it step by step. I have been able to create Ada applications with only a few kilobytes of runtime library (and I can even reduce that but cutting out unused routines). David Koogler Boolean Solutions, Ltd.