[retroforth] RetroForth 8.0

  • From: Charles Childers <charles.childers@xxxxxxxxx>
  • To: RetroForth Mailing List <retroforth@xxxxxxxxxxxxx>
  • Date: Sat, 15 Jan 2005 15:06:07 -0500

It's time to start discussing what's coming in RetroForth 8, and what
you'd like to see. I have done a lot of work already (numerous changes
to the compiler implementation making it simpler and fixing a few
remaining design problems). In addition, I've done the following so
far:

* Block editor (including load/save of a blockfile under Linux)
* "Classic" Forth interpreter
* Color/text attribute words for Linux/FreeBSD
* Eliminated does> (more on this later)
* Inlining of a few words
* New FFI for dealing with Win32 DLL's and libraries

The block editor and block words play a major role in 8.0; TIB is a
block, PAD is a block, and you get a word ("offset") that returns the
address the block buffer starts at. (You could use the block words to
load a file here and eval the region rather than deal with actual
blocks if you like)

I removed does> for various reasons; there's a replacement called "does" in 8.0:

: (foo) 10 + ;
: foo create literal, does (foo) ;

This encourages factoring a bit more without sacrificing flexibility
as far as I can tell.

So a quick set of questions I'd like feedback on:

Optomizations: should the core inline any words that don't have to be
inlined? I can inline simple stack words like swap drop dup nip
easily, but should that be part of the core?

Colors: should colors be part of the core system, or a loadable option?

Blocks: These will be part of the 8.0 core.
Files: These will not be part of the 8.0 core.
Comments on the above are welcome of course :)

Overall I'm leaning to a lean core, with just the words needed to
handle the interpreter/compiler, editor, and colors in the console.
Almost anything else can be loaded easily now; so it's less of a
hassle not to build them in. The optomizations are an important issue:
they make the kernel binary larger, but can yield significant speed
increases (inlining just swap, drop, and nip makes 8.0 faster on FIB
that the latest Reva release).

So share thoughts, comments, suggestions, etc: this is the time for us
to make the decisions that will shape the next few years for
RetroForth. I'll be expanding on some things over the next day or two,
but feel free to ask questions if you have any.

--
Charles Childers

Other related posts: