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

Reply via email to