diff -cbr pfe-0-9.12/CHANGES pfe-0.9.13/CHANGES *** pfe-0-9.12/CHANGES Thu Apr 27 21:00:42 1995 --- pfe-0.9.13/CHANGES Thu Jul 13 10:15:47 1995 *************** *** 10,15 **** --- 10,25 ---- I was able to fix these errors and do the following improvements: ================================================================= + 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. diff -cbr pfe-0-9.12/INSTALL pfe-0.9.13/INSTALL *** pfe-0-9.12/INSTALL Tue Apr 25 13:57:05 1995 --- pfe-0.9.13/INSTALL Sat May 20 12:39:21 1995 *************** *** 33,43 **** Overview ! 1) If your system is one of Linux, FreeBSD, AIX 3.2, AIX 1.2, HP-UX on ! HP 700/800, DEC Ultrix RISC or OSF/1 2.1 on a DEC Alpha: ! Simply change to directory pfexxx/src and type `sh config.sh'. ! This makes two important files: Makefile contains compiler options and dependencies --- 33,44 ---- Overview ! 1) If your system is one of Linux, FreeBSD, NeXT, AIX 3.2, AIX 1.2, ! HP-UX on HP 400/700/800, DEC Ultrix RISC or OSF/1 2.1 on a DEC Alpha: ! Simply change to directory pfexxx/src and type `sh config.sh' ! or `ksh config.sh' if a ksh is available. This makes two ! important files: Makefile contains compiler options and dependencies *************** *** 48,56 **** be all. 2) If your Unix-system is not among those I tried, things are only ! a little more difficult. ! Change to directory pfexxx/src and type `sh config.sh'. Again this ! generates two files: makefile dependencies and a generic version of compiler options --- 49,56 ---- be all. 2) If your Unix-system is not among those I tried, things are only ! a little more difficult. Change to directory pfexxx/src and ! type `[k]sh config.sh'. Again this generates two files: makefile dependencies and a generic version of compiler options *************** *** 87,96 **** config/`uname`/depend.mk # the dependencies if one of these is missing, `config.sh' uses "config/default/*" ! instead. (Sort of object oriented concept, you see the ! "inheritance" priciple here? :-) Put the other way round: In ! "config/default/*.mk" a complete Makefile is provided. You can ! override parts of that in a system specific "config/`uname`/*.mk". `config.h' may need some overworking since the header files on many --- 87,96 ---- config/`uname`/depend.mk # the dependencies if one of these is missing, `config.sh' uses "config/default/*" ! instead. Sort of object oriented concept, you see the "inheritance" ! priciple here? :-) Put the other way round: In "config/default/*.mk" ! a complete Makefile is provided. You can override parts of that ! in a system specific "config/`uname`/*.mk". `config.h' may need some overworking since the header files on many *************** *** 102,119 **** emx/gcc and with Watcom C) `config.h' is ok without manual changes. If you don't seem to have definitions that `config.sh' finds in ! your header files or if `config.sh' doesn't find definitions that ! you know your system has, then check the header files if these ! definitions are conditional. If they are, define the neccessary ! symbols to activate them as a command line option -D.. in ! config/`uname`/options.mk'. For instance HP-UX knows very little ! about it's own library if not either ! ! -D_POSIX_SOURCE ! or -D_XOPEN_SOUCE ! or -D_HPUX_SOURCE or or or... ! is set. Then run config.sh again. Check config.h for neccessary changes according to the next section below. Most important: check if you should set the -D_BSD-switch. --- 102,122 ---- emx/gcc and with Watcom C) `config.h' is ok without manual changes. If you don't seem to have definitions that `config.sh' finds in ! your header files or if `config.sh' doesn't find definitions ! that you know your system has, then check the header files of ! your system (usually in /usr/include) if these definitions are ! conditional. Often important things only get declared when a certain ! preprocessor symbol is defined. Possible such symbols to look for are: ! ! _POSIX_SOURCE ! _XOPEN_SOURCE ! _yoursystem_SOURCE ! ! If you find lots of `#ifdef _yxz_SOURCE' around the important ! declarations then define that symbol in a commandline option ! like this in file src/config/`uname`/options.mk : ! OPTIONS = -D_xyz_SOURCE ... Check config.h for neccessary changes according to the next section below. Most important: check if you should set the -D_BSD-switch. *************** *** 126,133 **** At the time of this writing, the config script checks for the following conditions. When you read this, a few more may have been added. So have a look at what the script `guesscfg.sh' tries to do ! (unlike the GNU autoconfigure it's quite easy to read), if you ! experience problems you can't solve with these informations: HAVE_AH_TRIG define this if your system has asinh, acosh, atanh defined in it's -lm library and math.h header. --- 129,137 ---- At the time of this writing, the config script checks for the following conditions. When you read this, a few more may have been added. So have a look at what the script `guesscfg.sh' tries to do ! (unlike the scripts generated by GNU autoconfigure it's quite easy ! to read), if you experience problems you can't solve with these ! informations: HAVE_AH_TRIG define this if your system has asinh, acosh, atanh defined in it's -lm library and math.h header. *************** *** 150,161 **** HAVE_SYS_SIGLIST define this if your system has the global variable char *sys_siglist[] containing signal names. ! HAVE_ATEXIT define this if your system has atexit(). Otherwise declare like this: typedef void (*atexit_fp) (void); ! void atexit (atexit_fp); ! #define exit(X) trick_exit(X) HAVE_RAISE define this if your system has the raise() function. Otherwise define like this: --- 154,170 ---- HAVE_SYS_SIGLIST define this if your system has the global variable char *sys_siglist[] containing signal names. ! ! atexit() availability: ! ! #define eXit(X) exit(X) ! ! define this if your system has atexit(). Otherwise declare like this: typedef void (*atexit_fp) (void); ! int atexit (atexit_fp); ! void eXit (int); HAVE_RAISE define this if your system has the raise() function. Otherwise define like this: *************** *** 211,220 **** SunOS). If your system has this feature, define the symbol. - If your system doesn't define fpos_t, then define like this: - - #define fpos_t long - If your compiler can't handle the const-keyword, define like this: #define const --- 220,225 ---- *************** *** 296,333 **** How to port to a non-Unix system: ================================= ! The script `config.sh' can be run on some non-unix systems too if you ! install a Bourne or Korn shell. I ran it with every shell I could get ! my hands on and I think it's portable to every Bourne shell that knows ! shell functions. I used it on Unix with ash, bash, zsh, AIX' and ! OSF/1's sh and ksh. ! ! On OS/2 I successfully used bash 1.12 but ran into trouble when saving ! the scripts with CR/LF line ends. Use recode ibmpc:latin1 after ! editing the scripts when your editor saved with DOS-style line ends. ! With PD korn shell 4.9 first start the shell and use the `.' operator ! to run the script. The ms_shell dies from some internal bug. ! ! If you can, get a shell and those few unix utilities (a good make in ! the first place) and try to get config.sh to run. Make a subdirectory ! `config/yoursystem' and copy the makefile-parts from `config/default' ! to that place. Change what is neccessary. See config/WATCOM for an ! example of more extensive changes. This compiler isn't unix-like at ! all. If you can't run `config.sh' then compile `src/check_c.c' with the C-compiler you want to use, run it and place it's output in a file `config.h'. Read the above section and the more up to date scriptfile `guesscfg.sh' about options in config.h and edit config.h to describe ! your system. Refer to your C-compiler's documentation and header files. Write at least one new source file for the terminal stuff. Check ! `src/term.h' for which definitions are exported by the terminal driver ! and rewrite them from scratch e.g. in a file called `src/term-st.c' ! for an Atari. Then set the variable TERM_O in Makefile to your file's ! name, e.g. `term-st.o'. ! For an example you can refer to `src/termunix.c' (complex), ! `src/term-emx.c' (recommended) or `src/curses.c'. Configuring the Forth system --- 301,341 ---- How to port to a non-Unix system: ================================= ! The script `config.sh' can be run on some non-unix systems too if ! you install a Bourne or Korn shell. I ran it with every shell I ! could get my hands on and I think it's portable to every Bourne ! shell that knows shell functions. I used it on FreeBSD and Linux ! with ash, bash, pdksh, zsh, on AIX and OSF/1 with sh and ksh, on ! Ultrix and HP-UX with ksh (their sh's don't know shell functions). ! ! On OS/2 I successfully used bash 1.12 but ran into trouble when ! saving the scripts with CR/LF line ends. Use recode ibmpc:latin1 ! after editing the scripts when your editor saved with DOS-style ! line ends. With PD korn shell 4.9 first start the shell and use ! the `.' operator to run the script. The ms_shell dies from some ! internal bug. ! ! If you can, get a shell and those few unix utilities (a good make ! in the first place) and try to get config.sh to run. Make a ! subdirectory `config/yoursystem' and copy the makefile-parts from ! `config/default' to that place. Change what is neccessary. See ! config/WATCOM for an example of more extensive changes. This compiler ! isn't unix-like at all. If you can't run `config.sh' then compile `src/check_c.c' with the C-compiler you want to use, run it and place it's output in a file `config.h'. Read the above section and the more up to date scriptfile `guesscfg.sh' about options in config.h and edit config.h to describe ! your system. Refer to your C-compiler's documentation and header ! files. Write at least one new source file for the terminal stuff. Check ! `src/term.h' for which definitions are exported by the terminal ! driver and rewrite them from scratch e.g. in a file called ! `src/term-st.c' for an Atari. Then set the variable TERM_O in ! Makefile to your file's name, e.g. `term-st.o'. For an example ! you can refer to `src/termunix.c' (complex), `src/term-emx.c' ! (recommended) or `src/curses.c'. Configuring the Forth system *************** *** 397,443 **** X-Window's xterm vt100 emulator =============================== ! I thought I finally learned how to handle cursor keys. ! However function keys are often not registered correctly in the ! /etc/termcap file which is needed by pfe to retrieve information on ! what function keys send. ! ! To fix this check your /etc/termcap for the xterm entry and ensure all ! function keys are described correctly. On Linux this requires to add ! three lines to /etc/termcap like this: ! ! xterm|vs100|xterm terminal emulator (X window system):\ ! ... ! :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\ ! + :kN=\E[6~:kP=\E[5~:kh=\E[7~:kH=\E[8~:\ ! + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ ! + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k0=\E[21~:\ ! :pt:sf=\n:sr=\EM:\ ! ... ! ! You can verify this on your own system by opening an xterm, then ! ! vi /etc/termcap ! ! insert the above lines in the proper place and change like this: ! :k1=:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ ! cursor here ^ ! ! Then type i-^v-F1 ! ! If you get something else than ! ! :k1=[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ ! ! then repeat the step for all function keys added in the above ! mentioned three lines. Replace the ^[ by \E, then save it. ! Otherwise just type U to undo the change to this line and save the ! file. ! ! Vi-clone elvis (on Linux) feels better with this fix too. Without that ! change it complains about missing function keys if you map them in ! your ~/.exrc. Linux --- 405,461 ---- X-Window's xterm vt100 emulator =============================== ! Most /etc/termcap files out there are out of date. I really don't ! understand how system vendors and distributors can be so ignorant. ! Below you find the "official" termcap entry for the xterm terminal ! emulator as distributed by the X-Consortium. Please replace the ! rubbish you find in your /etc/termcap with this one. Then all keys ! work as expected. Some other programs will benefit too from the ! change. ! ! -----cut here----- ! # $XConsortium: termcap,v 1.12 94/04/12 15:01:29 gildea Exp $ ! # ! vs|xterm|xterm-24|xterms|vs100|xterm terminal emulator (X Window System):\ ! :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\ ! :rs=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\ ! :AL=\E[%dL:DL=\E[%dM:DC=\E[%dP:DO=\E[%dB:UP=\E[%dA:\ ! :LE=\E[%dD:RI=\E[%dC:\ ! :al=\E[L:am:\ ! :bl=^G:\ ! :bs:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:co#80:\ ! :cs=\E[%i%d;%dr:ct=\E[3g:\ ! :dc=\E[P:dl=\E[M:\ ! :ho=\E[H:\ ! :im=\E[4h:ei=\E[4l:mi:\ ! :ks=\E[?1h\E=:ke=\E[?1l\E>:\ ! :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ ! :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ ! :k;=\E[21~:\ ! :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ ! :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ ! :kn#20:\ ! :@0=\E[1~:kI=\E[2~:kD=\E[3~:\ ! :*6=\E[4~:kP=\E[5~:kN=\E[6~:\ ! :km:\ ! :kb=^H:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:\ ! :li#24:md=\E[1m:me=\E[m:mr=\E[7m:ms:nd=\E[C:pt:\ ! :eA=\E)0:as=^N:ae=^O:\ ! :ml=\El:mu=\Em:\ ! :sc=\E7:rc=\E8:sf=\n:so=\E[7m:se=\E[m:sr=\EM:\ ! :ti=\E7\E[?47h:te=\E[2J\E[?47l\E8:\ ! :up=\E[A:us=\E[4m:ue=\E[m:xn: ! v2|xterm-65|xterm with tall window 65x80 (X Window System):\ ! :li#65:tc=xterm: ! vb|xterm-bold|xterm with bold instead of underline (X Window System):\ ! :us=\E[1m:tc=xterm: ! # ! # vi may work better with this entry, because vi ! # doesn't use insert mode much ! vi|xterm-ic|xterm-vi|xterm with insert character instead of insert mode:\ ! :im=:ei=:mi@:ic=\E[@:IC=\E[%d@:tc=xterm: ! -----cut here----- Linux *************** *** 466,471 **** --- 484,501 ---- codes. If more programs relied on it then probably /etc/termcap would be in better shape too. + ======================================================================= + + FreeBSD + ======= + + - FreeBSD 1.1 comes with gcc 2.4.5. The i386 version of that compiler + dies when global register variables are used. + + - FreeBSD 2.0: make has problems with a default rule `.c:'. + One step -- compiling a C test program -- in the autoconfiguration + depends on such a default rule. Before running `sh config.sh' make + sure gnu-make preceedes the BSD make in the search path. ======================================================================= *************** *** 479,486 **** ancient system calls supported by NeXTstep without -posix. Forget about running the config script with Next's sh. You can use ! bash. You can't run the config script with Next's cc either since -- I ! guess, the man page says nothing -- the precompiled headers feature fools it. You can compile with Next's cc after copying the configuration I built --- 509,516 ---- ancient system calls supported by NeXTstep without -posix. Forget about running the config script with Next's sh. You can use ! bash. You can't run the config script with Next's cc either since -- ! I guess, the man page says nothing -- the precompiled headers feature fools it. You can compile with Next's cc after copying the configuration I built diff -cbr pfe-0-9.12/TUNING pfe-0.9.13/TUNING *** pfe-0-9.12/TUNING Fri Apr 14 15:21:17 1995 --- pfe-0.9.13/TUNING Fri May 19 12:07:14 1995 *************** *** 1,6 **** --- 1,31 ---- TUNING THE PORTABLE FORTH ENVIRONMENT -*- indented-text -*- ##################################### + 1) Loop unrolling in the inner interpreter + ========================================== + + The most time critical piece of code in pfe is the inner interpreter, + a tight loop calling all primitives compiled into a high-level + definition. You find it in file support.c, function run_forth(). + + On some CPU's it significantly saves time when the code of the inner + interpreter is unrolled several times without the need to jump back to + the start of the loop after every primitive is executed. On other + CPU's it doesn't help or even makes it slightly slower. + + For example the benchmark-performance of pfe on a 486 is about 15% + better with unrolled NEXT, while the performance on a Pentium becomes + worse. + + You'll have to try it, what is better on your machine. To enable the + feature, add the following compiler option in Makefile: + + -DUNROLL_NEXT + + + 2) Using global register variables + ================================== + pfe is designed for best portability. This means it can be compiled with a variety of compilers on many systems. Obviously this prevented me from squeezing the last bit of performance out of any special *************** *** 116,123 **** br Reading more of the generated assembler source allowed a guess that ! gcc never uses registers with numbers around 16 while the cpu seems to ! have 32 such registers. Next edit the file `src/virtual.h'. Add a system specific section of preprocessor definitions naming CPU registers to use for virtual --- 141,149 ---- br Reading more of the generated assembler source allowed a guess that ! - Gcc talks to the assembler about registers by their numbers only. ! - Gcc never uses registers with numbers around 16 while the cpu seems ! to have 32 such registers. Next edit the file `src/virtual.h'. Add a system specific section of preprocessor definitions naming CPU registers to use for virtual diff -cbr pfe-0-9.12/benchm.res pfe-0.9.13/benchm.res *** pfe-0-9.12/benchm.res Thu Apr 27 23:39:24 1995 --- pfe-0.9.13/benchm.res Sun Jul 16 19:56:54 1995 *************** *** 1,10 **** ! IBM PS/2 (16 MHz 386 DX) AIX 1.2, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ------------------------------------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 15982 ms ! RUNNING `SIMPLE': TOOK 6683 ms ! RUNNING `OUTER': TOOK 17199 ms ! RUNNING `25 FIB': 75025 TOOK 12832 ms ! RUNNING `SEARCHSP': TOOK 17515 ms IBM RS/6000, AIX 3.2, cc -O3 --- 1,25 ---- ! All results with pfe compiled by the C-compiler as noted with the ! best applicable optimization. ! With gcc this usually means: -DUSE_REGS -O2 -fomit-frame-pointer ! And on some machines: -DUNROLL_NEXT ! ! ! IBM PS/2 (16 MHz 386 DX) AIX 1.2, gcc 2.3.3 ! ------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 14399 ms ! RUNNING `SIMPLE': TOOK 5449 ms ! RUNNING `OUTER': TOOK 14749 ms ! RUNNING `25 FIB': 75025 TOOK 11516 ms ! RUNNING `SEARCHSP': TOOK 32215 ms ! ! ! Intel 486DX33, FreeBSD-2.0-RELEASE ! ---------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 1500 ms ! RUNNING `SIMPLE': TOOK 695 ms ! RUNNING `OUTER': TOOK 1679 ms ! RUNNING `25 FIB': 75025 TOOK 1296 ms ! RUNNING `SEARCHSP': TOOK 3171 ms IBM RS/6000, AIX 3.2, cc -O3 *************** *** 15,27 **** RUNNING `25 FIB': 75025 TOOK 1220 ms RUNNING `SEARCHSP': TOOK 1440 ms ! IBM RS/6000, AIX 3.2, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ------------------------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 1020 ms ! RUNNING `SIMPLE': TOOK 510 ms ! RUNNING `OUTER': TOOK 1200 ms ! RUNNING `25 FIB': 75025 TOOK 830 ms ! RUNNING `SEARCHSP': TOOK 1400 ms AMD 486DX2/80, OS/2 Warp, Watcom C 9.5, options /omaxnet /5r /zp4 --- 30,42 ---- RUNNING `25 FIB': 75025 TOOK 1220 ms RUNNING `SEARCHSP': TOOK 1440 ms ! IBM RS/6000, AIX 3.2, gcc ! ------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 980 ms ! RUNNING `SIMPLE': TOOK 470 ms ! RUNNING `OUTER': TOOK 1130 ms ! RUNNING `25 FIB': 75025 TOOK 800 ms ! RUNNING `SEARCHSP': TOOK 1740 ms AMD 486DX2/80, OS/2 Warp, Watcom C 9.5, options /omaxnet /5r /zp4 *************** *** 32,60 **** RUNNING `25 FIB': 75025 TOOK 1000 ms RUNNING `SEARCHSP': TOOK 2560 ms ! AMD 486DX2/80, OS/2 Warp, gcc -O2 -fomit-frame-pointer ! ------------------------------------------------------ ! RUNNING `BENCHMARK': 1899 Primes TOOK 2130 ms ! RUNNING `SIMPLE': TOOK 470 ms ! RUNNING `OUTER': TOOK 1340 ms ! RUNNING `25 FIB': 75025 TOOK 970 ms ! RUNNING `SEARCHSP': TOOK 2970 ms ! ! AMD 486DX2/80, OS/2 Warp, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ----------------------------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 720 ms ! RUNNING `SIMPLE': TOOK 340 ms ! RUNNING `OUTER': TOOK 820 ms ! RUNNING `25 FIB': 75025 TOOK 680 ms ! RUNNING `SEARCHSP': TOOK 2960 ms ! ! AMD 486DX2/80, Linux, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ------------------------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 710 ms ! RUNNING `SIMPLE': TOOK 340 ms ! RUNNING `OUTER': TOOK 800 ms ! RUNNING `25 FIB': 75025 TOOK 620 ms ! RUNNING `SEARCHSP': TOOK 860 ms Pentium 66 MHz, NeXTstep, cc -O2 -fomit-frame-pointer --- 47,67 ---- RUNNING `25 FIB': 75025 TOOK 1000 ms RUNNING `SEARCHSP': TOOK 2560 ms ! AMD 486DX2/80, OS/2 Warp, gcc ! ----------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 650 ms ! RUNNING `SIMPLE': TOOK 280 ms ! RUNNING `OUTER': TOOK 720 ms ! RUNNING `25 FIB': 75025 TOOK 630 ms ! RUNNING `SEARCHSP': TOOK 1160 ms ! ! AMD 486DX2/80, Linux, gcc ! ------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 630 ms ! RUNNING `SIMPLE': TOOK 280 ms ! RUNNING `OUTER': TOOK 690 ms ! RUNNING `25 FIB': 75025 TOOK 550 ms ! RUNNING `SEARCHSP': TOOK 880 ms Pentium 66 MHz, NeXTstep, cc -O2 -fomit-frame-pointer *************** *** 65,72 **** RUNNING `25 FIB': 75025 TOOK 953 ms RUNNING `SEARCHSP': TOOK 1875 ms ! Pentium 66 MHz, NeXTstep, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ----------------------------------------------------------------- RUNNING `BENCHMARK': 1899 Primes TOOK 687 ms RUNNING `SIMPLE': TOOK 265 ms RUNNING `OUTER': TOOK 765 ms --- 72,79 ---- RUNNING `25 FIB': 75025 TOOK 953 ms RUNNING `SEARCHSP': TOOK 1875 ms ! Pentium 66 MHz, NeXTstep, gcc ! ----------------------------- RUNNING `BENCHMARK': 1899 Primes TOOK 687 ms RUNNING `SIMPLE': TOOK 265 ms RUNNING `OUTER': TOOK 765 ms *************** *** 82,102 **** RUNNING `25 FIB': 75025 TOOK 1940 ms RUNNING `SEARCHSP': TOOK 3780 ms - HP 9000/43S, HP-UX B.08.00 A, gcc -O2 -fomit-frame-pointer - ---------------------------------------------------------- - RUNNING `BENCHMARK': 1899 Primes TOOK 2160 ms - RUNNING `SIMPLE': TOOK 880 ms - RUNNING `OUTER': TOOK 2380 ms - RUNNING `25 FIB': 75025 TOOK 1760 ms - RUNNING `SEARCHSP': TOOK 3820 ms - HP 9000/43S, HP-UX B.08.00 A, gcc -O2 -fomit-frame-pointer -DUSE_REGS --------------------------------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 1560 ms RUNNING `SIMPLE': TOOK 580 ms ! RUNNING `OUTER': TOOK 1680 ms ! RUNNING `25 FIB': 75025 TOOK 1300 ms ! RUNNING `SEARCHSP': TOOK 3740 ms HP 9000/735, HP-UX A.09.05 A, c89 -O --- 89,101 ---- RUNNING `25 FIB': 75025 TOOK 1940 ms RUNNING `SEARCHSP': TOOK 3780 ms HP 9000/43S, HP-UX B.08.00 A, gcc -O2 -fomit-frame-pointer -DUSE_REGS --------------------------------------------------------------------- ! RUNNING `BENCHMARK': 1899 Primes TOOK 1460 ms RUNNING `SIMPLE': TOOK 580 ms ! RUNNING `OUTER': TOOK 1600 ms ! RUNNING `25 FIB': 75025 TOOK 1180 ms ! RUNNING `SEARCHSP': TOOK 3700 ms HP 9000/735, HP-UX A.09.05 A, c89 -O *************** *** 107,114 **** RUNNING `25 FIB': 75025 TOOK 1190 ms RUNNING `SEARCHSP': TOOK 560 ms ! HP 9000/735, HP-UX A.09.05 A, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! --------------------------------------------------------------------- RUNNING `BENCHMARK': 1899 Primes TOOK 720 ms RUNNING `SIMPLE': TOOK 320 ms RUNNING `OUTER': TOOK 810 ms --- 106,113 ---- RUNNING `25 FIB': 75025 TOOK 1190 ms RUNNING `SEARCHSP': TOOK 560 ms ! HP 9000/735, HP-UX A.09.05 A, gcc ! --------------------------------- RUNNING `BENCHMARK': 1899 Primes TOOK 720 ms RUNNING `SIMPLE': TOOK 320 ms RUNNING `OUTER': TOOK 810 ms *************** *** 124,136 **** RUNNING `25 FIB': 75025 TOOK 578 ms RUNNING `SEARCHSP': TOOK 624 ms ! DECstation 5000/260, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ------------------------------------------------------------ ! RUNNING `BENCHMARK': 1899 Primes TOOK 488 ms ! RUNNING `SIMPLE': TOOK 238 ms ! RUNNING `OUTER': TOOK 562 ms ! RUNNING `25 FIB': 75025 TOOK 398 ms ! RUNNING `SEARCHSP': TOOK 632 ms DEC 3000, Alpha at 175 MHz, OSF/1 V2.1, cc -O2 --- 123,135 ---- RUNNING `25 FIB': 75025 TOOK 578 ms RUNNING `SEARCHSP': TOOK 624 ms ! DECstation 5000/260, gcc ! ------------------------ ! RUNNING `BENCHMARK': 1899 Primes TOOK 464 ms ! RUNNING `SIMPLE': TOOK 210 ms ! RUNNING `OUTER': TOOK 484 ms ! RUNNING `25 FIB': 75025 TOOK 382 ms ! RUNNING `SEARCHSP': TOOK 1480 ms DEC 3000, Alpha at 175 MHz, OSF/1 V2.1, cc -O2 *************** *** 141,148 **** RUNNING `25 FIB': 75025 TOOK 566 ms RUNNING `SEARCHSP': TOOK 616 ms ! DEC 3000, Alpha at 175 MHz, OSF/1 V2.1, gcc -O2 -fomit-frame-pointer -DUSE_REGS ! ------------------------------------------------------------------------------- RUNNING `BENCHMARK': 1899 Primes TOOK 349 ms RUNNING `SIMPLE': TOOK 133 ms RUNNING `OUTER': TOOK 383 ms --- 140,147 ---- RUNNING `25 FIB': 75025 TOOK 566 ms RUNNING `SEARCHSP': TOOK 616 ms ! DEC 3000, Alpha at 175 MHz, OSF/1 V2.1, gcc ! ------------------------------------------- RUNNING `BENCHMARK': 1899 Primes TOOK 349 ms RUNNING `SIMPLE': TOOK 133 ms RUNNING `OUTER': TOOK 383 ms diff -cbr pfe-0-9.12/src/4ed.c pfe-0.9.13/src/4ed.c *** pfe-0-9.12/src/4ed.c Fri Apr 28 18:59:08 1995 --- pfe-0.9.13/src/4ed.c Mon Jul 17 20:23:53 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: 4ed.o Only in pfe-0.9.13/src: Makefile diff -cbr pfe-0-9.12/src/block.c pfe-0.9.13/src/block.c *** pfe-0-9.12/src/block.c Fri Apr 28 18:59:08 1995 --- pfe-0.9.13/src/block.c Mon Jul 17 20:23:54 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: block.o diff -cbr pfe-0-9.12/src/check_c.c pfe-0.9.13/src/check_c.c *** pfe-0-9.12/src/check_c.c Fri Apr 28 18:59:09 1995 --- pfe-0.9.13/src/check_c.c Mon Jul 17 20:23:54 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/compiler.h pfe-0.9.13/src/compiler.h *** pfe-0-9.12/src/compiler.h Fri Apr 28 18:59:03 1995 --- pfe-0.9.13/src/compiler.h Mon Jul 17 20:23:48 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/config/AIX1/options.mk pfe-0.9.13/src/config/AIX1/options.mk *** pfe-0-9.12/src/config/AIX1/options.mk Fri Apr 28 15:50:18 1995 --- pfe-0.9.13/src/config/AIX1/options.mk Fri May 19 14:17:58 1995 *************** *** 14,25 **** SYSTEM = AIX1 CC = gcc -pipe ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g -O CL = $(CC) CPP = $(CC) -E ! OPTIONS = -DHAVE_SELECT -DUSE_TERMCAP STRIP = -s TERM_O = termunix$o SYS_O = unix$o --- 14,25 ---- SYSTEM = AIX1 CC = gcc -pipe ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS -DUNROLL_NEXT DEBUG = -g -O CL = $(CC) CPP = $(CC) -E ! OPTIONS = -DHAVE_SELECT STRIP = -s TERM_O = termunix$o SYS_O = unix$o diff -cbr pfe-0-9.12/src/config/AIX3/options.mk pfe-0.9.13/src/config/AIX3/options.mk *** pfe-0-9.12/src/config/AIX3/options.mk Fri Apr 28 14:02:53 1995 --- pfe-0.9.13/src/config/AIX3/options.mk Mon May 8 09:58:31 1995 *************** *** 26,32 **** CL = $(CC) CPP = $(CC) -E ! OPTIONS = -DUSE_TERMCAP STRIP = -s TERM_O = termunix$o SYS_O = unix$o --- 26,32 ---- CL = $(CC) CPP = $(CC) -E ! OPTIONS = STRIP = -s TERM_O = termunix$o SYS_O = unix$o diff -cbr pfe-0-9.12/src/config/EMX/options.mk pfe-0.9.13/src/config/EMX/options.mk *** pfe-0-9.12/src/config/EMX/options.mk Wed Apr 26 19:48:59 1995 --- pfe-0.9.13/src/config/EMX/options.mk Fri May 19 14:17:35 1995 *************** *** 21,27 **** SYSTEM = EMX CC = gcc -Wall ! OPTIM = -m486 -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g CL = $(CC) --- 21,27 ---- SYSTEM = EMX CC = gcc -Wall ! OPTIM = -m486 -O2 -fomit-frame-pointer -DUSE_REGS -DUNROLL_NEXT DEBUG = -g CL = $(CC) diff -cbr pfe-0-9.12/src/config/FreeBSD/options.mk pfe-0.9.13/src/config/FreeBSD/options.mk *** pfe-0-9.12/src/config/FreeBSD/options.mk Thu Apr 27 10:23:50 1995 --- pfe-0.9.13/src/config/FreeBSD/options.mk Fri May 19 12:07:07 1995 *************** *** 12,18 **** SYSTEM = FreeBSD CC = gcc -pipe -Wall ! OPTIM = -m486 -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g CL = $(CC) --- 12,24 ---- SYSTEM = FreeBSD CC = gcc -pipe -Wall ! ! # for Pentium: ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS ! ! # for 486: ! OPTIM = -m486 -O2 -fomit-frame-pointer -DUSE_REGS -DUNROLL_NEXT ! DEBUG = -g CL = $(CC) *************** *** 22,28 **** STRIP = -s TERM_O = termunix$o SYS_O = unix$o ! LFLAGS = -static LIBS = -ltermcap -lm --- 28,34 ---- STRIP = -s TERM_O = termunix$o SYS_O = unix$o ! LFLAGS = LIBS = -ltermcap -lm diff -cbr pfe-0-9.12/src/config/HPUX68K/options.mk pfe-0.9.13/src/config/HPUX68K/options.mk *** pfe-0-9.12/src/config/HPUX68K/options.mk Thu Apr 27 20:55:31 1995 --- pfe-0.9.13/src/config/HPUX68K/options.mk Fri May 19 14:14:34 1995 *************** *** 20,26 **** SYSTEM = HPUX CC = gcc -pipe -Wall ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g -O OPTIONS = -D_HPUX_SOURCE -DUSE_TERMCAP --- 20,26 ---- SYSTEM = HPUX CC = gcc -pipe -Wall ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS -DUNROLL_NEXT DEBUG = -g -O OPTIONS = -D_HPUX_SOURCE -DUSE_TERMCAP diff -cbr pfe-0-9.12/src/config/HPUXRISC/options.mk pfe-0.9.13/src/config/HPUXRISC/options.mk *** pfe-0-9.12/src/config/HPUXRISC/options.mk Thu Apr 27 20:55:31 1995 --- pfe-0.9.13/src/config/HPUXRISC/options.mk Fri May 12 12:02:26 1995 *************** *** 22,33 **** CC = gcc -pipe -Wall OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g -O ! OPTIONS = -D_HPUX_SOURCE #CC = c89 -Aa #OPTIM = +O1 #DEBUG = -g ! #OPTIONS = -D_HPUX_SOURCE -Dconst="" CL = $(CC) CPP = $(CC) -E --- 22,33 ---- CC = gcc -pipe -Wall OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g -O ! OPTIONS = -D_HPUX_SOURCE -DUSE_TERMCAP #CC = c89 -Aa #OPTIM = +O1 #DEBUG = -g ! #OPTIONS = -D_HPUX_SOURCE -DUSE_TERMCAP -Dconst="" CL = $(CC) CPP = $(CC) -E diff -cbr pfe-0-9.12/src/config/Linux/options.mk pfe-0.9.13/src/config/Linux/options.mk *** pfe-0-9.12/src/config/Linux/options.mk Mon Apr 24 19:21:52 1995 --- pfe-0.9.13/src/config/Linux/options.mk Fri May 19 12:04:37 1995 *************** *** 8,14 **** # specifying -ansi -pedantic disables global register variables CC = gcc -m486 -pipe -Wall #-ansi -pedantic ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g -O CL = $(CC) --- 8,17 ---- # specifying -ansi -pedantic disables global register variables CC = gcc -m486 -pipe -Wall #-ansi -pedantic ! ! # comment out -DUNROLL_NEXT when you run it on a Pentium ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS -DUNROLL_NEXT ! DEBUG = -g -O CL = $(CC) diff -cbr pfe-0-9.12/src/config/NeXTstep/options.mk pfe-0.9.13/src/config/NeXTstep/options.mk *** pfe-0-9.12/src/config/NeXTstep/options.mk Tue Apr 25 13:27:45 1995 --- pfe-0.9.13/src/config/NeXTstep/options.mk Fri May 19 12:05:41 1995 *************** *** 15,21 **** #DEBUG = -g -O CC = gcc -Wall ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS DEBUG = -g -O CL = $(CC) --- 15,22 ---- #DEBUG = -g -O CC = gcc -Wall ! # comment out -DUNROLL_NEXT when you run it on a Pentium ! OPTIM = -O2 -fomit-frame-pointer -DUSE_REGS -DUNROLL_NEXT DEBUG = -g -O CL = $(CC) Only in pfe-0.9.13/src/config: OS2-ICC diff -cbr pfe-0-9.12/src/config/SunOS/options.mk pfe-0.9.13/src/config/SunOS/options.mk *** pfe-0-9.12/src/config/SunOS/options.mk Fri Apr 28 15:51:56 1995 --- pfe-0.9.13/src/config/SunOS/options.mk Mon May 8 10:00:37 1995 *************** *** 24,30 **** CPP = $(CC) -E STRIP = -s ! OPTIONS = -D_BSD -DUSE_TERMCAP TERM_O = termunix$o SYS_O = unix$o LFLAGS = --- 24,30 ---- CPP = $(CC) -E STRIP = -s ! OPTIONS = -D_BSD TERM_O = termunix$o SYS_O = unix$o LFLAGS = diff -cbr pfe-0-9.12/src/config/default/options.mk pfe-0.9.13/src/config/default/options.mk *** pfe-0-9.12/src/config/default/options.mk Mon Apr 24 19:21:52 1995 --- pfe-0.9.13/src/config/default/options.mk Fri May 19 14:18:22 1995 *************** *** 13,19 **** SYSTEM = UNIX CC = cc ! OPTIM = -O# -DUSE_REGS DEBUG = -g CL = $(CC) --- 13,19 ---- SYSTEM = UNIX CC = cc ! OPTIM = -O# -DUSE_REGS -DUNROLL_NEXT DEBUG = -g CL = $(CC) Only in pfe-0.9.13/src: config.h diff -cbr pfe-0-9.12/src/config.sh pfe-0.9.13/src/config.sh *** pfe-0-9.12/src/config.sh Wed Apr 26 20:39:51 1995 --- pfe-0.9.13/src/config.sh Sat May 20 11:30:26 1995 *************** *** 24,37 **** # Available system names are: (* detected automatically) # # * Linux ! # * FreeBSD FreeBSD or BSD386 # * EMX DOS or OS/2 with gcc and EMX DOS extender # WATCOM Watcom C, set TARGET in the Makefile! # * AIX1 AIX version 1.2 on PS/2 # * AIX3 AIX version 3.x on RS/6000 ! # * HPUX HP-UX 8.x or later on HP900/4x or HP9000/[78]x # * NeXTstep for Intel ! # * SunOS SunOS 4.3, maybe also Solaris 2.3 # * ULTRIX DEC ULTRIX RISC 4.3 on DecStation # * OSF1 DEC OSF1 2.x on DEC Alpha workstation # --- 24,37 ---- # Available system names are: (* detected automatically) # # * Linux ! # FreeBSD FreeBSD(*) or BSD386 or NetBSD # * EMX DOS or OS/2 with gcc and EMX DOS extender # WATCOM Watcom C, set TARGET in the Makefile! # * AIX1 AIX version 1.2 on PS/2 # * AIX3 AIX version 3.x on RS/6000 ! # * HPUX HP-UX 8.x or later on HP9000/4x or HP9000/[78]x # * NeXTstep for Intel ! # * SunOS SunOS 4.3, maybe also Solaris 2.4 but not 2.3 # * ULTRIX DEC ULTRIX RISC 4.3 on DecStation # * OSF1 DEC OSF1 2.x on DEC Alpha workstation # *************** *** 122,128 **** then cp -p config/$system/config.h . else ! . ./guesscfg.sh $system > config.h fi echo "Configuration created." >&2 --- 122,128 ---- then cp -p config/$system/config.h . else ! . ./guesscfg.sh $system fi echo "Configuration created." >&2 diff -cbr pfe-0-9.12/src/const.h pfe-0.9.13/src/const.h *** pfe-0-9.12/src/const.h Fri Apr 28 18:59:03 1995 --- pfe-0.9.13/src/const.h Mon Jul 17 20:23:48 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 69,76 **** /* other constants, do not change! */ ! #define VERSION "0.9.12" ! #define DATE "28-Apr-95" #undef FALSE #undef TRUE --- 69,76 ---- /* other constants, do not change! */ ! #define VERSION "0.9.13" ! #define DATE "17-July-95" #undef FALSE #undef TRUE diff -cbr pfe-0-9.12/src/core.c pfe-0.9.13/src/core.c *** pfe-0-9.12/src/core.c Fri Apr 28 18:59:09 1995 --- pfe-0.9.13/src/core.c Mon Jul 17 20:23:54 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 130,140 **** Cell i = *sp++; if (i < 0 ! ? (*RP += i) < 0 ! : (*RP += i) >= 0) ! rp += 3; ! else ip = rp[2]; } Code (plus_loop) --- 130,140 ---- Cell i = *sp++; if (i < 0 ! ? (*RP += i) >= 0 ! : (*RP += i) < 0) ip = rp[2]; + else + rp += 3; } Code (plus_loop) *************** *** 559,568 **** *p = does_defined_runtime; --p; *(Xt **) p = ip; ! if (lp == RP) ! locals_exit_execution_ (); ! else ip = *rp++; } Code (does) --- 559,568 ---- *p = does_defined_runtime; --p; *(Xt **) p = ip; ! if (lp != RP) ip = *rp++; + else + locals_exit_execution_ (); } Code (does) *************** *** 779,788 **** code (if_execution) { ! if (*sp++) ! ip++; ! else BRANCH; } /* *INDENT-OFF* */ Code (if) --- 779,788 ---- code (if_execution) { ! if (!*sp++) BRANCH; + else + ip++; } /* *INDENT-OFF* */ Code (if) *************** *** 796,802 **** --- 796,805 ---- Code (immediate) { + if (LAST) *LAST |= IMMEDIATE; + else + tHrow (THROW_ARG_TYPE); } code (invert) *************** *** 840,849 **** code (loop_execution) { ! if (++*RP == 0) /* increment top of return stack */ ! rp += 3; /* if zero: terminate loop */ else ! ip = rp[2]; /* else loop back */ } Code (loop) --- 843,852 ---- code (loop_execution) { ! if (++*RP) /* increment top of return stack */ ! ip = rp[2]; /* if nonzero: loop back */ else ! rp += 3; /* if zero: terminate loop */ } Code (loop) *************** *** 950,956 **** --- 953,962 ---- Code (recurse) { question_comp_ (); + if (LAST) COMMA (name_from (LAST)); + else + tHrow (THROW_ARG_TYPE); } Code (repeat) *************** *** 1395,1404 **** code (of_execution) { ! if (sp[0] == sp[1]) /* tos equals second? */ ! sp += 2, ip++; /* yes: drop both, don't branch */ ! else sp += 1, BRANCH; /* no: drop top, branch */ } Code (of) --- 1401,1410 ---- code (of_execution) { ! if (sp[0] != sp[1]) /* tos equals second? */ sp += 1, BRANCH; /* no: drop top, branch */ + else + sp += 2, ip++; /* yes: drop both, don't branch */ } Code (of) Only in pfe-0.9.13/src: core.o diff -cbr pfe-0-9.12/src/curses.c pfe-0.9.13/src/curses.c *** pfe-0-9.12/src/curses.c Fri Apr 28 18:59:09 1995 --- pfe-0.9.13/src/curses.c Mon Jul 17 20:23:55 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/dblsub.c pfe-0.9.13/src/dblsub.c *** pfe-0-9.12/src/dblsub.c Fri Apr 28 18:59:10 1995 --- pfe-0.9.13/src/dblsub.c Mon Jul 17 20:23:55 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/dblsub.h pfe-0.9.13/src/dblsub.h *** pfe-0-9.12/src/dblsub.h Fri Apr 28 18:59:03 1995 --- pfe-0.9.13/src/dblsub.h Mon Jul 17 20:23:49 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: dblsub.o diff -cbr pfe-0-9.12/src/debug.c pfe-0.9.13/src/debug.c *** pfe-0-9.12/src/debug.c Fri Apr 28 18:59:10 1995 --- pfe-0.9.13/src/debug.c Mon Jul 17 20:23:56 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: debug.o diff -cbr pfe-0-9.12/src/dictnry.c pfe-0.9.13/src/dictnry.c *** pfe-0-9.12/src/dictnry.c Fri Apr 28 18:59:10 1995 --- pfe-0.9.13/src/dictnry.c Mon Jul 17 20:23:56 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 136,141 **** --- 136,142 ---- VOC_LINK = VOC_LINK->prev; /* free dictionary space: */ DP = (Byte *) above; + LAST = NULL; if (CURRENT >= (Wordl *) above) tHrow (THROW_CURRENT_DELETED); } *************** *** 361,366 **** --- 362,369 ---- Xt runtime (void) { + if (!LAST) + tHrow (THROW_ARG_TYPE); return name_from (LAST); } *************** *** 628,633 **** --- 631,637 ---- preload_list[i]->wid); FENCE = DP; + LAST = NULL; #if defined DEBUG /* Maybe output some statistics: */ Only in pfe-0.9.13/src: dictnry.o diff -cbr pfe-0-9.12/src/double.c pfe-0.9.13/src/double.c *** pfe-0-9.12/src/double.c Fri Apr 28 18:59:11 1995 --- pfe-0.9.13/src/double.c Mon Jul 17 20:23:56 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: double.o diff -cbr pfe-0-9.12/src/facility.c pfe-0.9.13/src/facility.c *** pfe-0-9.12/src/facility.c Fri Apr 28 18:59:11 1995 --- pfe-0.9.13/src/facility.c Mon Jul 17 20:23:56 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: facility.o diff -cbr pfe-0-9.12/src/file.c pfe-0.9.13/src/file.c *** pfe-0-9.12/src/file.c Fri Apr 28 18:59:11 1995 --- pfe-0.9.13/src/file.c Mon Jul 17 20:23:57 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 78,84 **** Code (file_position) { File *fid = (File *) sp[0]; /* file-id */ ! fpos_t pos = ftell (fid->f); udCell ud; sp -= 2; --- 78,84 ---- Code (file_position) { File *fid = (File *) sp[0]; /* file-id */ ! long pos = ftell (fid->f); udCell ud; sp -= 2; *************** *** 98,104 **** Code (file_size) { File *fid = (File *) sp[0]; /* fileid */ ! fpos_t size = fsize (fid->f); udCell ud; sp -= 2; --- 98,104 ---- Code (file_size) { File *fid = (File *) sp[0]; /* fileid */ ! long size = fsize (fid->f); udCell ud; sp -= 2; *************** *** 169,175 **** Code (reposition_file) { File *fid = (File *) sp[0]; ! fpos_t pos = UDC2UL (sp[1], sp[2]); sp += 2; sp[0] = reposition_file (fid, pos); --- 169,175 ---- Code (reposition_file) { File *fid = (File *) sp[0]; ! long pos = UDC2UL (sp[1], sp[2]); sp += 2; sp[0] = reposition_file (fid, pos); *************** *** 178,184 **** Code (resize_file) { File *fid = (File *) sp[0]; ! fpos_t size = UDC2UL (sp[1], sp[2]); sp += 2; if (resize_file (fid, size) != 0) --- 178,184 ---- Code (resize_file) { File *fid = (File *) sp[0]; ! long size = UDC2UL (sp[1], sp[2]); sp += 2; if (resize_file (fid, size) != 0) Only in pfe-0.9.13/src: file.o diff -cbr pfe-0-9.12/src/filesub.c pfe-0.9.13/src/filesub.c *** pfe-0-9.12/src/filesub.c Fri Apr 28 18:59:11 1995 --- pfe-0.9.13/src/filesub.c Mon Jul 17 20:23:57 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 91,97 **** } #endif ! fpos_t fsize (FILE * f) /* Result: file length, -1 on error */ { #if defined HAVE_FSTAT && defined HAVE_FILENO --- 91,97 ---- } #endif ! long fsize (FILE * f) /* Result: file length, -1 on error */ { #if defined HAVE_FSTAT && defined HAVE_FILENO *************** *** 105,111 **** #else ! fpos_t pos, len; /* ANSI-C version using fseek()/ftell() */ clearerr (f); pos = ftell (f); --- 105,111 ---- #else ! long pos, len; /* ANSI-C version using fseek()/ftell() */ clearerr (f); pos = ftell (f); *************** *** 121,127 **** #endif } ! fpos_t size (const char *fn) /* Result: file length, -1 on error */ { #if defined HAVE_STAT --- 121,127 ---- #endif } ! long size (const char *fn) /* Result: file length, -1 on error */ { #if defined HAVE_STAT *************** *** 135,141 **** #else FILE *f; ! fpos_t len; f = fopen (fn, "r"); if (f == NULL) --- 135,141 ---- #else FILE *f; ! long len; f = fopen (fn, "r"); if (f == NULL) *************** *** 147,154 **** #endif } ! fpos_t ! copy (const char *src, const char *dst, fpos_t limit) /* * Copies file, but at most limit characters. * Returns destination file length if successful, -1 otherwise. --- 147,154 ---- #endif } ! long ! copy (const char *src, const char *dst, long limit) /* * Copies file, but at most limit characters. * Returns destination file length if successful, -1 otherwise. *************** *** 157,170 **** FILE *f, *g; char buf[BUFSIZ]; size_t n; ! fpos_t m; if ((f = fopen (src, "rb")) == NULL) ! return (fpos_t)-1; if ((g = fopen (dst, "wb")) == NULL) { fclose (f); ! return (fpos_t)-1; } for (m = limit; m; m -= n) { --- 157,170 ---- FILE *f, *g; char buf[BUFSIZ]; size_t n; ! long m; if ((f = fopen (src, "rb")) == NULL) ! return -1; if ((g = fopen (dst, "wb")) == NULL) { fclose (f); ! return -1; } for (m = limit; m; m -= n) { *************** *** 176,182 **** n = ferror (f) || ferror (g); fclose (f); fclose (g); ! return n ? (fpos_t)-1 : limit - m; } int --- 176,182 ---- n = ferror (f) || ferror (g); fclose (f); fclose (g); ! return n ? -1 : limit - m; } int *************** *** 199,207 **** } static int ! fextend (FILE * f, fpos_t size) /* make file longer */ { ! fpos_t n; if (fseek (f, 0, SEEK_END) != 0) return -1; --- 199,207 ---- } static int ! fextend (FILE * f, long size) /* make file longer */ { ! long n; if (fseek (f, 0, SEEK_END) != 0) return -1; *************** *** 212,218 **** } static int ! extend (const char *fn, fpos_t size) { FILE *f; int result; --- 212,218 ---- } static int ! extend (const char *fn, long size) { FILE *f; int result; *************** *** 230,236 **** truncate (const char *path, long length) { char tfn[L_tmpnam]; ! fpos_t len; tmpnam (tfn); len = copy (path, tfn, length); --- 230,236 ---- truncate (const char *path, long length) { char tfn[L_tmpnam]; ! long len; tmpnam (tfn); len = copy (path, tfn, length); *************** *** 247,262 **** #endif int ! resize (const char *fn, fpos_t new_size) /* * Truncates or extends file. * Returns 0 if successful, -1 otherwise. */ { ! fpos_t old_size; old_size = size (fn); ! if (old_size == (fpos_t) - 1) return -1; if (old_size <= new_size) return extend (fn, new_size); --- 247,262 ---- #endif int ! resize (const char *fn, long new_size) /* * Truncates or extends file. * Returns 0 if successful, -1 otherwise. */ { ! long old_size; old_size = size (fn); ! if (old_size == -1) return -1; if (old_size <= new_size) return extend (fn, new_size); Only in pfe-0.9.13/src: filesub.o diff -cbr pfe-0-9.12/src/floating.c pfe-0.9.13/src/floating.c *** pfe-0-9.12/src/floating.c Fri Apr 28 18:59:12 1995 --- pfe-0.9.13/src/floating.c Mon Jul 17 20:23:57 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 282,288 **** --- 282,293 ---- sign = 1, dnegate ((dCell *) &sp[0]); else sign = 0; + #if Linux + /* slackware 2.2.0.1 (at least) has a bug in ldexp() */ + res = (uCell) sp[0] * ((double)(1<<31) * 2) + (uCell) sp[1]; + #else res = ldexp ((uCell) sp[0], CELLBITS) + (uCell) sp[1]; + #endif sp += 2; *--fp = sign ? -res : res; } Only in pfe-0.9.13/src: floating.o diff -cbr pfe-0-9.12/src/forth-83.c pfe-0.9.13/src/forth-83.c *** pfe-0-9.12/src/forth-83.c Fri Apr 28 18:59:12 1995 --- pfe-0.9.13/src/forth-83.c Mon Jul 17 20:23:57 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: forth-83.o diff -cbr pfe-0-9.12/src/forth.h pfe-0.9.13/src/forth.h *** pfe-0-9.12/src/forth.h Fri Apr 28 18:59:04 1995 --- pfe-0.9.13/src/forth.h Mon Jul 17 20:23:49 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/guesscfg.sh pfe-0.9.13/src/guesscfg.sh *** pfe-0-9.12/src/guesscfg.sh Fri Apr 28 12:10:45 1995 --- pfe-0.9.13/src/guesscfg.sh Thu May 18 20:36:19 1995 *************** *** 3,9 **** # guesscfg.sh - Create a config.h file based on guesses. # Called by `config.sh' like this: # ! # guesscfg.sh $system > config.h # # This script produces just a first guess that might be ok if your system's # include files are sane -- i.e. rarely. --- 3,9 ---- # guesscfg.sh - Create a config.h file based on guesses. # Called by `config.sh' like this: # ! # . ./guesscfg.sh $system # # This script produces just a first guess that might be ok if your system's # include files are sane -- i.e. rarely. *************** *** 25,31 **** e=.exe # executable file extension null=NUL # null-device name ;; ! WATCOM) o=.obj e=.exe null=NUL --- 25,31 ---- e=.exe # executable file extension null=NUL # null-device name ;; ! WATCOM|OS2-ICC) o=.obj e=.exe null=NUL *************** *** 42,48 **** # tmpc=tmp$$ ! trap "rm -f $tmpc.*; exit 0" 0 1 2 3 15 if [ "`echo -n asdf`" = "asdf" ] then --- 42,48 ---- # tmpc=tmp$$ ! trap "rm -f $tmpc*; exit 0" 0 1 2 3 15 if [ "`echo -n asdf`" = "asdf" ] then *************** *** 66,74 **** hasinc () # test if an include file is available { - rm -f $tmpc.i echo_n "$1 ... " >&2 echo "#include <$1>" > $tmpc.c if $make $tmpc.i >$null 2>&1 then echo "yes" >&2 --- 66,74 ---- hasinc () # test if an include file is available { echo_n "$1 ... " >&2 echo "#include <$1>" > $tmpc.c + rm -f $tmpc.i if $make $tmpc.i >$null 2>&1 then echo "yes" >&2 *************** *** 124,130 **** echo_n "$1 ... " >&2 shift ! rm -f $tmpc.c for i do echo $i >> $tmpc.c --- 124,130 ---- echo_n "$1 ... " >&2 shift ! rm -f $tmpc.c $tmpc$o for i do echo $i >> $tmpc.c *************** *** 137,143 **** return 0 else echo "no" >&2 ! rm -f $tmpc.c $tmpc.i return 1 fi } --- 137,143 ---- return 0 else echo "no" >&2 ! rm -f $tmpc.c $tmpc$o return 1 fi } *************** *** 147,152 **** --- 147,154 ---- # Start output of `config.h': # + { + echo "/* * config.h -- Automatically generated file, don't change. */ *************** *** 188,227 **** # - # Determine Cell type, byte sex and alignment restrictions: - # - - $make clean >&2 - rm -f check_c$e check_c$o - if $make check_c$e >&2 - then - ./check_c$e - rm -f check_c$e check_c$o - else - echo compiling test program failed >&2 - echo aborting. >&2 - rm -f check_c$e check_c$o - rm -f $config_h - exit 1 - fi - - if compile const \ - "const char *p;" - then : # ok, compiler did grok const. - else - echo "#define const" - fi - - if compile "ANSI cpp" \ - "#define STR(X) #X" \ - "char s [] = STR(asdf);" - then : # ok, compiler did understand #X substitution. - else - define OLDCPP - fi - - - # # prepare for "nonansi.h", check available include files. # --- 190,195 ---- *************** *** 468,475 **** define HAVE_OSPEED fi echo " ! #endif" # Some shells need this explicitly to execute the trap-code. exit 0 --- 436,491 ---- define HAVE_OSPEED fi + + if has optind getopt.h $funnyincs + then + : # I assume optarg is defined too. + else + echo "extern int optind;" + echo "extern char *optarg;" + fi + + # + # Compiler properties. + # + + if compile const \ + "const char *p;" + then : # ok, compiler did grok const. + else + echo "#define const" + fi + + if compile "ANSI cpp" \ + "#define STR(X) #X" \ + "char s [] = STR(asdf);" + then : # ok, compiler did understand #X substitution. + else + define OLDCPP + fi + + } > config.h + + + # + # Determine Cell type, byte sex and alignment restrictions: + # + + $make clean >&2 + rm -f check_c$e check_c$o + if $make check_c$e >&2 + then + ./check_c$e >> config.h + rm -f check_c$e check_c$o + else + echo compiling test program failed >&2 + echo aborting. >&2 + rm -f check_c$e check_c$o + exit 1 + fi + echo " ! #endif" >> config.h # Some shells need this explicitly to execute the trap-code. exit 0 diff -cbr pfe-0-9.12/src/help.h pfe-0.9.13/src/help.h *** pfe-0-9.12/src/help.h Fri Apr 28 18:59:04 1995 --- pfe-0.9.13/src/help.h Mon Jul 17 20:23:49 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 51,57 **** { char name [32]; /* name of the definition */ int fidx; /* index of file, see head */ ! fpos_t pos; /* position in file */ }; extern char *progname; --- 51,57 ---- { char name [32]; /* name of the definition */ int fidx; /* index of file, see head */ ! long pos; /* position in file */ }; extern char *progname; Only in pfe-0.9.13/src: helpidx diff -cbr pfe-0-9.12/src/helpidx.c pfe-0.9.13/src/helpidx.c *** pfe-0-9.12/src/helpidx.c Fri Apr 28 18:59:12 1995 --- pfe-0.9.13/src/helpidx.c Mon Jul 17 20:23:58 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 43,57 **** #include #if defined HAVE_GETOPT_H ! #include ! #elif defined NeXTstep ! #include ! #elif defined ULTRIX ! extern char *optarg; ! extern int optind, opterr; ! #endif #include "help.h" #define NEW(P,N) ((P) = xalloc ((N) * sizeof *(P))) --- 43,59 ---- #include #if defined HAVE_GETOPT_H ! # include ! #else ! # if defined HAVE_LIBC_H ! # include ! # endif ! # if defined HAVE_UNISTD_H ! # include ! # endif #endif + #include "missing.h" /* SEEK_SET */ #include "help.h" #define NEW(P,N) ((P) = xalloc ((N) * sizeof *(P))) *************** *** 67,82 **** Node *left, *right; }; ! static HHeader hheader = ! { ! {'H', 'E', 'L', 'P'}}; static char (*file)[PATH_LENGTH]; static Node *root = NULL; ! static void insert (HRecord *new) /* * Insert *new into a binary tree starting at root. */ { Node **p = &root, *q; --- 69,83 ---- Node *left, *right; }; ! static HHeader hheader = {{'H', 'E', 'L', 'P'}}; static char (*file)[PATH_LENGTH]; static Node *root = NULL; ! static int insert (HRecord *new) /* * Insert *new into a binary tree starting at root. + * Result: 1 if ok, 0 if record with same name already in tree. */ { Node **p = &root, *q; *************** *** 88,94 **** if (cmp == 0) { fprintf (stderr, "\"%s\" is redefined\n", new->name); ! return; } if (cmp < 0) p = &(*p)->left; --- 89,95 ---- if (cmp == 0) { fprintf (stderr, "\"%s\" is redefined\n", new->name); ! return 0; } if (cmp < 0) p = &(*p)->left; *************** *** 99,111 **** q->rec = *new; q->left = q->right = NULL; *p = q; } /* * Read records from file and insert them in the tree. */ ! static fpos_t scan_record (FILE * f, char *name) /* * Reads the file until a `:' is found in column 0. Returns the name in *name. --- 100,113 ---- q->rec = *new; q->left = q->right = NULL; *p = q; + return 1; } /* * Read records from file and insert them in the tree. */ ! static long scan_record (FILE * f, char *name) /* * Reads the file until a `:' is found in column 0. Returns the name in *name. *************** *** 114,120 **** { for (;;) { ! fpos_t pos = ftell (f); char line[0x80]; char *p = fgets (line, sizeof line, f); --- 116,122 ---- { for (;;) { ! long pos = ftell (f); char line[0x80]; char *p = fgets (line, sizeof line, f); *************** *** 134,140 **** } static void ! skip_record (FILE * f) /* * Skip over all lines in file until either two empty lines * or a `:' in column 0 is found. --- 136,142 ---- } static void ! skip_record (FILE* f) /* * Skip over all lines in file until either two empty lines * or a `:' in column 0 is found. *************** *** 144,150 **** for (;;) { ! fpos_t pos = ftell (f); char line[0x80]; char *p = fgets (line, sizeof line, f); --- 146,152 ---- for (;;) { ! long pos = ftell (f); char line[0x80]; char *p = fgets (line, sizeof line, f); *************** *** 171,177 **** } static void ! read_file (FILE * f, int fidx) { HRecord x; --- 173,179 ---- } static void ! read_file (FILE *f, int fidx) { HRecord x; *************** *** 182,188 **** if (x.pos == -1) return; skip_record (f); ! insert (&x); hheader.nitems++; } } --- 184,190 ---- if (x.pos == -1) return; skip_record (f); ! if (insert (&x)) hheader.nitems++; } } Only in pfe-0.9.13/src: helpidx.o diff -cbr pfe-0-9.12/src/helpsub.c pfe-0.9.13/src/helpsub.c *** pfe-0-9.12/src/helpsub.c Fri Apr 28 18:59:12 1995 --- pfe-0.9.13/src/helpsub.c Mon Jul 17 20:23:58 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: helpsub.o diff -cbr pfe-0-9.12/src/indent.opt pfe-0.9.13/src/indent.opt *** pfe-0-9.12/src/indent.opt Wed Apr 19 14:09:36 1995 --- pfe-0.9.13/src/indent.opt Thu May 11 16:15:39 1995 *************** *** 2,7 **** --- 2,10 ---- -c33 -cp33 -cd33 -sc -psl + -T FILE + -T fpos_t + -T size_t -T Cell -T uCell -T dCell diff -cbr pfe-0-9.12/src/lined.c pfe-0.9.13/src/lined.c *** pfe-0-9.12/src/lined.c Fri Apr 28 18:59:13 1995 --- pfe-0.9.13/src/lined.c Mon Jul 17 20:23:58 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/lined.h pfe-0.9.13/src/lined.h *** pfe-0-9.12/src/lined.h Fri Apr 28 18:59:04 1995 --- pfe-0.9.13/src/lined.h Mon Jul 17 20:23:49 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: lined.o diff -cbr pfe-0-9.12/src/locals.c pfe-0.9.13/src/locals.c *** pfe-0-9.12/src/locals.c Fri Apr 28 18:59:13 1995 --- pfe-0.9.13/src/locals.c Mon Jul 17 20:23:58 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: locals.o diff -cbr pfe-0-9.12/src/lpf83.c pfe-0.9.13/src/lpf83.c *** pfe-0-9.12/src/lpf83.c Fri Apr 28 18:59:13 1995 --- pfe-0.9.13/src/lpf83.c Mon Jul 17 20:23:59 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: lpf83.o diff -cbr pfe-0-9.12/src/macros.h pfe-0.9.13/src/macros.h *** pfe-0-9.12/src/macros.h Fri Apr 28 18:59:04 1995 --- pfe-0.9.13/src/macros.h Mon Jul 17 20:23:50 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 82,91 **** #define STRING(X) "X" #define APPEND(X,Y) X/**/Y #else ! #define _STRG_(X) #X ! #define STRING(X) _STRG_(X) #define APPEND(X,Y) X##Y #endif #define code(X) void APPEND(X,_) (void) /* declare a primitive */ #define Code(X) static code (X) /* declare a local primitive */ --- 82,91 ---- #define STRING(X) "X" #define APPEND(X,Y) X/**/Y #else ! #define STRING(X) #X #define APPEND(X,Y) X##Y #endif + #define STRING1(X) STRING(X) #define code(X) void APPEND(X,_) (void) /* declare a primitive */ #define Code(X) static code (X) /* declare a local primitive */ diff -cbr pfe-0-9.12/src/main.c pfe-0.9.13/src/main.c *** pfe-0-9.12/src/main.c Fri Apr 28 18:59:14 1995 --- pfe-0.9.13/src/main.c Mon Jul 17 20:23:59 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 444,450 **** option.total_size); initialize_system (); - read_help_index (HELPDIR, "index"); /* If a dictionary image was built and saved, quit now: */ if (option.save_dict) --- 444,449 ---- Only in pfe-0.9.13/src: main.o diff -cbr pfe-0-9.12/src/memory.c pfe-0.9.13/src/memory.c *** pfe-0-9.12/src/memory.c Fri Apr 28 18:59:14 1995 --- pfe-0.9.13/src/memory.c Mon Jul 17 20:23:59 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: memory.o diff -cbr pfe-0-9.12/src/misc.c pfe-0.9.13/src/misc.c *** pfe-0-9.12/src/misc.c Fri Apr 28 18:59:14 1995 --- pfe-0.9.13/src/misc.c Mon Jul 17 20:23:59 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 140,151 **** --- 140,157 ---- code (smudge) /* SMUDGE (modified from FIG definition) */ { /* FIG definition toggles the bit! */ + if (LAST) *LAST |= SMUDGED; + else + tHrow (THROW_ARG_TYPE); } code (unsmudge) /* UNSMUDGE (turn smudge-bit off) */ { /* neccessary because SMUDGE modified */ + if (LAST) *LAST &= ~SMUDGED; + else + tHrow (THROW_ARG_TYPE); } /************************************************************************/ *************** *** 538,543 **** --- 544,583 ---- outs (warranty_string); } + Code (show_status) /* ( --- ) display internal variables */ + { + cr_(); + dot_version_(); + cr_(); + dot_pfe_date_(); + cr_(); + outf ("\nMemory overview:"); + dot_memory_(); + outf ("\nsearch path for source files: %s", option.incpaths); + outf ("\nextensions for source files: %s", option.incext); + outf ("\nsearch path for block files: %s", option.blkpaths); + outf ("\nextensions for block files: %s", option.blkext); + outf ("\nsearching help files in: %s", HELPDIR); + outf ("\neditor called by EDIT-TEXT: %s", option.editor); + cr_(); + outf ("\nmaximum number of open files: %u", option.max_files); + outf ("\nmaximum simultaneous interpretive S\" %u", option.pockets); + outf ("\ndictionary threads configured %u", 1< /* fpos_t, size_t, time_t and less prominent friends */ - #endif - #if defined HAVE_SYS_IOCTL_H # include /* structs and constants for low level tty access */ #endif --- 36,41 ---- *************** *** 96,101 **** --- 92,101 ---- # include /* equivalent to unistd.h on some DOS like systems */ #endif + #if defined HAVE_LIBC_H /* NeXT has this */ + # include + #endif + #if defined HAVE_CONIO_H # include /* DOS like systems define cputs() here */ #endif *************** *** 114,123 **** #if defined HAVE_STRINGS_H # include /* place where old BSD systems keep bcopy() */ - #endif - - #if defined NeXTstep - # include #endif #endif /* ndef __NONANSI_H */ --- 114,119 ---- diff -cbr pfe-0-9.12/src/options.h pfe-0.9.13/src/options.h *** pfe-0-9.12/src/options.h Fri Apr 28 18:59:06 1995 --- pfe-0.9.13/src/options.h Mon Jul 17 20:23:51 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 42,64 **** #if defined DOS_FILENAMES /* MS-DOS like file and path names */ #if defined WATCOM ! # define STR(X) X #else ! # define STR(X) STRING(X) #endif # ifdef PREFIX ! # define ROOTDIR STR (PREFIX) # else # define ROOTDIR "C:" # endif # ifdef PFELIB ! # define LIBDIR STR (PFELIB) # else # define LIBDIR ROOTDIR"\\PFE" # endif # ifdef PFEHLP ! # define HELPDIR STR (PFEHLP) # else # define HELPDIR LIBDIR"\\HELP" # endif --- 42,64 ---- #if defined DOS_FILENAMES /* MS-DOS like file and path names */ #if defined WATCOM ! # define _STR_(X) X #else ! # define _STR_(X) STRING1(X) #endif # ifdef PREFIX ! # define ROOTDIR _STR_(PREFIX) # else # define ROOTDIR "C:" # endif # ifdef PFELIB ! # define LIBDIR _STR_ (PFELIB) # else # define LIBDIR ROOTDIR"\\PFE" # endif # ifdef PFEHLP ! # define HELPDIR _STR_ (PFEHLP) # else # define HELPDIR LIBDIR"\\HELP" # endif *************** *** 68,74 **** # define INC_PATHS ";"LIBDIR"\\INCLUDE" # define INC_EXTENSIONS ";.PFE;.FS;.4TH;.FTH" # define BLK_PATHS INC_PATHS ! # define BLK_EXTENSIONS ";.BLK;.SCR" # define PFERC_FILE "PFE0.RC" # define DEFAULT_BLKFILE "PFE.BLK" # define LLCMD "DIR" --- 68,74 ---- # define INC_PATHS ";"LIBDIR"\\INCLUDE" # define INC_EXTENSIONS ";.PFE;.FS;.4TH;.FTH" # define BLK_PATHS INC_PATHS ! # define BLK_EXTENSIONS ";.BLK;.SCR;.FB" # define PFERC_FILE "PFE0.RC" # define DEFAULT_BLKFILE "PFE.BLK" # define LLCMD "DIR" *************** *** 77,93 **** #elif defined UNIX_FILENAMES /* UNIX-like file and path names */ # ifdef PREFIX ! # define ROOTDIR STRING (PREFIX) # else # define ROOTDIR "/usr/local" # endif # ifdef PFELIB ! # define LIBDIR STRING (PFELIB) # else # define LIBDIR ROOTDIR"/lib/pfe" # endif # ifdef PFEHLP ! # define HELPDIR STRING (PFEHLP) # else # define HELPDIR LIBDIR"/help" # endif --- 77,93 ---- #elif defined UNIX_FILENAMES /* UNIX-like file and path names */ # ifdef PREFIX ! # define ROOTDIR STRING1 (PREFIX) # else # define ROOTDIR "/usr/local" # endif # ifdef PFELIB ! # define LIBDIR STRING1 (PFELIB) # else # define LIBDIR ROOTDIR"/lib/pfe" # endif # ifdef PFEHLP ! # define HELPDIR STRING1 (PFEHLP) # else # define HELPDIR LIBDIR"/help" # endif *************** *** 97,103 **** # define INC_PATHS ":~/.pfe:"LIBDIR"/include" # define INC_EXTENSIONS ":.pfe:.fs:.4th:.fth:.forth" # define BLK_PATHS INC_PATHS ! # define BLK_EXTENSIONS ":.blk:.scr" # define PFERC_FILE "~/.pferc" # define DEFAULT_BLKFILE "pfe.blk" # define LLCMD "ls -alF" --- 97,103 ---- # define INC_PATHS ":~/.pfe:"LIBDIR"/include" # define INC_EXTENSIONS ":.pfe:.fs:.4th:.fth:.forth" # define BLK_PATHS INC_PATHS ! # define BLK_EXTENSIONS ":.blk:.scr:.fb" # define PFERC_FILE "~/.pferc" # define DEFAULT_BLKFILE "pfe.blk" # define LLCMD "ls -alF" Only in pfe-0.9.13/src: pfe diff -cbr pfe-0-9.12/src/preload.h pfe-0.9.13/src/preload.h *** pfe-0-9.12/src/preload.h Fri Apr 28 18:59:07 1995 --- pfe-0.9.13/src/preload.h Mon Jul 17 20:23:52 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 127,134 **** --- 127,139 ---- #define SV(NM,VAR) { "\101"NM, (pCode)&(VAR) } #define SC(NM,VAR) { "\102"NM, (pCode)&(VAR) } + #if __IBMC__ && __OS2__ /* IBM C Set/2 thinks OFFSET_OF is no constant expr */ + #define DV(NM,MEMBER) { "\103"NM, (pCode)do_##MEMBER } + #define DC(NM,MEMBER) { "\104"NM, (pCode)do_##MEMBER } + #else #define DV(NM,MEMBER) { "\103"NM, (pCode)OFFSET_OF(Dict, MEMBER) } #define DC(NM,MEMBER) { "\104"NM, (pCode)OFFSET_OF(Dict, MEMBER) } + #endif #define OV(NM) { "\105"NM, (pCode)0) } #define OC(NM,VAL) { "\106"NM, (pCode)(VAL) } diff -cbr pfe-0-9.12/src/search.c pfe-0.9.13/src/search.c *** pfe-0-9.12/src/search.c Fri Apr 28 18:59:14 1995 --- pfe-0.9.13/src/search.c Mon Jul 17 20:24:00 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: search.o diff -cbr pfe-0-9.12/src/shell.c pfe-0.9.13/src/shell.c *** pfe-0-9.12/src/shell.c Fri Apr 28 18:59:15 1995 --- pfe-0.9.13/src/shell.c Mon Jul 17 20:24:00 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 179,185 **** static int cp (const char *src, const char *dst) { ! return copy (src, dst, LONG_MAX) == (fpos_t)-1; } static int --- 179,185 ---- static int cp (const char *src, const char *dst) { ! return copy (src, dst, LONG_MAX) == -1; } static int Only in pfe-0.9.13/src: shell.o Only in pfe-0.9.13/src: showhelp diff -cbr pfe-0-9.12/src/showhelp.c pfe-0.9.13/src/showhelp.c *** pfe-0-9.12/src/showhelp.c Fri Apr 28 18:59:15 1995 --- pfe-0.9.13/src/showhelp.c Mon Jul 17 20:24:00 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 46,52 **** --- 46,54 ---- #include #include + #include "missing.h" /* SEEK_SET */ #include "help.h" + typedef char Path[PATH_LENGTH]; static Path path; /* common path name to all help files */ Only in pfe-0.9.13/src: showhelp.o Only in pfe-0.9.13/src: showhlps.o diff -cbr pfe-0-9.12/src/signals.c pfe-0.9.13/src/signals.c *** pfe-0-9.12/src/signals.c Fri Apr 28 18:59:15 1995 --- pfe-0.9.13/src/signals.c Mon Jul 17 20:24:00 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 67,76 **** } Siginfo; #ifdef HAVE_SYS_SIGLIST ! #define SIG(NM,CL,MSG) { NM, CL, STRING (NM), SIG_DFL } #else ! #define SIG(NM,CL,MSG) { NM, CL, STRING (NM), MSG, SIG_DFL } #endif /* --- 67,84 ---- } Siginfo; + #ifdef OLDCPP #ifdef HAVE_SYS_SIGLIST ! #define SIG(NM,CL,MSG) { NM, CL, "NM", SIG_DFL } #else ! #define SIG(NM,CL,MSG) { NM, CL, "NM", MSG, SIG_DFL } ! #endif ! #else ! #ifdef HAVE_SYS_SIGLIST ! #define SIG(NM,CL,MSG) { NM, CL, #NM, SIG_DFL } ! #else ! #define SIG(NM,CL,MSG) { NM, CL, #NM, MSG, SIG_DFL } ! #endif #endif /* *************** *** 248,254 **** Siginfo *s; const char *msg; ! #if !defined KEEPS_SIGNALS signal (sig, sig_handler); /* reinstall handler */ #endif #if defined EMX || defined WC_OS2V2 --- 256,262 ---- Siginfo *s; const char *msg; ! #if !KEEPS_SIGNALS signal (sig, sig_handler); /* reinstall handler */ #endif #if defined EMX || defined WC_OS2V2 *************** *** 289,295 **** static void stop_hdl (int sig) { ! #if !defined KEEPS_SIGNALS signal (sig, stop_hdl); #endif on_stop (); --- 297,303 ---- static void stop_hdl (int sig) { ! #if !KEEPS_SIGNALS signal (sig, stop_hdl); #endif on_stop (); *************** *** 308,314 **** static void winchg_hdl (int sig) { ! #if !defined KEEPS_SIGNALS signal (sig, winchg_hdl); #endif on_winchg (); --- 316,322 ---- static void winchg_hdl (int sig) { ! #if !KEEPS_SIGNALS signal (sig, winchg_hdl); #endif on_winchg (); *************** *** 350,356 **** } #endif #ifdef SIGWINCH ! #if defined KEEPS_SIGNALS signal (SIGWINCH, winchg_hdl); #endif winchg_hdl (SIGWINCH); --- 358,364 ---- } #endif #ifdef SIGWINCH ! #ifdef KEEPS_SIGNALS signal (SIGWINCH, winchg_hdl); #endif winchg_hdl (SIGWINCH); Only in pfe-0.9.13/src: signals.o diff -cbr pfe-0-9.12/src/string.c pfe-0.9.13/src/string.c *** pfe-0-9.12/src/string.c Fri Apr 28 18:59:15 1995 --- pfe-0.9.13/src/string.c Mon Jul 17 20:24:01 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: string.o diff -cbr pfe-0-9.12/src/support.c pfe-0.9.13/src/support.c *** pfe-0-9.12/src/support.c Fri Apr 28 18:59:16 1995 --- pfe-0.9.13/src/support.c Mon Jul 17 20:24:01 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 1139,1145 **** } int ! reposition_file (File *fid, fpos_t pos) { fid->last_op = 0; return fseek (fid->f, pos, SEEK_SET) ? errno : 0; --- 1139,1145 ---- } int ! reposition_file (File *fid, long pos) { fid->last_op = 0; return fseek (fid->f, pos, SEEK_SET) ? errno : 0; *************** *** 1158,1164 **** case FMODE_WOB: return 0; } ! if (!fid->last_op < 0) /* last operation was write? */ fseek (fid->f, 0, SEEK_CUR); /* then seek to this position */ fid->last_op = 1; return 1; --- 1158,1164 ---- case FMODE_WOB: return 0; } ! if (fid->last_op < 0) /* last operation was write? */ fseek (fid->f, 0, SEEK_CUR); /* then seek to this position */ fid->last_op = 1; return 1; *************** *** 1177,1183 **** case FMODE_ROB: return 0; } ! if (!fid->last_op > 0) /* last operation was read? */ fseek (fid->f, 0, SEEK_CUR); /* then seek to this position */ fid->last_op = -1; return 1; --- 1177,1183 ---- case FMODE_ROB: return 0; } ! if (fid->last_op > 0) /* last operation was read? */ fseek (fid->f, 0, SEEK_CUR); /* then seek to this position */ fid->last_op = -1; return 1; *************** *** 1211,1226 **** } int ! resize_file (File *fid, fpos_t size) { ! fpos_t pos; int r; if (fid == NULL || fid->f == NULL) tHrow (THROW_FILE_NEX); pos = ftell (fid->f); ! if (pos == (fpos_t) - 1) return -1; fclose (fid->f); --- 1211,1226 ---- } int ! resize_file (File *fid, long size) { ! long pos; int r; if (fid == NULL || fid->f == NULL) tHrow (THROW_FILE_NEX); pos = ftell (fid->f); ! if (pos == -1) return -1; fclose (fid->f); *************** *** 1643,1649 **** { /* purpose: stop the inner interpreter */ jumpbuf *buf = (jumpbuf *) *ip; ! #ifdef REGRP buf->rp = rp; #endif #ifdef REGSP --- 1643,1649 ---- { /* purpose: stop the inner interpreter */ jumpbuf *buf = (jumpbuf *) *ip; ! #ifdef REGRP /* save global register variables */ buf->rp = rp; #endif #ifdef REGSP *************** *** 1671,1678 **** ip = list; if (setjmp (stop.jmp)) { ! #ifdef REGRP ! rp = stop.rp; #endif #ifdef REGSP sp = stop.sp; --- 1671,1678 ---- ip = list; if (setjmp (stop.jmp)) { ! #ifdef REGRP /* restore global register variables */ ! rp = stop.rp; /* clobbered by longjmp() */ #endif #ifdef REGSP sp = stop.sp; *************** *** 1688,1699 **** for (;;) { #ifdef W ! Xt w = *ip++; /* ip is register but W isn't */ ! ! (*w) (); #else ! W = *ip++; /* ip and W are same: register or not */ ! (*W) (); #endif } } --- 1688,1703 ---- for (;;) { #ifdef W ! Xt w; ! #define NEXT w = *ip++, (*w) () /* ip is register but W isn't */ #else ! #define NEXT W = *ip++, (*W) () /* ip and W are same: register or not */ ! #endif ! #ifdef UNROLL_NEXT /* if it helps */ ! NEXT; NEXT; NEXT; NEXT; /* do a little loop unrolling for speed */ ! NEXT; NEXT; NEXT; NEXT; ! #else ! NEXT; /* on some machines it doesn't do any good */ #endif } } *************** *** 2276,2281 **** --- 2280,2287 ---- && strcmp (option.block_file, DEFAULT_BLKFILE) != 0) fatal ("Can't find block file %s", option.block_file); } + + read_help_index (HELPDIR, "index"); REDEFINED_MSG = FALSE; init_dictionary (sys.dict, memsiz.dict); diff -cbr pfe-0-9.12/src/support.h pfe-0.9.13/src/support.h *** pfe-0-9.12/src/support.h Fri Apr 28 18:59:07 1995 --- pfe-0.9.13/src/support.h Mon Jul 17 20:23:52 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 143,153 **** /* files =================================================================== */ ! fpos_t fsize (FILE *f); ! fpos_t size (const char *fn); ! fpos_t copy (const char *dst, const char *src, fpos_t limit); int move (const char *src, const char *dst); ! int resize (const char *fn, fpos_t size); int systemf (const char *s, ...); --- 143,153 ---- /* files =================================================================== */ ! long fsize (FILE *f); ! long size (const char *fn); ! long copy (const char *dst, const char *src, long limit); int move (const char *src, const char *dst); ! int resize (const char *fn, long size); int systemf (const char *s, ...); *************** *** 157,166 **** File *create_file (const char *p, int n, int mode); File *open_file (const char *p, int n, int mode); int close_file (File *f); ! int reposition_file (File *f, fpos_t pos); int read_file (void *p, uCell *n, File *f); int write_file (void *p, uCell n, File *f); ! int resize_file (File *f, fpos_t size); int read_line (char *p, uCell *u, File *f, Cell *ior); /* source input ============================================================ */ --- 157,166 ---- File *create_file (const char *p, int n, int mode); File *open_file (const char *p, int n, int mode); int close_file (File *f); ! int reposition_file (File *f, long pos); int read_file (void *p, uCell *n, File *f); int write_file (void *p, uCell n, File *f); ! int resize_file (File *f, long size); int read_line (char *p, uCell *u, File *f, Cell *ior); /* source input ============================================================ */ Only in pfe-0.9.13/src: support.o diff -cbr pfe-0-9.12/src/sysdep.c pfe-0.9.13/src/sysdep.c *** pfe-0-9.12/src/sysdep.c Fri Apr 28 18:59:16 1995 --- pfe-0.9.13/src/sysdep.c Mon Jul 17 20:24:01 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: sysdep.o diff -cbr pfe-0-9.12/src/term-dj.c pfe-0.9.13/src/term-dj.c *** pfe-0-9.12/src/term-dj.c Fri Apr 28 18:59:17 1995 --- pfe-0.9.13/src/term-dj.c Mon Jul 17 20:24:02 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/term-emx.c pfe-0.9.13/src/term-emx.c *** pfe-0-9.12/src/term-emx.c Fri Apr 28 18:59:17 1995 --- pfe-0.9.13/src/term-emx.c Mon Jul 17 20:24:02 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 99,105 **** if (c != -1) return c; - /* while (errno == EINTR); */ } } --- 99,104 ---- *************** *** 114,129 **** void c_putc_noflush (char c) { - switch (c) - { - case '\r': /* v_putc doesn't interpret carriage return */ - { int x, y; v_getxy (&x, &y); v_gotoxy (0, y); ! OUT = 0; } break; default: v_putc (c); --- 113,136 ---- void c_putc_noflush (char c) { int x, y; + switch (c) /* v_putc doesn't interpret some */ + { /* very common control codes */ + case '\r': v_getxy (&x, &y); v_gotoxy (0, y); ! break; ! case '\b': ! c_goleft (); ! break; ! case '\t': ! do ! { ! v_putc (' '); ! v_getxy (&x, &y); } + while (x % 8); break; default: v_putc (c); *************** *** 168,175 **** col += x; row += y; v_gotoxy (col, row); - OUT = col; } /* *INDENT-OFF* */ void c_goleft (void) { addxy (-1, 0); } void c_goright (void) { addxy ( 1, 0); } --- 175,182 ---- col += x; row += y; v_gotoxy (col, row); } + /* *INDENT-OFF* */ void c_goleft (void) { addxy (-1, 0); } void c_goright (void) { addxy ( 1, 0); } diff -cbr pfe-0-9.12/src/term-wat.c pfe-0.9.13/src/term-wat.c *** pfe-0-9.12/src/term-wat.c Fri Apr 28 18:59:17 1995 --- pfe-0.9.13/src/term-wat.c Mon Jul 17 20:24:02 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/term.c pfe-0.9.13/src/term.c *** pfe-0-9.12/src/term.c Fri Apr 28 18:59:17 1995 --- pfe-0.9.13/src/term.c Mon Jul 17 20:24:02 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/term.h pfe-0.9.13/src/term.h *** pfe-0-9.12/src/term.h Fri Apr 28 18:59:07 1995 --- pfe-0.9.13/src/term.h Mon Jul 17 20:23:52 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: term.o diff -cbr pfe-0-9.12/src/termunix.c pfe-0.9.13/src/termunix.c *** pfe-0-9.12/src/termunix.c Fri Apr 28 18:59:18 1995 --- pfe-0.9.13/src/termunix.c Mon Jul 17 20:24:03 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 166,172 **** static struct termios tty_system; #define tty_save() tcgetattr (STDIN_FILENO, &tty_system) #define tty_restore() tcsetattr (STDIN_FILENO, TCSAFLUSH, &tty_system) ! #define tty_ospeed (tty_system.c_cflag & CBAUD) int tty_interrupt_key (char ch) --- 166,176 ---- static struct termios tty_system; #define tty_save() tcgetattr (STDIN_FILENO, &tty_system) #define tty_restore() tcsetattr (STDIN_FILENO, TCSAFLUSH, &tty_system) ! #ifdef CBAUD ! # define tty_ospeed (tty_system.c_cflag & CBAUD) ! #else ! # define tty_ospeed (tty_system.c_ospeed) ! #endif int tty_interrupt_key (char ch) *************** *** 186,197 **** return -1; if (tcgetattr (STDIN_FILENO, &tty) != 0) return -1; if (ch) tty.c_iflag |= BRKINT; else tty.c_iflag &= ~BRKINT; - old = tty.c_cc[VINTR]; tty.c_cc[VINTR] = ch; tcsetattr (0, TCSAFLUSH, &tty); return old; } --- 190,206 ---- return -1; if (tcgetattr (STDIN_FILENO, &tty) != 0) return -1; + old = tty.c_cc[VINTR]; if (ch) + { tty.c_iflag |= BRKINT; + tty.c_cc[VINTR] = 0xFF; + } else + { tty.c_iflag &= ~BRKINT; tty.c_cc[VINTR] = ch; + } tcsetattr (0, TCSAFLUSH, &tty); return old; } *************** *** 564,569 **** --- 573,580 ---- /* rawkey_string [EKEY_enter - EKEY_k1] = "\r"; */ for (i = 0; i < DIM (tcctlcode); i++) control_string[i] = tgetstr (tcctlcode[i], &tctop); + if (control_string [cursor_left] == NULL) + control_string [cursor_left] = "\b"; #if defined HAVE_OSPEED { *************** *** 652,657 **** --- 663,670 ---- KINIT (kC, key_clear); /* clear screen key */ #undef KINIT + if (cursor_left == NULL) + cursor_left = "\b"; return 1; } Only in pfe-0.9.13/src: termunix.o diff -cbr pfe-0-9.12/src/toolkit.c pfe-0.9.13/src/toolkit.c *** pfe-0-9.12/src/toolkit.c Fri Apr 28 18:59:18 1995 --- pfe-0.9.13/src/toolkit.c Mon Jul 17 20:24:03 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 234,240 **** CO ("DUMP", dump), CO ("SEE", see), CO ("WORDS", words), ! CO ("AHEAD", ahead), CO ("BYE", bye), CO ("CS-PICK", cs_pick), CO ("CS-ROLL", cs_roll), --- 234,240 ---- CO ("DUMP", dump), CO ("SEE", see), CO ("WORDS", words), ! CI ("AHEAD", ahead), CO ("BYE", bye), CO ("CS-PICK", cs_pick), CO ("CS-ROLL", cs_roll), Only in pfe-0.9.13/src: toolkit.o diff -cbr pfe-0-9.12/src/types.h pfe-0.9.13/src/types.h *** pfe-0-9.12/src/types.h Fri Apr 28 18:59:07 1995 --- pfe-0.9.13/src/types.h Mon Jul 17 20:23:52 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 42,47 **** --- 42,52 ---- #include #endif + #if defined HAVE_SYS_TYPES_H + # include /* size_t, time_t and friends */ + #endif + + typedef unsigned char Byte; /* an 8-bit unsigned number */ typedef unsigned short WORD; /* a 16-bit unsigned number (probably) */ *************** *** 74,80 **** signed char last_op; /* -1 write, 0 none, 1 read */ WORD len; /* if stream: length of input line */ uCell size; /* if block file: size of file in blocks */ ! fpos_t pos; /* a saved position, e.g. beginning of line */ uCell n; /* block in buffer or source line */ Cell updated; /* if block file: block updated? */ char name[PATH_LENGTH]; /* file name */ --- 79,85 ---- signed char last_op; /* -1 write, 0 none, 1 read */ WORD len; /* if stream: length of input line */ uCell size; /* if block file: size of file in blocks */ ! long pos; /* a saved position, e.g. beginning of line */ uCell n; /* block in buffer or source line */ Cell updated; /* if block file: block updated? */ char name[PATH_LENGTH]; /* file name */ *************** *** 86,92 **** Cell source_id; /* SOURCE-ID */ File *block_file; /* which file is active? */ uCell blk; /* currently loaded block */ ! fpos_t pos; /* stream file: beginning of line in file */ char *tib; /* points to TIB or to EVALUATED string */ uCell number_tib; /* #TIB, length of string in TIB */ uCell to_in; /* input parsing position */ --- 91,97 ---- Cell source_id; /* SOURCE-ID */ File *block_file; /* which file is active? */ uCell blk; /* currently loaded block */ ! long pos; /* stream file: beginning of line in file */ char *tib; /* points to TIB or to EVALUATED string */ uCell number_tib; /* #TIB, length of string in TIB */ uCell to_in; /* input parsing position */ *************** *** 150,155 **** --- 155,178 ---- char *hld; /* auxiliary pointer for number output */ Cell dpl; /* position of input decimal point */ }; + + #if defined __IBMC__ && defined __OS2__ + enum dictOffs /* normally these are determined with */ + { /* OFFSET_OF, C Set/2 can't do that. */ + do_dp = 0, + do_fence = do_dp + 4, + do_last = do_fence + 4, + do_voc_link = do_last + 4, + do_context = do_voc_link + 4, + do_only = 16 + 4 * ORDER_LEN, + do_current = do_only + 4, + do_forth = do_current + 4, + do_dforder = do_forth + 4, + do_application = do_dforder + 4 * ORDER_LEN, + do_hld = do_application + 4, + do_dpl = do_hld + 4 + }; + #endif struct sysvar /* all FORTH system variables */ { diff -cbr pfe-0-9.12/src/unix.c pfe-0.9.13/src/unix.c *** pfe-0-9.12/src/unix.c Fri Apr 28 18:59:18 1995 --- pfe-0.9.13/src/unix.c Mon Jul 17 20:24:03 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: unix.o diff -cbr pfe-0-9.12/src/version.c pfe-0.9.13/src/version.c *** pfe-0-9.12/src/version.c Fri Apr 28 18:59:19 1995 --- pfe-0.9.13/src/version.c Mon Jul 17 20:24:03 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz *************** *** 38,44 **** "Version "VERSION" of "DATE""; char copyright_string [] = ! "\nCopyright Dirk Uwe Zoller 1994."; char license_string [] = "\n" --- 38,44 ---- "Version "VERSION" of "DATE""; char copyright_string [] = ! "\nCopyright Dirk Uwe Zoller 1995."; char license_string [] = "\n" Only in pfe-0.9.13/src: version.o diff -cbr pfe-0-9.12/src/virtual.h pfe-0.9.13/src/virtual.h *** pfe-0-9.12/src/virtual.h Fri Apr 28 18:59:08 1995 --- pfe-0.9.13/src/virtual.h Mon Jul 17 20:23:53 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz diff -cbr pfe-0-9.12/src/vocs.c pfe-0.9.13/src/vocs.c *** pfe-0-9.12/src/vocs.c Fri Apr 28 18:59:19 1995 --- pfe-0.9.13/src/vocs.c Mon Jul 17 20:24:04 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: vocs.o diff -cbr pfe-0-9.12/src/xception.c pfe-0.9.13/src/xception.c *** pfe-0-9.12/src/xception.c Fri Apr 28 18:59:19 1995 --- pfe-0.9.13/src/xception.c Mon Jul 17 20:24:04 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: xception.o diff -cbr pfe-0-9.12/src/yours.c pfe-0.9.13/src/yours.c *** pfe-0-9.12/src/yours.c Fri Apr 28 18:59:19 1995 --- pfe-0.9.13/src/yours.c Mon Jul 17 20:24:04 1995 *************** *** 16,22 **** * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.12 of 28-Apr-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz --- 16,22 ---- * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ! * This file is version 0.9.13 of 17-July-95 * Check for the latest version of this package via anonymous ftp at * roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-VERSION.tar.gz * or sunsite.unc.edu:/pub/languages/forth/pfe-VERSION.tar.gz Only in pfe-0.9.13/src: yours.o Only in pfe-0.9.13/test: checkans.fs diff -cbr pfe-0-9.12/test/exceptn.4th pfe-0.9.13/test/exceptn.4th *** pfe-0-9.12/test/exceptn.4th Wed Apr 26 19:48:59 1995 --- pfe-0.9.13/test/exceptn.4th Thu Jul 13 10:38:05 1995 *************** *** 20,22 **** --- 20,32 ---- : UNDEF S" :-) 0 Y " ; UNDEF ' EVALUATE CATCH -13 = Y 2DROP D + + \ + \ Test handling signals with Forth words. + \ + + CR + : SIG-TERM-HDL ." SIGTERM handled ok. " ; + ' SIG-TERM-HDL SIGTERM SIGNAL . + SIGTERM RAISE + 0 SIGTERM SIGNAL ' SIG-TERM-HDL = Y diff -cbr pfe-0-9.12/test/suite.4th pfe-0.9.13/test/suite.4th *** pfe-0-9.12/test/suite.4th Sat Apr 15 22:12:31 1995 --- pfe-0.9.13/test/suite.4th Thu Jul 6 21:36:23 1995 *************** *** 16,32 **** S" core.fr" INCLUDED FORGET-TESTER/CORE ! EXTENSIONS ALSO FORTH CR CR .( testing pfe extensions:) INCLUDE defs.4th WAIT ! \ display environment INCLUDE environ.4th WAIT CR CR .( More tests:) --- 16,47 ---- S" core.fr" INCLUDED FORGET-TESTER/CORE ! CR ! CR .( running checkans, a test for words missing from the ANS word sets) ! CR .( =================================================================) ! CR ! MARKER FORGET-CHECKANS ! S" checkans.fs" INCLUDED ! FORGET-CHECKANS ! CR CR .( testing pfe extensions:) + EXTENSIONS ALSO FORTH INCLUDE defs.4th WAIT ! \ display status and environment ! SHOW-STATUS ! WAIT ! INCLUDE environ.4th + WAIT + \ test help + HELP FE. WAIT + CR CR .( More tests:) Only in pfe-0.9.13/test: wordsets.fs