comp.lang.ada
 help / color / mirror / Atom feed
From: lifetime n00b <anonymous@yahoo.com>
Subject: Re: load and use a ".o" file?
Date: Fri, 19 Dec 2003 15:28:26 GMT
Date: 2003-12-19T15:28:26+00:00	[thread overview]
Message-ID: <uOEEb.3352$rx2.672@newssvr23.news.prodigy.com> (raw)
In-Reply-To: <LQsEb.146703$_M.721004@attbi_s54>

tmoran@acm.org wrote:
>   If you are not talking about using an existing dynamic linker/loader,
> then you are clearly talking about developing your own.  In your example,
> HiThere may need to make calls (for memory allocation for the string, for
> instance) on the Ada Run Time System of the main program.  So you will
> need to load the code from the .o file and then modify call addresses, ie,
> link, the loaded HiThere function.  You should be able to find the
> information you need by looking at the Gnat source code.
>   What problem are you trying to solve?  Perhaps there's an easier way.


Well, the "Big Picture" is that I'm wanting to write a Common Lisp 
system in Ada (yes I know, it probably sounds like heresy to both the 
Lisp and Ada camps), and I want to use gnat as the back-end compiler. 
Contrary to popular opinion, Lisp is not simply an interpreted language. 
One feature of a complete Common Lisp system is that source files can be 
compiled and loaded while the top-level system is running. Some 
implementations (such as CLISP) use byte-code compilation, but most 
compile to native code. Some use their own built-in compilers, while 
others first translate the Lisp code to C and use gcc as the back-end 
compiler and then load and use that compiled file. From what I can tell, 
it seems that GCL and ECL use gcc to compile the files as dynamic load 
(.so) files and then call dlopen() on that file.

I was thinking that it would be more efficient (and more portable) to 
not use .dll or .so files, but to load and use the .o object files 
directly in some way. And if I could figure out how to do it with the 
example I described in the OP, then I could just expand on that to 
accomplish what I'm ultimately aiming towards.




  reply	other threads:[~2003-12-19 15:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-18 23:31 load and use a ".o" file? lifetime n00b
2003-12-18 23:59 ` Stephen Leake
2003-12-19  1:51 ` tmoran
2003-12-19 15:28   ` lifetime n00b [this message]
2003-12-19 18:08     ` Stephen Leake
2003-12-20 20:12       ` lifetime n00b
2003-12-20 21:15         ` tmoran
2003-12-20 23:41           ` lifetime n00b
2003-12-21  7:15             ` tmoran
2003-12-21 11:46         ` Simon Wright
2003-12-21 13:57         ` Stephen Leake
2003-12-22 19:29           ` lifetime n00b
2003-12-22 20:49           ` Jon S. Anthony
2003-12-22 23:15             ` Stephen Leake
2003-12-23  1:36               ` tmoran
2003-12-27 22:55               ` Jon S. Anthony
2003-12-28  3:28                 ` Stephen Leake
2003-12-28 16:14                   ` Georg Bauhaus
2003-12-29 22:45                     ` Jon S. Anthony
2003-12-29 22:42                   ` Jon S. Anthony
2003-12-30 15:17                     ` lifetime n00b
2003-12-30 16:56                     ` Stephen Leake
2003-12-22 15:50         ` Mark H Johnson
2003-12-22 19:46           ` lifetime n00b
2003-12-22 22:58             ` Mark H Johnson
2003-12-23 17:48               ` Robert I. Eachus
2003-12-23 17:59                 ` Mark H Johnson
2003-12-23 21:53                   ` Robert I. Eachus
2003-12-19 21:28     ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox