Merge pull request #21 from ellerh/fix-+loop
[pforth] / releases.txt
CommitLineData
8e9db35f
PB
1Release History for pForth - a Portable ANS-like Forth written in ANSI 'C'
2
3Documentation for pForth at http://www.softsynth.com/pforth/
4
5V28 - unreleased
6 - fixes for MinGW build
7
8V27 - 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
23V26 5/20/2010
24 - 64-bit support for M* UM/MOD etc by Aleksej Saushev. Thanks Aleksej!
25
26V25 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
32V24 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
37V23 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
41V23 7/20/2008
42 - Reorganized for Google Code project.
43
44V22 (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
56V21 - 9/16/1998
57 - Fixed some compiler warnings.
58
59V20
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
81V19 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
101V18
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
110V17
111 - Fixed input of large floats. 0.7071234567 F. used to fail.
112
113V16
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
127V15 - 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
147V14 - 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
158V13 - 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
175V12 - 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
184V11 - 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
192V10 - 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
203V9 - 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
212V8 - 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
221V8 - 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
230V7 - 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
238V6 - 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
243V5 - 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
250V4 - 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
261V3 - 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
266V2 - 8/94
267 - made improvements necessary for use with M2 Verilog testing
268
269V1 - 5/94
270 - built pForth from various Forths including HMSL
271
272----------------------------------------------------------
273
274
275Enjoy,
276Phil Burk