[MLton] MLB path variables and path maps
Vesa Karvonen
vesa.karvonen@cs.helsinki.fi
Tue, 23 Aug 2005 11:32:28 +0300
Quoting Stephen Weeks <sweeks@sweeks.com>:
> What I'm not sure of, and don't think we have enough to go on, is if
> using path variables in MLBs is the right way to express version
> dependencies between packages. Offhand, it feels like a pretty weak
> language to me (e.g. how could you express that any version between
> 1.5 and 1.9 of some package is OK).
I'm not sure that version number information is the kind of information
that should be put into MLB files. At any rate, I think that it is
important to have a system that allows you to say things explicitly and
precisely. More elaborate systems can be built on top of such a system
(e.g. generate the config MLB file (substituting specific paths) based on
package dependencies).
I don't see how the current system would offer better support in this
respect. As far as I can see, the current handling of path variables is
too simple as basis to erect a package system upon.
Regarding the version number information, if we really want to put it
in the MLB files, then why not do something like this:
config.mlb:
var SML_LIB = `ml-find-pkg sml-lib date >= 2002`
var SML_NJ = `ml-find-pkg sml/nj-lib version = 110.55`
...
In other words, path variables could be bound to computed values. (The
above syntax is only meant to give the idea that the paths are computed.)
> I think this use can only be evaluated in the context of a packaging
> system for MLBs, which alas we haven't even seriously discussed yet.
Could you elaborate your thoughts on packaging systems. How does your
idea of a package system differ from the existing package systems (e.g.
Debian, Red Hat)? Would SML libraries ultimately be installed through
the existing package systems or would we need a completely new system
for them?
-Vesa Karvonen