Diff for /gforth/glocals.fs between versions 1.4 and 1.7

version 1.4, 1994/07/08 15:00:43 version 1.7, 1994/09/12 19:00:30
Line 61 Line 61
 \ Currently locals may only be  \ Currently locals may only be
 \ defined at the outer level and TO is not supported.  \ defined at the outer level and TO is not supported.
   
 include float.fs  
 include search-order.fs  include search-order.fs
   include float.fs
   
 : compile-@local ( n -- )  : compile-@local ( n -- )
  case   case
     0 of postpone @local0 endof      0       of postpone @local0 endof
     4 of postpone @local4 endof      1 cells of postpone @local1 endof
     8 of postpone @local8 endof      2 cells of postpone @local2 endof
    12 of postpone @local12 endof      3 cells of postpone @local3 endof
    ( otherwise ) dup postpone @local# ,     ( otherwise ) dup postpone @local# ,
  endcase ;   endcase ;
   
 : compile-f@local ( n -- )  : compile-f@local ( n -- )
  case   case
     0 of postpone f@local0 endof      0        of postpone f@local0 endof
     8 of postpone f@local8 endof      1 floats of postpone f@local1 endof
    ( otherwise ) dup postpone f@local# ,     ( otherwise ) dup postpone f@local# ,
  endcase ;   endcase ;
   
Line 87  include search-order.fs Line 87  include search-order.fs
 \ lp must have the strictest alignment (usually float) across calls;  \ lp must have the strictest alignment (usually float) across calls;
 \ for simplicity we align it strictly for every group.  \ for simplicity we align it strictly for every group.
   
   slowvoc @
   slowvoc on \ we want a linked list for the vocabulary locals
 vocabulary locals \ this contains the local variables  vocabulary locals \ this contains the local variables
 ' locals >body ' locals-list >body !  ' locals >body ' locals-list >body !
   slowvoc !
   
 create locals-buffer 1000 allot \ !! limited and unsafe  create locals-buffer 1000 allot \ !! limited and unsafe
     \ here the names of the local variables are stored      \ here the names of the local variables are stored
Line 505  forth definitions Line 508  forth definitions
    endif     endif
  endif ; immediate   endif ; immediate
   
 \ : locals|  : locals|
 \ !! should lie around somewhere    BEGIN  name 2dup s" |" compare 0=  WHILE
            (local)  REPEAT  drop 0 (local) ;  immediate restrict

Removed from v.1.4  
changed lines
  Added in v.1.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>