Skip to content

Releases: crcx/retroforth

RetroForth 2021.4

27 Apr 14:49
Compare
Choose a tag to compare

RetroForth 2021.4 Release Notes

Core Language

Renamed

  • prefix: namespace to sigil:

I/O

  • simplify definition of c:get
  • reduced memory usage of the forth part of the code
    in most devices

Toolchain

  • retro-extend.py now does run length encoding

VM

  • nga-python

    • added support for run length encoded images
    • added a decimal device (alt. to floating point w/higher precision)
    • better fix for nested file inclusion handling
    • start adding pythonista ui support (iOS)
    • now runs under Python 2 again
  • nga-c

    • single file implementation (runs on unix, windows)
    • compile time defines for enabling i/o devices
    • better fix for nested file inclusion handling
    • removed unused variables
    • use a struct for processor state, stacks
    • sockets interface now optional, disabled by default
    • dev-image.c removed (image:save is now written in Retro)
    • faster opcode processing (enabled by default on Unix)
  • nga-816

    • assembly implementation for 65c816
    • by Piotr Meyer

Examples

  • reduced some line lengths
  • refactored retro-locate
  • file names now using a consistent case/format
  • added a line oriented text editor
  • updated amalgamation tool for latest nga-c

Documentation

  • epub now has a cover image
  • added back some missing files
  • add note on enabling sockets when building on Unix
  • fixed typos in the glossary

RetroForth 2021.2

19 Feb 00:08
Compare
Choose a tag to compare

This is a maintenance release primarily fixing an issue causing address stacks corruption in some cases.

2021.1

23 Jan 21:42
Compare
Choose a tag to compare

RetroForth 2021.1 Release Notes

Core Language

  • choose (and other conditionals) now treat non-zero as TRUE and
    zero as FALSE instead of requiring a flag of -1 for TRUE
  • add ^ (ASCII ESC) to escape sequences in s:format

I/O

  • improvements to some of the pipe related words in the unix:
    namespace
  • reduced code size for each device handler slightly
  • added abort to Retro on Unix

Toolchain

Makefile

  • Small adjustments to reduce build time

C

  • retro-unu

    • now supports user defined code and test block delimiters (C)
  • retro-muri

    • supports changes from retro-unu
    • now has separate passes for each step of the assembly process
    • removed some unused variables

Python

  • retro-amalgamate.py added to generate a single file Python source
  • faster retro-extend.py
  • added retro-embedimage.py

VM

nga-c

  • reduced redundancy across the various implementations in C
  • removed an unused function
  • fixed several bugs in address stack handling in execute() that
    were causing issues when including files in some circumstances

nga-python

  • now written using classes
  • no longer limited to 32 or 64 bit cells
  • uses Python functions to shadow some Retro words for better
    performance
  • caches the Retro dictionary to improve lookup performance
  • embeds image as a Python source
  • now supports -f, -i, and -u command line parameters
  • improved error handling for invalid addresses
  • fixed a bugs in address stack handling in execute() that was
    causing issues when including files in some circumstances

nga-nim

  • added initial Nim implementation by Jorge Acereda

Examples

  • added "2020 Advent of Code", days 1-5
  • added palindromic numbers detection (SVFIG challenge)
  • added bindings over curl
  • added muri with direct use of hex values
  • refactoring & general cleanups in Atua-WWW
  • Atua-WWW now ignores ?... appended to URLs