[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ocaml 3.04 packaging issues ...



On Fri, Dec 14, 2001 at 05:29:53PM +0100, Stefano Zacchiroli wrote:
> On Fri, Dec 14, 2001 at 05:17:59PM +0100, Sven wrote:
> > > ok, but on the average I think that none want to do only bytecode
> > > developmente if they can do both development, anyway this is just a
> > > personal opinion.
> > 
> > Well, it would be nice to split away the stub libraries into a separate
> > package, so people could install them and run dynamically linked bytecode
> > executables.
> 
> Yes, like the standard shared libraries.
> Anyway, I haven't yet looked at the ocaml dynaminc linking stuff and I
> don't know if stubs are created during the library compilation process
> or not.
> Currently libraries that I package aren't distributed with stubs.
> 
> Have I to wait the upstream support for dynlink or this feature works
> for free from ocaml 3.04?

Well, it concerns only C libraries for now.

That is, instead of statically linking the C stubs into the .cma, there is now
support for having it done dynamically. Thus you don't need to build with
-custom anymore, only if you want static executables. I think it would be best
to rename -custom to -static or something such.

That said, as i understand it, the ocaml code is still statically linked.

Now, what is the implication of that for us :

  o statically linked bytecode is now arch indep.

  o we need to provide the dynamically linked stub libraries on all libraries
    which interface with C, preferably in a split -base or similar package.

BTW, i have the following /etc/magic file :

-------- cut here --------------
# Magic local data for file(1) command.
# Insert here your local magic data. Format is described in magic(5).
0       string  Caml1999        Objective caml
>8      string  X               exec file
>8      string  I               interface file\ (*.cmi)
>8      string  O               object file\ (*.cmo)
>8      string  A               library file\ (*.cma)
>8      string  Y               native object file\ (*.cmx)
>8      string  Z               native library file\ (*.cmxa)
>8      string  M               'ast_impl' file
>8      string  N               'ast_intf' file
>9      string  >\0             (Version %3.3s).
-------- cut here --------------

Would it not be nice to have this send to the file maintainer include this ?

it gives things like :

digest.cmi: Objective caml interface file\ (*.cmi) (Version 008).
profiling.cmo: Objective caml object file\ (*.cmo) (Version 004).
dynlink.cma: Objective caml library file\ (*.cma) (Version 006).
random.cmx: Objective caml native object file\ (*.cmx) (Version 006).
bigarray.cmxa: Objective caml native library file\ (*.cmxa) (Version 008).

Notice, that since 3.02, only the .cma (Version 005) and the .cmxa (Version
007) did change.

I don't know what the exec, ast_impl and ast_intf file type are for though.

Friendly,

Sven Luther



Reply to: