[Bese-devel] Re: LISP for web
Marco Baringer
mb at bese.it
Fri Jun 10 08:48:50 UTC 2005
The following message is a courtesy copy of an article
that has been posted to comp.lang.lisp as well.
"Peter Scott" <sketerpot at gmail.com> writes:
> Could you give more details about this interpreter? What problems is it
> supposed to solve, and how does it solve them? Since I've written a
> significant real-world application with UCW and I plan to use it more
> in the future, I'm intensely interested in any upcoming major
> improvements to it.
by controlling the execution of the code (instead of just rewriting it
and passing it to the underlying lisp) we can:
1) allow mutually recursive actions; allow actions which call actions
to be defined in any order (currently an action must be defined
before it can appear in the body of an action which calls
it). (this particular limitation is the "straw which broke my
back")
2) deal with lambdas in actions. for example you will be able to
write:
(setf effective-users
(remove-if (lambda (user)
(call 'option-dialog
:message (format nil "Do you want to keep ~A?"
(username user))
:options '(("Yes" . t) ("No" . nil))))
available-users))
3) support catch/throw and progv (as long as they don't extend outside
the current continuation's delimitiation).
4) support multiple-values (this is doable in the current
implementation but i never got around to actually doing it).
5) greatly improve the debugging and error reporting (the current
transformation destroys the original code and this makes it very
hard (even for me) to debug actions).
however we'll take a major speed hit (though in my test in time spent
executing actions is ~0 compared to the time spent copying the html to
the socket) and we'll (i'll) need to reimplement certain standard
functions (such as remove-if) to deal with continuation enabled
lambdas functions (this is where sacla comes in).
this isn't really a 'major' feature, but it will be a big help and,
hopefully, allow people to write/debug more complicated actions.
p.s. - could we get more details on your real-world app?
--
-Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
-Leonard Cohen
More information about the bese-devel
mailing list