def target(self, driver, args): driver.exe_name = 'pypy-%(backend)s' config = driver.config parser = self.opt_parser(config) parser.parse_args(args) # expose the following variables to ease debugging global space, entry_point if config.objspace.allworkingmodules: from pypy.config.pypyoption import enable_allworkingmodules enable_allworkingmodules(config) if config.objspace.translationmodules: from pypy.config.pypyoption import enable_translationmodules enable_translationmodules(config) config.translation.suggest(check_str_without_nul=True) config.translation.suggest(shared=True) config.translation.suggest(icon=os.path.join(this_dir, 'pypy.ico')) if config.translation.shared: if config.translation.output is not None: raise Exception("Cannot use the --output option with PyPy " "when --shared is on (it is by default). " "See issue #1971.") if config.translation.thread: config.objspace.usemodules.thread = True elif config.objspace.usemodules.thread: try: config.translation.thread = True except ConflictConfigError: # If --allworkingmodules is given, we reach this point # if threads cannot be enabled (e.g. they conflict with # something else). In this case, we can try setting the # usemodules.thread option to False again. It will # cleanly fail if that option was set to True by the # command-line directly instead of via --allworkingmodules. config.objspace.usemodules.thread = False if config.translation.continuation: config.objspace.usemodules._continuation = True elif config.objspace.usemodules._continuation: try: config.translation.continuation = True except ConflictConfigError: # Same as above: try to auto-disable the _continuation # module if translation.continuation cannot be enabled config.objspace.usemodules._continuation = False if not config.translation.rweakref: config.objspace.usemodules._weakref = False if config.translation.jit: config.objspace.usemodules.pypyjit = True elif config.objspace.usemodules.pypyjit: config.translation.jit = True if config.translation.sandbox: config.objspace.lonepycfiles = False config.objspace.usepycfiles = False config.translating = True import translate translate.log_config(config.objspace, "PyPy config object") # obscure hack to stuff the translation options into the translated PyPy import pypy.module.sys options = make_dict(config) wrapstr = 'space.wrap(%r)' % (options) pypy.module.sys.Module.interpleveldefs['pypy_translation_info'] = wrapstr if config.objspace.usemodules._cffi_backend: self.hack_for_cffi_modules(driver) return self.get_entry_point(config)
def target(self, driver, args): driver.exe_name = 'pypy-%(backend)s' config = driver.config parser = self.opt_parser(config) parser.parse_args(args) # expose the following variables to ease debugging global space, entry_point if config.objspace.allworkingmodules: from pypy.config.pypyoption import enable_allworkingmodules enable_allworkingmodules(config) if config.objspace.translationmodules: from pypy.config.pypyoption import enable_translationmodules enable_translationmodules(config) config.translation.suggest(check_str_without_nul=True) config.translation.suggest(shared=True) config.translation.suggest(icon=os.path.join(this_dir, 'pypy.ico')) if config.translation.shared: if config.translation.output is not None: raise Exception("Cannot use the --output option with PyPy " "when --shared is on (it is by default). " "See issue #1971.") if sys.platform == 'win32': libdir = thisdir.join('..', '..', 'libs') libdir.ensure(dir=1) config.translation.libname = str(libdir.join('python27.lib')) if config.translation.thread: config.objspace.usemodules.thread = True elif config.objspace.usemodules.thread: try: config.translation.thread = True except ConflictConfigError: # If --allworkingmodules is given, we reach this point # if threads cannot be enabled (e.g. they conflict with # something else). In this case, we can try setting the # usemodules.thread option to False again. It will # cleanly fail if that option was set to True by the # command-line directly instead of via --allworkingmodules. config.objspace.usemodules.thread = False if config.translation.continuation: config.objspace.usemodules._continuation = True elif config.objspace.usemodules._continuation: try: config.translation.continuation = True except ConflictConfigError: # Same as above: try to auto-disable the _continuation # module if translation.continuation cannot be enabled config.objspace.usemodules._continuation = False if not config.translation.rweakref: config.objspace.usemodules._weakref = False if config.translation.jit: config.objspace.usemodules.pypyjit = True elif config.objspace.usemodules.pypyjit: config.translation.jit = True if config.translation.sandbox: config.objspace.lonepycfiles = False config.translating = True import translate translate.log_config(config.objspace, "PyPy config object") # obscure hack to stuff the translation options into the translated PyPy import pypy.module.sys options = make_dict(config) wrapstr = 'space.wrap(%r)' % (options) pypy.module.sys.Module.interpleveldefs['pypy_translation_info'] = wrapstr if config.objspace.usemodules._cffi_backend: self.hack_for_cffi_modules(driver) return self.get_entry_point(config)
def target(self, driver, args): driver.exe_name = 'pypy3-%(backend)s' config = driver.config parser = self.opt_parser(config) parser.parse_args(args) # expose the following variables to ease debugging global space, entry_point if config.objspace.allworkingmodules: from pypy.config.pypyoption import enable_allworkingmodules enable_allworkingmodules(config) if config.objspace.translationmodules: from pypy.config.pypyoption import enable_translationmodules enable_translationmodules(config) config.translation.suggest(check_str_without_nul=True) config.translation.suggest(shared=True) config.translation.suggest(icon=os.path.join(this_dir, 'pypy.ico')) if config.translation.shared: if config.translation.output is not None: raise Exception("Cannot use the --output option with PyPy " "when --shared is on (it is by default). " "See issue #1971.") # if both profopt and profoptpath are specified then we keep them as they are with no other changes if config.translation.profopt: if config.translation.profoptargs is None: config.translation.profoptargs = "$(RPYDIR)/../lib-python/2.7/test/regrtest.py --pgo -x test_asyncore test_gdb test_multiprocessing test_subprocess || true" elif config.translation.profoptargs is not None: raise Exception( "Cannot use --profoptargs without specifying --profopt as well" ) if sys.platform == 'win32': libdir = thisdir.join('..', '..', 'libs') libdir.ensure(dir=1) pythonlib = "python{0[0]}{0[1]}.lib".format(CPYTHON_VERSION) config.translation.libname = str(libdir.join(pythonlib)) if config.translation.thread: config.objspace.usemodules.thread = True elif config.objspace.usemodules.thread: try: config.translation.thread = True except ConflictConfigError: # If --allworkingmodules is given, we reach this point # if threads cannot be enabled (e.g. they conflict with # something else). In this case, we can try setting the # usemodules.thread option to False again. It will # cleanly fail if that option was set to True by the # command-line directly instead of via --allworkingmodules. config.objspace.usemodules.thread = False if config.translation.continuation: config.objspace.usemodules._continuation = True elif config.objspace.usemodules._continuation: try: config.translation.continuation = True except ConflictConfigError: # Same as above: try to auto-disable the _continuation # module if translation.continuation cannot be enabled config.objspace.usemodules._continuation = False if not config.translation.rweakref: config.objspace.usemodules._weakref = False if config.translation.jit: config.objspace.usemodules.pypyjit = True elif config.objspace.usemodules.pypyjit: config.translation.jit = True if config.translation.sandbox: assert 0, ("--sandbox is not tested nor maintained. If you " "really want to try it anyway, remove this line in " "pypy/goal/targetpypystandalone.py.") if config.objspace.usemodules.cpyext: if config.translation.gc not in ('incminimark', 'boehm'): raise Exception( "The 'cpyext' module requires the 'incminimark'" " or 'boehm' GC. You need either 'targetpypystandalone.py" " --withoutmod-cpyext', or use one of these two GCs.") config.translating = True import translate translate.log_config(config.objspace, "PyPy config object") # obscure hack to stuff the translation options into the translated PyPy from pypy.module.sys.moduledef import Module as SysModule options = make_dict(config) wrapstr = 'space.wrap(%r)' % (options) # import time SysModule.interpleveldefs['pypy_translation_info'] = wrapstr if config.objspace.usemodules._cffi_backend: self.hack_for_cffi_modules(driver) return self.get_entry_point(config)
def target(self, driver, args): driver.exe_name = 'pypy-%(backend)s' config = driver.config parser = self.opt_parser(config) parser.parse_args(args) # expose the following variables to ease debugging global space, entry_point if config.objspace.allworkingmodules: from pypy.config.pypyoption import enable_allworkingmodules enable_allworkingmodules(config) if config.objspace.translationmodules: from pypy.config.pypyoption import enable_translationmodules enable_translationmodules(config) config.translation.suggest(check_str_without_nul=True) config.translation.suggest(shared=True) if config.translation.thread: config.objspace.usemodules.thread = True elif config.objspace.usemodules.thread: try: config.translation.thread = True except ConflictConfigError: # If --allworkingmodules is given, we reach this point # if threads cannot be enabled (e.g. they conflict with # something else). In this case, we can try setting the # usemodules.thread option to False again. It will # cleanly fail if that option was set to True by the # command-line directly instead of via --allworkingmodules. config.objspace.usemodules.thread = False if config.translation.continuation: config.objspace.usemodules._continuation = True elif config.objspace.usemodules._continuation: try: config.translation.continuation = True except ConflictConfigError: # Same as above: try to auto-disable the _continuation # module if translation.continuation cannot be enabled config.objspace.usemodules._continuation = False if not config.translation.rweakref: config.objspace.usemodules._weakref = False if config.translation.jit: config.objspace.usemodules.pypyjit = True elif config.objspace.usemodules.pypyjit: config.translation.jit = True if config.translation.sandbox: config.objspace.lonepycfiles = False config.objspace.usepycfiles = False config.translating = True import translate translate.log_config(config.objspace, "PyPy config object") # obscure hack to stuff the translation options into the translated PyPy import pypy.module.sys options = make_dict(config) wrapstr = 'space.wrap(%r)' % (options) pypy.module.sys.Module.interpleveldefs[ 'pypy_translation_info'] = wrapstr return self.get_entry_point(config)