On Thu, Nov 5, 2009 at 6:45 PM, Leo Butler <l.butler at ed.ac.uk> wrote:
>
>
> On Thu, 5 Nov 2009, Karl-Dieter Crisman wrote:
>
> < Dear Leo and list,
> <
> < Thank you, that was very helpful; I was able to fix my problem!
> <
> < > ?set\-pathnames();
> < > ?it's defined in src/init-cl.lisp. Leo
> < >
> <
> < As a followup, I noticed something while looking at set-pathnames();
> < all variables sort of bootstrap when it is called, with the exception
> < of *maxima-lang-subdir*, which only is called when Maxima is actually
> < run (as opposed to used as a library), via set-locale-subdir().
> <
> < This means that when set-pathnames() is called (as a library call), it
> < bombs because it expects *maxima-lang-subdir* to be NIL or some
> < pathname, but instead the variable is unbound.
>
> I presume that you are not running Maxima per se, but using the source.
> If so, I would suggest that you define a function like
>
> (defun set-all-pathnames ()
> ? ? ? ?(set-locale-subdir)
> ? ? ? ?(set-pathnames))
>
> which would do the job for you.
>
> <
> < Is there a way for Lisp to catch the unbound case as an exception and
> < at that point do
> <
> < (setq *maxima-lang-subdir* nil)
> <
> < for this situation? ?Unfortunately I don't know the syntax of how Lisp
> < handles exceptions - maybe "unless"?
> <
> < I have made this SF bug #2892710, at
> < http://sourceforge.net/tracker/?func=detail&aid=2892710&group_id=4933&atid=104933
> < .
>
> If what I said above is correct, then I don't think it's appropriate to
> call this a bug. Leo.
I think it should be possible to use maxima as a lisp library, so this
should be considered as a bug. It is easy to fix. Just replace (defvar
*maxima-lang-subdir*) with (defvar *maxima-lang-subdir* nil) in
init-cl.lisp.
Andrej