* [Caml-list] library packaging
@ 2002-03-18 20:07 james woodyatt
0 siblings, 0 replies; only message in thread
From: james woodyatt @ 2002-03-18 20:07 UTC (permalink / raw)
To: The Trade
everyone--
Again, the subject of application packaging has arisen on the list (this
time in a thread about the size of statically-linked native-code
executables), and I would like to share my thoughts on the subject.
I'd like to see a way to link with shared libraries in native-code
executables. I'd also like to see a way to load and unload objects
dynamically at runtime in native-code executables. These are about the
only things I really miss in Objective Caml now, and I think they can be
added-- but it will take some work.
I'm beginning to think that what I really want is something like the
Darwin application bundle and framework model.
A Darwin application bundle comprises all the application-specific
libraries, shared objects, resources, executable programs and private
frameworks that makes an application a unit.
A Darwin application framework (including the private frameworks
contained in application bundles) comprises all available versions of a
library, as well as the corresponding interface definitions for each.
The Darwin port of the Gnu Compiler Collection extends the command-line
interface of the GCC command driver with a -framework option, which is
very much like how the ocamlfind driver works in findlib-0.6.1. Except:
the native-code images output by the linker may be linked with
dynamically-linked (as well as statically-linked) libraries to be loaded
from named frameworks, and frameworks on the system are searched at
load-time for the correct versions of dynamic libraries.
The search order of frameworks is defined by the system: use private
frameworks first; next use system frameworks; then use application
frameworks installed in a system library; lastly and optionally, search
application frameworks installed in a network library on remote volume.
I think a lot of the problems folks are surfacing on the list about
application packaging and dynamic loading are well-addressed in the
Darwin design. Before we launch into yet another discussion of the
problem, I would suggest having a look at the relevant chapters in the
System Overview on Apple's Mac OS X developer documentation site. It's
free (but might require registration, I'm not sure):
http://developer.apple.com/techpubs/macosx/Essentials/SystemOverview/index.
html
There is a PDF version of this document you can download from the site.
Ask me to mail it to you, if you would rather have it that way.
--
j h woodyatt <jhw@wetware.com>
"You're standing on sacred ground. Many strange and wonderful
things have transpired right where you're standing." --unattributable
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-03-18 20:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-18 20:07 [Caml-list] library packaging james woodyatt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox