💾 Archived View for retroforth.org › RELEASE-NOTES.txt captured on 2024-08-18 at 16:41:15.

View Raw

More Information

⬅️ Previous capture (2024-02-05)

-=-=-=-=-=-=-

                _              __            _   _
       _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__
      | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \
      | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |
      |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

            RetroForth & nga 2024.1 Release Notes

================================================================

- general
  - removed some unneeded files
  - quieter output when building
  - remove old Python build + packaging code
  - configuration of devices can now be done in either config.h
    or (by default) Configuration.mk
  - build instructions for enabling/disabling devices updated

- toolchain
  - removed duplicate typedef in tools/retro-muri.c
    (reported by sevan)
  - update tools/missing-dsource.retro
  - in retro-muri.c, use bsd_strlcpy  (rep by fangchar)
  - retro-describe now using hash based name comparison
  - retro-describe small reductions in call/return overhead

- documentation
  - add missing source data for vocabularies & globals:
    a: d: double: err: file: fll: mem: script:
  - fix misc. typos

- examples
  - add example/irc-logger.retro
  - add example/ilo-export.retro
  - add new example showing decompression of ulz files
  - add example/vocabulary.retro
  - add example/colored-dwords.retro

- image
  - small optimizations in fll: vocabulary
  - move from interface/ to package/extensions/:
    double.retro malloc.retro
  - in retro.forth, fix `s:index/char` (rep by fangchar)
  - remove separate temp. string buffer in `s:dedup`
  - use constants for device identifiers in the Forth part of
    the device handlers
  - support loading extensions at runtime via `library:load`
    (searches ./library/ and ~/.config/retroforth/library/)
  - more use of assembly language
  - move full listener from interface/retro-unix to the base
    image

- library
  - block-editor (from konilo)
  - describe (lookup glossary data at runtime)
  - konilo (some words from konilo, was in image previously)
  - termina (from konilo [console, colors, tui programs])
  - x11 (for use w/nga-x11)

- retro-compiler
  - fix bugs in retro-compiler(1) preventing compilation
  - fix bug in retro-compiler(1) causing compiled programs to
    hang on startup
  - added an initial man page for retro-compiler(1)

- new nga implementations
  - nga-d
  - nga-x11

- nga-c
  - fixed a bug in load_image()  (rep. by sevan)
  - err:notfound message no longer in C  (sevan)
  - add -v for verbose mode
  - now skip execuion of NOP instructions
  - fix some casting issues
  - force immediate exit() on HA instruction
  - file:read-line now provided by file device
  - use mode array instead of conditionals when opening files
    and pipes
  - remove obsolete/unused files
  - refactor handling of invalid opcodes
  - use constants for device identifiers
  - remove need to lookup & call err:notfound
  - use C preprocessor to help with readability in arg.
    processing
  - optional BRANCH_PREDICTION (build-time option) to use
    __builtin_expect() (faster on some systems). (~iacore)

Future Notes

In 2023.9 the nga-c implementation added support (enabled by
default) for using UTF32 (translating incoming source and output
between UTF8 and UTF32 transparently). The fallback option (to
just read raw 8-bit values) is now considered deprecated and
will be removed in the future (assuming no bug reports relating
to the UTF32 conversions are reported).

================================================================