version 1.5, 1995/01/12 18:37:51
|
version 1.9, 1995/01/30 18:47:47
|
Line 428 unwary (e.g., floating point addition is
|
Line 428 unwary (e.g., floating point addition is
|
for the wary. You should not use them unless you know what you are doing |
for the wary. You should not use them unless you know what you are doing |
or you don't care that the results you get are totally bogus. If you |
or you don't care that the results you get are totally bogus. If you |
want to learn about the problems of floating point numbers (and how to |
want to learn about the problems of floating point numbers (and how to |
avoid them), you might start with @cite{Goldberg, What every computer |
avoid them), you might start with @cite{David (?) Goldberg, What Every |
scientist should know about floating-point numbers, Computing Surveys |
Computer Scientist Should Know About Floating-Point Arithmetic, ACM |
?}. |
Computing Surveys 23(1):5@minus{}48, March 1991}. |
|
|
doc-f+ |
doc-f+ |
doc-f- |
doc-f- |
Line 449 doc-fexpm1
|
Line 449 doc-fexpm1
|
doc-fln |
doc-fln |
doc-flnp1 |
doc-flnp1 |
doc-flog |
doc-flog |
|
doc-falog |
doc-fsin |
doc-fsin |
doc-fcos |
doc-fcos |
doc-fsincos |
doc-fsincos |
Line 606 The standard guarantees that addresses r
|
Line 607 The standard guarantees that addresses r
|
are cell-aligned; in addition, gforth guarantees that these addresses |
are cell-aligned; in addition, gforth guarantees that these addresses |
are aligned for all purposes. |
are aligned for all purposes. |
|
|
|
Note that the standard defines a word @code{char}, which has nothing to |
|
do with address arithmetic. |
|
|
doc-chars |
doc-chars |
doc-char+ |
doc-char+ |
doc-cells |
doc-cells |
Line 800 Therefore we recommend avoiding using @c
|
Line 804 Therefore we recommend avoiding using @c
|
@var{n}. One alternative is @code{@var{n} S+LOOP}, where the negative |
@var{n}. One alternative is @code{@var{n} S+LOOP}, where the negative |
case behaves symmetrical to the positive case: |
case behaves symmetrical to the positive case: |
|
|
@code{-2 0 ?DO i . -1 +LOOP} prints @code{0 -1} |
@code{-2 0 ?DO i . -1 S+LOOP} prints @code{0 -1} |
|
|
@code{-1 0 ?DO i . -1 +LOOP} prints @code{0} |
@code{-1 0 ?DO i . -1 S+LOOP} prints @code{0} |
|
|
@code{ 0 0 ?DO i . -1 +LOOP} prints nothing |
@code{ 0 0 ?DO i . -1 S+LOOP} prints nothing |
|
|
The loop is terminated when the border between @var{limit@minus{}sgn(n)} and |
The loop is terminated when the border between @var{limit@minus{}sgn(n)} and |
@var{limit} is crossed. However, @code{S+LOOP} is not part of the ANS |
@var{limit} is crossed. However, @code{S+LOOP} is not part of the ANS |
Line 884 The standard does not allow using @code{
|
Line 888 The standard does not allow using @code{
|
every @code{?DO} etc. there is exactly one @code{UNLOOP} on any path |
every @code{?DO} etc. there is exactly one @code{UNLOOP} on any path |
through the definition (@code{LOOP} etc. compile an @code{UNLOOP} on the |
through the definition (@code{LOOP} etc. compile an @code{UNLOOP} on the |
fall-through path). Also, you have to ensure that all @code{LEAVE}s are |
fall-through path). Also, you have to ensure that all @code{LEAVE}s are |
resolved (by using one of the loop-ending words or @code{UNDO}). |
resolved (by using one of the loop-ending words or @code{DONE}). |
|
|
Another group of control structure words are |
Another group of control structure words are |
|
|
Line 1037 locals are initialized with values from
|
Line 1041 locals are initialized with values from
|
Currently there is no way to define locals with user-defined data |
Currently there is no way to define locals with user-defined data |
structures, but we are working on it. |
structures, but we are working on it. |
|
|
GNU Forth allows defining locals everywhere in a colon definition. This poses the following questions: |
GNU Forth allows defining locals everywhere in a colon definition. This |
|
poses the following questions: |
|
|
@menu |
@menu |
* Where are locals visible by name?:: |
* Where are locals visible by name?:: |
Line 1623 GForth comes with @file{gforth.el}, an i
|
Line 1628 GForth comes with @file{gforth.el}, an i
|
@file{forth.el} by Goran Rydqvist (icluded in the TILE package). The |
@file{forth.el} by Goran Rydqvist (icluded in the TILE package). The |
improvements are a better (but still not perfect) handling of |
improvements are a better (but still not perfect) handling of |
indentation. I have also added comment paragraph filling (@kbd{M-q}), |
indentation. I have also added comment paragraph filling (@kbd{M-q}), |
commenting (@kbd{C-x \}) and uncommenting (@kbd{C-x |}) regions and |
commenting (@kbd{C-x \}) and uncommenting (@kbd{C-u C-x \}) regions and |
removing debugging tracers (@kbd{C-x ~}). I left the stuff I do not use |
removing debugging tracers (@kbd{C-x ~}, @pxref{Debugging}). I left the |
alone, even though some of it only makes sense for TILE. To get a |
stuff I do not use alone, even though some of it only makes sense for |
description of these features, enter Forth mode and type @kbd{C-h m}. |
TILE. To get a description of these features, enter Forth mode and type |
|
@kbd{C-h m}. |
|
|
In addition, GForth supports Emacs quite well: The source code locations |
In addition, GForth supports Emacs quite well: The source code locations |
given in error messages, debugging output (from @code{~~}) and failed |
given in error messages, debugging output (from @code{~~}) and failed |