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