Building Quorum from Source

In this section, we discuss building Quorum from source. These instructions only apply to Quorum 6.0 and up. Older versions of Quorum are possible to build, but are not supported. Source is downloaded using Git. For those unfamiliar with Git, for all practical purposes, this tool downloads the source code and manages versions of it. The source can be downloaded either from the console or from within NetBeans. For more information, please visit the Quorum git tutorial.

  1. Download and install Quorum from the download page
  2. Clone the source code for Quorum from our Quorum Github Repository
  3. Open NetBeans and then open the project under under quorum-language/Quorum3. This is a normal NetBeans project that, if you have Quorum installed, will open like any other project in NetBeans.
  4. Build, run, or debug the project normally in NetBeans. Since Quorum itself is written in Quorum, it works like any other project.

Bootstrapping NetBeans

These steps are for bootstrapping the Quorum 6 compiler from scratch and using it in a new version of NetBeans 8.2. These steps are primarily done from beginning to end in a linear fashion, but under certain circumstances (which are stated here) it might be necessary to change the order as described.

(Not that you should only do the first step if you are replacing the plugins. Otherwise, skip it. Build the Java projects for the plugins, located in the Quorum3Plugins folders. This only needs to be done the first time that you’re bootstrapping, or if you change the contents of one of these projects. During this process, the projects may fail to build due to missing Quorum dependencies. If this happens, skip this step for now. The particular projects you’ll want to build are:

One the plugins are optionally setup, we can now move to the core bootstrapping process. Note that bootstrapping is a bit confusing, but the core idea is that you are compiling Quorum in Quorum, then sending the compiler to NetBeans. Thus, when you then run NetBeans, it is including the new version.

  1. Open the Quorum3 project’s source code, right click on “Library.quorum” and set it to be the main file. Then run the program.
  2. If you were not able to build the plugin projects due to missing Quorum dependencies, those should now be resolved. In this case, start over the process, beginning with plugins and then moving to step 1.
  3. After the program has finished running, right click on “main.quorum” and set it to be the main file. Then build the program.
  4. Once the project is built, you will run one of the two bootstrap scripts located in the Quorum3 project, depending on what platform you are using. These can be run either from the command line or inside Netbeans. If you are using a Mac, use “bootstrap.sh”. If you are on a Windows machine, use “bootstrap.bat” instead.
    • To run the script directly in Netbeans, you will need the C/C++ module installed. If it’s already installed, the script’s icon should be a page with a gear on it - otherwise, it will appear as a boxed question mark. If it is installed, you can run the script by right-clicking it and selecting Run.
    • If the module isn’t installed, on some platforms you can quickly install it by double-clicking the script in the project view. Otherwise, you can install the module by going to the top menu and selecting “Tools -- Plugins”, going to the “Available Plugins” tab, and searching for the C/C++ module.
  5. Once the bootstrap script is completed, run the Sodbeans project, located in the IDE folder. This will open the bootstrapped IDE.

Quorum Branches

If you are interested in contributing source code to the project, first check out the current source branches: Quorum source code. Quorum’s compiler is placed into a series of branches, where we do development for various releases. To get one in Git, you can use NetBeans or issue the command ‘git checkout branchName’ from the terminal. For example, we might use ‘git checkout development’ to get the latest development branch. While we sometimes make branches temporarily other than these, the most common branches are: