[Bese-devel] status of ucw on various implementations

Plamen Stamov ng at stamov.ch
Sun May 2 14:37:59 UTC 2004


Hello,

I sendet several mails to you, but may be your spam filter reacts on 
"macrolet" :)

So here it goes again.

As first thank you a lot for providing the daily snapshots of the source 
of UCW!

Last week I've managed to let it run in LispWorks using a patch (which I 
sended to you) for the old version of the CPS-transformer.
Here is a new patch for the version from 27.04.2004 (sorry for not 
having the possibility to provide a real diff or something which arch 
could understand automatically, so the rest of the mail could become 
boring):

In the file ucw/ucw/libs/arnesi/src/cps.lisp there is a fragment of code 
like this

(ensure-exists-handler 'application)

(setf (handler.rename (gethash 'application *cps-handlers*))
     (lambda (form)
       (destructuring-bind (op &rest args)
           form
         (acond
          ((lookup :flet op) `(,it ,@(mapcar #'cps-rename args)))
          ((lookup :macrolet op) (cps-rename (funcall it form)))
The next line (in my copy it is the line 198) in case of found 
macro-function, it gets invoked.
          ((macro-function op) (cps-rename (funcall it form nil)))
For LispWorks, this has to be expaned using this :
          ((macro-function op) (cps-rename (macroexpand-1 form nil)))
If I interpret CLHS correctly, the patch doesn't restrict and doesn't 
change the semantics. (macroexpand would do it probably too, but I 
haven't readed enough the source of the CPS-transformer).

So the new form would look like

(setf (handler.rename (gethash 'application *cps-handlers*))
     (lambda (form)
       (destructuring-bind (op &rest args)
           form
         (acond
          ((lookup :flet op) `(,it ,@(mapcar #'cps-rename args)))
          ((lookup :macrolet op) (cps-rename (funcall it form)))
          ((macro-function op) (cps-rename (macroexpand-1 form)))
          (t `(,op ,@(mapcar #'cps-rename args)))))))

I hope this mail reaches you

With best regards
Plamen Stamov

Marco Baringer wrote:

>Supposedly UCW runs on SBCL, OpenMCL and CMUCL. let's check:
>
>OpenMCL - ok (this is after all the main development platform)
>SBCL/ppc single thread - ok.
>SBCL/x86 - ??
>CMUCL - no.
>
>:(
>
>i'd like to know what platforms ucw is (and isn't) running on. Since i
>don't have cmucl available i can't personally deal with that
>implementation. Does anybody with some spare time and cmucl care to
>get ucw running on that implementation?
>
>  
>







More information about the bese-devel mailing list