Proposal for location of fasls



Raymond Toy <toy.raymond at gmail.com> writes:

> It's been mentioned previously that some of the share packages like
> lapack and affine (previously) were trying to compile into the same
> directories as the source.  However, in many situations, these
> directories are not generally writable.
>
> Andreas has modified the affine system so that the affine fasls are
> saved in the directory binary-foo in *maxima-tempdir*.  This is much
> better than what we have today.
>
> However, there is no guarantee that different systems will always have
> different filenames, so they'll overwrite each other.  Also,
> *maxima-tempdir* defaults to the user's home directory, so fasls from
> maxima subsystems will clutter the users home directory.

Maybe it is better to default to /tmp or ${TMPDIR}?

> I propose that systems should place fasls not in *maxima-tempdir* but in
> *maxima-userdir*, and they should be in some subdirectory, preferably
> based on the actual source pathname.   Thus, affine would store it fasls
> in *maxima-userdir*/share/affine/binary-foo and minpack goes in
> *maxima-userdir*/share/minpack/binary-foo.

This is called OBJDIR ("object directory") in BSDs. See make(1) at

http://man.netbsd.org/cgi-bin/man-cgi?make++NetBSD-current
http://man.freebsd.org/cgi/man.cgi?sektion=0&query=make&manpath=FreeBSD+7.1-RELEASE&format=html

Specifically, note the first rule for .OBJDIR

> This can be used by systems to create the base directory in which to
> store the compiled fasls.
>
> Another useful utility is maxima-subsystem-source-directory which
> returns the directory where the defsystem file lives.  This is useful in
> defsystem files to set the source directory relative to the location of
> the defsystem file itself.


-- 
HE CE3OH...