--- gforth/Attic/gforth.ds 1996/02/09 17:34:09 1.31 +++ gforth/Attic/gforth.ds 1996/05/13 16:36:56 1.33 @@ -9,7 +9,7 @@ @ifinfo This file documents Gforth 0.2 -Copyright @copyright{} 1995 Free Software Foundation, Inc. +Copyright @copyright{} 1995,1996 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -51,7 +51,7 @@ Copyright @copyright{} 1995 Free Softwar @comment The following two commands start the copyright page. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1995 Free Software Foundation, Inc. +Copyright @copyright{} 1995,1996 Free Software Foundation, Inc. @comment !! Published by ... or You can get a copy of this manual ... @@ -3198,9 +3198,11 @@ Not implemented (yet). @table @i @item changing the compilation wordlist (during compilation): -The definition is put into the wordlist that is the compilation wordlist -when @code{REVEAL} is executed (by @code{;}, @code{DOES>}, -@code{RECURSIVE}, etc.). +The word is entered into the wordlist that was the compilation wordlist +at the start of the definition. Any changes to the name field (e.g., +@code{immediate}) or the code field (e.g., when executing @code{DOES>}) +are applied to the latest defined word (as reported by @code{last} or +@code{lastxt}), if possible, irrespective of the compilation wordlist. @item search order empty (@code{previous}): @code{abort" Vocstack empty"}. @@ -3218,7 +3220,7 @@ when @code{REVEAL} is executed (by @code @chapter Emacs and Gforth Gforth comes with @file{gforth.el}, an improved version of -@file{forth.el} by Goran Rydqvist (icluded in the TILE package). The +@file{forth.el} by Goran Rydqvist (included in the TILE package). The improvements are a better (but still not perfect) handling of indentation. I have also added comment paragraph filling (@kbd{M-q}), commenting (@kbd{C-x \}) and uncommenting (@kbd{C-u C-x \}) regions and @@ -3243,7 +3245,7 @@ several tags files at the same time (e.g and one for your program, @pxref{Select Tags Table,,Selecting a Tags Table,emacs, Emacs Manual}). The TAGS file for the preloaded words is @file{$(datadir)/gforth/$(VERSION)/TAGS} (e.g., -@file{/usr/local/share/gforth/0.2/TAGS}). +@file{/usr/local/share/gforth/0.2.0/TAGS}). To get all these benefits, add the following lines to your @file{.emacs} file: @@ -3298,11 +3300,17 @@ limitations: GNU C, the version of C pro GNU C Manual}). Its labels as values feature (@pxref{Labels as Values, , Labels as Values, gcc.info, GNU C Manual}) makes direct and indirect threading possible, its @code{long long} type (@pxref{Long Long, , -Double-Word Integers, gcc.info, GNU C Manual}) corresponds to Forths -double numbers. GNU C is available for free on all important (and many -unimportant) UNIX machines, VMS, 80386s running MS-DOS, the Amiga, and -the Atari ST, so a Forth written in GNU C can run on all these -machines. +Double-Word Integers, gcc.info, GNU C Manual}) corresponds to Forth's +double numbers@footnote{Unfortunately, long longs are not implemented +properly on all machines (e.g., on alpha-osf1, long longs are only 64 +bits, the same size as longs (and pointers), but they should be twice as +long according to @ref{Long Long, , Double-Word Integers, gcc.info, GNU +C Manual}). So, we had to implement doubles in C after all. Still, on +most machines we can use long longs and achieve better performance than +with the emulation package.}. GNU C is available for free on all +important (and many unimportant) UNIX machines, VMS, 80386s running +MS-DOS, the Amiga, and the Atari ST, so a Forth written in GNU C can run +on all these machines. Writing in a portable language has the reputation of producing code that is slower than assembly. For our Forth engine we repeatedly looked at @@ -3657,16 +3665,17 @@ Gforth (direct threaded, compiled with @ 1994) and Eforth (with and without peephole (aka pinhole) optimization of the threaded code); all these systems were written in assembly language. We also compared Gforth with three systems written in C: -PFE-0.9.11 (compiled with @code{gcc-2.6.3} with the default -configuration for Linux: @code{-O2 -fomit-frame-pointer -DUSE_REGS}), -ThisForth Beta (compiled with gcc-2.6.3 -O3 -fomit-frame-pointer; -ThisForth employs peephole optimization of the threaded code) and TILE -(compiled with @code{make opt}). We benchmarked Gforth, PFE, ThisForth -and TILE on a 486DX2/66 under Linux. Kenneth O'Heskin kindly provided -the results for Win32Forth and NT Forth on a 486DX2/66 with similar -memory performance under Windows NT. Marcel Hendrix ported Eforth to -Linux, then extended it to run the benchmarks, added the peephole -optimizer, ran the benchmarks and reported the results. +PFE-0.9.14 (compiled with @code{gcc-2.6.3} with the default +configuration for Linux: @code{-O2 -fomit-frame-pointer -DUSE_REGS +-DUNROLL_NEXT}), ThisForth Beta (compiled with gcc-2.6.3 -O3 +-fomit-frame-pointer; ThisForth employs peephole optimization of the +threaded code) and TILE (compiled with @code{make opt}). We benchmarked +Gforth, PFE, ThisForth and TILE on a 486DX2/66 under Linux. Kenneth +O'Heskin kindly provided the results for Win32Forth and NT Forth on a +486DX2/66 with similar memory performance under Windows NT. Marcel +Hendrix ported Eforth to Linux, then extended it to run the benchmarks, +added the peephole optimizer, ran the benchmarks and reported the +results. We used four small benchmarks: the ubiquitous Sieve; bubble-sorting and matrix multiplication come from the Stanford integer benchmarks and have @@ -3680,10 +3689,10 @@ factor that Gforth achieved over the oth @example relative Win32- NT eforth This- time Gforth Forth Forth eforth +opt PFE Forth TILE -sieve 1.00 1.39 1.14 1.39 0.85 1.78 3.18 8.58 -bubble 1.00 1.31 1.41 1.48 0.88 1.67 3.88 -matmul 1.00 1.47 1.35 1.46 1.16 2.36 4.09 -fib 1.00 1.52 1.34 1.22 1.13 1.93 2.99 4.30 +sieve 1.00 1.39 1.14 1.39 0.85 1.58 3.18 8.58 +bubble 1.00 1.31 1.41 1.48 0.88 1.50 3.88 +matmul 1.00 1.47 1.35 1.46 1.16 1.58 4.09 +fib 1.00 1.52 1.34 1.22 1.13 1.74 2.99 4.30 @end example You may find the good performance of Gforth compared with the systems @@ -3730,7 +3739,7 @@ numbers for Gforth on various machines i Known bugs are described in the file BUGS in the Gforth distribution. If you find a bug, please send a bug report to -@code{gforth-bugs@@mips.complang.tuwien.ac.at}. A bug report should +@code{bug-gforth@@gnu.ai.mit.edu}. A bug report should describe the Gforth version used (it is announced at the start of an interactive Gforth session), the machine and operating system (on Unix systems you can use @code{uname -a} to produce this information), the