# tag: stepan's changelog for CVS Mon Jul 14 02:16:49 CEST 2003 - fix segv overrun while dumping dictionary in unix.c - implement first version of >number and $number - add stack diagram to digit - no newline after accept - new version of the interpreter - fix make run target Mon Jul 14 20:15:40 CEST 2003 - negate true value in prims - get rid of primitive word bounds. - get rid of some obsolete code. - implement io[cwl][@!] - reorganize [in|out][bwl] - start adding stack diagrams to primitives. Mon Jul 14 23:57:46 CEST 2003 - added some more stack diagrams in forth.h - move parse, parse-word, word to bootstrap.fs - include memory.fs from bootstrap.fs for above. Wed Jul 16 22:57:31 CEST 2003 - add include guards - add banner - fix primitives' dependencies Sun Jul 20 03:27:40 CEST 2003 - remove unneeded readcell - rename ' to ['] to meet specs Sun Jul 20 14:08:43 CEST 2003 - add rest of stack diagrams in forth.h - move here and here! to forth.h (from internal.h) - indent includes - merge system.h into forth.h - Change tag of forth.h (!) because the old one did not meet the meaning of the code. - update comments in primitives.c Sun Jul 27 01:53:18 CEST 2003 - include great new do/?do/loop/+loop implementation from Patrick. - include testsuite enhancement from Patrick - include trampoline from Patrick (fixes execute) Sun Jul 27 21:11:50 CEST 2003 - update x86 console code to become when using multiboot (vga/keyboard). - fix exit properly - revert to old case..endcase code - fix >number and $number - add number parsing to interpreter - add simple stack checking to interpreter - add 2 testcases (exit and case2) Mon Jul 28 14:49:31 CEST 2003 - move 7.3.7 Flag constants up in bootstrap.fs - move 7.3.9.2.4 Miscellaneous dictionary down. - add reveal, recursive, recurse, environment? to 7.3.9.2.4 - move (to) to bootstrap.fs Mon Jul 28 17:08:58 CEST 2003 - add stack overflow check to interpreter - check parse-word result in interpreter. - add ascii and char, add helper handle-lit Tue Jul 29 09:20:18 CEST 2003 - add s" and ." - add [char] and control - heavily move around words in bootstrap.fs to get dependencies resolved. - fix skipws crash - rename query to refill - interpreter reads several words in a line now - interpreter stops now if error encountered in currently parsed line. - add forth definitions of ( and \ - change c parser/interpreter to handle comments correctly. - indent, clean up unix.c Tue Jul 29 18:13:27 CEST 2003 - add .( (chapter 7.3.4.4) - add pack, -trailing (chapter 7.3.4.8) - add d#, h#, o# (chapter 7.3.5.2) - let first stack element start at 1 instead of 0 to have a 1 cell guard band. - set SA_NODEFER flag to signal handler to ensure that it is entered recursively. Tue Jul 29 19:06:18 CEST 2003 - more simplification for unix.c - add ', ['], find - fix pack, count - add literal, compile, [compile], compile, - fix [ Wed Jul 30 01:24:24 CEST 2003 - add >body, body> - add helpers: flags?, immediate?, compile-only?, header - add :, ;, constant, value, variable, buffer: - parse word's flags in interpreter to make colon definitions work - add "compiled" acknowledge when interpreter is in compile mode Wed Jul 30 07:27:58 CEST 2003 - fix flags handling in interpreter - fix handle-text compile mode behaviour - add defer, struct, field - add behaviour, to - add $create, create, does> (missing c code DODOES) - add abort Thu Jul 31 07:58:35 CEST 2003 - fix DODOES cfa code - make 2@ and 2! colon definitions instead of primitives. - add word "cell" - add warning message as described in 7.3.9.1 if an already existing word is created Fri Aug 1 23:32:57 CEST 2003 - fix s" in C interpreter (compare case insensitive) - fix forth source dependencies - fix forth word sm/rem Sat Aug 2 13:34:43 CEST 2003 - add band guard around input buffer - make sure that "header" pads null bytes - define -1,0,1,2,3 early to safe dictionary space Sat Aug 2 16:58:31 CEST 2003 - use getopt/getopt_long for option parsing - add include path option -I to unix - don't create obsolete symlink in forth/Makefile - fix recurse - fix prim word / - implement postpone - fix 2!, ['] and ' - implement evaluate/eval Sun Aug 3 11:48:18 CEST 2003 - implement "bye" to leave the engine - change initial word to "initialize" and make quit restart the forth engine. - fix missing ; in u. - fix return value of find when handling an immediate - getting rid of primitives mod, /mod and /, replacing them by floored variants as IEEE 1275-1994 says. - clean up primitives. Sun Aug 3 23:06:39 CEST 2003 - fix >body, body> - make not a synonym for invert as described in IEEE 1275 - todigit can now switch between capital and small letters via value capital-hex? Mon Aug 4 21:57:06 CEST 2003 - indent unix.c - reimplement do, ?do, loop, +loop with prim helpers. It now passes hayes' ans forth test suite. - adopt unix.c and bootstrap.fs to new (?)do..(+)loop - remove unneeded if around ?do..loop in ", - interpreter: clear input buffer before refilling it - serialize PC changes in dobranch and do?branch Thu Aug 7 19:00:43 CEST 2003 - add/change missing/incomplete copyright notices - implement " Sun Aug 10 19:52:20 CEST 2003 - reimplement catch, through - implement abort" - rephrase endcase - change interpreter to use exception words - implement forget - add dummy "forth" Sun Aug 10 22:12:28 CEST 2003 - fix "spaces" - create subdir util for types.sh and new bin2hex - enable forth.html again, running hayes test suite. - include dictionary in char array instead of elf section when building an x86 "full" image - don't newline in accept. - fix " compile mode behavior. - move throw/catch and use it with ' and ['] - add :noname Thu Aug 14 23:02:15 CEST 2003 - fix "field" - implement second stage bootstrapping NOTE: changes dictionary format! - drop initxt from dictionary, since we know "last" now. - output dictionary can be named on command line. - make segfault handler optional Mon Sep 1 19:41:23 CEST 2003 - move findword() et al to dict.c (needed by openbios.c due to last dictionary change) - fix findword() return values and optimize it slightly. - indented some files. Mon Sep 8 22:43:55 CEST 2003 - add initial AMD64 support (cloned x86 target) - get vocabulary implementation working. maybe buggy, but operable - enable vocabulary support by default (vocabularies? set to true) - drop duplicate "forth" - fix some comments in forth files. Sun Sep 28 14:26:41 CEST 2003 - some documentation and comment fixes - fix parameter passing for io words. Thu Oct 2 08:21:06 CEST 2003 - clean up lit - inline some functions from internal.h (reduces size and execution time) Fri Oct 3 15:20:44 CEST 2003 - make i and j primitives. This safes a lot of time in loops. i.e. the following dummy loop executes 300% faster: : fbar 1000 0 do 1000 0 do j drop i drop loop loop ; Sat Oct 11 20:18:22 CEST 2003 - include plugin interface for unix hosted version. - add plugin_pci and plugin_qt as examples. - add simple set of pci functions for testing the pci plugin - add state variable "runforth" to be changed by the qt plugin on exit. Sun Oct 12 14:57:54 CEST 2003 - move internal.h and forth.h to kernel/ - replace make by $(MAKE) in some places. Tue Oct 14 01:06:39 CEST 2003 - add (immediate) and (compile-only) Wed Oct 15 00:52:49 CEST 2003 - check whether dlopen() needs libdl. - include BSD compile fixes from oxygene - fix abort" Tue Oct 21 22:08:00 CEST 2003 - fix forth.html dependencies - yet another indent orgy Thu Oct 30 16:10:01 CET 2003 - add "call" to execute native code functions - plugin_qt: fix framebuffer address on 64bit systems - plugin_pci: create position independent code. Wed Nov 5 08:38:18 CET 2003 - fix "comp" (from Samuel Rydh) - include instance support (from Samuel Rydh) Sun Nov 9 15:53:33 CET 2003 - some changes for "see" - apply more patches from Samuel. - smaller, better implementation of handle-text Mon Nov 10 22:06:32 CET 2003 - increase max dictionary size from 64k to 128k - add simple fcode to qt plugin - fix handle-text (move null-align up) Tue Nov 11 22:53:27 CET 2003 - rename ?key to key?. - clean up .s - add (cr Tue Nov 17 22:42:54 CET 2003 - enterforth rstack fix (from Samuel) - include latest version of qt interface fcode driver - fix "header" (from Samuel) Wed Nov 26 15:12:07 CET 2003 - merge patches from Samuel: - add $buffer: - fill all of "ib", not only 80 characters - interpreted conditionals support - late initializers Sun Nov 30 23:04:28 CET 2003 - fix bug in enterforth (non-colon words would destroy PC) Sat Dec 13 00:57:01 CET 2003 - add initial ppc infrastructure - only search current wordlist in "header" - seperate unix host binary and bootstrap interpreter. Sun Dec 14 18:13:29 CET 2003 - add sys-debug word and use it to stop forth interpreter during bootstrap if an error occurs. Sat Mar 13 16:30:30 CET 2004 - fix digit problem