Gforth 0.7.0 (including Vmgen) is now available on http://www.complang.tuwien.ac.at/forth/gforth/gforth-0.7.0.tar.gz
or on a GNU mirror near you. The signature is http://www.complang.tuwien.ac.at/forth/gforth/gforth-0.7.0.tar.gz.sig and the package can be verified as follows: gpg --keyserver keys.gnupg.net --recv-keys 760F3526 gpg --verify gforth-0.7.0.tar.gz.sig gforth-0.7.0.tar.gz A self-installing executable for Windows is available on http://www.complang.tuwien.ac.at/forth/gforth/gforth-0.7.0.exe * About Gforth: Gforth is a fast and portable implementation of the ANS Forth language. It works nicely with the Emacs editor, offers some nice features such as input completion and history, backtraces, a decompiler and a powerful locals facility, and it even has a manual. Gforth combines traditional implementation techniques with newer techniques for portability and performance: its inner interpreter is direct threaded with several optimizations, but you can also use a traditional-style indirect threaded interpreter. Gforth is distributed under the GNU General Public license (see COPYING). Gforth runs under GNU, BSD, and similar systems, MS Windows and MacOS X, and should not be hard to port to other systems supported by GCC. * About Vmgen: Vmgen supports the construction of interpretive systems by generating the code for executing and dealing with virtual machine (VM) instructions from simple descriptions of the VM instructions. Vmgen generates code for executing VM instructions (with optional tracing), for generating VM code, for disassembling VM code, and for profiling VM instruction sequences. A VM instruction description looks like this: add ( i1 i2 -- i ) i = i1+i2; Vmgen supports several techniques for writing efficient interpreters: virtual machine interpreters, threaded code, combining VM instructions into superinstructions, keeping the top-of-stack in a register, scheduling the dispatch of the next VM instruction, and a couple of minor optimizations. Interpreters created with Vmgen usually are faster than competing interpreters and are typically only a factor of 2-10 slower than the code generateed by native-code compilers. * Gforth: User-visible changes between 0.6.2 and 0.7.0: Requirements: At run-time requires libtool and gcc (for the libcc C interface) and gdb (for the disassembler (SEE)) on some platforms. Installation: support for DESTDIR, POST_INSTALL, INSTALL_SCRIPT automatic performance tuning on building (--enable-force-reg unnecessary) report performance and functionality problems at end of "make" autogen.sh now exists License: Changed to GPLv3 Bug fixes Now works with address-space randomization. The single-step debugger works again in some engines. Many others. Ports: AMD64, ARM, IA-64 (Itanium): better performance PPC, PPC64: disassembler and assembler Gforth EC: R8C, 4stack, misc, 8086 work MacOS X: better support Invocation: New flags --ignore-async-signals, --vm-commit (default overcommit) --print-sequences Forth 200x: X:extension-query: produce true for all implemented extensions X:required REQUIRED etc. (not new) X:defined: [DEFINED] and [UNDEFINED] X:parse-name: PARSE-NAME (new name) X:deferred: deferred words (new: DEFER@ DEFER! ACTION-OF) X:structures: +FIELD FIELD: FFIELD: CFIELD: etc. X:ekeys: new: EKEY>FKEY K-SHIFT-MASK K-CTRL-MASK K-ALT-MASK K-F1...K-F12 X:fp-stack (not new) X:number-prefixes (partially new, see below) Number prefixes: 0x is a hex prefix: 0xff and 0XfF now produces (decimal) 255 # is a decimal prefix: #10 now produces (decimal) 10 Signs after the number prefix are now accepted, e.g, #-50. ' now only handles a single (x)char: 'ab is no longer accepted, 'a' now produces (decimal) 97 Unicode support (currently supports only uniform encoding): added xchars words for dealing with variable-width multi-byte characters provide 8bit (ISO Latin 1) and UTF-8 support for xchars New words: \C C-FUNCTION C-LIBRARY END-C-LIBRARY C-LIBRARY-NAME (libcc C interface) LIB-ERROR (complements OPEN-LIB) OUTFILE-EXECUTE INFILE-EXECUTE BASE-EXECUTE (limited change of global state) 16-bit and 32-bit memory acces: UW@ UL@ SW@ SL@ W! L! W@ L@ /W /L NEXT-ARG SHIFT-ARGS (OS command-line argument processing) NOTHROW (for backtrace control) FTRUNC FMOD (undocumented) SEE-CODE SEE-CODE-RANGE (show generated dynamic native code) Improvements/changes of existing words: S\", .\" now support \l, \m, \z, and limits hex and octal character specs. OPEN-FILE with W/O no longer creates or truncates files (no compat. file) OPEN-LIB now understands ~ at the start, like OPEN-FILE. TRY...ENDTRY changed significantly, compatibility files available (see docs). The disassembler (DISCODE) can now use gdb to disassemble code Uninitialized defered words now give a warning when executed Division is floored (disable with "configure --enable-force-cdiv") Gforth (not gforth-fast) reports division by zero and overflow on division on all platforms. Newly documented words: S>NUMBER? S>UNUMBER? EKEY keypress names: K-LEFT K-RIGHT K-UP K-DOWN K-HOME K-END K-PRIOR K-NEXT K-INSERT K-DELETE CLEARSTACKS FORM Environment variable GFORTHSYSTEMPREFIX (used by word SYSTEM and friends) C interface: exported symbols now start with "gforth_" (for referencing them from C code) libcc C function call interface (requires libtool and gcc at run-time) alternative: undocumented libffi-based interface Libraries: depth-changes.fs: report stack depth changes during interpretation ans-report.fs now reports CfV extensions fsl-util.4th: FSL support files (undocumented) regexp.fs for regular expressions (undocumented) complex.fs for complex numbers (undocumented) fft.fs for Fast Fourier Transform (undocumented) wf.fs, a Wiki implementation (undocumented) httpd.fs, a web server (undocumented) status.fs, show interpreter status in separate xterm (undocumented) profile.fs for profiling (undocumented, incomplete) endtry-iferror.fs, recover-endtry.fs to ease the TRY change transition test/tester.fs: Now works with FP numbers (undocumented) test/ttester.fs: Version of tester.fs with improved interface (T{...}T). compat library: compat/execute-parsing.fs Speed improvements: automatic performance tuning on building static stack caching (good speedup on PPC) mixed-precision division is now faster support for int128 types on AMD64 workarounds for gcc performance bugs (in particular, PR 15242) branch target alignment (good speedup on Alpha). * Vmgen: User-visible changes between 0.6.2 and 0.7.0: Bugfixes (in particular a Gforth bug when dealing with "../" is fixed). Vmgen by default behaves just as in 0.6.2. While some advances have been implemented, the result is not mature enough for general consumption and is therefore disabled by default. - anton _______________________________________________ GNU Announcement mailing list <info-gnu@gnu.org> http://lists.gnu.org/mailman/listinfo/info-gnu