## Copyright (C) 2016 Jeremiah Orians ## This file is part of stage0. ## ## stage0 is free software: you an redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. ## ## stage0 is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with stage0. If not, see . * Current ** Added Incorporated High level prototypes into makefile Added logic to catch non-existent input files and report a useful error message Added DP! to stage2 forth Added EXECUTE to stage2 forth Added ABORT to stage2 forth Added string print and address to output of High level prototype disassembler Added initial prototype library for forth developers who want better ANS support Expanded stage0 VM Halcode to provide a way to lookup total amount of physical memory ** Changed Extended VPATH in makefile to shorten dependency names Updated checksum for stage2 forth Reversed the order of operands in stage2 forth arithmetic Modified webIDE to leverage new enhanced disassembler output Altered stage2 forth KEY to echo keypress so that S" and similiar functions behave like gforth Altered EXECUTE in stage2 forth to set R12 and load its pointer and jump ** Fixed Stack offset bug in stage2 forth was found and fixed by reepca in record time Fixed 2DUP and ?DUP in stage2 forth Swapped TRUE and FALSE values in stage2 forth to match http://lars.nocrew.org/dpans/dpans3.htm#3.1.3 Adjusted order of comparisions to better match ans Stack leak in stage2 forth found and corrected Stage2 forth no longer attempts to parse carriage returns Stage2 forth now will display and error and clear the stacks in the event of an undefined input Stage2 forth now respects the HIDDEN Flag Stage2 forth now no longer clears during CMOVE to better comply with the spec ** Removed Removed need for sponge to be used to run webIDE * 0.0.7 - 2017-06-03 ** Added Added HACKING guide covering critical sections Added rom building steps to make Added more advanced cleaning options to makefile Extended stage2 lisp with null? Extended stage2 lisp with string=? Exported DEHEX rom image to makefile and added checksum ** Changed Cleaned up x86 notes and moved into x86 folder Changed the results of make all to include all of the essential roms Made makefile parallel build friendly ** Fixed Fixed failure to lookup symbols that are identical but are in different lexical scopes Updated Bootstrapping instructions to reflect new checksum and recommendation for most minimal requirements Fixed flaws in existing makefile Added build instructions to README and listed dependencies Imported High level prototypes for new functions ** Removed Purged notes that no longer apply or belong outside of stage0 Removed redundent clean options from makefile * 0.0.6 - 2017-05-20 ** Added Added absolute addresses to High level assembler output to aid in debugging of complex assembly programs Added Let expressions to High Level prototype lisp Added Let expressions to stage2 lisp implementation ** Changed Converted High level prototype lisp from dynamic scope to Lexical Converted stage2 lisp implementation from dynamic scope to Lexical ** Fixed Made Web debugger provide more useful information Fixed regression in web debugger's ability to read input files Fixed regression in stage2 lisp garbage collection interacting with let expressions Fixed SHA256SUM of stage2 lisp to match new binary result ** Removed * 0.0.5 - 2017-05-06 ** Added Added write to lisp Added Cell Compactor to Lisp garbage collector resulting with multiple performance improvements Added bootstrapping steps documentation Added ability to specify amount of Available RAM on a Per run basis, however 16KB is the default ** Changed Correct lisp High level prototype to include line comments Changed default RAM to 16KB Updated bootstrap documentation to match the memory requirements of the individual steps ** Fixed Fixed missing traces when memory outside of world are accessed when profiling Imported improved High Level Lisp Prototype Updated bootstrap documentation to reflect change in Lisp sha256sum caused by recent performance upgrade ** Removed * 0.0.4 - 2017-02-18 ** Added + Added missing primitives from High level prototype to lisp implementation + Improved Eval's debugging messages ** Changed + Readline function no longer displays EOF Char should the user terminate input with Ctrl-d ** Fixed + Corrected Eval's processing of ASCII type + Make IF statements behave correctly + Enabled support for negative numbers + Properly display Integer Cells with the value of ZERO ** Removed + Removed Eval's default behavior of unknown input * 0.0.3 - 2017-02-17 ** Added + Added a primitive Lisp implementation in assembly + Gave primitive Lisp an exact garbage collector for CELLs (aka everything but strings) + Added a concatination program to make dealing with line macros easier for M0-macro programmers ** Changed + Enhanced Forth to better fit memory space ** Fixed Fixed arrangement of spaces in forth to prevent the small input space bug ** Removed * 0.0.2 - 2016-11-01 ** Added + Created xeh tool in C for more cross platform debugging + Created M0 in hex2 + Documented build steps in notes.org + Imported CMPSKIP instructions that operate on 2 registers + Imported CMPJUMP instructions that operate on 3 registers + Incorporated bounds checking on all vm->Memory accesses + Wrote the forth implementation in assembly ** Changed + Renamed xeh1 files to match current naming standard + created roms/ to store previously built roms and expanded .gitignore to prevent binary blobs from being checked in. + Revised stage0 Monitor to utilize ANDI and updated the Hex0 version to incorporate the enhancements made previously ** Fixed + Fixed leading char bug in M0 + Updated Checksums to reflect updates in stage1_assembler-2 + Corrected CMPSKIP(u) to CMPSKIP(u)I to match current naming scheme for instructions + Corrected CMPJUMP(u) to CMPJUMP(u)I to match current naming scheme for instructions ** Removed * 0.0.1 - 2016-10-02 ** Added + Initial draft of change log added ** Changed + Reorganization of Files to group files by stage ** Fixed + Line Macro assembler M0 is now self hosting