<commit_before># Building ponyc from source

First of all, you need a compiler with decent C11 support. We officially support Clang on Unix and MSVC on Windows; the following are known to work:

- Clang >= 3.4
- XCode Clang >= 6.0
- MSVC >= 2017
- GCC >= 4.7

You also need [CMake](https://cmake.org/download/) version 3.15 or higher.

## Build Steps

The build system uses CMake, and includes a helper wrapper that will automatically set up your out-of-source build directories and libraries for you.

The build system is divided into several stages:

- Build the vendored LLVM libraries that are included in the `lib/llvm/src` Git submodule by running `make libs` (`.\make.ps1 libs` on Windows).  This stage only needs to be run once the first time you build (or if the vendored LLVM submodule changes, or if you run `make distclean`).
  - This can take a while. To ensure it's using all cores, try `make libs build_flags="-j6"`, replacing `6` with the number of CPU cores available.<commit_msg>Note that building from source requires the repository (#3913)<commit_after># Building ponyc from source

First of all, you need a compiler with decent C11 support. We officially support Clang on Unix and MSVC on Windows; the following are known to work:

- Clang >= 3.4
- XCode Clang >= 6.0
- MSVC >= 2017
- GCC >= 4.7

You also need [CMake](https://cmake.org/download/) version 3.15 or higher.

## Clone this repository

The Pony build process uses git submodules so you need to build from a checked out clone of this repository.

## Build Steps

The build system uses CMake, and includes a helper wrapper that will automatically set up your out-of-source build directories and libraries for you.

The build system is divided into several stages:

- Build the vendored LLVM libraries that are included in the `lib/llvm/src` Git submodule by running `make libs` (`.\make.ps1 libs` on Windows).  This stage only needs to be run once the first time you build (or if the vendored LLVM submodule changes, or if you run `make distclean`).
  - This can take a while. To ensure it's using all cores, try `make libs build_flags="-j6"`, replacing `6` with the number of CPU cores available.
{'fraction_non_alphanumeric': 0.07342817806333181, 'fraction_numerical': 0.018357044515832952, 'mean_word_length': 3.932126696832579, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '542674', 'n_tokens_mistral': 638, 'n_tokens_neox': 595, 'n_words': 336}