On Tue, Sep 30, 2014 at 12:33:21AM -0700, Evan Hanson wrote: > Hi all, > > The attached patch moves foldable binding annotations out of > c-platform.scm and into types.db. > > While looking into #986[1], I realized there are currently several > library procedures that are marked foldable when they really shouldn't > be (such as the example in the ticket itself!).
Hi Evan, I finally made some time to look into this (sorry for the delay!), and I've pushed the changes. Thanks a lot for this improvement! However, I wondered about one thing: why did you decide to make string and list procedures non-foldable? I understand that the spec says literals shouldn't be mutated because they may share storage, but in CHICKEN this never happens, AFAIK (Felix, anyone, please correct me if I'm wrong!). Since it never happens, it may be a good idea to allow string and list constants to be folded anyway. In any case, right now there's an inconsistency: number->string, ##sys#fixnum->string and symbol->string are marked foldable, whereas (for example), list->string and blob->string aren't. Whichever way we decide to approach this, that inconsistency should be resolve, I think. Cheers, Peter -- http://www.more-magic.net _______________________________________________ Chicken-hackers mailing list Chicken-hackers@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-hackers