gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Re: Special variables!


From: Camm Maguire
Subject: [Gcl-devel] Re: Special variables!
Date: 30 Mar 2006 11:23:23 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!

Raymond Toy <address@hidden> writes:

> >>>>> "Camm" == Camm Maguire <address@hidden> writes:
> 
>     Camm> Perhaps.  What I can't remember is whether the old system loaded 
> each
>     Camm> file after compiling and before compiling the next.
> 
> Yes, perhaps I'm mistaken.  I no longer remember how the build system
> for maxima used to work.
> 

Well, if time permits I might look it up.

>     Camm> It's hard to imagine someone actually doing this to posterity.  I'm
>     Camm> enclosing my list below.  The last argument indicates when the
>     Camm> variable already exists at binding time as a special.  The second to
>     Camm> last is the list of explicit local special declarations.  I can
> 
> This list is nice.  We can ignore all the ones that start with $
> because they're maxima state variables, and thus global.  We can
> probably ignore the *foo* because they're already following the naming
> convention and are presumably correct.
>  
>     Camm> ;; Note: *ASINX* is special: (*ATANX* *ASINX*) NIL
> 

                                         ^^^^^ This binding had
                                               an explicit (declare
                                               (special *ATANX*
                                               *ASINX*)), so is
                                               presumably OK.
                                         
                                                           ^^^^ This
                                                           binding was
                                                           not a
                                                           pre-existing
                                                           special. 

I can collect other stats if helpful, as this was generated with a
compiler mod for this purpose :-).

> So for *asinx*, what does the NIL mean?  What does the (*atanx*
> *asinx*) mean?  I believe all uses of *asinx* are correct, BICBW.
> 

Agreed, most likely, given the above.

>     Camm> How about this for a procedure?  Remove the special
>     Camm> declaration, then see where the compiler moans about the
>     Camm> variable m being unknown.  Then if we can generate a call
>     Camm> graph (the .fn files may suffice), any m variables in the
>     Camm> callers are declared special.  Tedious, but perhaps (almost)
>     Camm> automatable. ??
> 
> An interesting idea.  That might work, for someone motivated enough to
> do it and even more motivated to track down the bugs where a mistake
> was made. :-(
> 

:-)

Separately, what about this comment in lmdcls.lisp:

;;this list should contain all specials required by runtime or more
;;than one macsyma file, except for some specials declared in the macro
;;files, eg displm

(declaim
 (special
  $% $%% $%edispflag $%emode $%enumer $%e_to_numlog $%iargs $%piargs
  ...

Doesn't this mean that all other files with a declare-top special
should have a declare unspecial at the end?

Take care,

> Ray
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]