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

This manual is for Gforth (version 0.7.9_20250604, June 04, 2025), 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, Neal Crook, David
Kuehling, Jend Wilke 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, 2024 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: 1419
gforth.info-2: 301961
gforth.info-3: 603116
gforth.info-4: 921307

Tag Table:
(Indirect)
Node: Top1419
Node: Goals17037
Ref: Goals-Footnote-118904
Node: Stability Goals19023
Node: Gforth Environment20710
Node: Invoking Gforth21477
Node: Leaving Gforth36626
Node: Help on Gforth37177
Node: Command-line editing38017
Ref: Command-line editing-Footnote-140599
Node: Environment variables40656
Node: Gforth Files42477
Node: Gforth in pipes43324
Node: Startup speed45173
Node: Tutorial46957
Node: Starting Gforth Tutorial49273
Node: Syntax Tutorial49681
Node: Crash Course Tutorial50577
Node: Stack Tutorial51425
Node: Arithmetics Tutorial52103
Ref: Arithmetics Tutorial-Footnote-153145
Node: Stack Manipulation Tutorial53226
Node: Using files for Forth code Tutorial54678
Node: Comments Tutorial56220
Ref: Comments Tutorial-Footnote-157346
Node: Colon Definitions Tutorial57413
Node: Decompilation Tutorial58549
Node: Stack-Effect Comments Tutorial59089
Node: Types Tutorial62293
Node: Factoring Tutorial64111
Node: Designing the stack effect Tutorial65277
Node: Local Variables Tutorial67861
Node: Conditional execution Tutorial69279
Node: Flags and Comparisons Tutorial70650
Node: General Loops Tutorial73357
Node: Counted loops Tutorial75404
Node: Recursion Tutorial76794
Node: Leaving definitions or loops Tutorial77811
Node: Return Stack Tutorial78536
Node: Memory Tutorial80402
Node: Characters and Strings Tutorial83285
Node: Alignment Tutorial84852
Node: Floating Point Tutorial86073
Node: Files Tutorial89652
Node: Interpretation and Compilation Semantics and Immediacy Tutorial92911
Node: Execution Tokens Tutorial95509
Node: Exceptions Tutorial98631
Node: Defining Words Tutorial100501
Node: Arrays and Records Tutorial103417
Node: POSTPONE Tutorial104799
Node: Literal Tutorial106794
Node: Advanced macros Tutorial107683
Node: Compilation Tokens Tutorial110071
Node: Wordlists and Search Order Tutorial111270
Node: Introduction114069
Node: Introducing the Text Interpreter116191
Ref: Introducing the Text Interpreter-Footnote-1121381
Node: Stacks and Postfix notation121463
Node: Your first definition130623
Ref: Your first definition-Footnote-1134147
Node: How does that work?134309
Node: Forth is written in Forth143648
Ref: Forth is written in Forth-Footnote-1145395
Ref: Forth is written in Forth-Footnote-2145483
Node: Review - elements of a Forth system145537
Node: Where to go next147433
Node: Exercises149178
Node: Literals in source code149486
Node: Integer and character literals149843
Node: Floating-point number and complex literals152246
Node: String and Environment variable Literals154965
Node: Literals for tokens and addresses156139
Node: Disambiguating recognizers157742
Node: Words158449
Node: Notation159336
Ref: Notation-Footnote-1165452
Node: Case insensitivity165546
Node: Comments166249
Node: Boolean Flags167624
Node: Arithmetic168480
Node: Single precision169227
Node: Double precision170383
Node: Mixed precision171794
Node: Integer division172071
Node: Two-stage integer division178475
Node: Bitwise operations184290
Node: Numeric comparison187874
Node: Floating Point190393
Ref: Floating Point-Footnote-1195391
Node: Floating-point comparisons195581
Node: Stack Manipulation197146
Node: Data stack197824
Node: Floating point stack199211
Node: Return stack200031
Node: Locals stack203165
Node: Stack pointer manipulation203459
Node: Memory204646
Node: Memory model205108
Ref: Memory model-Footnote-1207377
Node: Dictionary allocation207559
Node: Sections212165
Node: Heap Allocation217628
Node: Memory blocks and heap allocation219464
Node: Growable memory buffers220801
Node: Memory Access222084
Node: Special Memory Accesses223956
Node: Address arithmetic228426
Ref: Address arithmetic-Footnote-1234343
Ref: Address arithmetic-Footnote-2234389
Node: Memory Blocks234530
Node: Strings and Characters236476
Node: Characters236782
Node: String representations238297
Node: String and character literals239608
Node: String words245147
Node: $tring words251571
Node: Counted string words257382
Node: Control Structures259017
Ref: Control Structures-Footnote-1259729
Node: Selection259992
Node: General Loops262549
Node: Counted Loops263439
Ref: Counted Loops-Footnote-1274354
Node: General loops with multiple exits274393
Node: General control structures with CASE276492
Ref: General control structures with CASE-Footnote-1280963
Node: Arbitrary control structures281254
Node: Calls and returns285313
Node: Exception Handling288169
Node: Defining Words299877
Node: CREATE301961
Node: Variables304076
Node: Constants306347
Ref: Constants-Footnote-1307836
Node: Values307948
Node: Colon Definitions312048
Node: Inline Definitions312760
Node: Anonymous Definitions315312
Node: Quotations316902
Node: Supplying names318290
Node: User-defined Defining Words318955
Node: User-defined defining words with colon definitions319723
Node: User-defined defining words using CREATE322386
Node: CREATE..DOES> applications326548
Node: CREATE..DOES> details327953
Node: Advanced does> usage example332015
Node: Words with user-defined TO etc.336546
Ref: Words with user-defined TO etc.-Footnote-1342383
Node: User-defined compile-comma342635
Node: Creating from a prototype346664
Ref: Creating from a prototype-Footnote-1348985
Node: Making a word current349175
Node: Const-does>349994
Node: Deferred Words351662
Node: Synonyms358658
Node: Structures360627
Node: Standard Structures361378
Node: Value-Flavoured and Defer-Flavoured Fields366457
Node: Structure Extension373173
Ref: Structure Extension-Footnote-1374916
Node: Gforth structs374984
Node: User-defined Stacks379208
Node: Interpretation and Compilation Semantics381243
Ref: Interpretation and Compilation Semantics-Footnote-1384305
Ref: Interpretation and Compilation Semantics-Footnote-2384375
Node: Combined words384600
Ref: state-smartness387392
Ref: Combined words-Footnote-1388523
Node: Tokens for Words388735
Node: Execution token389196
Ref: Execution token-Footnote-1392982
Node: Name token393311
Node: Compilation token398040
Ref: Compilation token-Footnote-1399814
Node: Compiling words400039
Node: Literals400757
Node: Macros403943
Ref: Macros-Footnote-1412726
Node: The Text Interpreter412932
Ref: The Text Interpreter-Footnote-1419055
Ref: The Text Interpreter-Footnote-2419152
Ref: The Text Interpreter-Footnote-3419363
Ref: The Text Interpreter-Footnote-4419521
Ref: The Text Interpreter-Footnote-5419561
Node: Input Sources419655
Node: Number Conversion422027
Node: Interpret/Compile states424659
Node: Interpreter Directives425544
Node: Recognizers429831
Node: Default Recognizers430680
Node: Dealing with existing Recognizers434427
Node: Defining Recognizers441632
Node: Text Interpreter Hooks441803
Node: The Input Stream442332
Node: Word Lists446521
Node: Vocabularies454575
Node: Why use word lists?455822
Node: Word list example458372
Node: Environmental Queries459073
Node: Files467626
Node: Forth source files468188
Node: General files471513
Node: Redirection475597
Node: Directories477609
Node: Search Paths480178
Node: Source Search Paths482084
Node: General Search Paths483004
Node: Blocks485069
Ref: Blocks-Footnote-1494992
Node: Other I/O495391
Node: Simple numeric output496120
Node: Formatted numeric output498377
Node: Floating-point output505031
Node: Miscellaneous output509732
Node: Displaying characters and strings512774
Node: Terminal output513455
Node: Single-key input516509
Node: Line input and conversion522991
Node: Pipes526558
Node: Xchars and Unicode527524
Node: i18n and l10n533466
Node: Substitute536700
Node: CSV reading and writing538992
Node: OS command line arguments540197
Node: Locals542426
Node: Gforth locals542783
Node: Locals definition words546632
Node: Where are locals visible by name?549789
Ref: Where are locals visible by name?-Footnote-1557222
Node: How long do locals live?557321
Node: Locals programming style558223
Node: Locals implementation560935
Node: Standard Forth locals567809
Node: Object-oriented Forth569296
Node: Why object-oriented programming?570028
Node: Object-Oriented Terminology571385
Node: Objects573242
Node: Properties of the Objects model574385
Node: Basic Objects Usage576174
Node: The Objects base class578583
Node: Creating objects579073
Node: Object-Oriented Programming Style579867
Node: Class Binding580863
Node: Method conveniences583115
Ref: Method conveniences-Footnote-1585271
Node: Classes and Scoping585469
Node: Dividing classes586941
Node: Object Interfaces588193
Node: Objects Implementation590205
Ref: Objects Implementation-Footnote-1595064
Node: Objects Glossary595142
Node: OOF603116
Node: Properties of the OOF model603803
Node: Basic OOF Usage604855
Node: The OOF base class607163
Node: Class Declaration610548
Node: Mini-OOF611562
Node: Basic Mini-OOF Usage612051
Node: Mini-OOF Example613603
Node: Mini-OOF Implementation615150
Node: Mini-OOF2619202
Node: Comparison with other object models620745
Ref: Comparison with other object models-Footnote-1624419
Node: Closures624577
Node: How do I read outer locals?634434
Node: How do I write outer locals?635635
Node: Regular Expressions640263
Node: Programming Tools646499
Node: Locating source code definitions647237
Node: Locating uses of a word650422
Node: Locating exception source652912
Node: Examining compiled code653224
Node: Examining data658851
Node: Forgetting words661129
Node: Debugging662465
Node: Assertions665603
Node: Singlestep Debugger669002
Node: Code Coverage671343
Node: Multitasker674359
Node: Pthreads674984
Node: Basic multi-tasking675784
Node: Task-local data680678
Node: Semaphores682548
Node: Hardware operations for multi-tasking683890
Node: Message queues685649
Node: Cilk687588
Node: C Interface689612
Node: Calling C Functions690772
Ref: Calling C Functions-Footnote-1693288
Node: Declaring C Functions693500
Node: Calling C function pointers697103
Node: Defining library interfaces698662
Node: Declaring OS-level libraries701638
Node: Callbacks703808
Node: C interface internals705503
Node: Low-Level C Interface Words706847
Node: Automated interface generation using SWIG707560
Node: Migrating the C interface from earlier Gforth709919
Node: Assembler and Code Words710607
Node: Assembler Definitions711298
Node: Common Assembler718484
Node: Common Disassembler721180
Node: 386 Assembler722869
Node: AMD64 Assembler727308
Node: Alpha Assembler734449
Node: MIPS assembler735412
Node: PowerPC assembler738829
Node: ARM Assembler739837
Node: Other assemblers744768
Node: Carnal words746068
Node: Header fields746458
Node: Header methods749495
Node: Threading Words755845
Node: Passing Commands to the OS760573
Node: Keeping track of Time762197
Node: Miscellaneous Words763566
Node: Error messages764158
Node: Tools767391
Node: Standard Report767695
Node: Stack depth changes769594
Node: Standard conformance771572
Node: The Core Words774476
Node: core-idef774836
Node: core-ambcond783217
Node: core-other792805
Node: The optional Block word set794128
Node: block-idef794529
Node: block-ambcond794957
Node: block-other795905
Node: The optional Double Number word set796266
Node: double-ambcond796578
Node: The optional Exception word set796852
Node: exception-idef797169
Node: The optional Facility word set797903
Node: facility-idef798269
Node: facility-ambcond799448
Node: The optional File-Access word set799847
Node: file-idef800224
Node: file-ambcond802609
Node: The optional Floating-Point word set803920
Node: floating-idef804301
Node: floating-ambcond805445
Node: The optional Locals word set808616
Node: locals-idef808987
Node: locals-ambcond809530
Node: The optional Memory-Allocation word set810029
Node: memory-idef810372
Node: The optional Programming-Tools word set810837
Node: programming-idef811241
Node: programming-ambcond812173
Node: The optional Search-Order word set813506
Node: search-idef813852
Node: search-ambcond814230
Node: Standard vs Extensions814996
Node: Model818335
Node: Integrating Gforth818567
Node: Emacs and Gforth822196
Node: Installing gforth.el824090
Node: Emacs Tags824877
Node: Hilighting825786
Node: Auto-Indentation827626
Node: Blocks Files829023
Node: Image Files830405
Node: Image Licensing Issues831192
Node: Image File Background832380
Ref: Image File Background-Footnote-1836666
Node: Non-Relocatable Image Files836782
Node: Data-Relocatable Image Files837763
Node: Fully Relocatable Image Files838672
Node: gforthmi839546
Node: cross.fs842276
Node: Stack and Dictionary Sizes842986
Node: Running Image Files844076
Ref: Running Image Files-Footnote-1847007
Node: Modifying the Startup Sequence847372
Node: Engine849952
Node: Portability850691
Node: Threading853368
Node: Scheduling854603
Node: Direct or Indirect Threaded?856401
Node: Dynamic Superinstructions859258
Node: DOES>864041
Node: Primitives865147
Node: Automatic Generation865345
Ref: Automatic Generation-Footnote-1868852
Node: TOS Optimization869023
Node: Produced code871724
Node: Performance872143
Node: Cross Compiler877540
Node: Using the Cross Compiler878055
Node: How the Cross Compiler Works882690
Node: MINOS2882871
Node: MINOS2 object framework883062
Node: actor methods883543
Node: widget methods885194
Node: MINOS2 tutorial891533
Node: Bugs892390
Node: Origin893437
Node: Forth-related information896589
Node: Licenses897187
Node: GNU Free Documentation License897473
Node: Copying921307
Node: Word Index958859
Node: Concept Index1125457

End Tag Table


Local Variables:
coding: utf-8
End:
