1"""Build an experimental just-in-time compiler for CPython.""" 2 3import argparse 4import pathlib 5import shlex 6import sys 7 8import _targets 9 10if __name__ == "__main__": 11 comment = f"$ {shlex.join([sys.executable] + sys.argv)}" 12 parser = argparse.ArgumentParser(description=__doc__) 13 parser.add_argument( 14 "target", type=_targets.get_target, help="a PEP 11 target triple to compile for" 15 ) 16 parser.add_argument( 17 "-d", "--debug", action="store_true", help="compile for a debug build of Python" 18 ) 19 parser.add_argument( 20 "-f", "--force", action="store_true", help="force the entire JIT to be rebuilt" 21 ) 22 parser.add_argument( 23 "-v", "--verbose", action="store_true", help="echo commands as they are run" 24 ) 25 args = parser.parse_args() 26 args.target.debug = args.debug 27 args.target.verbose = args.verbose 28 args.target.build(pathlib.Path.cwd(), comment=comment, force=args.force) 29