# Configuration Options for PyPy

This directory contains documentation for the many configuration options that can be used to affect PyPy’s behaviour. There are two main classes of option, object space options and translation options.

There are two main entry points that accept options: `py.py`, which implements Python on top of another Python interpreter and accepts all the object space options:

    ./py.py <objspace options>

and the `translate.py` translation entry point which takes arguments of this form:

    ./translate.py <translation options> <target>

For the common case of `<target>` being `targetpypystandalone.py`, you can then pass the object space options after `targetpypystandalone.py`, i.e. like this:

    ./translate.py <translation options> targetpypystandalone.py <objspace options>

There is an overview of all command line arguments that can be passed in either position.

Many of the more interesting object space options enable optimizations, which are described in Standard Interpreter Optimizations, or allow the creation of objects that can barely be imagined in CPython, which are documented in What PyPy can do for your objects.

The following diagram gives some hints about which PyPy features work together with which other PyPy features:

- PyPy Python interpreter options
  - Internal Options
- General translation options
  - Internal Options
- translation
  - translation.continuation
  - translation.type_system
  - translation.backend
  - translation.shared
  - translation.log
  - translation.gc
  - translation.gctransformer
  - translation.gcremovetypeptr
  - translation.gcrootfinder
  - translation.thread
  - translation.sandbox
  - translation.rweakref
  - translation.jit
  - translation.jit_backend
  - translation.jit_profiler
  - translation.jit_opencoder_model
  - translation.check_str_without_nul
  - translation.verbose
  - translation.cc
  - translation.profopt
  - translation.noprofopt
  - translation.instrument
  - translation.countmallocs
  - translation.fork_before
  - translation.dont_write_c_files
  - translation.instrumentctl
  - translation.output
  - translation.secondaryentrypoints
  - translation.dump_static_data_info
  - translation.no__thread
  - translation.make_jobs
  - translation.list_comprehension_operations
  - translation.withsmallfuncsets
  - translation.taggedpointers
  - translation.lldebug
  - translation.lldebug0
  - translation.icon
  - translation.libname
  - translation.backendopt
  - translation.platform
- objspace
  - objspace.usemodules
  - objspace.allworkingmodules
  - objspace.extmodules
  - objspace.translationmodules
  - objspace.lonepycfiles
  - objspace.soabi
  - objspace.magic_tag
  - objspace.honor__builtins__
  - objspace.disable_call_speedhacks
  - objspace.std
- The `--opt` or `-O` translation option