I see OCaml's dynamic loading it this way: in the native world, .cmxs
would be like .so (dynamic linking), and .cmx/.a/.cmxa would be like
.o/.a (static linking). In the bytecode world, .cmo/.cma play a role in
both kinds of linking.
What do you mean with "I see ... this way"? Is that what you would like
to see in the forthcoming future or what? Assuming so, why are you
differentiating the final effects of native and bytecode objects?
Ideally, everything should be linkable dynamically and that should be
done per default; then, if one really wants, it should be possible to
statically link, but I would like to see this possibility both for
native and bytecode world.
I did not think about putting dynlinkable objects in another package.
Why not. But what about the native/bytecode duality for dynlinkable
objects that there will soon be? I think whatever choice you do, there
Uhm, any pointers that this will actually be the case? I'm aware of some
works in that direction, but I'm still missing hints that any of them
will be integrated in OCaml mainline.