2 Nov 21:50
Gforth 0.7.0 available
Gforth 0.7.0 (source distribution, and various doc formats) is now available from <http://www.complang.tuwien.ac.at/forth/gforth/>. A binary distribution for Windows should be available from there soon. The source package should also be available soon on a GNU mirror near you <http://www.gnu.org/prep/ftp.html>. 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, MacOS X, OS/2, and DOS and should not be hard to port to other systems supported by GCC. This version has been tested successfully on the following platforms: alpha-unknown-linux-gnu armv5l-unknown-linux-gnu i686-pc-linux-gnu ia64-hp-hpux11.23 powerpc-unknown-linux-gnu powerpc64-unknown-linux-gnu sparc-sun-solaris2.10 x86_64-unknown-linux-gnu i386-apple-darwin9.4.0 x86_64-apple-darwin9.4.0 ppc-apple-darwin9.4.0 i686-pc-cygwin gforth-ec: r8c, 4stack, misc, 8086 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). - anton
RSS Feed