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