New VMs with NativeBoost: callback support + Cairo library bundling on MacOS
After spending a whole day, fighting with Jenkins monster it was finally able to produce the successful build.
The reasons why it fails is usually:
- out of sync package versions/configurations.
- too much dependencies in this project. (and after adding third-party libraries it’s even more now)
- lazyness (not testing before pushing the changes
But okay, lets talk about changes:
- the NativeBoost plugin, which built into VM, contains additional primitive, which was needed for callback support. This makes VMs callback-ready.
- for the first time, the Mac VM is built from scratch, bundled with Cairo graphics library. That means a new VM is ready for use by Athens with Cairo backend.
- Another important thing is encapsulating the different settings/defaults which was residing in ever-growing shell script on jenkins job into single class.
Now , to generate all sources + cmake files for building NB-enabled Cog VM, from within an image you just need to do:
and it takes care about the rest. Of course, if you may need to build custom version of VM, you will still need to deal with configurations.
Additionally, new CMakeVMMaker feature was added: generating build.sh script (which is placed in ./build subdirectory).
Actually, it could contain just two lines:
But again, on windows you will need to issue “cmake . -G”MSYS Makefiles”
, and on mac, you will need to issue “make install” after make.. So, having this script is nice addition for automated builds , where build job can just run this script and do not care about these details by itself , and for people who forgetting to do things right ;).
The recommended version of NativeBoost is 1.5 (see ConfigurationOfNativeBoost). The callback public API may take some changes (as discussed on pharo-dev mailing list), to make it convenient, but if you can’t wait, you can try it out and see if callbacks is working for you.
You can download fresh version of VMs from here:
And to install NativeBoost , you can follow instructions here:
P.S. and yes, due to problems with Windows slave, the Windows VM version is not available right now. Should be fixed soon.