Alessio Stalla wrote: > I have found out the problem with Cells on abcl after a bit of debugging. > > The function c-unlink-useds in link.lisp uses delete, which somehow > destructively modifies something it should not -
Right you are. But it is not doing it should not -- that labels from gets passed the same structure being acted on by the delete, so the outer guy of course sees that. I have always hated that code, but one attempt to clean it up did have a performance hit so it has to stay a little ugly. I think the remove works but is the wrong fix (and will be a performance killer scaled up). I see that the outer block of code does its own cleanup of useds, so it is being done twice -- very efficiently, but twice. What I think needs doing is avoiding the inner delete by mutating the list differently. I will stare at it and see what I can come up with. Thx for the detective work. kt the list of useds > gets one item shorter (not the list inside the cell but the list > "useds" in c-unlink-unused, which apparently shares structure with the > list inside the cell, but who knows). Replacing delete with remove > does the trick. I don't know if this is caused by abcl's delete being > buggy but I doubt it, since the implementation of delete in abcl is > taken from cmucl, and that should be bug-free enough ;) however, I'll > investigate this further. > > (Thomas, I saw you at the ELS but in the end I didn't want to bother > you with this - I wanted to keep the fun for me ;) thanks for your > offer of help, anyway). > > So now tests appear to pass. And, apart from using remove and adding a > few read conditionals, no changes to cells are required for it to work > on abcl. Abcl itself needs to be slightly modified (it needs to expose > a couple of internal MOP functions). I'll talk to the devs about > incorporating these changes on trunk and hopefully in the coming 0.15 > release of abcl. > > Bye, > Alessio S. > > _______________________________________________ > cells-devel site list > cells-devel@common-lisp.net > http://common-lisp.net/mailman/listinfo/cells-devel > > > ------------------------------------------------------------------------ > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.5.339 / Virus Database: 270.12.53/2154 - Release Date: 06/04/09 > 05:53:00 > _______________________________________________ cells-devel site list cells-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cells-devel