version 1.47, 1997/03/20 14:39:50
|
version 1.48, 1997/04/10 15:00:06
|
Line 3
|
Line 3
|
@comment %**start of header (This is for running Texinfo on a region.) |
@comment %**start of header (This is for running Texinfo on a region.) |
@setfilename gforth.info |
@setfilename gforth.info |
@settitle Gforth Manual |
@settitle Gforth Manual |
|
@dircategory GNU programming tools |
|
@direntry |
|
* Gforth: (gforth). A fast interpreter for the Forth language. |
|
@end direntry |
@comment @setchapternewpage odd |
@comment @setchapternewpage odd |
@comment %**end of header (This is for running Texinfo on a region.) |
@comment %**end of header (This is for running Texinfo on a region.) |
|
|
Line 564 can also get it from Global Engineering
|
Line 568 can also get it from Global Engineering
|
for publication is available electronically and for free in some MS Word |
for publication is available electronically and for free in some MS Word |
format, and it has been converted to HTML. Some pointers to these |
format, and it has been converted to HTML. Some pointers to these |
versions can be found through |
versions can be found through |
@*@file{http://www.complang.tuwien.ac.at/projects/forth.html}. |
@*@url{http://www.complang.tuwien.ac.at/projects/forth.html}. |
|
|
@cindex introductory book |
@cindex introductory book |
@cindex book, introductory |
@cindex book, introductory |
Line 1609 implemented the ANS Forth locals wordset
|
Line 1613 implemented the ANS Forth locals wordset
|
The ideas in this section have also been published in the paper |
The ideas in this section have also been published in the paper |
@cite{Automatic Scoping of Local Variables} by M. Anton Ertl, presented |
@cite{Automatic Scoping of Local Variables} by M. Anton Ertl, presented |
at EuroForth '94; it is available at |
at EuroForth '94; it is available at |
@*@file{http://www.complang.tuwien.ac.at/papers/ertl94l.ps.gz}. |
@*@url{http://www.complang.tuwien.ac.at/papers/ertl94l.ps.gz}. |
|
|
@menu |
@menu |
* Gforth locals:: |
* Gforth locals:: |
Line 4578 cannot be represented correctly in the o
|
Line 4582 cannot be represented correctly in the o
|
these places in the dictionary and verify that these cells are dead |
these places in the dictionary and verify that these cells are dead |
(i.e., not read before they are written). |
(i.e., not read before they are written). |
|
|
\cindex @code{savesystem} during @file{gforth-makeimage} |
@cindex @code{savesystem} during @file{gforth-makeimage} |
\cindex @code{bye} during @file{gforth-makeimage} |
@cindex @code{bye} during @file{gforth-makeimage} |
\cindex doubly indirect threaded code |
@cindex doubly indirect threaded code |
\cindex environment variable @code{GFORTHD} |
@cindex environment variable @code{GFORTHD} |
\cindex @code{GFORTHD} environment variable |
@cindex @code{GFORTHD} environment variable |
\cindex @code{gforth-ditc} |
@cindex @code{gforth-ditc} |
There are a few wrinkles: After processing the passed @var{options}, the |
There are a few wrinkles: After processing the passed @var{options}, the |
words @code{savesystem} and @code{bye} must be visible. A special doubly |
words @code{savesystem} and @code{bye} must be visible. A special doubly |
indirect threaded version of the @file{gforth} executable is used for |
indirect threaded version of the @file{gforth} executable is used for |
Line 4657 gforth -i @var{image}
|
Line 4661 gforth -i @var{image}
|
@cindex executable image file |
@cindex executable image file |
@cindex image files, executable |
@cindex image files, executable |
If your operating system supports starting scripts with a line of the |
If your operating system supports starting scripts with a line of the |
form @code{#! ...}, you can make your image file executable, and you'll |
form @code{#! ...}, you just have to type the image file name to start |
just have to type the image file name to start Gforth with this image |
Gforth with this image file (note that the file extension @code{.fi} is |
file (note that the file extension @code{.fi} is just a convention). |
just a convention). I.e., to run Gforth with the image file @var{image}, |
|
you can just type @var{image} instead of @code{gforth -i @var{image}}. |
|
|
I.e., in most Unix systems, you just have to make the image file |
doc-#! |
@var{image} executable with |
|
|
|
@example |
|
chmod +x @var{image} |
|
@end example |
|
|
|
and then you can invoke it by simply typing @var{image} instead of |
|
@code{gforth -i @var{image}}. |
|
|
|
@node Modifying the Startup Sequence, , Running Image Files, Image Files |
@node Modifying the Startup Sequence, , Running Image Files, Image Files |
@section Modifying the Startup Sequence |
@section Modifying the Startup Sequence |
Line 4701 You can make a turnkey image by letting
|
Line 4698 You can make a turnkey image by letting
|
(your turnkey application) that never returns; instead, it exits Gforth |
(your turnkey application) that never returns; instead, it exits Gforth |
via @code{bye} or @code{throw}. |
via @code{bye} or @code{throw}. |
|
|
|
@cindex command-line arguments, access |
|
@cindex arguments on the command line, access |
|
You can access the (image-specific) command-line arguments through the |
|
variables @code{argc} and @code{argv}. @code{arg} provides conventient |
|
access to @code{argv}. |
|
|
|
doc-argc |
|
doc-argv |
|
doc-arg |
|
|
|
If @code{'cold} exits normally, Gforth processes the command-line |
|
arguments as files to be loaded and strings to be evaluated. Therefore, |
|
@code{'cold} should remove the arguments it has used in this case. |
|
|
@c ****************************************************************** |
@c ****************************************************************** |
@node Engine, Bugs, Image Files, Top |
@node Engine, Bugs, Image Files, Top |
@chapter Engine |
@chapter Engine |
Line 4714 The ideas in this section have also been
|
Line 4725 The ideas in this section have also been
|
@cite{ANS fig/GNU/??? Forth} (in German) by Bernd Paysan, presented at |
@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 |
the Forth-Tagung '93 and @cite{A Portable Forth Engine} by M. Anton |
Ertl, presented at EuroForth '93; the latter is available at |
Ertl, presented at EuroForth '93; the latter is available at |
@*@file{http://www.complang.tuwien.ac.at/papers/ertl93.ps.Z}. |
@*@url{http://www.complang.tuwien.ac.at/papers/ertl93.ps.Z}. |
|
|
@menu |
@menu |
* Portability:: |
* Portability:: |
Line 5196 Maierhofer (presented at EuroForth '95),
|
Line 5207 Maierhofer (presented at EuroForth '95),
|
Gforth is compared with Win32Forth, NT Forth, PFE, and ThisForth; that |
Gforth is compared with Win32Forth, NT Forth, PFE, and ThisForth; that |
version of Gforth is 2%@minus{}8% slower on a 486 than the direct |
version of Gforth is 2%@minus{}8% slower on a 486 than the direct |
threaded version used here. The paper available at |
threaded version used here. The paper available at |
@*@file{http://www.complang.tuwien.ac.at/papers/ertl&maierhofer95.ps.gz}; |
@*@url{http://www.complang.tuwien.ac.at/papers/ertl&maierhofer95.ps.gz}; |
it also contains numbers for some native code systems. You can find a |
it also contains numbers for some native code systems. You can find a |
newer version of these measurements at |
newer version of these measurements at |
@file{http://www.complang.tuwien.ac.at/forth/performance.html}. You can |
@url{http://www.complang.tuwien.ac.at/forth/performance.html}. You can |
find numbers for Gforth on various machines in @file{Benchres}. |
find numbers for Gforth on various machines in @file{Benchres}. |
|
|
@node Bugs, Origin, Engine, Top |
@node Bugs, Origin, Engine, Top |
Line 5209 find numbers for Gforth on various machi
|
Line 5220 find numbers for Gforth on various machi
|
Known bugs are described in the file BUGS in the Gforth distribution. |
Known bugs are described in the file BUGS in the Gforth distribution. |
|
|
If you find a bug, please send a bug report to |
If you find a bug, please send a bug report to |
@code{bug-gforth@@gnu.ai.mit.edu}. A bug report should |
@email{bug-gforth@@gnu.ai.mit.edu}. A bug report should |
describe the Gforth version used (it is announced at the start of an |
describe the Gforth version used (it is announced at the start of an |
interactive Gforth session), the machine and operating system (on Unix |
interactive Gforth session), the machine and operating system (on Unix |
systems you can use @code{uname -a} to produce this information), the |
systems you can use @code{uname -a} to produce this information), the |