Broken describe in GCL Maxima 5.9.0.9beta2



Vadim V. Zhytnikov writes:

> Describe is broken in GCL Maxima Maxima 5.9.0.9beta2
> 
> First, third argument or GCL's si::info which
> is supposed to be list of info directories to
> search has no effect on si::info.
> 
> ====================================================================
> (defmspec $describe (x)
>   (setq x ($sconcat (cadr x)))
>   (let ((cl-info::*prompt-prefix* *prompt-prefix*)
>         (cl-info::*prompt-suffix* *prompt-suffix*))
>     #-gcl
>     (cl-info:info x '("maxima.info") *info-paths*)
>     ;; Optimization: GCL's built-in info is much faster than our info
>     ;; implementation. However, GCL's info won't respect out *prompt-
>     ;; variables. Compromise by only calling our info when the prompts
>     ;; are not empty. --jfa 07/25/04
>     #+gcl
>     (if (and (string= *prompt-prefix* "") (string= *prompt-suffix* ""))
>         (system::info x '("maxima.info") *info-paths*)
>                                          ^^^^^^^^^^^^
>         (cl-info:info x '("maxima.info") *info-paths*))))
> ====================================================================
> 
> I haven't investigated this in details but it seems that si::info
> draws information directly from si::*info-paths* variable.
> But after recent modification to maxima-package.lisp
> maxima::*info-paths* and si::*info-paths*  aren't longer
> the same.  Thus maxima::*info-paths* has no effect on
> si::info.
> 
> I'm not sure what is the best way to fix problem.
> Maybe the last patch to maxima-package.lisp is not
> required at all?  We need both cl-info::info
> and si::info under gcl Maxima but before beta2
> all three symbols si::*info-paths*, maxima::*info-paths*
> and cl-info::*info-paths* were in sync - it is
> probably the thing we need.
> 
> 

GCL's built-in system::info function (unlike cl-info::info)
has no second optional info-paths parameter.  So the only way
to pass info-paths information to si::info is to set
si::*info-paths*.

I attached the patch which fixes the problem with describe
on GCL.  Works to me both as si::info and cl-info::info.

James, could you take a look - is it sounds good to you?


-- 
      Vadim V. Zhytnikov

      <vvzhy@netorn.ru>

Attached file: describe-02.patch