--- gforth/Attic/gforth.ds 1995/10/29 21:35:11 1.20 +++ gforth/Attic/gforth.ds 1995/11/15 17:29:07 1.24 @@ -9,7 +9,7 @@ @ifinfo This file documents Gforth 0.1 -Copyright @copyright{} 1994 Gforth Development Group +Copyright @copyright{} 1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -36,6 +36,7 @@ Copyright @copyright{} 1994 Gforth Devel of in the original English. @end ifinfo +@finalout @titlepage @sp 10 @center @titlefont{Gforth Manual} @@ -49,7 +50,7 @@ Copyright @copyright{} 1994 Gforth Devel @comment The following two commands start the copyright page. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1994 Gforth Development Group +Copyright @copyright{} 1995 Free Software Foundation, Inc. @comment !! Published by ... or You can get a copy of this manual ... @@ -75,7 +76,7 @@ Copyright @copyright{} 1994 Gforth Devel @node Top, License, (dir), (dir) @ifinfo Gforth is a free implementation of ANS Forth available on many -personal machines. This manual corresponds to version 0.0. +personal machines. This manual corresponds to version 0.1. @end ifinfo @menu @@ -487,7 +488,10 @@ library. If this is what you want to do Public License instead of this License. @iftex +@node Preface +@comment node-name, next, previous, up @unnumbered Preface +@cindex Preface This manual documents Gforth. The reader is expected to know Forth. This manual is primarily a reference manual. @xref{Other Books} for introductory material. @@ -555,9 +559,9 @@ can also get it from Global Engineering for publication is available electronically and for free in some MS Word format, and it has been converted to HTML. Some pointers to these versions can be found through -http://www.complang.tuwien.ac.at/projects/forth.html. +@*@file{http://www.complang.tuwien.ac.at/projects/forth.html}. -@cite{Forth: The new model} by Jack Woehr (!! Publisher) is an +@cite{Forth: The new model} by Jack Woehr (Prentice-Hall, 1993) is an introductory book based on a draft version of the standard. It does not cover the whole standard. It also contains interesting background information (Jack Woehr was in the ANS Forth Technical Committe). It is @@ -642,6 +646,12 @@ Forth words, you have to quote them or u after processing the command line (instead of entering interactive mode) append @code{-e bye} to the command line. +If you have several versions of Gforth installed, @code{gforth} will +invoke the version that was installed last. @code{gforth-@var{version}} +invokes a specific version. You may want to use the option +@code{--path}, if your environment contains the variable +@code{GFORTHPATH}. + Not yet implemented: On startup the system first executes the system initialization file (unless the option @code{--no-init-file} is given; note that the system @@ -1434,6 +1444,11 @@ laden with restrictions. Therefore, we p locals wordset, but also our own, more powerful locals wordset (we implemented the ANS Forth locals wordset through our locals wordset). +The ideas in this section have also been published in the paper +@cite{Automatic Scoping of Local Variables} by M. Anton Ertl, presented +at EuroForth '94; it is available at +@*@file{http://www.complang.tuwien.ac.at/papers/ertl94l.ps.gz}. + @menu * Gforth locals:: * ANS Forth locals:: @@ -3200,6 +3215,12 @@ file: Reading this section is not necessary for programming with Gforth. It should be helpful for finding your way in the Gforth sources. +The ideas in this section have also been published in the papers +@cite{ANS fig/GNU/??? Forth} (in German) by Bernd Paysan, presented at +the Forth-Tagung '93 and @cite{A Portable Forth Engine} by M. Anton +Ertl, presented at EuroForth '93; the latter is available at +@*@file{http://www.complang.tuwien.ac.at/papers/ertl93.ps.Z}. + @menu * Portability:: * Threading:: @@ -3601,7 +3622,7 @@ We used four small benchmarks: the ubiqu matrix multiplication come from the Stanford integer benchmarks and have been translated into Forth by Martin Fraeman; we used the versions included in the TILE Forth package; and a recursive Fibonacci number -computation for benchmark calling performance. The following table shows +computation for benchmarking calling performance. The following table shows the time taken for the benchmarks scaled by the time taken by Gforth (in other words, it shows the speedup factor that Gforth achieved over the other systems). @@ -3638,20 +3659,28 @@ machine registers by itself and would no register declarations, giving a 1.3 times slower engine (on a 486DX2/66 running the Sieve) than the one measured above. +The numbers in this section have also been published in the paper +@cite{Translating Forth to Efficient C} by M. Anton Ertl and Martin +Maierhofer, presented at EuroForth '95. It is available at +@*@file{http://www.complang.tuwien.ac.at/papers/ertl&maierhofer95.ps.gz}; +it also contains numbers for some native code systems. You can find +numbers for Gforth on various machines in @file{Benchres}. + @node Bugs, Pedigree, Internals, Top @chapter Bugs Known bugs are described in the file BUGS in the Gforth distribution. -If you find a bug, please send a bug report to !!. A bug report should +If you find a bug, please send a bug report to +@code{gforth-bugs@@mips.complang.tuwien.ac.at}. 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 -installation options (!! a way to find them out), and a complete list of -changes you (or your installer) have made to the Gforth sources (if -any); it should contain a program (or a sequence of keyboard commands) -that reproduces the bug and a description of what you think constitutes -the buggy behaviour. +installation options (send the @code{config.status} file), and a +complete list of changes you (or your installer) have made to the Gforth +sources (if any); it should contain a program (or a sequence of keyboard +commands) that reproduces the bug and a description of what you think +constitutes the buggy behaviour. For a thorough guide on reporting bugs read @ref{Bug Reporting, , How to Report Bugs, gcc.info, GNU C Manual}. @@ -3661,20 +3690,31 @@ to Report Bugs, gcc.info, GNU C Manual}. @chapter Pedigree Gforth descends from BigForth (1993) and fig-Forth. Gforth and PFE (by -Dirk Zoller) will cross-fertilize each other. Of course, a significant part of the design of Gforth was prescribed by ANS Forth. - -Bernd Paysan wrote BigForth, a child of VolksForth. +Dirk Zoller) will cross-fertilize each other. Of course, a significant +part of the design of Gforth was prescribed by ANS Forth. -VolksForth descends from F83. !! Authors? When? +Bernd Paysan wrote BigForth, a descendent from TurboForth, an unreleased +32 bit native code version of VolksForth for the Atari ST, written +mostly by Dietrich Weineck. + +VolksForth descends from F83. It was written by Klaus Schleisiek, Bernd +Pennemann, Georg Rehfeld and Dietrich Weineck for the C64 (called +UltraForth there) in the mid-80s and ported to the Atari ST in 1986. Laxen and Perry wrote F83 as a model implementation of the Forth-83 standard. !! Pedigree? When? A team led by Bill Ragsdale implemented fig-Forth on many processors in -1979. Dean Sanderson and Bill Ragsdale developed the original -implementation of fig-Forth based on microForth. +1979. Robert Selzer and Bill Ragsdale developed the original +implementation of fig-Forth for the 6502 based on microForth. + +The principal architect of microForth was Dean Sanderson. microForth was +FORTH, Inc.'s first off-the-shelf product. It was developped in 1976 for +the 1802, and subsequently implemented on the 8080, the 6800 and the +Z80. -!! microForth pedigree +All earlier Forth systems were custom-made, usually by Charles Moore, +who discovered (as he puts it) Forth in the late 60s. A part of the information in this section comes from @cite{The Evolution of Forth} by Elizabeth D. Rather, Donald R. Colburn and Charles