「view this page in B3 βῆτα server」

Revisions №57408

branch: master 「№57408」
Commited by: Brian Weitzner
GitHub commit link: 「011e0124b7636da2」 「№138」
Difference from previous tested commit:  code diff
Commit date: 2014-11-09 09:42:34

Merge pull request #138 from RosettaCommons/weitzner/fix-xcode-after-ptrs This revision includes various fixes to enable the C++11 builds on OS X 10.9+. Apple doesn't ship anything licensed with GPLv3, and as such the LLVM C++ library, libc++ (dual license: MIT and UIUC), is provided instead of libstdc++. It turns out there are a few differences between the two implementations that required a bunch of fixes throughout Rosetta. The most important change is that classes that extend `std::enable_shared_from_this` cannot directly construct a COP. That is, the following code will not compile: `ThingCOP my_thing( new Thing );` The fix for this is to construct an anonymous OP first: `ThingCOP my_thing( ThingOP( new Thing ) );` This changes also makes the C++11 build the default on OS X 10.9+, which is preferable to using BOOST pointers when it is possible. These changes triggered an issue in the environment code that leads to a segfault when calling `env.start`. Justin is aware of the problem and is working with Luki to figure out the best course of action, but in the meantime the environment unit tests have been disabled. A lot of people were very helpful in getting this to work. I especially want to shout out to Luki for writing some additional AST-based rewriting tools to automate a lot of the fixes. Doug and Sergey were also extremely helpful in helping get everything tested. Some of the tests on the test server may throw script errors right now and I will be working with Sergey to update those tests ASAP.

...