[lisp-interface-library-devel] Curating libraries

Dan Lentz danlentz at gmail.com
Tue Oct 30 11:53:28 UTC 2012


Fare I will study the AVL implementation and begin work bringing WB and RB
into conformance as soon as power returns (I'm still sitting in the dark
over here; thank heavens for smartphones)  I've been doing a similar type
of thing with pure and stateful, only using dynamically scoped functions
and contextl.  IPS seems to accomplish the same goal but in a way that
improves on this approach in a number of ways, not the least if which is
being more clear and evident to the reader.

In fact DrewC may appreciate I'd been using his CSTM as a means of
implementing the "box" of the root container in my "stateful" type.

Ctries are very different from binary trees of course but also very easy to
implement pure and stateful by virtue of the capability for O(1) "Atomic
Fork" operation which produces a (still mutable) structure that is
independently readable and writable at a small cost to the next few
subsequent lookup operations in both the original and clone Ctries.

No doubt the ctrie is kind of an "odd duck" but also present some
opportunity for harnessing different types of behaviors more difficult with
other structures

Very happy to be participating in this effort,
Dan

On Monday, October 29, 2012, Faré wrote:

> On Tue, Oct 30, 2012 at 5:50 AM, Dan Lentz <danlentz at gmail.com<javascript:;>>
> wrote:
> > I've got ctries, redblack trees, and weight-balanced trees I've been
> > thinking about trying to integrate with/into LIL.  I would be proud if
> > any/all of it were to be rolled into the LIL project proper.
> >
> Yes. we already have AVL trees, so redblack and weight-balanced
> should be easiest to integrate in the current framework.
> Could you write both the pure and stateful variants?
>
> I have some vague ideas on how both pure and stateful data structures
> could be deduced from a single specification using IPS (at compile-time?)
> to distinguish between the two variants. Something like:
>         (update-node! <pure?> node :left l :right r)
> Would expand either to in-place modification of the node (stateful case),
> or creation of a new node (pure case).
> But I haven't tried anything like that yet, so please disregard
> unless you're interested in experimenting yourself.
>
> > Regarding non-concurrent structures with concurrent interface --  I'm
> > probably not the most qualified to answer but if you we're to ask me I
> > think that new futures library by deliciousrobot looks interesting.
> > It implements  cooperative multitasking based on green threads built
> > using cl-cont.
> >
> I remember doing green threads on top of arnesi, in philip-jose.
> It was great. I should definitely contact deliciousrobot at some point
> and send him my code in case he's missing anything, so we can declare
> philip-jose dead and consolidate.
>
> > My access to email is sporadic over the next day or so.  Everyone here
> > in South Jersey is hunkered down in anticipation of the hurricane.
> >
> No problem. Take your time, and be safe!
>
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics•
> http://fare.tunes.org
> Success is getting what you want. Happiness is wanting what you get.
>         — Dale Carnegie
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/lisp-interface-library-devel/attachments/20121030/1ee9f350/attachment.html>


More information about the lisp-interface-library-devel mailing list