[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