|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| arch/ | H | 13-Jun-2014 | - | 17,542 | 14,233 |
| asm/ | H | 13-Jun-2014 | - | 672 | 505 |
| compat/ | H | 11-Oct-2013 | - | 623 | 490 |
| doc/ | H | 07-May-2022 | - | 35,916 | 28,202 |
| ec/ | H | 13-Jun-2014 | - | 314 | 231 |
| engine/ | H | 03-May-2022 | - | 29,194 | 24,984 |
| kernel/ | H | 13-Jun-2014 | - | 6,603 | 5,445 |
| test/ | H | 13-Jun-2014 | - | 3,071 | 2,497 |
| unix/ | H | 13-Jun-2014 | - | 188 | 156 |
| vmgen-ex/ | H | 13-Jun-2014 | - | 1,459 | 992 |
| vmgen-ex2/ | H | 13-Jun-2014 | - | 1,456 | 995 |
| AUTHORS | H A D | 11-Oct-2013 | 1.3 KiB | 41 | 31 |
| BUGS | H A D | 11-Oct-2013 | 3.8 KiB | 99 | 74 |
| BUILD-FROM-SCRATCH | H A D | 11-Oct-2013 | 1 KiB | 34 | 23 |
| Benchres | H A D | 11-Oct-2013 | 13.6 KiB | 169 | 154 |
| COPYING | H A D | 11-Oct-2013 | 34.3 KiB | 675 | 553 |
| COPYING.DOC | H A D | 11-Oct-2013 | 17.7 KiB | 356 | 292 |
| ChangeLog | H A D | 11-Oct-2013 | 356.9 KiB | 9,194 | 5,915 |
| INSTALL | H A D | 11-Oct-2013 | 7.7 KiB | 222 | 147 |
| INSTALL.BINDIST | H A D | 11-Oct-2013 | 1.3 KiB | 35 | 26 |
| INSTALL.DOS | H A D | 11-Oct-2013 | 5.6 KiB | 142 | 106 |
| Makedist.in | H A D | 11-Oct-2013 | 4.5 KiB | 114 | 96 |
| Makefile.in | H A D | 03-May-2022 | 35.1 KiB | 1,011 | 721 |
| NEWS | H A D | 11-Oct-2013 | 14 KiB | 373 | 303 |
| NEWS.vmgen | H A D | 11-Oct-2013 | 2.5 KiB | 70 | 46 |
| README | H A D | 11-Oct-2013 | 5.3 KiB | 152 | 125 |
| README.vmgen | H A D | 11-Oct-2013 | 2.8 KiB | 69 | 51 |
| ToDo | H A D | 11-Oct-2013 | 3.7 KiB | 107 | 89 |
| aclocal.m4 | H A D | 13-Jun-2014 | 2.6 KiB | 62 | 55 |
| add.fs | H A D | 11-Oct-2013 | 906 | 25 | 16 |
| ans-report.fs | H A D | 11-Oct-2013 | 5 KiB | 196 | 163 |
| ansi.fs | H A D | 11-Oct-2013 | 2.7 KiB | 94 | 69 |
| answords.fs | H A D | 11-Oct-2013 | 16.9 KiB | 383 | 379 |
| assert.fs | H A D | 11-Oct-2013 | 1.9 KiB | 61 | 49 |
| autogen.sh | H A D | 11-Oct-2013 | 1.1 KiB | 38 | 5 |
| backtrac.fs | H A D | 11-Oct-2013 | 2.8 KiB | 114 | 93 |
| blocked.fb | H A D | 11-Oct-2013 | 4 KiB | 1 | 1 |
| blocks.fs | H A D | 11-Oct-2013 | 10.1 KiB | 301 | 249 |
| bubble.fs | H A D | 11-Oct-2013 | 1.4 KiB | 75 | 57 |
| bufio.fs | H A D | 11-Oct-2013 | 1.3 KiB | 42 | 28 |
| build-ec.in | H A D | 11-Oct-2013 | 1.1 KiB | 27 | 6 |
| cache-fast0.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 88 | 73 |
| cache-fast1.vmg | H A D | 11-Oct-2013 | 2.8 KiB | 102 | 85 |
| cache-fast2.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 88 | 73 |
| cache-fast3.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 88 | 73 |
| cache-fast4.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 88 | 73 |
| cache-fast5.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 86 | 72 |
| cache-fast6.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 86 | 72 |
| cache-fast7.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 86 | 72 |
| cache-fast8.vmg | H A D | 11-Oct-2013 | 2.4 KiB | 86 | 72 |
| cache-regs1.vmg | H A D | 11-Oct-2013 | 891 | 27 | 20 |
| cache-regs2.vmg | H A D | 11-Oct-2013 | 871 | 26 | 19 |
| cache-regs3.vmg | H A D | 11-Oct-2013 | 851 | 25 | 18 |
| cache-regs4.vmg | H A D | 11-Oct-2013 | 831 | 24 | 17 |
| cache0.vmg | H A D | 11-Oct-2013 | 1.6 KiB | 58 | 44 |
| cache1.vmg | H A D | 11-Oct-2013 | 1.7 KiB | 62 | 48 |
| chains.fs | H A D | 11-Oct-2013 | 1.7 KiB | 57 | 40 |
| code.fs | H A D | 11-Oct-2013 | 1.8 KiB | 53 | 39 |
| colorize.fs | H A D | 11-Oct-2013 | 1.8 KiB | 60 | 43 |
| comp-i.fs | H A D | 11-Oct-2013 | 4.4 KiB | 134 | 117 |
| complex.fs | H A D | 11-Oct-2013 | 4.9 KiB | 131 | 102 |
| config.bat | H A D | 11-Oct-2013 | 1.9 KiB | 47 | 47 |
| config.guess | H A D | 11-Oct-2013 | 43.5 KiB | 1,517 | 1,305 |
| config.sub | H A D | 11-Oct-2013 | 32 KiB | 1,627 | 1,483 |
| configure | H A D | 13-Jun-2014 | 239.7 KiB | 8,730 | 7,167 |
| configure.cmd | H A D | 11-Oct-2013 | 2.9 KiB | 78 | 67 |
| configure.in | H A D | 13-Jun-2014 | 28.9 KiB | 938 | 856 |
| cross.fs | H A D | 11-Oct-2013 | 96.7 KiB | 3,856 | 3,039 |
| cstr.fs | H A D | 11-Oct-2013 | 940 | 24 | 17 |
| debug.fs | H A D | 11-Oct-2013 | 5.5 KiB | 208 | 168 |
| debugs.fs | H A D | 11-Oct-2013 | 2.3 KiB | 65 | 47 |
| depth-changes.fs | H A D | 11-Oct-2013 | 1.8 KiB | 70 | 49 |
| dis-gdb.fs | H A D | 11-Oct-2013 | 2.3 KiB | 57 | 45 |
| dosconf.h | H A D | 11-Oct-2013 | 1.8 KiB | 67 | 16 |
| dosekey.fs | H A D | 11-Oct-2013 | 2.8 KiB | 101 | 83 |
| doskey.fs | H A D | 11-Oct-2013 | 1.1 KiB | 37 | 26 |
| ds2texi.fs | H A D | 11-Oct-2013 | 5.5 KiB | 232 | 202 |
| ekey.fs | H A D | 11-Oct-2013 | 11.6 KiB | 378 | 329 |
| elisp-comp | H A D | 11-Oct-2013 | 2.6 KiB | 90 | 50 |
| endtry-iferror.fs | H A D | 11-Oct-2013 | 974 | 26 | 18 |
| environ.fs | H A D | 11-Oct-2013 | 4 KiB | 116 | 81 |
| envos.dos | H A D | 11-Oct-2013 | 864 | 23 | 16 |
| envos.fs | H A D | 13-Jun-2014 | 1.7 KiB | 49 | 36 |
| envos.fs.in | H A D | 03-May-2022 | 1.7 KiB | 49 | 36 |
| envos.os2 | H A D | 11-Oct-2013 | 864 | 23 | 16 |
| errors.fs | H A D | 11-Oct-2013 | 4.1 KiB | 107 | 91 |
| etags.fs | H A D | 11-Oct-2013 | 3.6 KiB | 118 | 95 |
| exboot.fs | H A D | 11-Oct-2013 | 1.3 KiB | 39 | 28 |
| except.fs | H A D | 11-Oct-2013 | 5.1 KiB | 164 | 138 |
| extend.fs | H A D | 11-Oct-2013 | 9.3 KiB | 296 | 249 |
| fflib.fs | H A D | 11-Oct-2013 | 11 KiB | 348 | 296 |
| fft.fs | H A D | 11-Oct-2013 | 2.8 KiB | 81 | 63 |
| fi2c.fs | H A D | 11-Oct-2013 | 5.7 KiB | 208 | 168 |
| fib.fs | H A D | 11-Oct-2013 | 297 | 15 | 13 |
| filedump.fs | H A D | 11-Oct-2013 | 1.2 KiB | 37 | 25 |
| fixpath.fs | H A D | 11-Oct-2013 | 1.5 KiB | 52 | 38 |
| float.fs | H A D | 11-Oct-2013 | 7 KiB | 247 | 200 |
| fsl-util.4th | H A D | 11-Oct-2013 | 10.4 KiB | 398 | 291 |
| gfgen | H A D | 11-Oct-2013 | 2.2 KiB | 35 | 10 |
| gforth.el | H A D | 28-Feb-2014 | 64 KiB | 1,694 | 1,182 |
| gforthmi.bat | H A D | 11-Oct-2013 | 1.5 KiB | 46 | 41 |
| gforthmi.cmd | H A D | 11-Oct-2013 | 1.4 KiB | 44 | 37 |
| gforthmi.in | H A D | 11-Oct-2013 | 2.3 KiB | 59 | 37 |
| glocals.fs | H A D | 11-Oct-2013 | 21.3 KiB | 697 | 573 |
| glosgen.fs | H A D | 11-Oct-2013 | 5.6 KiB | 234 | 201 |
| glosgen.glo | H A D | 11-Oct-2013 | 2.1 KiB | 50 | 36 |
| gray.fs | H A D | 11-Oct-2013 | 18.4 KiB | 817 | 661 |
| hash.fs | H A D | 11-Oct-2013 | 5.7 KiB | 228 | 187 |
| history.fs | H A D | 11-Oct-2013 | 10.1 KiB | 368 | 303 |
| httpd.fs | H A D | 11-Oct-2013 | 8.3 KiB | 274 | 213 |
| install-sh | H A D | 11-Oct-2013 | 12.9 KiB | 508 | 340 |
| install-tags.fs | H A D | 11-Oct-2013 | 1.4 KiB | 47 | 28 |
| intcomp.fs | H A D | 11-Oct-2013 | 3 KiB | 91 | 71 |
| iss.sh | H A D | 11-Oct-2013 | 6.1 KiB | 138 | 100 |
| lib.fs | H A D | 11-Oct-2013 | 2.5 KiB | 102 | 73 |
| libcc.fs | H A D | 11-Oct-2013 | 19 KiB | 665 | 530 |
| libffi.fs | H A D | 11-Oct-2013 | 13.3 KiB | 454 | 359 |
| locals.fs | H A D | 11-Oct-2013 | 4.4 KiB | 110 | 88 |
| locate.fs | H A D | 11-Oct-2013 | 1.9 KiB | 62 | 49 |
| look.fs | H A D | 11-Oct-2013 | 2.9 KiB | 124 | 98 |
| mach16b.fs | H A D | 11-Oct-2013 | 1 KiB | 32 | 23 |
| mach16l.fs | H A D | 11-Oct-2013 | 1 KiB | 32 | 23 |
| mach32b.fs | H A D | 11-Oct-2013 | 1 KiB | 32 | 23 |
| mach32l.fs | H A D | 11-Oct-2013 | 1 KiB | 32 | 23 |
| mach64b.fs | H A D | 11-Oct-2013 | 1 KiB | 32 | 23 |
| mach64l.fs | H A D | 11-Oct-2013 | 1 KiB | 32 | 23 |
| machpc.fs.in | H A D | 11-Oct-2013 | 3.7 KiB | 122 | 78 |
| make-app.fs | H A D | 11-Oct-2013 | 1.2 KiB | 36 | 23 |
| makefile.dos | H A D | 11-Oct-2013 | 35 KiB | 1,019 | 727 |
| makefile.os2 | H A D | 11-Oct-2013 | 35.6 KiB | 1,023 | 753 |
| matrix.fs | H A D | 11-Oct-2013 | 1.3 KiB | 56 | 43 |
| mini-oof.fs | H A D | 11-Oct-2013 | 655 | 14 | 13 |
| missing | H A D | 11-Oct-2013 | 10.8 KiB | 365 | 275 |
| mkdir.fs | H A D | 11-Oct-2013 | 1.6 KiB | 52 | 42 |
| mkdosmf.sed | H A D | 11-Oct-2013 | 2.6 KiB | 84 | 78 |
| mkinstalldirs | H A D | 11-Oct-2013 | 1.8 KiB | 100 | 72 |
| mkos2mf.sed | H A D | 11-Oct-2013 | 3.2 KiB | 96 | 91 |
| model | H A D | 11-Oct-2013 | 1.8 KiB | 57 | 39 |
| moof-exm.fs | H A D | 11-Oct-2013 | 1.3 KiB | 56 | 42 |
| moofglos.fs | H A D | 11-Oct-2013 | 1.3 KiB | 39 | 30 |
| more.fs | H A D | 11-Oct-2013 | 1.8 KiB | 65 | 49 |
| objects.fs | H A D | 11-Oct-2013 | 16.8 KiB | 528 | 429 |
| objexamp.fs | H A D | 11-Oct-2013 | 2.6 KiB | 186 | 136 |
| oldlib.fs | H A D | 11-Oct-2013 | 3.8 KiB | 125 | 103 |
| onebench.fs | H A D | 11-Oct-2013 | 1.1 KiB | 36 | 26 |
| oof.fs | H A D | 11-Oct-2013 | 18.7 KiB | 661 | 521 |
| oofsampl.fs | H A D | 11-Oct-2013 | 4.8 KiB | 200 | 165 |
| os2conf.h | H A D | 11-Oct-2013 | 1.8 KiB | 66 | 16 |
| other.fs | H A D | 11-Oct-2013 | 1.2 KiB | 39 | 28 |
| peeprules.vmg | H A D | 11-Oct-2013 | 9.2 KiB | 260 | 246 |
| preforth.in | H A D | 11-Oct-2013 | 1 KiB | 32 | 11 |
| prim | H A D | 11-Oct-2013 | 61.3 KiB | 2,569 | 2,190 |
| prim.b | H A D | 11-Oct-2013 | 76.4 KiB | 3,696 | 3,229 |
| prims2x.fs | H A D | 11-Oct-2013 | 56.2 KiB | 1,984 | 1,663 |
| prims2x0.6.2.fs | H A D | 11-Oct-2013 | 44.5 KiB | 1,588 | 1,338 |
| proxy.fs | H A D | 11-Oct-2013 | 5.4 KiB | 213 | 161 |
| quotes.fs | H A D | 11-Oct-2013 | 4 KiB | 119 | 103 |
| random.fs | H A D | 11-Oct-2013 | 935 | 27 | 17 |
| recover-endtry.fs | H A D | 11-Oct-2013 | 1.2 KiB | 34 | 24 |
| regexp.fs | H A D | 11-Oct-2013 | 9.4 KiB | 291 | 244 |
| savesys.fs | H A D | 11-Oct-2013 | 1.9 KiB | 64 | 53 |
| search.fs | H A D | 11-Oct-2013 | 8.9 KiB | 277 | 217 |
| see-ext.fs | H A D | 11-Oct-2013 | 2.3 KiB | 84 | 69 |
| see.fs | H A D | 11-Oct-2013 | 20.5 KiB | 819 | 722 |
| siev.fs | H A D | 11-Oct-2013 | 572 | 24 | 20 |
| sieve.fs | H A D | 11-Oct-2013 | 507 | 21 | 15 |
| simp-see.fs | H A D | 11-Oct-2013 | 2 KiB | 62 | 48 |
| sokoban.fs | H A D | 11-Oct-2013 | 29.8 KiB | 1,408 | 1,371 |
| source.fs | H A D | 11-Oct-2013 | 1.6 KiB | 49 | 35 |
| stamp-h.in | H A D | 13-Jun-2014 | 10 | 2 | 1 |
| startup.fs | H A D | 11-Oct-2013 | 3 KiB | 124 | 111 |
| string.fs | H A D | 11-Oct-2013 | 2 KiB | 56 | 44 |
| struct.fs | H A D | 11-Oct-2013 | 3.8 KiB | 109 | 89 |
| struct0x.fs | H A D | 11-Oct-2013 | 1.5 KiB | 51 | 36 |
| stuff.fs | H A D | 11-Oct-2013 | 11.6 KiB | 390 | 323 |
| table.fs | H A D | 11-Oct-2013 | 1.1 KiB | 34 | 22 |
| tags.fs | H A D | 11-Oct-2013 | 3.5 KiB | 110 | 86 |
| tasker.fs | H A D | 11-Oct-2013 | 3.2 KiB | 104 | 84 |
| termsize.fs | H A D | 11-Oct-2013 | 962 | 32 | 22 |
| timings.sc | H A D | 11-Oct-2013 | 10.7 KiB | 594 | 592 |
| tt.fs | H A D | 11-Oct-2013 | 8.8 KiB | 373 | 292 |
| unbuffer.fs | H A D | 11-Oct-2013 | 1.1 KiB | 33 | 24 |
| utf-8.fs | H A D | 11-Oct-2013 | 8.3 KiB | 336 | 298 |
| versions.bsh | H A D | 11-Oct-2013 | 766 | 19 | 13 |
| vmgen.in | H A D | 11-Oct-2013 | 2.3 KiB | 50 | 30 |
| vt100.fs | H A D | 11-Oct-2013 | 1.3 KiB | 37 | 26 |
| vt100key.fs | H A D | 11-Oct-2013 | 1.4 KiB | 48 | 36 |
| wordinfo.fs | H A D | 11-Oct-2013 | 3.1 KiB | 120 | 91 |
| wordsets.fs | H A D | 11-Oct-2013 | 3.9 KiB | 144 | 93 |
| xwords.fs | H A D | 11-Oct-2013 | 1.8 KiB | 76 | 58 |
README
1Gforth is a fast and portable implementation of the ANS Forth
2language. It works nicely with the Emacs editor, offers some nice
3features such as input completion and history, backtraces, a
4decompiler and a powerful locals facility, and it even has a
5manual. Gforth combines traditional implementation techniques with
6newer techniques for portability and performance: its inner
7interpreter is direct threaded with several optimizations, but you can
8also use a traditional-style indirect threaded interpreter. Gforth is
9distributed under the GNU General Public license (see COPYING).
10
11Gforth runs under GNU, BSD, and similar systems, MS Windows, MacOS X,
12OS/2, and DOS and should not be hard to port to other systems
13supported by GCC. This version has been tested successfully on the
14following platforms:
15
16alpha-unknown-linux-gnu
17 gcc-2.95.2 19991024 (release)
18 gcc-2.95.4 20011002 (Debian prerelease)
19 gcc-3.3.6 (Debian 1:3.3.6-15)
20 gcc-3.4.6 (Debian 3.4.6-5)
21 gcc-4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
22armv5l-unknown-linux-gnu
23 gcc-3.3.6 (Debian 1:3.3.6-15)
24 broken: gcc-4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
25 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31152>
26i686-pc-linux-gnu
27 gcc-2.95.4 20011002 (Debian prerelease)
28 gcc-3.3.5 (Debian 1:3.3.5-13)
29 gcc-3.4.4 20050314 (prerelease) (Debian 3.4.3-13sarge1)
30ia64-hp-hpux11.23
31 gcc-4.1.1
32 broken: gcc-3.4.3
33powerpc-unknown-linux-gnu
34 gcc-2.95.4 20011002 (Debian prerelease)
35 gcc-3.2.3 (Debian)
36 gcc-3.3.6 (Debian 1:3.3.6-15)
37 gcc-3.4.6 (Debian 3.4.6-8)
38 gcc-4.0.3 20060128 (prerelease) (Debian 4.0.2-8)
39 gcc-4.1.3 20080623 (prerelease) (Debian 4.1.2-23)
40 gcc-4.3.2
41powerpc64-unknown-linux-gnu
42 gcc-3.4.6 (Debian 3.4.6-5)
43 gcc-4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
44sparc-sun-solaris2.10
45 gcc-3.4.3 (csl-sol210-3_4-branch+sol_rpath)
46 gcc-4.0.2
47x86_64-unknown-linux-gnu
48 gcc-3.3.6 (Debian 1:3.3.6-15)
49 gcc-3.4.6 (Debian 3.4.6-5)
50 gcc-4.0.0
51 gcc-4.0.4 20060904 (prerelease) (Debian 4.0.3-7)
52 gcc-4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
53 gcc-4.1.3 20080623 (prerelease) (Debian 4.1.2-23)
54 gcc-4.2.0
55 gcc-4.2.4 (Debian 4.2.4-3)
56 gcc-4.3.1
57i386-apple-darwin9.4.0
58x86_64-apple-darwin9.4.0
59ppc-apple-darwin9.4.0
60i686-pc-cygwin
61gforth-ec: r8c, 4stack, misc, 8086
62
63Read INSTALL for installation instructions from source, or INSTALL.DOS
64for DOS, Windows, and OS/2 from source, or INSTALL.BINDIST if you have
65a binary package distributed as .tar.gz or .zip file. If you received
66a self-installing executable, just run it and follow the instructions.
67
68To start the system, just say `gforth' (after installing it).
69
70You can find new versions of Gforth at ftp://ftp.gnu.org/gnu/gforth/
71and its mirrors or at
72
73http://www.complang.tuwien.ac.at/forth/gforth/
74or
75ftp://ftp.complang.tuwien.ac.at/pub/forth/gforth/
76
77The latter site also contains binary distributions of Gforth for some
78popular platforms.
79
80If you want to work on Gforth, mail me. Tasks to be done can be found
81in ToDo; but if you would like to do something not mentioned there,
82it's ok, too. In any case, we would like to hear what you are
83doing. The most important task IMO is the foreign language interface
84for C.
85
86On popular request, here are the meanings of unusual file extensions:
87
88*.fs Forth stream source file (include with "include <file>" from within
89 gforth, or start with "gforth <file1> <file2> ...")
90*.fi Forth image files (start with "gforth -i <image file>")
91*.fb Forth blocks file (load with "use <block file> 1 load")
92*.i C include files
93*.ds documenation source
94*TAGS etags files
95
96A number of Forth source files are included in this package that are
97not necessary for building Gforth. Not all of them are mentioned in
98the rest of the documentation, so here's a short overview:
99
100Add-ons:
101code.fs random.fs more.fs ansi.fs colorize.fs
102oof.fs oofsampl.fs objects.fs blocked.fb tasker.fs
103
104Utilities:
105ans-report.fs etags.fs glosgen.fs filedump.fs
106
107Games:
108tt.fs sokoban.fs
109
110Test programs (for testing Forth systems):
111test/*.fs
112
113Benchmarks:
114bubble.fs siev.fs matrix.fs fib.fs
115
116ANS Forth implementations of Gforth extensions:
117compat/*.fs
118
119For discussions about Gforth, use the Usenet newsgroup
120comp.lang.forth. If you prefer not to post on Usenet, there is also a
121mailing list: GForth@ChaosSolutions.org. To subscribe, send a mail to
122gforth-subscribe@chaossolutions.org with:
123
124subscribe GForth
125
126as the first and only line within the message body. You can also
127report bugs through these channels, or you can report them through our
128bug database:
129
130https://savannah.gnu.org/bugs/?func=addbug&group=gforth
131
132- anton
133anton@mips.complang.tuwien.ac.at
134http://www.complang.tuwien.ac.at/anton/home.html
135-----
136Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2006,2007,2008 Free Software Foundation, Inc.
137
138This file is part of Gforth.
139
140Gforth is free software; you can redistribute it and/or
141modify it under the terms of the GNU General Public License
142as published by the Free Software Foundation, either version 3
143of the License, or (at your option) any later version.
144
145This program is distributed in the hope that it will be useful,
146but WITHOUT ANY WARRANTY; without even the implied warranty of
147MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
148GNU General Public License for more details.
149
150You should have received a copy of the GNU General Public License
151along with this program. If not, see http://www.gnu.org/licenses/.
152
README.vmgen
1Vmgen supports the construction of interpretive systems by generating
2the code for executing and dealing with virtual machine (VM)
3instructions from simple descriptions of the VM instructions.
4
5This file is about Vmgen-specific issues. Issues affecting both
6Gforth and Vmgen (e.g., platform compatibility) are discussed in
7README.
8
9Vmgen generates code for executing VM instructions (with optional
10tracing), for generating VM code, for disassembling VM code, and for
11profiling VM instruction sequences. A VM instruction description
12looks like this:
13
14add ( i1 i2 -- i )
15i = i1+i2;
16
17Vmgen supports several techniques for writing efficient interpreters:
18virtual machine interpreters, threaded code, combining VM instructions
19into superinstructions, keeping the top-of-stack in a register,
20scheduling the dispatch of the next VM instruction, and a couple of
21minor optimizations. Interpreters created with vmgen usually are
22faster than competing interpreters and are typically only a factor of
232-10 slower than the code generateed by native-code compilers.
24
25Vmgen has special support for stack-based VMs (but it can also be
26used to advantage when implementing a register-based VM).
27
28Changes in Vmgen from earlier releases are explained in NEWS.vmgen.
29
30After installation the documentation is available in info form and in
31printable form (doc/vmgen.ps).
32
33There is a simple usage example in vmgen-ex (and a variation on that
34in vmgen-ex2). See the documentation for more information on that.
35
36To report a bug, use
37<https://savannah.gnu.org/bugs/?func=addbug&group_id=2672>. For
38discussion on Vmgen (e.g., how to use it), use the
39bug-vmgen@mail.freesoftware.fsf.org mailing list (use
40<http://mail.gnu.org/mailman/listinfo/help-vmgen> to subscribe).
41
42You can find vmgen at http://www.complang.tuwien.ac.at/anton/vmgen/.
43
44Vmgen is currently distributed with Gforth (because it needs Gforth to
45run, and Gforth needs it to build), and is installed together with
46Gforth (read INSTALL for instructions).
47
48Note that future versions of vmgen may require small changes in
49programs written for the present version (e.g., requiring a few
50additional macro definitions).
51
52-----
53Copyright (C) 2001, 2002, 2003,2007 Free Software Foundation, Inc.
54
55This file is part of Gforth.
56
57Gforth is free software; you can redistribute it and/or
58modify it under the terms of the GNU General Public License
59as published by the Free Software Foundation, either version 3
60of the License, or (at your option) any later version.
61
62This program is distributed in the hope that it will be useful,
63but WITHOUT ANY WARRANTY; without even the implied warranty of
64MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
65GNU General Public License for more details.
66
67You should have received a copy of the GNU General Public License
68along with this program. If not, see http://www.gnu.org/licenses/.
69