Hacker News new | ask | show | jobs
by hackandthink 1116 days ago
Compiling Scala without a SAT solver is probably too difficult.

The CNF Converter is a gem.

https://github.com/scala/scala/blob/v2.13.5/src/compiler/sca...

1 comments

Can you expand a bit on why / which bits of Scala compilation this is used for?
It is used for pattern matching.

I don't know anything about the Scala compiler. A few years ago I needed a CNF Converter and I ripped their Logic Module.

(performant CNF Converter are harder to find than SAT Solver)

Nice idea! The pattern matching compiler/optimizer in OCaml doesn't do this. It's implemented using this algorithm which I've attempted to understand a few times but is a bit beyond me:

Fabrice Le Fessant, Luc Maranget, Optimizing Pattern-Matching ICFP'2001 http://pauillac.inria.fr/~maranget/papers/opat/