[retroforth] Re: RetroForth 8.0

  • From: Charles Childers <charles.childers@xxxxxxxxx>
  • To: retroforth@xxxxxxxxxxxxx
  • Date: Sun, 16 Jan 2005 08:31:03 -0500

> >>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.<<
> 
> My only concern here is: does it involve an extra jump for every
> invocation of the 'does' word?

No. does> changed a jump (call dovar) to (call code_after_does) and
inserted a bit of "fixup" code after does> and before allowing the
compiler to continue. My does word inserts a single call followed by a
ret. does> ended up inserting more jumps overall (the fixup code made
use of an additional subroutine).

> >Blocks: These will be part of the 8.0 core.<
> 
> I would prefer loadable personally, but not a biggie. :)

The problem here is that  we have to have a way to load things. I can
do  blocks, which are easily portable across OSes (including the
native version) or files, which tend to be a bit trickier to deal with
IMO. A fixed-size blockfile is enough to let us load and enable
full-scale file I/O, so I see this as the best route.

--
Charles

Other related posts: