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