# RETRO 2019.10 This is a worthwhile release, bringing changes and improvements in several areas. ## 64-Bit RETRO has been 32-bit only since the days of RETRO2 apart from some limited experiments with RETRO11. I'm pleased to say that this release of RETRO12 adds support for building a system with 64-bit cells. This carries the same limitations regarding instruction packing, addressing, etc as the standard 32-bit system, and is not built by default. If you want to build a 64-bit system, do: make clean; make CFLAGS="-O2 -DBIT64" ## Compatibility There are a few small breaks in compatibility. `unix:time` was removed. There is some discussion ongoing about this, but leaving it in would be problematic on 32-bit systems in a couple of years when the counter overflows. For now, I have added `clock:timestamp`, but the value of the epoch this uses may change in the future. The time functions in the `clock:` namespace are now part of their own I/O device. This aids in allowing them to be enabled on a VM that disables the Unix system interface. In this release the time functions remain accessible via the Unix device, but this will be dropped in the next release. ## User Interface The 'ok' prompt has been removed. ---- # Detailed Changelog Examples - use a `.retro` extension instead of `.forth` - add `Gott.retro` - add `wordwrap.retro` - add `reforth.retro` - add an example showing how to generate an array of namespaces - fixed content type header in Casket retro-unix - deprecate unix:io:n:put - deprecate unix:io:s:put - deprecate unix:write - remove unix:time - add clock:timestamp - move clock: words to their own device handler - move rng to its own device handler - fix unix:getcwd - fixes to f:to-e and e:to-f - better output on stack under/overflow errors - add guards for floating point stack over/underflow - fix an issue w/loading images - moved xorshift and mersenne rng to examples retro-compiler - add new clock, rng devices to runtime retro-javascript - new interface layout Documentation - fix typos - fix stack comments in the glossary - fix some namespace listings in the glossary - correct an example in the book - formatting improvements in html for glossary server Kernel - fix assembly listing in rx.muri - remove an unused function - several clarifications to commentary Tooling - use Luke's proposed changes in retro-muri (C) - add retro-tags - add a tool to export rx.muri as html for better reabability Build - fix a dependency issue with the .retro sources - fix the retro/javascript build tool VM - added new queries for cell min/max values