[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-hackers] [PATCH] Move foldable binding annotations into type
[Chicken-hackers] [PATCH] Move foldable binding annotations into types.db
Tue, 30 Sep 2014 00:33:21 -0700
OpenSMTPD enqueuer (Demoosh)
The attached patch moves foldable binding annotations out of
c-platform.scm and into types.db.
While looking into #986, 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!).
So, I audited the whole lot of `foldable-bindings`, and in doing so
moved them into types.db as #:foldable properties for clarity. I have a
hunch that many of the incorrect markings were there in part due to the
indirect way the set of foldable bindings was defined, and in any case
now that we have types.db I think it makes sense to keep as many of
these properties as possible in a single, declarative place.
It's also safe to fold predicates, so rather than redundantly mark all
of those procedures redundantly, I've made #:predicate imply #:foldable
in the optimizer.
A summary of the changed annotations follows. Note that you'll have to
build this revision with itself via boot-chicken, as the new types.db
property is unrecognized on older versions and they'll take this as a
reason to bomb.
If I've missed anything, let me know.
No longer foldable, because they no longer exist:
No longer foldable, either because (a) that can't ever actually happen,
(b) doing so seems wrong to me, or (c) they mustn't be folded according
to the spec (or some similar line of thought):
Now foldable, though they weren't previously:
For reference, the remaining procedures were previously foldable, and
Description: Text document
|[Prev in Thread]
||[Next in Thread]|
- [Chicken-hackers] [PATCH] Move foldable binding annotations into types.db,
Evan Hanson <=