Diff for /gforth/environ.fs between versions 1.18 and 1.33

version 1.18, 1999/02/03 00:10:19 version 1.33, 2007/12/31 19:02:24
Line 1 Line 1
 \ environmental queries  \ environmental queries
   
 \ Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2007 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ modify it under the terms of the GNU General Public License
 \ as published by the Free Software Foundation; either version 2  \ as published by the Free Software Foundation, either version 3
 \ of the License, or (at your option) any later version.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 Line 15
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program. If not, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
   
 \ wordlist constant environment-wordlist  \ wordlist constant environment-wordlist
   
 Create environment-wordlist ( -- wid ) \ gforth  vocabulary environment ( -- ) \ gforth
   \G wid identifies the word list that is searched by environmental  \ for win32forth compatibility
   
   ' environment >body constant environment-wordlist ( -- wid ) \ gforth
     \G @i{wid} identifies the word list that is searched by environmental
   \G queries.    \G queries.
   wordlist drop  
   
 : environment? ( c-addr u -- false / ... true ) \ core environment-query  : environment? ( c-addr u -- false / ... true ) \ core environment-query
     \G c-addr, u specify the address and length of a string. If the string is      \G @i{c-addr, u} specify a counted string. If the string is not
     \G not recognised, return a @code{false} flag. Otherwise return a true      \G recognised, return a @code{false} flag. Otherwise return a
     \G flag and some (string-specific) information about the queried string.      \G @code{true} flag and some (string-specific) information about
       \G the queried string.
     environment-wordlist search-wordlist if      environment-wordlist search-wordlist if
         execute true          execute true
     else      else
Line 37  Create environment-wordlist ( -- wid ) \ Line 40  Create environment-wordlist ( -- wid ) \
   
 : e? name environment? 0= ABORT" environmental dependency not existing" ;  : e? name environment? 0= ABORT" environmental dependency not existing" ;
   
 : has? name environment? 0= IF false THEN ;  
   
 : $has? environment? 0= IF false THEN ;  : $has? environment? 0= IF false THEN ;
   
   : has? name $has? ;
   
 environment-wordlist set-current  environment-wordlist set-current
 get-order environment-wordlist swap 1+ set-order  get-order environment-wordlist swap 1+ set-order
   
Line 49  get-order environment-wordlist swap 1+ s Line 52  get-order environment-wordlist swap 1+ s
 \ this should be computed in C as CHAR_BITS/sizeof(char),  \ this should be computed in C as CHAR_BITS/sizeof(char),
 \ but I don't know any machine with gcc where an au does not have 8 bits.  \ but I don't know any machine with gcc where an au does not have 8 bits.
 8 constant ADDRESS-UNIT-BITS ( -- n ) \ environment  8 constant ADDRESS-UNIT-BITS ( -- n ) \ environment
 \G Size of one address unit, it bits.  \G Size of one address unit, in bits.
   
 1 ADDRESS-UNIT-BITS chars lshift 1- constant MAX-CHAR ( -- u ) \ environment  1 ADDRESS-UNIT-BITS chars lshift 1- constant MAX-CHAR ( -- u ) \ environment
 \G Maximum value of any character in the character set  \G Maximum value of any character in the character set
Line 70  true constant CORE-EXT ( -- f ) \ enviro Line 73  true constant CORE-EXT ( -- f ) \ enviro
 \G True if the complete core extension word set is present. Always true for Gforth.  \G True if the complete core extension word set is present. Always true for Gforth.
   
 1 -3 mod 0< constant FLOORED ( -- f ) \ environment  1 -3 mod 0< constant FLOORED ( -- f ) \ environment
 \G True if division is floored by default.  \G True if @code{/} etc. perform floored division
   
 1 ADDRESS-UNIT-BITS cells 1- lshift 1- constant MAX-N ( -- n ) \ environment  1 ADDRESS-UNIT-BITS cells 1- lshift 1- constant MAX-N ( -- n ) \ environment
 \G Largest usable signed integer.  \G Largest usable signed integer.
Line 85  true constant CORE-EXT ( -- f ) \ enviro Line 88  true constant CORE-EXT ( -- f ) \ enviro
 \G Largest usable unsigned double.  \G Largest usable unsigned double.
   
 version-string 2constant gforth ( -- c-addr u ) \ gforth-environment  version-string 2constant gforth ( -- c-addr u ) \ gforth-environment
 \G Counted string representing a version string for this version of Gforth  \G Counted string representing a version string for this version of
 \G (for versions>0.3.0).  \G Gforth (for versions>0.3.0).  The version strings of the various
 \ the version strings of the various versions are guaranteed to be  \G versions are guaranteed to be ordered lexicographically.
 \ sorted lexicographically  
   
 : return-stack-cells ( -- n ) \ environment  : return-stack-cells ( -- n ) \ environment
     \G Maximum size of the return stack, in cells.      \G Maximum size of the return stack, in cells.
Line 99  version-string 2constant gforth ( -- c-a Line 101  version-string 2constant gforth ( -- c-a
     [ forthstart 4 cells + ] literal @ cell / ;      [ forthstart 4 cells + ] literal @ cell / ;
   
 : floating-stack ( -- n ) \ environment  : floating-stack ( -- n ) \ environment
     \G n is non-zero, showing that Gforth maintains a separate      \G @var{n} is non-zero, showing that Gforth maintains a separate
     \G floating-point stack of depth n.      \G floating-point stack of depth @var{n}.
     [ forthstart 5 cells + ] literal @      [ forthstart 5 cells + ] literal @
     [IFDEF] float  float  [ELSE]  [ 1 floats ] Literal [THEN] / ;      [IFDEF] float  float  [ELSE]  [ 1 floats ] Literal [THEN] / ;
   
 \ !! max-float  
 15 constant #locals \ 1000 64 /  15 constant #locals \ 1000 64 /
     \ One local can take up to 64 bytes, the size of locals-buffer is 1000      \ One local can take up to 64 bytes, the size of locals-buffer is 1000
 maxvp constant wordlists  maxvp constant wordlists

Removed from v.1.18  
changed lines
  Added in v.1.33


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