this repo has no description
Installing Skybison#
This guide details the recommended Linux setup.
Preparation#
Install CMake and either Make or Ninja. On Fedora, this can be done with:
$ sudo dnf install cmake ninja-build
Build preparation (cmake)#
$ git clone https://github.com/facebookexperimental/skybison
$ cd skybison
$ mkdir build
$ cmake -B build -GNinja -DCMAKE_TOOLCHAIN_FILE=util/linux.cmake
# or, with Make
$ cmake -B build -GMake -DCMAKE_TOOLCHAIN_FILE=util/linux.cmake
Build#
$ ninja -C build
# or, with Make
$ make -C build
Enjoy!#
$ ./build/bin/python
Python 3.7.4+ (default)
[GCC Clang 9.0.20190721 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello " + "world!")
Hello world!
>>> import sys
>>> sys.implementation.name
'skybison'
Build modes#
You can change build type by adding the one of the following to the cmake command:
-DCMAKE_BUILD_TYPE=Release // default
-DCMAKE_BUILD_TYPE=Debug // -g
-DCMAKE_BUILD_TYPE=DebugOpt // -O2 -g with debug checks but faster
-DCMAKE_BUILD_TYPE=RelWithDebInfo // like a release build but has debug symbols -- useful for callgrind
To run tests with address sanitizer (ASAN), add
-DSKYBISON_ASAN=1
before the platform. Like cmake -DSKYBISON_ASAN=1 ...
To run tests with the undefined behavior sanitizer (UBSAN), add
-DSKYBISON_UBSAN=1
before the platform. Like cmake -DSKYBISON_UBSAN=1 ...
Since you will likely have several build-XYZ folders hanging around, and it's
useful for those not to show up in git status, they should be ignored by
default in .gitignore.
Alternate linkers#
The mold linker is very fast and is superb for use in development. To specify it as your linker,
- Install it
- Either
- Provide it as part of the CMake command with
-DSKYBISON_LINKER=mold, or - Have it preload into
ninja/makewithmold -run ninja ...
- Provide it as part of the CMake command with