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