= Sfera versions history :author: Marcos Cruz (programandala.net) :revdate: 2017-09-09 // This file is part of Sfera, a library for SuperForth // http://programandala.net/en.program.sfera.html // You may do whatever you want with this work, so long as you // retain the copyright/authorship/acknowledgment/credit // notice(s) and this license in all redistributed copies and // derived works. There is no warranty. // This file is written in AsciiDoc/Asciidoctor format // (http://asciidoctor.org) Note: Version numbering after http://semver.org/[Semantic Versioning]. == 0.0.0 Initial development, from 2015-12-31 to 2016-01-14. Started from a simple boot file. == 0.1.0+20160115 First usable version. The main words are defined in the <boot_fs> file. Optional words are in Forth or binary files. === Main features - `code`, `end-code`, `next,` and other basic words to facilitate creating machine code definitions. - Set of standard address arithmetic words. - Set of header addresses words. - New operators and stack words. - Nestable `include`, `included`; non-nestable versions `include-code` and `included-code` for assembled binary files. - Nestable `require`, `required`; non-nestable versions `require-code` and `required-code` for assembled binary files. - Tool modules: `dump`, `wdump`, `adump`, `decode` (some fixes pending). - Floating point module updated with standard names, and some comus addons. - New parsing and compiling words, like `postpone`. - Basic initial support for standard strings. - Numeric prefixes: `c#`, `h#`, `d#`, `b#`. - Fixed two name clashes: `char` is renamed to `chr@` and `unused` is renamed to `spared`. Standard `char` and `unused` are provided. - New string operators which work with ordinary counted strings (the SuperForth string operators work only with its own format, which include the maximum length). - Conditional compilation. - Standard `endcase`. - Words to facilitate reading the keyboard. - Words to facilitate managing the windows: `set-window`, `window`, `set-main-window`... - `boot` reboots the Forth system. - Standard `value` (single-cell values only). - System information words: `screen-size`, `get-mode`, `sys-vars`, `current-job-id`. == 0.1.1+20160115 - Fix: Removed a missing old file loaded from <boot_fs>. - Change: Updated some file headers. == 0.2.0+20160126 - New: more system information words: `machine` , `processor`, `display-type`. - New: words to allocate memory from the OS common heap: `aallocate`, `afree`, `aunused`. - Change: `screen-size` is renamed to `display-size`. - New: standard deferred words: `defer`, `defer!`, `defer@`, `defers`, `action-of`, `is`. - Removed `win-base-len`, which still is a draft. == 0.3.0+20160213 Main changes: - Improvement: included files don't need `end-of-file` anymore. - New: 8 configurable paths for source files. - New: `s"` (finished), `slit`, `sliteral`, `s+`. - New: circular string buffer. Other changes: - Improvement: one loader for every binary module, so all modules can be loaded with the standard words, no matter if they are coded in Forth or assembly. - New: `al@`, a variant of `a2@` which puts the low part on top of stack. - Fix: the limit of nested sources is checked. - Change: files of `aallocate` and `aunused` are renamed, according to the convention representing Forth word names by their components, the way they are pronounced. - New: `dp`, `align`, `move`. - Change: `uppercase` expects an address and a length. - Change: Moved `dump-address`, `allocate`, `save-mem` and `?\` to their own files. - New: `?os-error`. - Fix: `set-default-channel`. - New: __bench_fs__. - Fix: renaming of `unused` to `spared`. - New: `ununderscore`, a tool for renaming the original words of SuperForth. == 0.3.1+20170909 - Fix source corruption in the `tuck` module.