Opened 8 years ago
#1323 new defect
Teach compiler that fold and map with clean procedure is itself clean
Reported by: | sjamaan | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | someday |
Component: | compiler | Version: | 4.11.0 |
Keywords: | optimisations | Cc: | |
Estimated difficulty: | hard |
Description
It looks like CHICKEN currently doesn't understand that fold
and map
are #:clean
if the argument procedure is #:clean
. This prevents it from recognising that something like (fold + 0 (iota 10000))
is foldable.
We could hardcode these procedures, but I'd prefer not to, so this might require some kind of new annotation in types.db
.
This idea was inspired by http://pramode.in/2016/08/25/rust-add-billion-numbers/ - if Rust can do it, so can we!
Note: See
TracTickets for help on using
tickets.