def build(self, error_handler, check_num_args=True): from hippy.objects.resources.file_resource import W_FileResource from hippy.objects.resources.dir_resource import W_DirResource from hippy.objects.arrayobject import W_ArrayObject source = self.make_source(check_num_args) d = { 'fname': self.funcname, 'argument_not': argument_not, 'arguments_exactly': arguments_exactly, 'error_handler': error_handler, 'warn_exactly': warn_exactly, 'warn_not_array': warn_not_array, 'warn_not_file_resource': warn_not_file_resource, 'warn_not_valid_file_resource': warn_not_valid_file_resource, 'warn_not_resource': warn_not_resource, 'warn_not_valid_resource': warn_not_valid_resource, 'warn_not_stream_context': warn_not_stream_context, 'warn_not_valid_stream_context': warn_not_valid_stream_context, 'warn_not_mysql_link': warn_not_mysql_link, 'warn_not_valid_mysql_link': warn_not_valid_mysql_link, 'warn_not_mysql_result': warn_not_mysql_result, 'warn_not_valid_mysql_result': warn_not_valid_mysql_result, 'warn_not': warn_not, 'warn_could_not_convert_to_str': warn_could_not_convert_to_str, 'warn_at_least': warn_at_least, 'warn_at_most': warn_at_most, 'warn_not_mcrypt_res': warn_not_mcrypt_res, 'check_reference': check_reference, 'unroll_safe': jit.unroll_safe, 'W_FileResource': W_FileResource, 'W_DirResource': W_DirResource, 'W_ArrayObject': W_ArrayObject, 'W_InstanceObject': W_InstanceObject, 'FatalError': FatalError, 'ConvertError': ConvertError, 'ExitSilently': ExitSilently, } from hippy.hippyoption import is_optional_extension_enabled if is_optional_extension_enabled("mysql"): from ext_module.mysql.link_resource import W_MysqlLinkResource from ext_module.mysql.result_resource import W_MysqlResultResource d['W_MysqlLinkResource'] = W_MysqlLinkResource d['W_MysqlResultResource'] = W_MysqlResultResource if self.defaults: for i, default_value in zip(self.default_indices, self.defaults): d['default%s' % i] = default_value for i, unwrapper in enumerate(self.signature): unwrapper.register_extra_name(d, i) try: exec py.code.Source(source).compile() in d except: print source raise return d[self.internal_funcname]
def target(driver, args): driver.exe_name = 'hippy-c' config = driver.config from rpython.config.config import to_optparse, SUPPRESS_USAGE parser = to_optparse(config, parserkwargs={'usage': SUPPRESS_USAGE }) parser.parse_args(args) from hippy.hippyoption import ( OPTIONAL_EXTS, is_optional_extension_enabled, HippyOptionError) from hippy.hippyoption import set_options set_options(config) for ext in OPTIONAL_EXTS: asked = getattr(config.optexts, ext) if asked and not is_optional_extension_enabled(ext): raise HippyOptionError("%s extension sources are missing!" % ext) from hippy.main import entry_point return entry_point, None
func.func_name = name return func for _name in ['and_', 'xor']: setattr(ObjSpace, _name, _new_bitwise(_name)) W_FloatObject.tp = ObjSpace.tp_float W_BoolObject.tp = ObjSpace.tp_bool W_IntObject.tp = ObjSpace.tp_int W_StringObject.tp = ObjSpace.tp_str W_ArrayObject.tp = ObjSpace.tp_array W_NullObject.tp = ObjSpace.tp_null W_InstanceObject.tp = ObjSpace.tp_object W_FileResource.tp = ObjSpace.tp_file_res W_DirResource.tp = ObjSpace.tp_dir_res W_StreamContext.tp = ObjSpace.tp_stream_context from hippy.hippyoption import is_optional_extension_enabled if is_optional_extension_enabled("mysql"): from ext_module.mysql.link_resource import W_MysqlLinkResource from ext_module.mysql.result_resource import W_MysqlResultResource W_MysqlLinkResource.tp = ObjSpace.tp_mysql_link W_MysqlResultResource.tp = ObjSpace.tp_mysql_result if is_optional_extension_enabled("xml"): from ext_module.xml.xmlparser import XMLParserResource XMLParserResource.tp = ObjSpace.tp_xmlparser_res W_Constant.tp = ObjSpace.tp_constant DelayedClassConstant.tp = ObjSpace.tp_delayed_class_const
def entry_point(argv): i = 1 fname = None gcdump = None cgi = False fastcgi = False bench_mode = False bench_no = 0 debugger_pipes = (-1, -1) server_port = 9000 jit_param = None while i < len(argv): arg = argv[i] if arg.startswith('-'): if arg == '--gcdump': if i == len(argv) - 1: print "--gcdump requires an argument" return 1 i += 1 gcdump = argv[i] elif arg == '--cgi': cgi = True elif arg == '--server': if i == len(argv) - 1: print "--server requires an int" return 1 server_port = int(argv[i + 1]) i += 1 fastcgi = True elif arg == '--bench': bench_mode = True if i == len(argv) - 1: print "--bench requires an int" return 1 bench_no = int(argv[i + 1]) i += 1 elif arg == '--debugger_pipes': assert i + 2 < len(argv) debugger_pipes = (int(argv[i + 1]), int(argv[i + 2])) i += 2 elif arg == '--jit': if i == len(argv) - 1: print "--jit requires an argument" return 1 i += 1 jit_param = argv[i] else: print __doc__ print "Unknown parameter %s" % arg return 1 else: fname = arg break i += 1 if jit_param: from rpython.rlib.jit import set_user_param set_user_param(None, jit_param) if fastcgi: if bench_mode: print "can't specify --bench and --server" return 1 from hippy.hippyoption import is_optional_extension_enabled if not is_optional_extension_enabled("fastcgi"): print("No fastcgi support compiled in") return 1 else: return _run_fastcgi_server(server_port) rest_of_args = [] for k in range(i + 1, len(argv)): s = argv[k] assert s is not None rest_of_args.append(s) return main(fname, rest_of_args, cgi, gcdump, debugger_pipes, bench_mode, bench_no)
def entry_point(argv): if len(argv) < 2: print __doc__ return 1 i = 1 fname = None gcdump = None cgi = False fastcgi = False bench_mode = False bench_no = 0 debugger_pipes = (-1, -1) server_port = 9000 while i < len(argv): arg = argv[i] if arg.startswith('-'): if arg == '--gcdump': if i == len(argv) - 1: print "--gcdump requires an argument" return 1 i += 1 gcdump = argv[i] elif arg == '--cgi': cgi = True elif arg == '--server': if i == len(argv) - 1: print "--server requires an int" return 1 server_port = int(argv[i + 1]) i += 1 fastcgi = True elif arg == '--bench': bench_mode = True if i == len(argv) - 1: print "--bench requires an int" return 1 bench_no = int(argv[i + 1]) i += 1 elif arg == '--debugger_pipes': assert i + 2 < len(argv) debugger_pipes = (int(argv[i + 1]), int(argv[i + 2])) i += 2 else: print __doc__ print "Unknown parameter %s" % arg return 1 else: fname = arg break i += 1 if not fname and not fastcgi: print "php filename required" return 1 if fastcgi: if bench_mode: print "can't specify --bench and --server" return 1 from hippy.hippyoption import is_optional_extension_enabled if not is_optional_extension_enabled("fastcgi"): print("No fastcgi support compiled in") return 1 else: return _run_fastcgi_server(server_port) else: rest_of_args = [] for k in range(i + 1, len(argv)): s = argv[k] assert s is not None rest_of_args.append(s) return main(fname, rest_of_args, cgi, gcdump, debugger_pipes, bench_mode, bench_no)
def test_all_enabled(self): # for tests, all extensions should be enabled for ext in OPTIONAL_EXTS: assert is_optional_extension_enabled(ext)
for _name in ['and_', 'xor']: setattr(ObjSpace, _name, _new_bitwise(_name)) W_FloatObject.tp = ObjSpace.tp_float W_BoolObject.tp = ObjSpace.tp_bool W_IntObject.tp = ObjSpace.tp_int W_StringObject.tp = ObjSpace.tp_str W_ArrayObject.tp = ObjSpace.tp_array W_NullObject.tp = ObjSpace.tp_null W_InstanceObject.tp = ObjSpace.tp_object W_FileResource.tp = ObjSpace.tp_file_res W_DirResource.tp = ObjSpace.tp_dir_res W_StreamContext.tp = ObjSpace.tp_stream_context from hippy.hippyoption import is_optional_extension_enabled if is_optional_extension_enabled("mysql"): from ext_module.mysql.link_resource import W_MysqlLinkResource from ext_module.mysql.result_resource import W_MysqlResultResource W_MysqlLinkResource.tp = ObjSpace.tp_mysql_link W_MysqlResultResource.tp = ObjSpace.tp_mysql_result if is_optional_extension_enabled("xml"): from ext_module.xml.xmlparser import XMLParserResource XMLParserResource.tp = ObjSpace.tp_xmlparser_res if is_optional_extension_enabled("mcrypt"): from ext_module.mcrypt.mcrypt_resource import W_McryptResource W_McryptResource.tp = ObjSpace.tp_mcrypt_res W_Constant.tp = ObjSpace.tp_constant DelayedClassConstant.tp = ObjSpace.tp_delayed_class_const