This is gforth.info, produced by makeinfo version 7.0.3 from
gforth.texi.

This manual is for Gforth (version 0.7.9_20240718, July 18, 2024), a
fast and portable implementation of the Standard Forth language.  It
serves as reference manual, but it also contains an introduction to
Forth and a Forth tutorial.

   Authors: Bernd Paysan, Anton Ertl, Gerald Wodni Copyright © 1995,
1996, 1997, 1998, 2000, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014,2015,2016,2017,2018,2019,2020,2021,2022,2023 Free
Software Foundation, Inc.

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.1 or any later version published by the Free Software
     Foundation; with no Invariant Sections, with the Front-Cover texts
     being “A GNU Manual,” and with the Back-Cover Texts as in (a)
     below.  A copy of the license is included in the section entitled
     “GNU Free Documentation License.”

     (a) The FSF’s Back-Cover Text is: “You have freedom to copy and
     modify this GNU Manual, like GNU software.  Copies published by the
     Free Software Foundation raise funds for GNU development.”
INFO-DIR-SECTION Software development
START-INFO-DIR-ENTRY
* Gforth: (gforth).             A fast interpreter for the Forth language.
END-INFO-DIR-ENTRY


Indirect:
gforth.info-1: 1380
gforth.info-2: 305676
gforth.info-3: 604131
gforth.info-4: 915377

Tag Table:
(Indirect)
Node: Top1380
Node: Goals16660
Ref: Goals-Footnote-118235
Node: Stability Goals18354
Node: Gforth Environment19626
Node: Invoking Gforth20395
Node: Leaving Gforth30175
Node: Help on Gforth30667
Node: Command-line editing31592
Ref: Command-line editing-Footnote-134194
Node: Environment variables34253
Node: Gforth Files36096
Node: Gforth in pipes36943
Node: Startup speed38800
Node: Tutorial42236
Node: Starting Gforth Tutorial44554
Node: Syntax Tutorial44962
Node: Crash Course Tutorial45860
Node: Stack Tutorial46714
Node: Arithmetics Tutorial47392
Ref: Arithmetics Tutorial-Footnote-148434
Node: Stack Manipulation Tutorial48515
Node: Using files for Forth code Tutorial49967
Node: Comments Tutorial51509
Ref: Comments Tutorial-Footnote-152635
Node: Colon Definitions Tutorial52704
Node: Decompilation Tutorial53842
Node: Stack-Effect Comments Tutorial54382
Node: Types Tutorial57588
Node: Factoring Tutorial59408
Node: Designing the stack effect Tutorial60580
Node: Local Variables Tutorial63168
Node: Conditional execution Tutorial64586
Node: Flags and Comparisons Tutorial65959
Node: General Loops Tutorial68666
Node: Counted loops Tutorial70716
Node: Recursion Tutorial72108
Node: Leaving definitions or loops Tutorial73125
Node: Return Stack Tutorial73850
Node: Memory Tutorial75718
Node: Characters and Strings Tutorial78607
Node: Alignment Tutorial80174
Node: Floating Point Tutorial81395
Node: Files Tutorial84974
Node: Interpretation and Compilation Semantics and Immediacy Tutorial88241
Node: Execution Tokens Tutorial90839
Node: Exceptions Tutorial93962
Node: Defining Words Tutorial95832
Node: Arrays and Records Tutorial98748
Node: POSTPONE Tutorial100132
Node: Literal Tutorial102085
Node: Advanced macros Tutorial102976
Node: Compilation Tokens Tutorial105366
Node: Wordlists and Search Order Tutorial106565
Node: Introduction109366
Node: Introducing the Text Interpreter111494
Ref: Introducing the Text Interpreter-Footnote-1116714
Node: Stacks and Postfix notation116798
Node: Your first definition126018
Ref: Your first definition-Footnote-1129572
Node: How does that work?129736
Node: Forth is written in Forth139101
Ref: Forth is written in Forth-Footnote-1140848
Ref: Forth is written in Forth-Footnote-2140938
Node: Review - elements of a Forth system140992
Node: Where to go next142888
Node: Exercises144640
Node: Literals in source code144948
Node: Words151246
Node: Notation152065
Node: Case insensitivity156348
Node: Comments157680
Node: Boolean Flags158902
Node: Arithmetic159792
Node: Single precision160803
Node: Double precision161950
Node: Mixed precision163270
Node: Integer division163565
Node: Two-stage integer division169704
Node: Bitwise operations175033
Node: Numeric comparison178734
Node: Floating Point181358
Ref: Floating Point-Footnote-1187581
Node: Stack Manipulation187773
Node: Data stack188443
Node: Floating point stack189943
Node: Return stack190827
Node: Locals stack191937
Node: Stack pointer manipulation192229
Node: Memory193381
Node: Memory model193830
Ref: Memory model-Footnote-1195053
Node: Dictionary allocation195269
Node: Heap Allocation199318
Node: Memory Access202745
Node: Special Memory Accesses204297
Node: Address arithmetic208827
Node: Memory Blocks214531
Node: Strings and Characters217096
Node: Characters217402
Node: String representations218923
Node: String and character literals220238
Node: String words224567
Node: $tring words229374
Node: Counted string words236234
Node: Control Structures237473
Ref: Control Structures-Footnote-1238182
Node: Selection238295
Node: Simple Loops241250
Node: Counted Loops241981
Ref: Counted Loops-Footnote-1252962
Node: BEGIN loops with multiple exits253007
Node: General control structures with CASE255037
Ref: General control structures with CASE-Footnote-1257991
Node: Arbitrary control structures258129
Node: Calls and returns264665
Node: Exception Handling266818
Node: Defining Words277830
Node: CREATE278577
Node: Variables280800
Node: Constants282961
Ref: Constants-Footnote-1286281
Node: Values286397
Node: Varues287809
Node: Colon Definitions288906
Node: Anonymous Definitions292028
Node: Quotations293606
Node: Supplying names294821
Node: User-defined Defining Words295492
Node: User-defined defining words with colon definitions296255
Ref: User-defined defining words with colon definitions-Footnote-1298841
Node: User-defined defining words using CREATE299125
Ref: User-defined defining words using CREATE-Footnote-1304044
Ref: User-defined defining words using CREATE-Footnote-2304111
Node: CREATE..DOES> applications305676
Node: CREATE..DOES> details307081
Node: Advanced does> usage example309657
Node: User-defined TO and DEFER@314189
Node: User-defined compile-comma316832
Node: Creating from a prototype321682
Node: Making a word current323973
Node: Const-does>324806
Node: Deferred Words326053
Node: Forward330438
Node: Aliases331217
Node: Interpretation and Compilation Semantics332911
Ref: Interpretation and Compilation Semantics-Footnote-1335990
Ref: Interpretation and Compilation Semantics-Footnote-2336064
Node: Combined words336289
Ref: state-smartness337898
Ref: Combined words-Footnote-1338888
Node: Tokens for Words339103
Node: Execution token339564
Ref: Execution token-Footnote-1343396
Node: Name token343725
Node: Compilation token348348
Ref: Compilation token-Footnote-1350148
Node: Compiling words350373
Node: Literals351091
Node: Macros354339
Ref: Macros-Footnote-1362580
Node: The Text Interpreter362786
Ref: The Text Interpreter-Footnote-1368981
Ref: The Text Interpreter-Footnote-2369078
Ref: The Text Interpreter-Footnote-3369289
Ref: The Text Interpreter-Footnote-4369447
Ref: The Text Interpreter-Footnote-5369487
Node: Input Sources369581
Node: Number Conversion371993
Node: Interpret/Compile states374661
Node: Interpreter Directives375546
Node: Recognizers379967
Node: Default Recognizers380816
Node: Dealing with existing Recognizers384571
Node: Defining Recognizers390509
Node: Text Interpreter Hooks390680
Node: The Input Stream391227
Node: Word Lists395411
Node: Vocabularies403099
Node: Why use word lists?404346
Node: Word list example406902
Node: Environmental Queries407603
Node: Files416340
Node: Forth source files416904
Node: General files420297
Node: Redirection424557
Node: Directories426599
Node: Search Paths429243
Node: Source Search Paths431157
Node: General Search Paths432095
Node: Blocks434204
Ref: Blocks-Footnote-1444286
Node: Other I/O444685
Node: Simple numeric output445439
Node: Formatted numeric output447776
Node: Floating-point output454494
Node: Miscellaneous output459255
Node: Displaying characters and strings462351
Node: Terminal output463056
Node: Single-key input465642
Node: Line input and conversion472434
Node: Pipes476067
Node: Xchars and Unicode477053
Node: i18n and l10n483100
Node: Substitute486412
Node: CSV Reader488528
Node: OS command line arguments489030
Node: Locals491295
Node: Gforth locals492027
Node: Locals definition words497004
Node: Where are locals visible by name?500901
Ref: Where are locals visible by name?-Footnote-1508102
Node: How long do locals live?508201
Node: Locals programming style509063
Node: Locals implementation511775
Node: Closures518210
Node: Standard Forth locals522826
Node: Structures524377
Node: Why explicit structure support?525227
Node: Structure Usage527801
Ref: Structure Usage-Footnote-1530781
Node: Structure Naming Convention531065
Node: Structure Implementation532268
Node: Structure Glossary533597
Node: Forth200x Structures535623
Node: Object-oriented Forth538238
Node: Why object-oriented programming?538985
Node: Object-Oriented Terminology540348
Node: Objects542207
Node: Properties of the Objects model543352
Node: Basic Objects Usage545143
Node: The Objects base class547552
Node: Creating objects548042
Node: Object-Oriented Programming Style548844
Node: Class Binding549840
Node: Method conveniences552094
Ref: Method conveniences-Footnote-1554250
Node: Classes and Scoping554448
Node: Dividing classes555928
Node: Object Interfaces557182
Node: Objects Implementation559198
Ref: Objects Implementation-Footnote-1564065
Node: Objects Glossary564143
Node: OOF570990
Node: Properties of the OOF model571702
Node: Basic OOF Usage572758
Node: The OOF base class575068
Node: Class Declaration578591
Node: Class Implementation579688
Node: Mini-OOF579835
Node: Basic Mini-OOF Usage580326
Node: Mini-OOF Example581594
Node: Mini-OOF Implementation583141
Node: Mini-OOF2587205
Node: Comparison with other object models588473
Ref: Comparison with other object models-Footnote-1592151
Node: Regular Expressions592309
Node: Programming Tools598884
Node: Locating source code definitions599622
Node: Locating uses of a word604131
Node: Locating exception source606689
Node: Examining compiled code607019
Node: Examining data612696
Node: Forgetting words615064
Node: Debugging616411
Node: Assertions619651
Node: Singlestep Debugger623094
Node: Code Coverage625465
Node: Multitasker628292
Node: Pthreads628917
Node: Basic multi-tasking629717
Node: Task-local data633870
Node: Semaphores635688
Node: Hardware operations for multi-tasking637056
Node: Message queues638586
Node: Cilk640528
Node: C Interface642602
Node: Calling C Functions643766
Ref: Calling C Functions-Footnote-1646282
Node: Declaring C Functions646494
Node: Calling C function pointers650125
Node: Defining library interfaces651691
Node: Declaring OS-level libraries654461
Node: Callbacks656675
Node: C interface internals658384
Node: Low-Level C Interface Words659728
Node: Automated interface generation using SWIG660465
Node: Migrating the C interface from earlier Gforth662834
Node: Assembler and Code Words663524
Node: Assembler Definitions664215
Node: Common Assembler671457
Node: Common Disassembler674155
Node: 386 Assembler675850
Node: AMD64 Assembler680301
Node: Alpha Assembler687456
Node: MIPS assembler688421
Node: PowerPC assembler691846
Node: ARM Assembler692858
Node: Other assemblers697797
Node: Carnal words699099
Node: Header fields699493
Node: Header methods702525
Node: Threading Words710092
Node: Passing Commands to the OS715975
Node: Keeping track of Time717633
Node: Miscellaneous Words719044
Node: Error messages719642
Node: Tools722877
Node: Standard Report723181
Node: Stack depth changes725080
Node: Standard conformance727058
Node: The Core Words729962
Node: core-idef730322
Node: core-ambcond738707
Node: core-other748297
Node: The optional Block word set749624
Node: block-idef750025
Node: block-ambcond750453
Node: block-other751401
Node: The optional Double Number word set751762
Node: double-ambcond752074
Node: The optional Exception word set752348
Node: exception-idef752665
Node: The optional Facility word set753399
Node: facility-idef753765
Node: facility-ambcond754944
Node: The optional File-Access word set755345
Node: file-idef755722
Node: file-ambcond758109
Node: The optional Floating-Point word set759420
Node: floating-idef759801
Node: floating-ambcond760945
Node: The optional Locals word set764116
Node: locals-idef764487
Node: locals-ambcond765030
Node: The optional Memory-Allocation word set765533
Node: memory-idef765876
Node: The optional Programming-Tools word set766341
Node: programming-idef766745
Node: programming-ambcond767677
Node: The optional Search-Order word set769012
Node: search-idef769358
Node: search-ambcond769736
Node: Standard vs Extensions770502
Node: Model773849
Node: Integrating Gforth774081
Node: Emacs and Gforth777714
Node: Installing gforth.el779610
Node: Emacs Tags780397
Node: Hilighting781306
Node: Auto-Indentation783178
Node: Blocks Files784595
Node: Image Files785987
Node: Image Licensing Issues786776
Node: Image File Background787966
Ref: Image File Background-Footnote-1792258
Node: Non-Relocatable Image Files792374
Node: Data-Relocatable Image Files793365
Node: Fully Relocatable Image Files794274
Node: gforthmi795148
Node: cross.fs797878
Node: Stack and Dictionary Sizes798588
Node: Running Image Files799678
Ref: Running Image Files-Footnote-1802619
Node: Modifying the Startup Sequence802990
Node: Engine805657
Node: Portability806402
Node: Threading809081
Node: Scheduling810320
Node: Direct or Indirect Threaded?812122
Node: Dynamic Superinstructions814979
Node: DOES>819762
Node: Primitives820868
Node: Automatic Generation821066
Ref: Automatic Generation-Footnote-1824573
Node: TOS Optimization824744
Node: Produced code827445
Node: Performance827864
Node: Cross Compiler833266
Node: Using the Cross Compiler833781
Node: How the Cross Compiler Works838426
Node: MINOS2838607
Node: MINOS2 object framework838798
Node: actor methods839293
Node: widget methods841058
Node: MINOS2 tutorial847717
Node: Bugs848574
Node: Origin849621
Node: Forth-related information852777
Node: Licenses853375
Node: GNU Free Documentation License853661
Node: Copying876242
Node: Word Index915377
Node: Concept Index1070727

End Tag Table


Local Variables:
coding: utf-8
End:
