[<<][staapl][>>][..]
Tue Jun 3 11:14:34 CEST 2008

fixing forth instantiation

made the first changes to purrr/forth.ss so it generates just
syntax. need to change:

   - handling of toplevel require forms using parameter
   - compilation

maybe i should just give up the production of forth dictionary
'records' and just use the environment to dump stuff, making
compilation of a .f file a side-effectful operation.

SOLUTION:

  move everything that's not part of the instantiation macro to
  toplevel using the forth-toplevel-forms parameter. this includes
  macros (and maybe variable definitions?) and definition of the word
  structs.

  the remaining running state is just a single big macro which inlines
  the word structs in the macro code using the 'label' forth
  word. i.e:

     (define-ns (target) bla (make-target-word #:name bla))

     ... ,(ns (target) bla) label ...


  this way, forth compilation is what it is: construction of a macro
  that after instantiation gives a code graph. all OTHER stuff that
  happens in a .f file (definition of macros, variables, imports, ...)
  have a straight meaning as scheme module components and can be
  recorded in a side channel, implemented by a parameter.


  ( i can't help but think about writing the parser words as scat
  words.. this is yet another threaded state problem.. )


stubbornness: i'm just going to keep things as they were. cleaned up
purrr/forth.ss a bit + finally undersood how namespaces can share
code, and it looks like this is enough to build the necessary
abstractions.

NEXT: load



[Reply][About]
[<<][staapl][>>][..]