Add MINGW suport.
[debian/pforth] / releases.txt
1 Release History for pForth - a Portable ANS-like Forth written in ANSI 'C'\r
2 \r
3 Documentation for pForth at http://www.softsynth.com/pforth/\r
4 \r
5 V28 - unreleased\r
6         - fixes for MinGW build\r
7 \r
8 V27 - 11/22/2010\r
9     - Fixed REPOSITION-FILE FILE-SIZE and FILE-POSITION.\r
10       They used to use single precision offset. Now use double as specified.\r
11     - Delete object directories in Makefile clean.\r
12     - Fixed "Issue 4: Filehandle remains locked upon INCLUDE error".\r
13       http://code.google.com/p/pforth/issues/detail?id=4&can=1\r
14     - Fixed scrambled HISTORY on 64-bit systems. Was using CELL+ but really needed 4 +.\r
15     - Fixed floating point input. Now accepts "1E" as 1.0. Was Issue #2.\r
16     - Fixed lots of warning and made code compatible with C89 and ANSI. Uses -pedantic.\r
17     - Use fseek and ftell on WIN32 instead of fseeko and ftello.\r
18     - Makefile is now more standard. Builds in same dir as Makefile. Uses CFLAGS etc.\r
19     - Add support for console IO with _WATCOMC_\r
20     - Internal CStringToForth and ForthStringToC now take a destination size for safety.\r
21     - Run units tests for CStringToForth and ForthStringToC if PF_UNIT_TESTS is defined.\r
22 \r
23 V26  5/20/2010\r
24     - 64-bit support for M* UM/MOD etc by Aleksej Saushev. Thanks Aleksej!\r
25     \r
26 V25  5/19/2010\r
27     - Added 64-bit CELL support contributed by Aleksej Saushev. Thanks Aleksej!\r
28     - Added "-x c" to Makefile CCOPTS to prevent confusion with C++\r
29         - Allow space after -d command line option.\r
30         - Restore normal tty mode if pForth dictionary loading fails.\r
31          \r
32 V24 2/20/09\r
33         - Fixed Posix IO on Mac. ?TERMINAL was always returning true.\r
34         - ACCCEPT now emits a space at end of line before output.\r
35         - Fixed RESIZE because it was returning the wrong address.\r
36 \r
37 V23 8/4/2008\r
38         - Removed -v option from mkdir in build/unix/Makefile. It was not supported on FreeBSD.\r
39           Thank you Alexsej Saushev for reporting this.\r
40         \r
41 V23  7/20/2008\r
42     - Reorganized for Google Code project.\r
43     \r
44 V22  (unreleased)\r
45     - Added command line history and cursor control words.\r
46         - Sped up UM* and M* by a factor of 3. Thanks to Steve Green for suggested algorithm.\r
47         - Modified ACCEPT so that a line at the end of a file that does NOT have a line\r
48             terminator will now be processed.\r
49         - Use _getch(), _putch(), and _kbhit() so that KEY, EMIT and ?TERMINAL will work on PC.\r
50         - Fixed  : foo { -- } 55 ;  - Was entering local frame but not exiting. Now prints error.\r
51     - Redefined MAKE_ID to protect it from 16 bit ints\r
52     - John Providenza says "If you split local variables onto 2 lines, PForth crashes." Fixed. Also allow \\r
53     - Fixed float evaluation in EVALUATE in "quit.fth".\r
54     - Flush register cache for ffColon and ffSemiColon to prevent stack warnings from ;\r
55 \r
56 V21 - 9/16/1998\r
57         - Fixed some compiler warnings.\r
58 \r
59 V20\r
60     - Expand PAD for ConvertNumberToText so "-1 binary .s" doesn't crash.\r
61       Thank you Michael Connor of Vancouver for reporting this bug.\r
62 \r
63     - Removed FDROP in REPRESENT to fix stack underflow after "0.0 F.".\r
64       Thank you Jim Rosenow of Minnesota for reporting this bug.\r
65         - Changed pfCharToLower to function to prevent macro expansion bugs under VXWORKS\r
66       Thank you Jim Rosenow of Minnesota for reporting this bug.\r
67 \r
68         - "0.0 F~" now checks actual binary encoding of floats. Before this it used to just\r
69           compare value which was incorrect. Now "0.0 -0.0 0.0 F~" returns FALSE.\r
70 \r
71         - Fixed definition of INPUT$ in tutorial.\r
72       Thank you Hampton Miller of California for reporting this bug.\r
73 \r
74         - Added support for producing a target dictionary with a different\r
75           Endian-ness than the host CPU.  See PF_BIG_ENDIAN_DIC and PF_LITTLE_ENDIAN_DIC.\r
76 \r
77         - PForth kernel now comes up in a mode that uses BASE for numeric input when\r
78           started with "-i" option.  It used to always consider numeric input as HEX.\r
79           Initial BASE is decimal.  \r
80 \r
81 V19  4/1998\r
82 \r
83         - Warn if local var name matches dictionary, : foo { count -- } ;\r
84         - TO -> and +-> now parse input stream. No longer use to-flag.\r
85         - TO -> and +-> now give error if used with non-immediate word.\r
86         - Added (FLITERAL) support to SEE.\r
87         - Aded TRACE facility for single step debugging of Forth words.\r
88         - Added stub for ?TERMINAL and KEY? for embedded systems.\r
89         - Added PF_NO_GLOBAL_INIT for no reliance on global initialization.\r
90         - Added PF_USER_FLOAT for customization of FP support.\r
91         - Added floating point to string conversion words (F.) (FS.) (FE.)\r
92             For example:   : F.   (F.)  TYPE  SPACE  ;\r
93         - Reversed order that values are placed on return stack in 2>R\r
94           so that it matches ANS standard.  2>R is now same as SWAP >R >R\r
95           Thank you Leo Wong for reporting this bug.\r
96 \r
97         - Added PF_USER_INIT and PF_USER_TERM for user definable init and term calls.\r
98 \r
99         - FIXED memory leak in pfDoForth()\r
100 \r
101 V18\r
102         - Make FILL a 'C' primitive.\r
103         - optimized locals with (1_LOCAL@)\r
104         - optimized inner interpreter by 15%\r
105         - fix tester.fth failures\r
106         - Added define for PF_KEY_ECHOS which turns off echo in ACCEPT if defined.\r
107         - Fixed MARKER. Was equivalent to ANEW instead of proper ANS definition.\r
108         - Fixed saving and restoring of TIB when nesting include files.\r
109 \r
110 V17\r
111         - Fixed input of large floats.  0.7071234567 F.  used to fail.\r
112 \r
113 V16\r
114         * Define PF_USER_CUSTOM if you are defining your own custom\r
115           'C' glue routines.  This will ifndef the published example.\r
116         - Fixed warning in pf_cglue.c.\r
117         - Fixed SDAD in savedicd.fth.  It used to generate bogus 'C' code\r
118           if called when (BASE != 10), as in HEX mode.\r
119         - Fixed address comparisons in forget.fth and private.fth for\r
120           addresses above 0x80000000. Must be unsigned.\r
121         - Call FREEZE at end of system.fth to initialize rfence.\r
122         - Fixed 0.0 F. which used to leave 0.0 on FP stack.\r
123         - Added FPICK ( n -- ) ( i*f -- i*f f[n] )\r
124         - .S now prints hex numbers as unsigned.\r
125         - Fixed internal number to text conversion for unsigned nums.\r
126 \r
127 V15 - 2/15/97\r
128         * If you use PF_USER_FILEIO, you must now define PF_STDIN and PF_STDOUT\r
129           among other additions. See "pf_io.h".\r
130         * COMPARE now matches ANS STRING word set!\r
131         - Added PF_USER_INC1 and PF_USER_INC2 for optional includes\r
132           and host customization. See "pf_all.h".\r
133         - Fixed more warnings.\r
134         - Fixed >NAME and WORDS for systems with high "negative" addresses.\r
135         - Added WORDS.LIKE utility.  Enter:   WORDS.LIKE EMIT\r
136         - Added stack check after every word in high level interpreter.\r
137           Enter QUIT to enter high level interpreter which uses this feature.\r
138         - THROW will no longer crash if not using high level interpreter.\r
139         - Isolated all host dependencies into "pf_unix.h", "pf_win32.h",\r
140           "pf_mac.h", etc.  See "pf_all.h".\r
141         - Added tests for CORE EXT, STRINGS words sets.\r
142         - Added SEARCH\r
143         - Fixed WHILE and REPEAT for multiple WHILEs.\r
144         - Fixed .( ) for empty strings.\r
145         - Fixed FATAN2 which could not compile on some systems (Linux gcc).\r
146 \r
147 V14 - 12/23/96\r
148         * pforth command now requires -d before dictionary name.\r
149                 Eg.   pforth -dcustom.dic test.fth\r
150         * PF_USER_* now need to be defined as include file names.\r
151         * PF_USER_CHARIO now requires different functions to be defined.\r
152                 See "csrc/pf_io.h".\r
153         - Moved pfDoForth() from pf_main.c to pf_core.c to simplify\r
154           file with main().\r
155         - Fix build with PF_NO_INIT\r
156         - Makefile now has target for embedded dictionary, "gmake pfemb".\r
157 \r
158 V13 - 12/15/96\r
159         - Add "extern 'C' {" to pf_mem.h for C++\r
160         - Separate PF_STATIC_DIC from PF_NO_FILEIO so that we can use a static\r
161           dictionary but also have file I/O.\r
162         - Added PF_USER_FILEIO, PF_USER_CHARIO, PF_USER_CLIB.\r
163         - INCLUDE now aborts if file not found.\r
164         - Add +-> which allows you to add to a local variable, like +! .\r
165         - VALUE now works properly as a self fetching constant.\r
166         - Add CODE-SIZE and HEADERS-SIZE which lets you resize\r
167           dictionary saved using SAVE-FORTH.\r
168         - Added FILE?. Enter "FILE? THEN" to see what files THEN is defined in.\r
169         - Fixed bug in local variables that caused problems if compilation\r
170           aborted in a word with local variables.\r
171         - Added SEE which "disassembles" Forth words. See "see.fth".\r
172         - Added PRIVATE{ which can be used to hide low level support\r
173           words.  See "private.fth".\r
174         \r
175 V12 - 12/1/96\r
176         - Advance pointers in pfCopyMemory() and pfSetMemory()\r
177           to fix PF_NO_CLIB build.\r
178         - Increase size of array for PF_NO_MALLOC\r
179         - Eliminate many warnings involving type casts and (const char *)\r
180         - Fix error recovery in dictionary creation.\r
181         - Conditionally eliminate some include files for embedded builds.\r
182         - Cleanup some test files.\r
183 \r
184 V11 - 11/14/96\r
185         - Added support for AUTO.INIT and AUTO.TERM.  These are called\r
186           automagically when the Forth starts and quits.\r
187         - Change all int to int32.\r
188         - Changed DO LOOP to ?DO LOOP in ENDCASE and LV.MATCH\r
189           to fix hang when zero local variables.\r
190         - Align long word members in :STRUCT to avoid bus errors.\r
191         \r
192 V10 - 3/21/96\r
193         - Close nested source files when INCLUDE aborts.\r
194         - Add PF_NO_CLIB option to reduce OS dependencies.\r
195         - Add CREATE-FILE, fix R/W access mode for OPEN-FILE.\r
196         - Use PF_FLOAT instead of FLOAT to avoid DOS problem.\r
197         - Add PF_HOST_DOS for compilation control.\r
198         - Shorten all long file names to fit in the 8.3 format\r
199           required by some primitive operating systems. My\r
200           apologies to those with modern computers who suffer\r
201           as a result.  ;-)\r
202         \r
203 V9 - 10/13/95\r
204         - Cleaned up and documented for alpha release.\r
205         - Added EXISTS?\r
206         - compile floats.fth if F* exists\r
207         - got PF_NO_SHELL working\r
208         - added TURNKEY to build headerless dictionary apps\r
209         - improved release script and rlsMakefile\r
210         - added FS@ and FS! for FLPT structure members\r
211 \r
212 V8 - 5/1/95\r
213         - Report line number and line dump when INCLUDE aborts\r
214         - Abort if stack depth changes in colon definition. Helps\r
215           detect unbalanced conditionals (IF without THEN).\r
216         - Print bytes added by include.  Helps determine current file.\r
217         - Added RETURN-CODE which is returned to caller, eg. UNIX shell.\r
218         - Changed Header and Code sizes to 60000 and 150000\r
219         - Added check for overflowing dictionary when creating secondaries.\r
220 \r
221 V8 - 5/1/95\r
222         - Report line number and line dump when INCLUDE aborts\r
223         - Abort if stack depth changes in colon definition. Helps\r
224           detect unbalanced conditionals (IF without THEN).\r
225         - Print bytes added by include.  Helps determine current file.\r
226         - Added RETURN-CODE which is returned to caller, eg. UNIX shell.\r
227         - Changed Header and Code sizes to 60000 and 150000\r
228         - Added check for overflowing dictionary when creating secondaries.\r
229         \r
230 V7 - 4/12/95\r
231         - Converted to 3DO Teamware environment\r
232         - Added conditional compiler [IF] [ELSE] [THEN], use like #if\r
233         - Fixed W->S B->S for positive values\r
234         - Fixed ALLOCATE FREE validation.  Was failing on some 'C' compilers.\r
235         - Added FILE-SIZE\r
236         - Fixed ERASE, now fills with zero instead of BL\r
237         \r
238 V6 - 3/16/95\r
239         - Added floating point\r
240         - Changed NUMBER? to return a numeric type\r
241         - Support double number entry, eg.   234.  -> 234 0\r
242 \r
243 V5 - 3/9/95\r
244         - Added pfReportError()\r
245         - Fixed problem with NumPrimitives growing and breaking dictionaries\r
246         - Reduced size of saved dictionaries, 198K -> 28K in one instance\r
247         - Funnel all terminal I/O through ioKey() and ioEmit()\r
248         - Removed dependencies on printf() except for debugging\r
249 \r
250 V4 - 3/6/95\r
251         - Added smart conditionals to allow IF THEN DO LOOP etc.\r
252           outside colon definitions.\r
253         - Fixed RSHIFT, made logical.\r
254         - Added ARSHIFT for arithmetic shift.\r
255         - Added proper M*\r
256         - Added <> U> U<\r
257         - Added FM/MOD SM/REM /MOD MOD */ */MOD\r
258         - Added +LOOP EVALUATE UNLOOP EXIT\r
259         - Everything passes "coretest.fth" except UM/MOD FIND and WORD\r
260         \r
261 V3 - 3/1/95\r
262         - Added support for embedded systems: PF_NO_FILEIO\r
263         and PF_NO_MALLOC.\r
264         - Fixed bug in dictionary loader that treated HERE as name relative.\r
265         \r
266 V2 - 8/94\r
267         - made improvements necessary for use with M2 Verilog testing\r
268 \r
269 V1 - 5/94\r
270         - built pForth from various Forths including HMSL\r
271 \r
272 ----------------------------------------------------------\r
273         \r
274 \r
275 Enjoy,\r
276 Phil Burk\r