findlib: todo list
Hi,
from our discussion I have compiled the following todo list (regarding what
must be modified in findlib to simplify/improve your work):
======================================================================
Planned changes for findlib 0.5
======================================================================
*** Features with priority 1: ***
- Configuration file: defines the default search path & the default
installation directory (for ocamlfind install) & perhaps some other
things
The location of the config file can be configured at findlib build time.
(Do we need an environment variable $OCAML_FINDLIB_CONF to override that
at runtime? Such that a user can have (temporarily) another configuration?)
The actually used search path is $OCAMLPATH + default search path.
- ocamlfind install: accepts a new -destdir option & the
OCAML_DESTDIR variable, both overriding the default installation directory
from the config file.
- ocamlfind list: lists the installed packages
- Allow an alternate way of looking up packages: To find a package p,
ocamlfind will iterate over all directories d of the search path
and check:
- if d/p/META exists, d/p is the package directory and META the
description (old behaviour)
- if d/p.META exists, this file is the description which must contain
a directive "directory=xxx", and this directory is taken as the
package directory. This feature makes a central META directory
possible
- Interpret +package_name in the directory directive (to have the same
syntax as ocaml 3.01)
- Update docs
*** Features with priority 2: ***
- develop a shell script: ocamlfind-fake which emulates primitive
usage of ocamlfind. This script can be easily distributed with
packages that don't need the advanced features.
The script should emulate:
- ocamlfind install, but there must be a -destdir or OCAML_DESTDIR
- ocamlfind (ocamlc|ocamlopt): searches for packages by some heuristics;
no support for dependency analysis
Then I can say $(MAKE) OCAMLFIND=ocamlfind-fake which makes build
possible for users without findlib
- Check whether there are two packages with the same name in the
search path
- Check whether there are two modules with the same name in the resulting
include path (BTW, that's what I meant with "conflict report")
--
----------------------------------------------------------------------------
Gerd Stolpmann Telefon: +49 6151 997705 (privat)
Viktoriastr. 100
64293 Darmstadt EMail: gerd@gerd-stolpmann.de
Germany
----------------------------------------------------------------------------
Reply to: