File: CHANGES

package info (click to toggle)
pfe 0.9.14-5
  • links: PTS
  • area: main
  • in suites: potato
  • size: 1,436 kB
  • ctags: 2,439
  • sloc: ansic: 14,095; sh: 438; asm: 113; makefile: 70; perl: 13
file content (526 lines) | stat: -rw-r--r-- 20,819 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
CHANGES MADE TO PFE:
====================

If I haven't fixed the bug you've seen, please drop a line to

Dirk Zoller  (duz@roxi.rz.fht-mannheim.de)


Thanks to your bug reports and suggestions,
I was able to fix these errors and do the following improvements:
=================================================================

0.9.13 -- 0.9.14

	- Fixed `READ-LINE' reporting EOF too late.
	- Fixed a bug in `CATCH' occurring with some (Sun acc) compilers.
	- Fixed things like `-.+' being a floating point number.
	- Fixed ~/.pferc not loaded.
	- Fixed `PLACE' (from the L&P-F83 words).
	- Made PFEINCLUDE include path work.
	- Made codes THROWn by signals compatible with gforth.
	- Finds files in another user's home like this `~user/...' now.
	- `SEE' now displays floating point literals in exponential form.
	- Added constants `S-K1' through `S-K10' for codes returned
	  by `EKEY' when shifted function keys are pressed.

0.9.12 -- 0.9.13

	- Made it faster by reordering some if/else clauses and
	    partially unrolling the inner interpreter loop.
	- Made `AHEAD' immediate as it should be.
	- Fixed yet more bugs in the configuration script.
	- Fixed an ugly bug: Instead of signal names SIGxyz the
	    numbers were defined as constants. The same bug messed
	    up search paths for source and block files.

0.9.11 -- 0.9.12

	- Extracted the glossary parts from dpANS6 for online help.
	- Fixed install target in Makefile.
	- Fixed several of the rewritten file access words.
	- Fixed several details in guesscfg.sh
	- Finally runs on NeXTstep (without -posix option).
	- Uses global register variables on M68K CPU now.

0.9.10 -- 0.9.11

	- Completely rewrote configuration, hopefully more reliable now.
	    Please read file INSTALL.
	- Fixed Bug in `SEARCH'.
	- Added source file `filesub.c' and moved some subroutines
	    for file access there. Partly rewrote file access words.
	    Namely `RESIZE-FILE' uses truncate() now if available.
	- Added words `COPY-FILE' and `MOVE-FILE', same stack effect
	    as `RENAME-FILE'.
	- Rewrote block word set, added another block extension word set,
	    each word with prefix `FILE-' takes additional fid. E.g.
		`10 an-fid FILE-LIST'
	    list block 10 in the opened file.
	- Added `LOAD"' to load from another block file like this
		1 LOAD" other-file"
	- Added support for Watcom C. It's not better than gcc.
	- Added Watcom compiled binaries. They are not perfect.

0.9.9 -- 0.9.10

	- Fixed `FCONSTANT' and `FVARIABLE' on HP 700.
	- Checked command line options -D and -d. Made
	  turnkey-applications work. See demo/tt.app.
	- Fixed a problem with the help index not readable.
	  Installation of the online help is still a mess.

0.9.8 -- 0.9.9

	- Added an `install' target to the makefile.
	- Added parameters to the config script:
	    CC="the C compiler"	overrides the tendency towards gcc
	    --prefix=dir	to specify a destination directory
	- Once more fiddled around with the terminal stuff.
	- Fixed several bugs on the DEC alpha architecture.
	- Rewrote `>FLOAT' not to rely on sscanf() any more.
	- Renamed a few things to avoid name clashes,
	    e.g. the -DBSD option now is -D_BSD. Read `install'.

0.9.7 -- 0.9.8

	(This was an accidental release and not announced.)
	- Added `HELP', see `help/README' for how to install,
	  then try `HELP ?STACK'.
	- Added command line options in ARGC / ARGV according to
	  an idea by Guenther Thomsen. See `demo/arguments'.
	- Moved configurable options to file `options.h'.
	- Fixed `>FLOAT', `FE.', `FLNP1', `REPRESENT'.
	- Fixed `PARSE'-bug introduced in 0.9.4: No refill at end of line.
	- Fixed `SEE' and debugger to display the value `TO' refers to.
	- Made `CATCH' and `THROW' aware of the floating point stack.
	- Made it significantly faster using GNU-C's global register
	  variable feature.

0.9.6 -- 0.9.7

	- Two new keys in the debugger allow counting of Forth
	  primitives executed. Simple profiling facility.
	- `WORD' issues an error if parsed string would be longer
	  than 255 chars.
	- More-like effect in `WORDS' improved by Andrew Houghton.
	- Variable `FLOAT-INPUT' when false disables input of
	  floating point numbers. Use on 386 without coprocessor.
	- Multiple buffers for `S"' and `C"' when used interactively.
	  Try: `S" world! " S" Hello " TYPE TYPE'.
	- Changed `POCKET', now takes an S"-buffer number.
	- New command line options and options in const.h:
		-E-	disables floating point input,
			good on 386 w/o 387 under DOS.
		-F	converts file names to lower case,
			good on UNIX-like systems when caps-lock is on.
		-P	specify number of buffers for `S"'.
	- Rewrote Files Word set for better C-source and error checking.
	- Fixed badly lined up display output of the debugger.
	- Fixed tilde-expansion of file names.
	- Fixed `S" WORDLISTS" ENVIRONMENT?' to return the
	  maximum search order length.
	- Fixed double number arithmetics to work with 64 bit machines.
	- Fixed a few other bugs introduced in 0.9.6
	- Minor fix in `SEE' eliminates empty line appearing sometimes.
	- Added online help utilities. Please check directory help
	  for how you can contribute to online help for pfe.

0.9.5 -- 0.9.6

	- Fixed a bug in the debugger (when EXECUTE is involved).
	- Fixed another old bug in the debugger (with locals).
	- Termcap driver now issues "ks" and "ke" strings,
	  hopefully fixing cursor key trouble on xterm et al.
	- Termcap driver: vt100 assumption made optional.
	  When disabled (default) input from unknown terminals
	  is received simply with fgets(), no echoing.
	  This works better in emacs shell mode.
	- Termcap driver: simplified handling of nonblocking input,
	  i.e. KEY? and fixed it to work with FreeBSD.
	- Added Lennart Benshop's 6809 simulator to the demos.
	- Improved keyboard handling of tetris demo.
	- Improved command line completion:
	  Type TAB twice to see possible completions.
	- WWORDS is like WORDS but with wildcards.
	  Usage:
			WWORDS pattern
		Form patterns like this:
			* matches any sequence of characters
			? matches any single character
			\ quotes * and ?
			any other character matches this character
		Try:
			WWORDS ??
			WWORDS E*
			WWORDS F*A*
			WWORDS *\?

0.9.4 -- 0.9.5

	- Fixed parse and word to accept any whitespace given blank
	  as delimiter. (Replaces a hack in READ-LINE.)
	- fixed EKEY?, now matches EKEY and KEY? matches KEY.
	- More constants for e-keys defined, K-LEFT etc.
	- Some renaming in the C source files to avoid name clashes
	  with the curses library.
	- added experimental terminal driver curses.c replacing termcap.c,
	  (formerly term-ux.c). The latter still is better.
	- added file shell.c with words for manipulating files and
	  directories interactively like with a shell:
		RM file		--- ; removes the file
		TOUCH file	--- ; sets last file modification time
					to current time or creates file
		CD directory	--- ; changes directory
		RMDIR directory --- ; removes directory
		MKDIR directory --- ; creates new directory
		LN file altname	--- ; creates link altname to file file
		MV file newname	--- ; moves or renames file to name newname
		CP file1 file1	--- ; copies file1 to file2
		LL pattern	--- ; lists files long matching pattern
		LS pattern	--- ; lists files short matching pattern

		$$		--- pid ; pid of the running pfe
		$UID		--- uid ; real user id of running pfe
		$EUID		--- uid ; real user id of running pfe
		$GID		--- gid ; your group id
		$HOME		--- addr cnt ; home directory
		$CWD		--- addr cnt ; current working directory
		PWD		--- ; print current working directory
		UMASK		new --- old ; change umask, returns old
	  Note: No globbing except in LS and LL, no directory as
		destination for cp, mv, ln.
		Not all of them available with EMX.

0.9.3 -- 0.9.4

	- Reworked the installation procedure:
	  replaced `sysdep.h' by a script `config' to
	  automagically determine the neccessary information
	  from your system. Please read file install!
	- After `ONLY FORTH' you get a bare ANSI-Forth.
	  Use `EXTENSIONS ALSO' to access the rest.
	- New concept of default search order: Say
			DEFAULT-ORDER
		and the active search order is saved. Say
			RESET-ORDER
		to return to the saved search order. ABORT executes
		RESET-ORDER. Thus you can decide which search order you
		get after an error.
		After system startup the following order is default:
			ONLY EXTENSIONS ALSO FORTH ALSO DEFINTIONS
	- Fixed signal handling with BSD-like systems.
	- Fixed handling of job control signals.
	- More L&P-F83-compatibility:
	  added `?LEAVE', `BS', `ASCII', `CONTROL', `UPC'.
	- Modified `PARSE': now refills at end of line when loading from file.
	- Added Tetris demo.
	- Fixed `+TO' applied to locals.
	- C-Source: Changed type name `CFA' to `Xt' and `pcode' to `pCode'.
	  (better uniformity: type names have one capital letter)
	- Dropped support for global register variables. It never worked.
a)	- Fixed several bugs introduced with 0.9.4, again signals...

0.9.2 -- 0.9.3

	- Fixed bugs introduced in 0.9.2.
	- `SIGNAL' allows to install a Forth word as signal handler.
	- Further tidied up terminal driver interface.
	  see term-ux.h for system dependent switches
	  related to unix terminal handling.
	- `term-ux.c': now assumes vt100 if termcap failes.
	- Merged files `syserr.h/c' into `main.c'.
	- EMX: Caps lock now works with IBM character set 437.
	- EMX: Improved signal handling though it still doesn't work all right.
	- Made `fakemake' script work with nested ifdefs.
a)	- Fixed EXIT discarding local variables (compiling).
	- Fixed debugger displaying too many local variables.
	- Fixed Ultrix bug introduced in 0.9.3
	- Fixed EMX displaying strange characters when debugging.

0.9.1 -- 0.9.2

	- Fixed `GET-ORDER' which returned the searched word lists
	  in the wrong order.
	- Fixed `FLUSH-FILE' now returning the status.
	- Fixed `BRANCH' and `?BRANCH'.
	- Fixed `SEE' refusing to show words after `DEBUG word'.
	- Removed `SAVE' and `RELOAD'. Sorry. They were incorrect.
	- Added command line options -D to save a dictionary image
	  containing compiled Forth code to a file.
	  Command line option -d reads such an image in later.
	- Added variable `APPLICATION': contains an xt or zero. The
	  xt is executed after startup instead of `QUIT'. Use
	  this with options -D/-d to create turnkey applications.
	- Added variable `RESET-ORDER'. After `RESET-ORDER OFF' the
	  search order isn't reset by `ABORT', i.e. after errors.
	- Added `ARGC' and `ARGV' making the shell command line options
	  visible to FORTH.
	- Now includes ~/.pferc (name can be changed in const.h) on startup.
	- In const.h: added ISO_CHARSET to enable accents and "umlauts"
	  on all machines supporting them, not only on Linux.
	- Added file `unix.c' and moved some unix-idosycrasies there.
	- Added file `yours.c' for your own primitives.
	- Added terminal driver for DOS-OS/2-EMX in file `term-emx.c'.
	- Updated installation hints for DOS users -- please read them.
	- Use environment variable PFEOPTIONS to set your favourite
	  command line options permanently.
	- Split file support.c in support.c and dictnry.c.
	- Split file term.c in term.c and term-ux.c separating system
	  dependencies. When porting, please write separate files
	  term-xxx.c for completely different machines xxx and set
	  variable TERMO in Makefile accordingly.
	- C-source: renamed several variables and structure components
	  for better readability, added macros to access Forth-
	  variables more easily.
	- C-source: Renamed catch() to cAtch() since "catch" becomes
	  a keyword in C++.
	- Makefile: common options made default options.

0.9.0 -- 0.9.1

	- search path and default extensions for include- and block files.
	  See source file `const.h' for defaults,
	  environment variable `PFEINCLUDE' and command line option `-Ipath'.
	- `EXPAND-FN' ( addr1 cnt1 addr2 --- addr2 cnt2 )
	  expands a given file name with path and extension.
	- added variable `LAST' pointing to the most recently CREATEd
	  word. Changed `DOES>' to work with this variable instead
	  of `LATEST' (which is - roughly - `CURRENT @ @').
	- added variable `REDEFINED-MSG'. If false, the message
	  `"xxx" is redefined' is omitted.
	- `SOURCE-LINE' returns the line number while INCLUDing a file.

0.8.11 -- 0.9.0

	- Included Kevin Haddock's structure tool. See file `struct.4'.
	- Ported to DOS and OS/2 using Eberhard Mattes' `emx'-environment.
	- C standard io: stdin, stdout, stderr now visible as Forth-files
	  with the obvious names: `STDIN', `STDOUT' and `STDERR'.
	- Can be used as filter now: Interprets stdin (if not a terminal)
	  until EOF and exits.
	- Added word `#!' with the same meaning as `REFILL'
	  to support shell scripts like this:
			#! ./pfe -q
			1 2 3 4 + + + . BYE
a)	- Improved fakemake-script by Giorgio Richelli.
	- Changed directory organization. Sources now in `src'.
	- Changed directory name inside archive for unpacking in DOS.
	- Fixed a floating point alignment bug on HP-UX.
	- Block editor:	^KL interprets current line,
			^KB loads current block.

0.8.10 -- 0.8.11

	- Included Kevin Haddock's interface to Linux' shared libraries.
	  Linux users see README.linux-shlibs. This is experimental.
	- Several fixes to `SEE'.
	- Fixed `SEARCH-WORDLIST'.
	- In case pfe fails to detect the text window size,
	  the command line option -t can be used. E.g.:
			-t132x28
	  makes pfe assume the screen size was 132 columns, 28 rows.
	- Slightly changed inner interpreter.
	- Prepared support for global register variables, see `sysdep.h'.
	  (HP-UX users: please read INSTALLATION)
	- Moving C sources towards the GNU indentation style
	  (GNU-emacs' c-mode with default settings).

0.8.9 -- 0.8.10

	- Ported it to ULTRIX.
	- Renamed constants: `XMAX' to `COLS' and `YMAX' to `ROWS'.
	  `XMAX' and `YMAX' might some day become the pixel size
	  of a graphics window.
	- Added support for hex number input regardless of `BASE':
	  In `const.h' define PREFIX_HEX as prefix character,
	  e.g. '$' to make pfe understand $100 as 256.
	- Same support exists for binary numbers, prefix defaults to '%'.
	- Fixed `VALUE' to expect an initializer when defining a value.

0.8.8 -- 0.8.9

	- Added multi-dimensional array support, see `library.4'.
	- Fixed a bug in the query to the termcap database when using
	  the System V curses emulation of termcap functions. This
	  bug led to abuse of malloc()ed memory and to very severe
	  problems on some machines...
	- Added `reliable' signal() using sigaction() according to
	  Stevens. It has been reported however that this is
	  unreliable at least on Linux. So don't define USE_SIGACTION.

0.8.7 -- 0.8.8

	- Made aware of changing window size when running in an xterm.
	- Added file `termcap.linux-xterm'
	  with a modified termcap-entry for xterm under Linux.
	- Modified the return codes of EKEY.
	- `ORDER' shows the `CURRENT' vocabulary too.
	- GET-ORDER doesn't report the `ONLY' word list occuring
	  at the last position in the search order any more.
	- Added a few words to `library.4'.

0.8.6 -- 0.8.7

	- Fixed `RENAME'-bug.
	- Several slight changes to make it acceptable to a C++-compiler.
	- Added `+TO'.
	- More (shell) command line options.
	- Begun with man-page. Have a look at `pfe.1' with
	  nroff -t -man pfe.1 | more
	- changed INSTALL, system specific hints for SGI and HP

0.8.5 -- 0.8.6

	- Simple debugger: Say `DEBUG XYZ' and further executions
	  of `XYZ' will be done single stepping. Works with Colon-
	  definitions and DOES>-defined words.
	  Type '?' or 'H' at the debugger prompt to see available keys.
	  Use `NO-DEBUG XYZ' to restore `XYZ' to normal.
	- Added file `lpf83.c' to provide some compatibility to
	  Laxen&Perry's F83. Moved some definitions to that file and
	  added some more.

0.8.4 -- 0.8.5

	- Improved SEE, produces nicely formatted output now.
	  This required some major changes to the internal
	  organization of the compiler.
	- KEY fixed for national characters with codes > 127.
	- Command line completion can be excluded from compilation.
	- Some changes to *maybe* allow compilation on 64 Bit machines.
a)
	- Fixed two bugs introduced in 0.8.5
	- Commandline supports configurable function keys. Try:
		: DIR SYSTEM" ls -l" ;  K1 EXECUTES DIR
	  then press F1!

0.8.3 -- 0.8.4

	- C@ no more sign-extends the byte.
	- Fixed `CONVERT'.
	- Fixed error condition after incomplete `READ-FILE'/`WRITE-FILE'.
	- Commandline does completion of a word on tab-key.
	- `RANDOM' and `SRAND' provide pseudo random numbers.
	- Improved `SEE' a little -- yet still not satisfying.
	- Moved compiler internals related declarations to file `compiler.h'.

0.8.2 -- 0.8.3

	- `MS' utilizes usleep() if available.
	- `U-SEC' returns an unsigned quantity representing
	  the system time in microseconds.
	- Added file `library.4' open for your source code enhancements.

0.8.1 -- 0.8.2

	- `REPRESENT' fixed.
	- `.S' prints floating stack too.
	- Lots of ports done by Marko Teiste.
	- `fakemake' script by Marko Teiste eases switching
	  to your platform if your make knows no conditionals.

0.8.0 -- 0.8.1

	- `SAVE filename' saves entire dictionary.
	- `RELOAD filename' reloads such a saved dictionary.
	- Command line option -d loads a dictionary at startup.
	- Fixed number input conversion with `LOWER-CASE ON'.
	- Vectorized I/O:
	  . `EMIT' does a `*EMIT* @ EXECUTE'
	  . which by default executes `(EMIT)'
	  . same applies to KEY, EXPECT and TYPE
	  . `STANDARD-I/O' restores the defaults

0.7.6 -- 0.8.0

	- Fixed DNEGATE with HP-UX' c89-compiler.
	- Fixed floating point alignment problem.
	- Modified term.c, supports optionally ioctl() instead of tcsetattr().
	- Cooperates with job control now.
	- Connected QUIT to THROW.
	- Executable name selectable in the Makefile (changed it to `pfe').
	- Changed EDT to EDIT-TEXT and EDIT to EDIT-BLOCK.
	- After an error during compilation:
	  EDIT-ERROR jumps to the source line.
	- `C"' can be used outside definitions.
	- Fixed `COMPILE,' and `[IF]' with `LOWER-CASE ON'.

0.7.5 -- 0.7.6

	- Fixed `ORDER' and `VOCS'.
	- Added HP-UX support.
	- Separated file `forth-83.c' from `misc.c'.
	- Independent from gcc now, no usage of `long long' any more.

0.7.4 -- 0.7.5

	- Fixed floored divide bug.
	- Fixed COMPARE bug.
	- Changed error checking in control flow words to allow
	  "extended control flow patterns".
	- Changed ':' to not immediate.
	- Passes tester.fr/core.fr, which are included in the distribution.
	  I did a small fix to core.fr, definition `GP7'.
	- Modified control flow words compiling strategy
	  to allow a more modular C-source organization.
	- Simplified term.c, uses only POSIX.1-conforming system calls.
	- Simplified signal handling, more flexible.
	- Enabled break (^U) and quit (default ^\) signals.
	  Break leads to ABORT, quit terminates the system.
	- Changed file name "missing.h" to "sysdep.h" and moved all
	  system dependend constants and definitions there,
	  not only "missing" ones.
	- Added file `sysdep.c' for system dependend definitions.
	- Added some System V Release 2 support. See `sysdep.h/-.c'.
	- More flexible Makefile

0.7.3 -- 0.7.4

	- Fixed READ-LINE bug, INCLUDED works again.
	- Some minor bugs in the interpreter fixed.
	- Command line history now fully operable.
	  Try up/down-arrow, ^E/^X.
	- More block-editor help. Pops up 1 second after ^Q/K/O.
	- Begun with test-suite. Try 'make test'.
	- Adapded file TODO to new insights.
a)
	- Fixed local variable bug.

0.7.2 -- 0.7.3

	- UNTIL now really immediate.
	- Block editor: find and replace fixed.
	- Block editor: stamps changed screens now with LOGNAME
	  and date/time. Turn feature on/off with ^OS.
	- Commandline allows recall of one command with ^E now.
	- Variable LOWER-CASE added. If 0<> "dup" finds "DUP".
	- Command line option -l defaults LOWER-CASE to TRUE.
	- ^C at the command line toggles CAPS-mode: lower and
	  upper case characters are exchanged.
	- ^OC in the block editor toggles similar CAPS mode.

0.7.1 -- 0.7.2

	- Fixed FCONSTANT.
	- File access word set completed.
	- POCKET (-- addr u) added for interactive use of S".
	- USING and EDIT deal with read-only files now.
	  hint: Do EMPTY-BUFFERS if you accidentally UPDATEd
	  a block in a readonly file.
	- EKEY reworked, now returns a distinct code for every key
	  termcap informs about.
	- C-source: better naming of several structure members.

0.7.0 -- 0.7.1

	- Including file from command line "activated".
	- POSTPONE fixed
	- BLOCK/BUFFER/UPDATE more stable now
	- The block editor learned:
	  . how to search (^QF) and replace (^QA),
	  . how to insert (^KV) and delete (^KG) screens,
	  . how to display some help - there will be more.
	- Compressed the distribution with compress instead of gzip.
	- Less strong error checking in signal handling.
	- Runs with AIX 3.x now (BIG_ENDIAN = 1, -DAIX3).