[closer-devel] slots on layers

Pascal Costanza pc at p-cos.net
Thu Oct 2 13:57:30 UTC 2008


Just to give a note that I haven't forgotten about this: I have a  
response for this email, but need a bit more time in a row to  
formulate it well. Sorry for the delay, I hope to be able to post the  
reply soon.

I expect to be able to implement what's necessary by end of October /  
beginning of November. I now have a pretty good idea what to do that  
should be useful for everyone, but I hope to be able to discuss this  
before making the changes to (hopefully) get your acknowledgment.

Best,
Pascal

On 15 Sep 2008, at 22:35, Attila Lendvai wrote:

>> True, that implementation seems more simple (although I think my  
>> suggestion
>> is not that complicated either, but I'm probably not communicating  
>> it well
>> enough at the moment).
>
>
> my concerns are mostly related to debugging a random problem with this
> machinery operating in the background. also i think that it's a middle
> ground solution that on one hand has lost its simplicity and on the
> other hand doesn't give a generic solution, either (see below)...
>
>
>> I am very interested to hear more about this, because this seems to  
>> be a
>> part where I can double check whether "my" dynamic environments are  
>> general
>> enough to support such things:
>
>
> it's available at:
> http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=cl-dwim-wui;a=summary
>
> search for call-in-component-environment and
> with-restored-component-environment.
>
> starting the thing is more pain than it should be for now, especially
> when you want to use the interesting part (the metagui that can
> present a random cl-perec ER model).
>
>
>> + To what extent is your machinery more fine-grained? Can you  
>> select which
>> special variables are captured and which aren't? Or do you mean  
>> something
>> else here?
>
>
> it's basically a generic method called for each component in the
> component path to the root, in a definite order. so you can bind
> whatever you want in :around methods...
>
> of course it means that it's more trouble to rebind variables with
> this infrastructure than it would be with a dedicated dynamic
> environment support. but on the other hand we can run code if needed,
> as opposed to simply reinstating special bindings. and also it's a
> specialized infrastructure related to components/gui's, nothing
> generally usable.
>
> btw, i think the generic solution to this problem would be to have
> continuations (either delimited or not) with dynamic-wind support
> (e.g. as in scheme). for me anything else feels as a specific solution
> given to a certain use-case. in fact if i really needed this generic
> language feature, then i would implement closure based CPS in
> cl-delico (it only has an interpreter for now) and add dynamic-wind
> support to it.
>
> so, to sum up my current state of mind: i'd implement layer instance
> modification using a specialized cloning (random sideffect: much
> faster slot access on layers); do our specialized one-shot
> continuations using some light macrology (as currently done); and if i
> ever wanted to have all this in a generic way, then i'd extend
> cl-delico with dynamic-wind.
>
> but i'm right before falling asleep, so... :)
>
> -- 
> attila

-- 
Pascal Costanza, mailto:pc at p-cos.net, http://p-cos.net
Vrije Universiteit Brussel, Programming Technology Lab
Pleinlaan 2, B-1050 Brussel, Belgium









More information about the closer-devel mailing list