Building MiniSat with Emscripten for the Meteor logic-solver
- Install Emscripten. On a Mac with Brew,
brew install emscriptenwill do it.(Last tested with emscripten 1.28.0.)
- Check that you have
nodein your path. If you don'thave
nodein your path, you can locally modify the script in the next stepwhere it says
NODE=node. (Node is only used to run a quick sanity checkafter compiling.)
- In the repo directory, run
- That's it. If everything worked, the build product is
The 'native' part of logic-solver is in
meteor/logic-solver.cc. If you addfunctions to it, you need to also list them in
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
meteor/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.