# Ahead-of-Time compilation

Note

This module is pending deprecation. Please see Deprecation of the numba.pycc module for more information.

class numba.pycc.CC(extension_name, source_module=None)

  An object used to generate compiled extensions from Numba-compiled Python functions. extension_name is the name of the extension to be generated. source_module is the Python module containing the functions; if `None`, it is inferred by examining the call stack.

  `CC` instances have the following attributes and methods:

  name

    (read-only attribute) The name of the extension module to be generated.

  output_dir

    (read-write attribute) The directory the extension module will be written into. By default it is the directory the source_module is located in.

  output_file

    (read-write attribute) The name of the file the extension module will be written to. By default this follows the Python naming convention for the current platform.

  target_cpu

    (read-write attribute) The name of the CPU model to generate code for. This will select the appropriate instruction set extensions. By default, a generic CPU is selected in order to produce portable code.

    Recognized names for this attribute depend on the current architecture and LLVM version. If you have LLVM installed, `llc -mcpu=help` will give you a list. Examples on x86-64 are `"ivybridge"`, `"haswell"`, `"skylake"` or `"broadwell"`. You can also give the value `"host"` which will select the current host CPU.

  verbose

    (read-write attribute) If true, print out information while compiling the extension. False by default.

  @export(exported_name, sig)

    Mark the decorated function for compilation with the signature sig. The compiled function will be exposed as exported_name in the generated extension module.

    All exported names within a given `CC` instance must be distinct, otherwise an exception is raised.

  compile()

    Compile all exported functions and generate the extension module as specified by `output_dir` and `output_file`.

  distutils_extension(**kwargs)

    Return a `distutils.core.Extension` instance allowing to integrate generation of the extension module in a conventional `setup.py`-driven build process. The optional kwargs let you pass optional parameters to the `Extension` constructor.

    In this mode of operation, it is not necessary to call `compile()` yourself. Also, `output_dir` and `output_file` will be ignored.