Skip to content
A C++ like compiler
C++ Yacc Python Shell Lex Makefile Dockerfile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scripts
src
tests
.gitignore
.travis.yml
LICENSE
README.md
sonar-project.properties

README.md

Saphyr Compiler

Build Status Bugs Coverage Status

A C++ Like compiler using LLVM as a backend.

License

Unless otherwise stated the source code is licensed under the GPLv3 -- see LICENSE.

Build Dependencies

  • FlexC++
  • BisonC++
  • Boost
    • Program_Options
    • Filesystem
    • System
  • LLVM 3.8+
  • Make
  • C++14 compiler (either GCC or Clang)
  • Python 3 (for running tests)
  • Saphyr-libs (for tests)
  • Icmake (required if building FlexC++/BisonC++ from source)
  • Bobcat (required if building FlexC++/BisonC++ from source)

Debian/Ubuntu

Debian 9 (Stretch) and Ubuntu 16.04 (Xenial) or newer have all the required packages in their repositories.

sudo apt-get install flexc++ bisonc++ make llvm-dev libboost-program-options-dev libboost-filesystem-dev libboost-system-dev clang python3

Gentoo

A local portage overlay containing bobcat/flexc++/bisonc++ is provided in scripts/portage. After adding the overlay run emerge saphyr to install all required dependencies.

Arch

FlexC++/BisonC++ can be found in the AUR along with their dependencies icmake and libbobcat. The other dependencies can be installed using:

pacman -S make llvm boost clang

Other Linux

Install: make, clang, llvm, boost and python3 for your Linux distribution. If your distribution doesn't have flexc++/bisonc++ then you can use the jdm64/saphyr docker image to build the frontend by running:

sudo make frontend-docker

NOTE: On Fedora you must disable SELinux (sudo setenforce 0) or you will get a permission error.

Build Instructions

Run make in the src directory and it will build the compiler binary saphyr.

You can’t perform that action at this time.