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.

Reply via email to