1User-visible changes between 0.7.2 and 0.7.3:
2Bug fixes
3  Backported protection against glibc math functions clobbering TOS
4
5User-visible changes between 0.7.1 and 0.7.2:
6Bug fixes
7  Fixed installdirs
8
9User-visible changes between 0.7.0 and 0.7.1:
10Bug fixes
11  amd64 gdb disassembler works with syntax change (autodetected)
12  workaround for gcc 4.6 and 4.7 problems (newline and superinstructions)
13Miscellaneous
14  changed repository from CVS to git
15
16User-visible changes between 0.6.2 and 0.7.0:
17
18Requirements:
19  At run-time requires libtool and gcc (for the libcc C interface) and
20                       gdb (for the disassembler (SEE)) on some platforms.
21Installation:
22  support for DESTDIR, POST_INSTALL, INSTALL_SCRIPT
23  automatic performance tuning on building (--enable-force-reg unnecessary)
24  report performance and functionality problems at end of "make"
25  autogen.sh now exists
26License:
27  Changed to GPLv3
28Bug fixes
29  Now works with address-space randomization.
30  The single-step debugger works again in some engines.
31  Many others.
32Ports:
33  AMD64, ARM, IA-64 (Itanium): better performance
34  PPC, PPC64: disassembler and assembler
35  Gforth EC: R8C, 4stack, misc, 8086 work
36  MacOS X: better support
37Invocation:
38  New flags --ignore-async-signals, --vm-commit (default overcommit)
39            --print-sequences
40Forth 200x:
41  X:extension-query: produce true for all implemented extensions
42  X:required REQUIRED etc. (not new)
43  X:defined: [DEFINED] and [UNDEFINED]
44  X:parse-name: PARSE-NAME (new name)
45  X:deferred: deferred words (new: DEFER@ DEFER! ACTION-OF)
46  X:structures: +FIELD FIELD: FFIELD: CFIELD: etc.
47  X:ekeys: new: EKEY>FKEY K-SHIFT-MASK K-CTRL-MASK K-ALT-MASK K-F1...K-F12
48  X:fp-stack (not new)
49  X:number-prefixes (partially new, see below)
50Number prefixes:
51  0x is a hex prefix: 0xff and 0XfF now produces (decimal) 255
52  # is a decimal prefix: #10 now produces (decimal) 10
53  Signs after the number prefix are now accepted, e.g, #-50.
54  ' now only handles a single (x)char: 'ab is no longer accepted,
55                                       'a' now produces (decimal) 97
56Unicode support (currently supports only uniform encoding):
57  added xchars words for dealing with variable-width multi-byte characters
58  provide 8bit (ISO Latin 1) and UTF-8 support for xchars
59New words:
60  \C C-FUNCTION C-LIBRARY END-C-LIBRARY C-LIBRARY-NAME (libcc C interface)
61  LIB-ERROR (complements OPEN-LIB)
62  OUTFILE-EXECUTE INFILE-EXECUTE BASE-EXECUTE (limited change of global state)
63  16-bit and 32-bit memory acces: UW@ UL@ SW@ SL@ W! L! W@ L@ /W /L
64  NEXT-ARG SHIFT-ARGS (OS command-line argument processing)
65  NOTHROW (for backtrace control)
66  FTRUNC FMOD (undocumented)
67  SEE-CODE SEE-CODE-RANGE (show generated dynamic native code)
68Improvements/changes of existing words:
69  S\", .\" now support \l, \m, \z, and limits hex and octal character specs.
70  OPEN-FILE with W/O no longer creates or truncates files (no compat. file)
71  OPEN-LIB now understands ~ at the start, like OPEN-FILE.
72  TRY...ENDTRY changed significantly, compatibility files available (see docs).
73  The disassembler (DISCODE) can now use gdb to disassemble code
74  Uninitialized defered words now give a warning when executed
75  Division is floored (disable with "configure --enable-force-cdiv")
76  Gforth (not gforth-fast) reports division by zero and overflow on division
77    on all platforms.
78Newly documented words:
79  S>NUMBER? S>UNUMBER?
80  EKEY keypress names: K-LEFT  K-RIGHT K-UP K-DOWN K-HOME K-END K-PRIOR
81    K-NEXT K-INSERT K-DELETE
82  CLEARSTACKS
83  FORM
84Environment variable GFORTHSYSTEMPREFIX (used by word SYSTEM and friends)
85C interface:
86  exported symbols now start with "gforth_" (for referencing them from C code)
87  libcc C function call interface (requires libtool and gcc at run-time)
88    alternative: undocumented libffi-based interface
89Libraries:
90  depth-changes.fs: report stack depth changes during interpretation
91  ans-report.fs now reports CfV extensions
92  fsl-util.4th: FSL support files (undocumented)
93  regexp.fs for regular expressions (undocumented)
94  complex.fs for complex numbers (undocumented)
95  fft.fs for Fast Fourier Transform (undocumented)
96  wf.fs, a Wiki implementation (undocumented)
97  httpd.fs, a web server (undocumented)
98  status.fs, show interpreter status in separate xterm (undocumented)
99  profile.fs for profiling (undocumented, incomplete)
100  endtry-iferror.fs, recover-endtry.fs to ease the TRY change transition
101  test/tester.fs: Now works with FP numbers (undocumented)
102  test/ttester.fs: Version of tester.fs with improved interface (T{...}T).
103 compat library:
104  compat/execute-parsing.fs
105Speed improvements:
106  automatic performance tuning on building
107  static stack caching (good speedup on PPC)
108  mixed-precision division is now faster
109  support for int128 types on AMD64
110  workarounds for gcc performance bugs (in particular, PR 15242)
111  branch target alignment (good speedup on Alpha).
112
113
114User-visible changes between 0.6.1 and 0.6.2:
115
116Bug fixes (in particular, gforth-0.6.2 compiles with gcc-3.3)
117New words: LATEST, LATESTXT (LASTXT deprecated)
118Operating environment: Added optional support for a C interface built
119  on the ffcall libraries (more portable and powerful than the old
120  one, but still not documented).  To use it, the ffcall libraries
121  have to be installed before building Gforth (see INSTALL).
122Miscellaneous: Gforth-fast now uses static superinstructions (some
123  speedup on some platforms); generally this is transparent (apart
124  from the speedup), but there are lots of command-line options for
125  controlling the static superinstruction generation.
126
127
128User-visible changes between 0.6.0 and 0.6.1:
129
130Bug fixes (installation on big-endian machines sometimes did not work)
131
132
133User-visible changes between 0.5.0 and 0.6.0:
134
135Changes in behaviour:
136
137S": interpreted use now ALLOCATEs the string (they live until BYE).
138Long word names (512MB on 32-bit systems) are now supported (change to
139  the header format).
140New threaded code execution method: primitive-centric (allows the
141  following), hybrid direct/indirect threaded (easier portability),
142  with dynamic superinstructions (typical speedup on Athlon: factor
143  2).  New engine gforth-itc for dealing with some potential
144  backwards-compatibility problems (see "Direct or Indirect Threaded?"
145  in the manual).
146
147Operating environment:
148
149Default dictionary size is now 4MB.
150Large file support on OSs that support them (i.e., files with more
151  than 2GB on 32-bit machines).
152Gforth can now deal well with broken pipes in most situations.
153vi tags files can be built with tags.fs (usage like etags.fs).
154gforth.el mostly rewritten.
155New image file format.
156
157New words:
158
159Keyboard input: EDIT-LINE K-PRIOR K-NEXT K-DELETE
160File input: SLURP-FILE SLURP-FID
161Programming tools: ID. .ID WORDLIST-WORDS SIMPLE-SEE
162Conditional execution: [DEFINED] [UNDEFINED]
163Defining Words: CONST-DOES> ]]
164Input stream: PARSE-WORD EXECUTE-PARSING EXECUTE-PARSING-FILE
165String comparison: STR= STR< STRING-PREFIX?
166String literals: S\" .\" \"-PARSE
167Floating point output: F.RDP F>STR-RDP F>BUF-RDP
168
169Miscellaneous:
170
171Generalized prims2x.fs into Vmgen (see README.vmgen etc.); used the
172  new capabilities in prims (e.g., automatic handling of the return
173  stack and instruction stream).
174
175
176User-visible changes between 0.4.0 and 0.5.0:
177
178Changes in behaviour:
179
180There are now two engines: the fast engine (gforth-fast) is at least
181  as fast as gforth in earlier releases; the debugging engine (gforth)
182  supports precise backtracing for signals (e.g., illegal memory
183  access), but is slower by a factor of 1-2.
184Block files now start at block 0 by default (instead of block 1).  If
185  you have block files around, prepend 1024 bytes to convert them, or
186  do a "1 OFFSET !" to establish the old behaviour.
187Gforth now does not translate newlines to LFs on reading.  Instead,
188  READ-LINE now interprets LF, CR, and CRLF as newlines.  Newlines on
189  output are in the OSs favourite format.
190SEE now disassembles primitives (or hex-DUMPs the code if no
191  disassembler is available).
192>HEAD (aka >NAME) now returns 0 (instead of the nt of ???) on failure.
193Syntax of prim changed: stack effects are now surrounded by
194  parentheses, tabs are insignificant.
195
196Operating environment:
197
198Gforth now produces a backtrace when catching an exception.
199On platforms supporting the Unix 98 SA_SIGINFO semantics, you get more
200  precise error reports for SIGSEGV and SIGFPE (e.g., "stack
201  underflow" instead of "Invalid memory address").
202Gforth now produces exit code 1 if there is an error (i.e., an
203  uncaught THROW) in batch processing.
204You can use "gforthmi --application ..." to build an image that
205  processes the whole command-line when invoked directly (instead of
206  through gforth -i).
207
208Ports:
209
210AIX.
21120% speedup on 604e under powerpc-unknown-linux-gnu,
21219%-29% speedup on Celeron with gcc-2.95.
213
214New words:
215
216Missing ANS Forth words: EKEY EKEY? EKEY>CHAR
217Timing words: CPUTIME UTIME
218Vector arithmetic: V* FAXPY
219FP comparison: F~ABS F~REL
220Deferred words: <IS> [IS]
221Nested number output: <<# #>>
222Exception handling: TRY RECOVER ENDTRY
223Directory handling: OPEN-DIR READ-DIR CLOSE-DIR FILENAME-MATCH
224Other: ]L PUSH-ORDER
225
226Miscellaneous:
227
228Significant extensions to the manual (added an introduction, among
229  other things), many of them due to a new team member: Neal Crook.
230Added assemblers and disassemblers for 386, Alpha, MIPS (thanks to
231  contributions by Andrew McKewan, Bernd Thallner, and Christian
232  Pirker).  Contributions of assemblers and disassemblers for other
233  architectures are welcome.
234
235
236User-visible changes between 0.3.0 and 0.4.0:
237
238Operating environment:
239
240Path handling: "." at the start of the path represents the directory
241  the nearest enclosing file resides in (if there is none: the working
242  directory). "~+" indicates the working directory.  The default path
243  now has "." in front.
244gforth and gforthmi is now more GNU standards compliant (wrt
245  command-line options).
246New command-line-option: --die-on-signal
247Errors are now directed to stderr.
248Stdout is now unbuffered, if it is a tty.
249User input device redirection (for filters) is now possible.
250
251Ports:
252
253Now runs on IRIX (and other MIPS-based systems without linker-flag -d).
254Direct threading now works on PowerPC (20% speedup on 604e).
255Better support for m68k (thanks to Andreas Schwab and Jorge Acereda).
256It is possible to create executables that contain the image (for
257  non-OS systems).
258
259Added a lot of embedded control (EC) stuff. Supported controllers and
260small CPUs are Siemens C16x, 8086, 6502, Mixed-Mode's FPGA MISC, Bernd Paysan's
2614stack processor. Not finished: ShBoom alias PSC1000, H8, AVR.
262
263New, changed, and removed words:
264
265Renamed F0 to FP0 (avoids unexpected behaviour in hex), added aliases
266  SP0, RP0, LP0 (recommended for future use) for S0, R0, L0.
267Renamed PARSE-WORD into SWORD (PARSE-WORD is used with the meaning of
268  NAME in OpenBoot and dpans6 A.6.2.2008)
269Added FPICK (suggested by Julian Noble).
270Added EXCEPTION.
271S" gforth" ENVIRONMENT? now produces the version-string.
272Changed representation of types in struct package, and correspondingly
273  changed names.
274
275Miscellaneous:
276
277Plain text documentation is now available in doc/gforth.txt.
278Documentation improvements.
279Wordlist structure changed.
280Added mini-oof.
281Reorganized files: added directories and reorganized many files into
282  them; renamed files into 8.3 format to work with completely broken
283  systems (but there are again some files that won't work there).
284Bug fixes.
285Various changes without log information only known as mega-patches.
286Cross compiler now also supports compilation only for undefined or forward
287referenced words. Plugins to support some native code generation
288(for PSC1000).
289More files in the compat library.
290
291
292
293User-visible changes between 0.2.1 and 0.3.0:
294
295Stack overflow detection by memory protection on most systems
296	(allocation with mmap).
297gforth.fi is now fully relocatable.
298fully relocatable images are now easier to create.
299added primitives K and UNDER+.
300Win32 support.
301Improved support for embedded controllers and other deprived environments.
302some bug fixes.
303added concept index; other documentation improvements.
304
305
306
307User-visible changes between 0.2.0 and 0.2.1:
308
309Bug fixes
310
311
312
313User-visible changes between 0.1beta and 0.2.0:
314
315Portability and Installation:
316
317Support architectures with buggy long longs (alpha-dec-osf).
318Better support for DOS and other non-Unix systems.
319Size changes through the command line are passed to the image (and
320saved with savesystem); the preamble specifies an interpreter and is
321propagated by save-system.
322
323Tools:
324
325Improved etags support.
326more.fs allows output paging.
327Added compat/ directory containing ANS implementations of Gforth features.
328Added tiny multitasker (tasker.fs).
329Added two alternatives for object-oriented programming: oof.fs, objects.fs.
330Added ans-report.fs (reports which words are used from which wordset).
331
332New words:
333
334Changed POPEN and PCLOSE to OPEN-PIPE and CLOSE-PIPE.
335Added FORM, ROWS, and COLS.
336added primitives EMIT-FILE, STDOUT, STDERR.
337Added TABLEs (case-sensitive wordlists).
338added POSTPONE,.
339Added the ability to combine arbitrary interpretation and compilation
340semantics (INTERPRET/COMPILE:); state-smart words were generally
341rewritten to use that mechanism.
342
343Changes to existing words:
344
345EMIT and TYPE now work through file words (and are redirectable).
346HEADER now stores the compilation wordlist in the header and REVEAL
347reveals into that wordlist.
348changed behaviour of SYSTEM (no longer returns wretval, but puts it in
349$?)  added (SYSTEM) ( c_addr u -- wretval wior ).
350' and ['] now give an error for compile-only words.
351
352-----
353Copyright (C) 1995,1996,1997,1998,2000,2003,2006,2007,2008,2013 Free Software Foundation, Inc.
354
355This file is part of Gforth.
356
357Gforth is free software; you can redistribute it and/or
358modify it under the terms of the GNU General Public License
359as published by the Free Software Foundation, either version 3
360of the License, or (at your option) any later version.
361
362This program is distributed in the hope that it will be useful,
363but WITHOUT ANY WARRANTY; without even the implied warranty of
364MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
365GNU General Public License for more details.
366
367You should have received a copy of the GNU General Public License
368along with this program. If not, see http://www.gnu.org/licenses/.
369
370
371% Local Variables:
372% fill-prefix: "  "
373