Aggressive inlining

Blue Steel bluesteel0001 at yahoo.com
Wed Nov 19 14:43:29 EST 2003


I'm working on a parlor trick.

I would like to solve a 3-SAT problem at compile time,
so that the executable is super fast.

Consider
---------------------------------------------------
formula (x1,x2,x3) = (x1 || x2) && x3

tf = [True, False]

assignments = [(x1,x2,x3)|x1<-tf,x2<-tf,x3<-tf]

solutions = filter formula assignments

main = do print solutions
---------------------------------------------------

Theoretically, a compiler could optimize this to
---------------------------------------------------
main = do print [(True,True,True),...]
---------------------------------------------------

Is this actually possible in GHC?  I've played with
inline pragmas and looked at -ddump-..., but I haven't
made much progress.

Of course, the goal is to replace "formula" with a
formula that takes a 30-tuple instead of a triple and
really let GHC crank.

Thanks for any help.


__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree


More information about the Haskell-Cafe mailing list