Wed Apr 29 10:23:57 CEST 2009


This uses some special trick in the name mapping.  Will the simpler
infrastructure be able to handle it?

The problem is this:

  (define (map-id id)
    (let ((target (ns-prefixed #'(target) id))
          (macro  (ns-prefixed #'(macro) id)))
       ((identifier-binding target) target)
       (else #`(target-simulated #,macro)))))

Name mapping in the new rpn code cannot be made procedural.  To get to
the same functionality, all macros need to be wrapped in the target
space as well.

So, instead of seeing a namespace as a collection of objects, what
about seeing it as a _language_ first, with the objects being part of
the implementation.

So, add a macro to map from (macro) -> (target) for each target word.

No.. The cleanest solution is to make the namespace syntax functional
by setting

(define-syntax-rule (macro . form) (ns (macro) . form))

And figuring out how to get to the local identifiers.

Let's try in rpn first.