Zach Beane <[email protected]> writes: > In section 11.1.2.1.2 (http://l1sp.org/cl/11.1.2.1.2), the CLHS says > that the consequences are undefined if a method is defined for a > standardized generic function that is applicable when all the > arguments are direct instances of standardized classes. > > cl-cont's special-transformers.lisp has this: > > (defmethod documentation :around ((obj symbol) (doc-type (eql > 'function))) > (let ((fn (when (fboundp obj) (fdefinition obj)))) > (if (typep fn 'funcallable/cc) > (documentation (f/cc-function fn) doc-type) > (call-next-method)))) > > Since that standard GF is specialized for symbols and functions, > LispWorks refuses to accept it with an error like this: > > Error: Defining (METHOD DOCUMENTATION :AROUND (SYMBOL (EQL #))) > visible from package COMMON-LISP. > > Because of that error, weblocks will not load on LispWorks. (LispWorks > is being picky; no other implementation I tried complained. But I > think the spec is clear about the situation and LispWorks is allowed > to signal an error.) > > I removed that method (and the setf method), and weblocks loads and > runs fine on LispWorks. > > Any chance that cl-cont will be updated to fix this issue?
Below is also a patch for LispWorks 4 & 5 from Martin Simmons against cl-cont_0.3.7 which I never submitted (sorry). I don't use weblocks, only cl-cont, and I never noticed that cl-cont was updated since the 0.3.7 release (which I am still using). Note that LispWorks 6 onward don't need the patch. Maybe this is still useful for someone. Nico Martin Simmons <[email protected]> writes: >> Hi Nico, >> >> There are a small number of non-standard special operators in LispWorks that >> code walkers have to handle. >> >> The one that causes problems in your example is >> SYSTEM::MULTIPLE-VALUE-BIND-CALL, which is used by MULTIPLE-VALUE-BIND. >> >> I've attached a patch for LispWorks 6 Beta to fix that, which has loading >> form >> >> (load-one-private-patch "multiple-value-bind" :system) >> >> In addition, the following definition will fix cl-cont for previous releases >> by processing it like MULTIPLE-VALUE-CALL. >> >> #+(or lispworks4 lispworks5) >> (defcpstransformer system::multiple-value-bind-call (cons k-expr env) >> "Transforms system::multiple-value-bind-call expression to CPS style." >> (let ((fn (cadr cons)) >> (forms (cddr cons))) >> (accum-mc-sequence->cps forms fn k-expr nil env))) >> >> Regards, >> >> Martin Simmons >> LispWorks Technical Support >> http://www.lispworks.com/support/ >> >> >>>>>>> On Sun, 20 Sep 2009 18:03:44 +0200, Nico de Jager said: >>> >>> Dear LispWorks support >>> >>> I need delimited continuations as provided by e.g. one of these two >>> projects: >>> cl-cont - http://common-lisp.net/project/cl-cont/ >>> arnesi - >>> http://common-lisp.net/project/bese/docs/arnesi/html/Automatically_Converting_a_Subset_of_Common_Lisp_to_CPS.html >>> >>> cl-cont actually works with LispWorks as long as the code is not >>> compiled. Below (**) is a simplified example of code that breaks when it >>> is compiled. I did contact the maintainers of the project, but was >>> referred back to LispWorks - see >>> http://groups.google.co.za/group/weblocks/browse_frm/thread/f7dbf4eb5be1c267?hl=en >>> for details. The problem may be related to insufficient information about >>> COMPILER::INTERNAL-THE or other LispWorks specific special operators. >>> >>> Arnesi used to work with LispWorks 4.x but was broken in LispWorks >>> 5.x. See the lisp-hug thread with subject >>> "harlequin-common-lisp:augment-environment for LW 5.0?" for requests to >>> add hcl:augment-environment back to get this working (Gmane is down for >>> maintenance so I can't post the link to the thread). >>> >>> Can you please implement a fix or provide me with a quotation and >>> timelines to implement a fix, to either: >>> 1) get cl-cont to work with the current release of LispWorks, >>> 2) get arnesi to work with the current release of LispWorks, >>> 3) or provide a LispWorks specific alternative that supports delimited >>> continuations to at least the level specified by cl-cont. >>> >>> Options 1 seems to be the least amount of work. >>> >>> If the fix is not free and I accept the quotation, the patches to the >>> libraries or the extensions to LispWorks can be made available to the >>> LispWorks community. >>> >>> I attach a version of cl-cont with other dependencies removed if you >>> would like to run my example. >>> >>> Regards. >>> Nico -- You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/weblocks?hl=en.
