Mini Sat Solver For Mac
Building MiniSat with Emscripten for the Meteor logic-solver
- Install Emscripten. On a Mac with Brew,
brew install emscripten
will do it.(Last tested with emscripten 1.28.0.) - Check that you have
emmake
,emcc
, andnode
in your path. If you don'thavenode
in your path, you can locally modify the script in the next stepwhere it saysNODE=node
. (Node is only used to run a quick sanity checkafter compiling.) - In the repo directory, run
meteor/make-emscripten.sh
. - That's it. If everything worked, the build product is
build/minisat.js
.
Notes:
The 'native' part of logic-solver is in
meteor/logic-solver.cc
. If you addfunctions to it, you need to also list them inmake-emscripten.sh
.We wrap the entire Emscripten output in a closure, so that we can createmultiple instances of the entire C environment (including the heap).MiniSat's C++ classes are slightly leaky, and it doesn't seem wise to havemultiple solver instances sharing a heap on the 'native' side. Better tofully isolate instances, and not rely on (or even call) the destructor.
Download free qb78 pcp conversion kit for mac. There's heap allocation instrumentation, hackily implemented, that doesn'tactually run unless you put the compiler in debug mode (see comment in themake script about the -g flag). You also need to uncomment the linesstarting with
/////
inmeteor/midamble.js
(which have been disabledso that they don't interfere with asm.js optimization).You want to leave minification on (no -g flag), because unlikeclient-side code served by Meteor (which is minified anyway), Noderuns this code directly. Minification actually helps the JS compiletime quite a bit!
X-MiniSAT is a CDCL SAT solver based on MiniSAT 2. Winning all the industrial. You can do this on both Windows and Mac computers. Shop AppleCare Protection Plan for Mac 3-year plan at Best Buy. Find low everyday prices and buy online for delivery or in-store pick-up. Price Match Guarantee.