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=-0.4 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00 autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,95dad97c56f9de95 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-09-25 08:45:23 PST Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!psinet-eu-nl!psiuk-p4!uknet!psiuk-n!news.pace.co.uk!nh.pace.co.uk!not-for-mail From: "Marin David Condic" Newsgroups: comp.lang.ada Subject: Re: Curiousity: pragma No_Run_Time for Gnat Date: Tue, 25 Sep 2001 11:38:25 -0400 Organization: Posted on a server owned by Pace Micro Technology plc Message-ID: <9oq8dj$bkj$1@nh.pace.co.uk> References: NNTP-Posting-Host: dhcp-200-133.miami.pace.co.uk X-Trace: nh.pace.co.uk 1001432307 11923 136.170.200.133 (25 Sep 2001 15:38:27 GMT) X-Complaints-To: newsmaster@news.cam.pace.co.uk NNTP-Posting-Date: 25 Sep 2001 15:38:27 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Xref: archiver1.google.com comp.lang.ada:13342 Date: 2001-09-25T15:38:27+00:00 List-Id: I never should have used the word "Pure"! :-) There's one possibility for "Pure" which (at least it used to) refers to reentrant code. Then there seems to be some usage of it here to mean what used to be called "Absolute" code - code in which all of the addresses have been resolved to some physical (or logical, in the case of machines that do some form of memory-mapping/page table management) address. Then there's the kind of code I was interested in - code that may be full of relocatable addresses and may not even be reentrant, but after passing through some appropriate linker/loader, ends up containing no calls to an OS or DLLs or runtime that wasn't supplied explicitly to the linker or interrupts to a BIOS that may or may not exist, etc. IOW, machine instructions that will run without any other assumptions about what else may be available beyond the target processor. I don't know what term people might use to describe that sort of code generation, but I was interested in code generation that did not make any calls or traps to an environment that may not be there. I don't know if the pragma No_Run_Time accomplishes this or not - or if it works the same way for all targets. I'm hearing that this was not the intended use of the pragma (which I understand) but I was wondering if it was a useful side effect. What everyone else is interested in, I could only speculate on, but I hope this serves to clarify the terminology a little. MDC -- Marin David Condic Senior Software Engineer Pace Micro Technology Americas www.pacemicro.com Enabling the digital revolution e-Mail: marin.condic@pacemicro.com Web: http://www.mcondic.com/ "chris.danx" wrote in message news:j31s7.2446$L4.520357@news6-win.server.ntlworld.com... > > "M. A. Alves" wrote in message > news:mailman.1001428823.15394.comp.lang.ada@ada.eu.org... > > The Meanings of "Pure" II > > > > Sergey wrote: > > > Well, GNAT has to generate the object files in *some* format, and > > > unless you have a cross-compiling version, it'll be ELF on Linux and > > > PE (COFF) on Win32. > > > > You mean there is no plain x86 code? A simple sequence of machine code > > instructions? "Pure" code? > > Pure code being that which does not contain interrupts/os calls? Or pure in > the sense that it is not in an object file? Or that which is not protected > mode code? > > > Is the good old Van Neuman architecture at risk? > > Why would it be? Von Neuman may die due to something like CA-effectant > computers (which would be ironic) or the RAW architecture but they're > immature. Object files do not present a threat to Von Neumann machines, in > fact they're part of why it's so popular (they make things easier, hence > aiding popularity). > > > > (I am no guru with object code formats, but there must be a neutral one, > > with no "brand" on it (except the processor's). I assume ELF or PE or > > COFF is not such a thing, or else this discussion is meaningless.) > > No. You misunderstand the function of an object file. It's intended to > provide a structure to a file, and contains information that allows a linker > or loader to locate routines. All formats are technically neutral, it's > just that on windows COFF is used more than ELF and on Linux the reverse. > > > Personally for the hobby OS in Ada I am only interested in a "pure" > > approach. No fancy loaders, no branded formats, in sum no dependencies: > > pure = truly free. > > I suppose you could get a bootstrap to load a plain binary file, but you'd > still need to compile to ELF on Linux, or COFF on windows and link your > modules together into the plain format. However the problem is that it > removes structure from the file and *could* complicate matters later. > > > I really don't understand what you mean by "pure" or why Object File Formats > are so bad. > > > > Chris > > >