[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Resource manager in Centaur 1.2
=> The problem: we want to share the development of a formalism among
=> several people. What we would like to have is a file hierarchy
=> independant from both users and centaur/contrib (we are using
=> formalisms located there) hierarchies.
I do not understand what your constraints are exactly.
=>
=> The possibility to give absolute locations in the ressource database
=> seems a solution to our problem. Unfortunately, it does not seem to
=> work properly. I have encountered two difficulties:
=> 1- The Database rmo does not allow to specify an absolute path (only
=> pathes relative to app-root and user-root). It is then impossible to
=> distribute the data-base accross the file system as is adviced.
Right
=> 2- Modules are not compatible with absolute locations: readdefmodule
=> is unable to find the module specified by, for instance:
=> *F.std.Root: abs
=> *F.std.Location: /<absolute path>
=> *F.std.Mode: interp
=> The same problem arises with the Env specification.
=> To use absolute locations, I must use the 'compat Mode. This
=> constraint is not documented.
Right
=>
=> Is there a solution to our problem? Or is it simply impossible?
Absolute paths lead to non relocatable resource databases. If you intend to
install your software in various locations, you should avoid absolute paths.
The recommanded way to share a formalism definition among several users is to
store the definition somewhere under the application root (or to make a link
to the definition). Everybody who uses the system can see this new formalism
and all its resources. If the system is moved to another location, the
formalism resources remain valid. The recommanded location of a new piece of
software is in the contrib directory, typical locations are
contrib/myformalism/resources. It is not mandatory to put everything in
contrib, you can also store your software in centaur or even just under the
root (leading to locations like myformalism/pprinters...). All resources named
root (or Root) specified in databases must have the app value.
If you do not want to add links under the standard application root, you may
do it in the users' hierarchy. Then, as soon as a link to the software is
present in a user home directory, the new formalism is found from the user's
root. All roots must be specified as user.
That is what I do usually to access a formalism being developped by a
colleague.
mkdir -p ~/centaur/myFormalisms
ln -s ~X/centaur/myFormalisms/F ~/centaur/myFormalisms
in my centaur.rdb file :
Centaur.F.database.UserDefaults: centaur/myFormalisms/F/resources.rdb
It is also possible to extend the user and app paths, to let the application
know a new root. This must be done in the .lelisp file in your home directory.
(newl #:system:app-path "/the/root/of/our/software/hierarchy/")
(newl #:system:user-path "/the/root/of/my/private/software/hierarchy/")
Do not forget the trailing /
Let me know if the recommanded structure does not fit your requirements, and
why.
I do not think that supporting absolute paths would be a good idea, but I may
be wrong.
Vincent Prunet, Sema Group Sophia Antipolis
INRIA BP 93 06902 SOPHIA ANTIPOLIS Cedex FRANCE
prunet@sophia.inria.fr, (33) 93 65 78 42, Fax:(33) 93 65 77 66