retroforth/RELEASE-NOTES

108 lines
2.6 KiB
Text
Raw Normal View History

# 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
- add irc-bot.retro
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
- minor expansions to the descriptions in the glossary
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