2019-01-03 16:34:14 +01:00
|
|
|
# RETRO 12.2019.1
|
2018-11-04 22:34:56 +01:00
|
|
|
|
|
|
|
In this release, the executables have been renamed to avoid
|
|
|
|
naming conflicts with other applications and packages.
|
|
|
|
|
|
|
|
old name new name
|
|
|
|
========== ================
|
|
|
|
rre retro
|
|
|
|
embedimage retro-embedimage
|
|
|
|
extend retro-extend
|
|
|
|
muri retro-muri
|
|
|
|
repl retro-repl
|
|
|
|
ri retro-ri
|
|
|
|
unu retro-unu
|
2018-04-25 18:51:46 +02:00
|
|
|
|
2018-11-09 05:01:12 +01:00
|
|
|
The addition of the new `|` prefix makes compiler macros
|
|
|
|
easier to write. Contrast:
|
|
|
|
|
|
|
|
:IF &[ class:macro ; immediate
|
|
|
|
:THEN &] class:macro &choose class:word ; immediate
|
|
|
|
|
|
|
|
:IF |[ ; immediate
|
|
|
|
:THEN |] |choose ; immediate
|
|
|
|
|
2018-11-04 22:57:09 +01:00
|
|
|
## Bug Fixes
|
2017-11-19 02:12:29 +01:00
|
|
|
|
2019-01-03 16:34:14 +01:00
|
|
|
- `s:empty` now returns a terminated string
|
|
|
|
|
2018-07-31 17:38:06 +02:00
|
|
|
## Build
|
2018-04-18 17:42:23 +02:00
|
|
|
|
2018-11-04 22:34:56 +01:00
|
|
|
- add `Makefile.linux` to help with building on some Linux systems
|
2018-11-14 23:56:30 +01:00
|
|
|
- recreate `bin` if it's not present
|
2018-11-04 22:34:56 +01:00
|
|
|
|
2018-07-31 17:38:06 +02:00
|
|
|
## Core Language
|
2017-11-19 02:12:29 +01:00
|
|
|
|
2018-08-21 02:54:38 +02:00
|
|
|
- add `c:to-number`
|
2019-01-03 16:34:14 +01:00
|
|
|
- minor optimizations and cleanups throughout
|
2018-09-06 17:50:08 +02:00
|
|
|
- `s:format` now treats `\0` as ASCII NUL
|
2018-11-09 05:01:12 +01:00
|
|
|
- added `prefix:|` for use with compiler macros
|
2019-01-03 16:34:14 +01:00
|
|
|
- inline select words for better performance and code density
|
2018-11-20 01:35:34 +01:00
|
|
|
- add `set:counted-results`
|
|
|
|
- deprecate `set:from-results`
|
2018-02-12 19:23:34 +01:00
|
|
|
|
2018-11-22 01:05:28 +01:00
|
|
|
## Nga
|
|
|
|
|
2019-01-03 16:34:14 +01:00
|
|
|
- new instructions
|
|
|
|
|
|
|
|
- add `ie` (i/o enumerate)
|
|
|
|
- add `iq` (i/o query)
|
|
|
|
- add `ii` (i/o interact)
|
2018-11-22 01:05:28 +01:00
|
|
|
|
2018-07-31 17:38:06 +02:00
|
|
|
## Interfaces
|
2017-11-19 02:12:29 +01:00
|
|
|
|
2018-11-04 22:34:56 +01:00
|
|
|
### retro (formerly rre)
|
2018-09-06 17:50:08 +02:00
|
|
|
|
|
|
|
- moved Windows implementation to `interfaces/windows`
|
2018-11-04 22:34:56 +01:00
|
|
|
- now starts the listener when run w/o any arguments
|
2018-11-14 23:56:30 +01:00
|
|
|
- added `-s` command line parameter to silence input echo & ok prompt
|
2018-11-18 22:27:40 +01:00
|
|
|
- merged in the FloatingPointEncoding words (`u:` namespace)
|
|
|
|
- added `f:store`, `f:fetch`
|
2018-09-06 17:50:08 +02:00
|
|
|
|
2019-01-03 16:34:14 +01:00
|
|
|
### retro.py
|
|
|
|
|
|
|
|
- fixed the bug causing it to run at a glacial pace
|
|
|
|
|
|
|
|
### barebones
|
|
|
|
|
|
|
|
- a small repl minimizing the C portion of the code
|
|
|
|
|
|
|
|
### listener
|
|
|
|
|
|
|
|
- removed. use `retro` or `retro-repl` instead
|
|
|
|
|
2018-11-04 22:57:09 +01:00
|
|
|
## Tools
|
2017-11-19 02:12:29 +01:00
|
|
|
|
2018-11-04 22:57:09 +01:00
|
|
|
- added commentary to Unu
|
2018-11-20 01:35:34 +01:00
|
|
|
- Retro implementation of Unu
|
|
|
|
- Retro implementation of Muri
|
2018-11-22 01:05:28 +01:00
|
|
|
- added Muri support for I/O instructions
|
2018-11-04 22:57:09 +01:00
|
|
|
|
|
|
|
## Other
|
|
|
|
|
2019-01-03 16:34:14 +01:00
|
|
|
- builds no longer fail if `bin/` does not exist
|
|
|
|
|
2018-11-04 22:57:09 +01:00
|
|
|
## Documentation
|
2017-11-19 02:12:29 +01:00
|
|
|
|
2018-07-31 17:38:06 +02:00
|
|
|
- Glossary expanded to cover the new words
|
|
|
|
|
2018-11-04 22:57:09 +01:00
|
|
|
## Examples
|
2017-11-19 02:12:29 +01:00
|
|
|
|
2019-01-03 16:34:14 +01:00
|
|
|
- atua now caps selector length at 255 characters (as per spec)
|
|
|
|
- atua no longer needs to read in entire file before sending
|
|
|
|
- prime sieve now does primes <= 3000 (no longer crashing when
|
|
|
|
using default memory size)
|
|
|
|
- added matrix example
|
|
|
|
- added lightweight flow control words
|
|
|
|
- gopher client now works on the standard `retro` interface
|
|
|
|
|
2018-11-04 22:57:09 +01:00
|
|
|
## Final Notes
|
2019-01-03 16:34:14 +01:00
|
|
|
|
|
|
|
While this release has taken longer than expected to finish, I
|
|
|
|
am very pleased with it. The better naming of binaries, new I/O
|
|
|
|
model, and numerous small optimizations in the core language
|
|
|
|
make it better than ever.
|