Annotation of gforth/NEWS, revision 1.9
1.9 ! anton 1: User-visible changes between 0.5.0 and 0.6.0:
! 2:
! 3: added words: EDIT-LINE ID. .ID CONST-DOES> K-PRIOR K-NEXT K-DELETE SLURP-FILE SLURP-FID WORDLIST-WORDS
! 4:
! 5: Long word names (512MB on 32-bit systems) are now supported (change to
! 6: the header format).
! 7:
! 8: Generalized prims2x.fs into Vmgen (see README.vmgen etc.); used the
! 9: new capabilities in prims (e.g., automatic handling of the return
! 10: stack and instruction stream).
! 11:
! 12: New threaded code execution method: primitive-centric (allows the
! 13: following), hybrid direct/indirect threaded (easier portability),
! 14: with dynamic superinstructions (typical speedup on Athlon: factor
! 15: 2). New engine gforth-itc for dealing with some
! 16: backwards-compatibility problems (see "Invoking Gforth" in the
! 17: manual).
! 18:
1.8 anton 19: User-visible changes between 0.4.0 and 0.5.0:
20:
21: Changes in behaviour:
22:
23: There are now two engines: the fast engine (gforth-fast) is at least
24: as fast as gforth in earlier releases; the debugging engine (gforth)
25: supports precise backtracing for signals (e.g., illegal memory
26: access), but is slower by a factor of 1-2.
27: Block files now start at block 0 by default (instead of block 1). If
28: you have block files around, prepend 1024 bytes to convert them, or
29: do a "1 OFFSET !" to establish the old behaviour.
30: Gforth now does not translate newlines to LFs on reading. Instead,
31: READ-LINE now interprets LF, CR, and CRLF as newlines. Newlines on
32: output are in the OSs favourite format.
33: SEE now disassembles primitives (or hex-DUMPs the code if no
34: disassembler is available).
35: >HEAD (aka >NAME) now returns 0 (instead of the nt of ???) on failure.
36: Syntax of prim changed: stack effects are now surrounded by
37: parentheses, tabs are insignificant.
38:
39: Operating environment:
40:
41: Gforth now produces a backtrace when catching an exception.
42: On platforms supporting the Unix 98 SA_SIGINFO semantics, you get more
43: precise error reports for SIGSEGV and SIGFPE (e.g., "stack
44: underflow" instead of "Invalid memory address").
45: Gforth now produces exit code 1 if there is an error (i.e., an
46: uncaught THROW) in batch processing.
47: You can use "gforthmi --application ..." to build an image that
48: processes the whole command-line when invoked directly (instead of
49: through gforth -i).
50:
51: Ports:
52:
53: AIX.
54: 20% speedup on 604e under powerpc-unknown-linux-gnu,
55: 19%-29% speedup on Celeron with gcc-2.95.
56:
57: New words:
58:
59: Missing ANS Forth words: EKEY EKEY? EKEY>CHAR
60: Timing words: CPUTIME UTIME
61: Vector arithmetic: V* FAXPY
62: FP comparison: F~ABS F~REL
63: Deferred words: <IS> [IS]
64: Nested number output: <<# #>>
65: Exception handling: TRY RECOVER ENDTRY
66: Directory handling: OPEN-DIR READ-DIR CLOSE-DIR FILENAME-MATCH
67: Other: ]L PUSH-ORDER
68:
69: Miscellaneous:
70:
71: Significant extensions to the manual (added an introduction, among
72: other things), many of them due to a new team member: Neal Crook.
73: Added assemblers and disassemblers for 386, Alpha, MIPS (thanks to
74: contributions by Andrew McKewan, Bernd Thallner, and Christian
75: Pirker). Contributions of assemblers and disassemblers for other
76: architectures are welcome.
77:
78:
1.6 anton 79: User-visible changes between 0.3.0 and 0.4.0:
80:
81: Operating environment:
82:
83: Path handling: "." at the start of the path represents the directory
84: the nearest enclosing file resides in (if there is none: the working
85: directory). "~+" indicates the working directory. The default path
86: now has "." in front.
87: gforth and gforthmi is now more GNU standards compliant (wrt
88: command-line options).
89: New command-line-option: --die-on-signal
90: Errors are now directed to stderr.
91: Stdout is now unbuffered, if it is a tty.
92: User input device redirection (for filters) is now possible.
93:
94: Ports:
95:
96: Now runs on IRIX (and other MIPS-based systems without linker-flag -d).
97: Direct threading now works on PowerPC (20% speedup on 604e).
98: Better support for m68k (thanks to Andreas Schwab and Jorge Acereda).
99: It is possible to create executables that contain the image (for
100: non-OS systems).
1.7 pazsan 101:
102: Added a lot of embedded control (EC) stuff. Supported controllers and
103: small CPUs are Siemens C16x, 8086, 6502, Mixed-Mode's FPGA MISC, Bernd Paysan's
104: 4stack processor. Not finished: ShBoom alias PSC1000, H8, AVR.
1.6 anton 105:
106: New, changed, and removed words:
107:
108: Renamed F0 to FP0 (avoids unexpected behaviour in hex), added aliases
109: SP0, RP0, LP0 (recommended for future use) for S0, R0, L0.
110: Renamed PARSE-WORD into SWORD (PARSE-WORD is used with the meaning of
111: NAME in OpenBoot and dpans6 A.6.2.2008)
112: Added FPICK (suggested by Julian Noble).
113: Added EXCEPTION.
114: S" gforth" ENVIRONMENT? now produces the version-string.
115: Changed representation of types in struct package, and correspondingly
116: changed names.
117:
118: Miscellaneous:
119:
120: Plain text documentation is now available in doc/gforth.txt.
121: Documentation improvements.
122: Wordlist structure changed.
123: Added mini-oof.
124: Reorganized files: added directories and reorganized many files into
125: them; renamed files into 8.3 format to work with completely broken
126: systems (but there are again some files that won't work there).
127: Bug fixes.
128: Various changes without log information only known as mega-patches.
1.7 pazsan 129: Cross compiler now also supports compilation only for undefined or forward
130: referenced words. Plugins to support some native code generation
131: (for PSC1000).
1.6 anton 132: More files in the compat library.
133:
134:
135:
1.5 anton 136: User-visible changes between 0.2.1 and 0.3.0:
137:
138: Stack overflow detection by memory protection on most systems
139: (allocation with mmap).
140: gforth.fi is now fully relocatable.
141: fully relocatable images are now easier to create.
142: added primitives K and UNDER+.
143: Win32 support.
144: Improved support for embedded controllers and other deprived environments.
145: some bug fixes.
146: added concept index; other documentation improvements.
147:
1.6 anton 148:
149:
1.5 anton 150: User-visible changes between 0.2.0 and 0.2.1:
1.4 anton 151:
152: Bug fixes
153:
1.6 anton 154:
155:
1.5 anton 156: User-visible changes between 0.1beta and 0.2.0:
1.1 anton 157:
1.3 anton 158: Portability and Installation:
159:
1.1 anton 160: Support architectures with buggy long longs (alpha-dec-osf).
1.3 anton 161: Better support for DOS and other non-Unix systems.
1.1 anton 162: Size changes through the command line are passed to the image (and
163: saved with savesystem); the preamble specifies an interpreter and is
164: propagated by save-system.
1.3 anton 165:
166: Tools:
167:
168: Improved etags support.
169: more.fs allows output paging.
170: Added compat/ directory containing ANS implementations of Gforth features.
171: Added tiny multitasker (tasker.fs).
172: Added two alternatives for object-oriented programming: oof.fs, objects.fs.
173: Added ans-report.fs (reports which words are used from which wordset).
174:
175: New words:
176:
177: Changed POPEN and PCLOSE to OPEN-PIPE and CLOSE-PIPE.
178: Added FORM, ROWS, and COLS.
179: added primitives EMIT-FILE, STDOUT, STDERR.
180: Added TABLEs (case-sensitive wordlists).
181: added POSTPONE,.
182: Added the ability to combine arbitrary interpretation and compilation
183: semantics (INTERPRET/COMPILE:); state-smart words were generally
184: rewritten to use that mechanism.
185:
186: Changes to existing words:
187:
188: EMIT and TYPE now work through file words (and are redirectable).
1.1 anton 189: HEADER now stores the compilation wordlist in the header and REVEAL
190: reveals into that wordlist.
1.3 anton 191: changed behaviour of SYSTEM (no longer returns wretval, but puts it in
192: $?) added (SYSTEM) ( c_addr u -- wretval wior ).
1.1 anton 193: ' and ['] now give an error for compile-only words.
1.3 anton 194:
1.6 anton 195:
196: % Local Variables:
197: % fill-prefix: " "
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>