void add_builtin_files(machine *m) { add_builtin("file-open", list(1, arg("name")), builtin_open, m); add_builtin("file-get-char", list(1, arg("file")), builtin_get_char, m); add_builtin("eof?", list(1, arg("c")), builtin_eofp, m); //add_builtin("file-close", list(1, arg("name")), builtin_open, m); }
void jl_init_builtins(void) { jl_function_t *jl_print_gf = jl_new_generic_function(jl_symbol("print")); add_builtin_method1(jl_print_gf, (jl_type_t*)jl_array_uint8_type, jl_f_print_array_uint8); add_builtin_method1(jl_print_gf, (jl_type_t*)jl_sym_type, jl_f_print_symbol); jl_show_gf = jl_new_generic_function(jl_symbol("show")); add_builtin_method1(jl_show_gf, (jl_type_t*)jl_any_type, jl_f_show_any); add_builtin_method1(jl_show_gf, (jl_type_t*)jl_int64_type, jl_f_show_int64); add_builtin_method1(jl_show_gf, (jl_type_t*)jl_uint64_type, jl_f_show_uint64); jl_convert_gf = jl_new_generic_function(jl_symbol("convert")); jl_add_method(jl_convert_gf, jl_tuple2(jl_any_type, jl_any_type), jl_new_closure(jl_f_convert, NULL)); jl_add_method(jl_convert_gf, jl_tuple2(jl_tuple_type, jl_tuple_type), jl_new_closure(jl_f_convert_tuple, NULL)); add_builtin("print", (jl_value_t*)jl_print_gf); add_builtin("show", (jl_value_t*)jl_show_gf); add_builtin("convert", (jl_value_t*)jl_convert_gf); }
/* * Init actions table */ void actions_init(void) { actions_cpufreq_init(); add_builtin("NONE", NULL); add_builtin("SHUTDOWN", action_shutdown); add_builtin("CPUPERFORMANCELEVEL1", action_cpuperflevel1); add_builtin("CPUPERFORMANCELEVEL2", action_cpuperflevel2); add_builtin("CPUPERFORMANCELEVEL3", action_cpuperflevel3); add_builtin("CPUPERFORMANCELEVEL4", action_cpuperflevel4); add_builtin("DISABLEBATTERYCHARGING", action_stopbatterycharge); add_builtin("ENABLEBATTERYCHARGING", action_startbatterycharge); #ifdef STE_MODEM_THERMAL_MITIGATIONS add_builtin("MODEM_RF_THERMAL_MITIGATION_ACTIVE", modem_enablethermal); add_builtin("MODEM_RF_THERMAL_MITIGATION_INACTIVE", modem_disablethermal); #endif }
void jl_init_primitives(void) { add_builtin_func("is", jl_f_is); add_builtin_func("typeof", jl_f_typeof); add_builtin_func("subtype", jl_f_subtype); add_builtin_func("isa", jl_f_isa); add_builtin_func("typeassert", jl_f_typeassert); add_builtin_func("apply", jl_f_apply); add_builtin_func("throw", jl_f_throw); add_builtin_func("tuple", jl_f_tuple); add_builtin_func("Union", jl_f_union); add_builtin_func("method_exists", jl_f_methodexists); add_builtin_func("applicable", jl_f_applicable); add_builtin_func("invoke", jl_f_invoke); add_builtin_func("eval", jl_f_top_eval); add_builtin_func("isbound", jl_f_isbound); add_builtin_func("yieldto", jl_f_yieldto); // functions for internal use add_builtin_func("convert_default", jl_f_convert_default); add_builtin_func("convert_tuple", jl_f_convert_tuple); add_builtin_func("tupleref", jl_f_tupleref); add_builtin_func("tuplelen", jl_f_tuplelen); add_builtin_func("getfield", jl_f_get_field); add_builtin_func("_setfield", jl_f_set_field); add_builtin_func("fieldtype", jl_f_field_type); add_builtin_func("arraylen", jl_f_arraylen); add_builtin_func("arrayref", jl_f_arrayref); add_builtin_func("arrayset", jl_f_arrayset); add_builtin_func("arraysize", jl_f_arraysize); add_builtin_func("apply_type", jl_f_instantiate_type); add_builtin_func("typevar", jl_f_typevar); add_builtin_func("new_type_constructor", jl_f_new_type_constructor); // builtin types add_builtin("Any", (jl_value_t*)jl_any_type); add_builtin("None", (jl_value_t*)jl_bottom_type); add_builtin("Void", (jl_value_t*)jl_bottom_type); add_builtin("Top", (jl_value_t*)jl_top_type); add_builtin("TypeVar", (jl_value_t*)jl_tvar_type); add_builtin("TypeName", (jl_value_t*)jl_typename_type); add_builtin("TypeConstructor", (jl_value_t*)jl_typector_type); add_builtin("Tuple", (jl_value_t*)jl_tuple_type); add_builtin("NTuple", (jl_value_t*)jl_ntuple_type); add_builtin("Type", (jl_value_t*)jl_type_type); add_builtin("...", (jl_value_t*)jl_seq_type); add_builtin("BitsKind", (jl_value_t*)jl_bits_kind); add_builtin("CompositeKind", (jl_value_t*)jl_struct_kind); add_builtin("AbstractKind", (jl_value_t*)jl_tag_kind); add_builtin("UnionKind", (jl_value_t*)jl_union_kind); // todo: this should only be visible to compiler components add_builtin("Undef", (jl_value_t*)jl_undef_type); add_builtin("Module", (jl_value_t*)jl_module_type); add_builtin("Method", (jl_value_t*)jl_method_type); add_builtin("MethodTable", (jl_value_t*)jl_methtable_type); add_builtin("Symbol", (jl_value_t*)jl_sym_type); add_builtin("IntrinsicFunction", (jl_value_t*)jl_intrinsic_type); add_builtin("Function", (jl_value_t*)jl_function_type); add_builtin("LambdaStaticData", (jl_value_t*)jl_lambda_info_type); add_builtin("Ptr", (jl_value_t*)jl_pointer_type); add_builtin("Box", (jl_value_t*)jl_box_type); add_builtin("Task", (jl_value_t*)jl_task_type); add_builtin("AbstractArray", (jl_value_t*)jl_abstractarray_type); add_builtin("Array", (jl_value_t*)jl_array_type); add_builtin("Expr", (jl_value_t*)jl_expr_type); add_builtin("LineNumberNode", (jl_value_t*)jl_linenumbernode_type); add_builtin("LabelNode", (jl_value_t*)jl_labelnode_type); add_builtin("GotoNode", (jl_value_t*)jl_gotonode_type); add_builtin("QuoteNode", (jl_value_t*)jl_quotenode_type); add_builtin("TopNode", (jl_value_t*)jl_topnode_type); #ifdef __LP64__ add_builtin("Int", (jl_value_t*)jl_int64_type); #else add_builtin("Int", (jl_value_t*)jl_int32_type); #endif add_builtin("ANY", jl_ANY_flag); }
static void add_builtin_func(const char *name, jl_fptr_t f) { add_builtin(name, (jl_value_t*) jl_new_closure(f, (jl_value_t*)jl_symbol(name), NULL)); }
void jl_init_primitives(void) { add_builtin_func("is", jl_f_is); add_builtin_func("typeof", jl_f_typeof); add_builtin_func("subtype", jl_f_subtype); add_builtin_func("isa", jl_f_isa); add_builtin_func("typeassert", jl_f_typeassert); add_builtin_func("apply", jl_f_apply); add_builtin_func("kwcall", jl_f_kwcall); add_builtin_func("throw", jl_f_throw); add_builtin_func("tuple", jl_f_tuple); add_builtin_func("Union", jl_f_union); add_builtin_func("method_exists", jl_f_methodexists); add_builtin_func("applicable", jl_f_applicable); add_builtin_func("invoke", jl_f_invoke); add_builtin_func("eval", jl_f_top_eval); add_builtin_func("isdefined", jl_f_isdefined); add_builtin_func("yieldto", jl_f_yieldto); // functions for internal use add_builtin_func("convert_default", jl_f_convert_default); add_builtin_func("convert_tuple", jl_f_convert_tuple); add_builtin_func("tupleref", jl_f_tupleref); add_builtin_func("tuplelen", jl_f_tuplelen); add_builtin_func("getfield", jl_f_get_field); add_builtin_func("setfield", jl_f_set_field); add_builtin_func("fieldtype", jl_f_field_type); add_builtin_func("arraylen", jl_f_arraylen); add_builtin_func("arrayref", jl_f_arrayref); add_builtin_func("arrayset", jl_f_arrayset); add_builtin_func("arraysize", jl_f_arraysize); add_builtin_func("apply_type", jl_f_instantiate_type); // builtin types add_builtin("Any", (jl_value_t*)jl_any_type); add_builtin("None", (jl_value_t*)jl_bottom_type); add_builtin("Void", (jl_value_t*)jl_bottom_type); add_builtin("Top", (jl_value_t*)jl_top_type); add_builtin("TypeVar", (jl_value_t*)jl_tvar_type); add_builtin("TypeName", (jl_value_t*)jl_typename_type); add_builtin("TypeConstructor", (jl_value_t*)jl_typector_type); add_builtin("Tuple", (jl_value_t*)jl_tuple_type); add_builtin("NTuple", (jl_value_t*)jl_ntuple_type); add_builtin("Type", (jl_value_t*)jl_type_type); add_builtin("Vararg", (jl_value_t*)jl_vararg_type); add_builtin("DataType", (jl_value_t*)jl_datatype_type); add_builtin("UnionType", (jl_value_t*)jl_uniontype_type); add_builtin("Undef", (jl_value_t*)jl_undef_type); add_builtin("Module", (jl_value_t*)jl_module_type); add_builtin("Method", (jl_value_t*)jl_method_type); add_builtin("MethodTable", (jl_value_t*)jl_methtable_type); add_builtin("Symbol", (jl_value_t*)jl_sym_type); add_builtin("IntrinsicFunction", (jl_value_t*)jl_intrinsic_type); add_builtin("Function", (jl_value_t*)jl_function_type); add_builtin("LambdaStaticData", (jl_value_t*)jl_lambda_info_type); add_builtin("Ptr", (jl_value_t*)jl_pointer_type); add_builtin("Box", (jl_value_t*)jl_box_type); add_builtin("Task", (jl_value_t*)jl_task_type); add_builtin("AbstractArray", (jl_value_t*)jl_abstractarray_type); add_builtin("Array", (jl_value_t*)jl_array_type); add_builtin("Expr", (jl_value_t*)jl_expr_type); add_builtin("LineNumberNode", (jl_value_t*)jl_linenumbernode_type); add_builtin("LabelNode", (jl_value_t*)jl_labelnode_type); add_builtin("GotoNode", (jl_value_t*)jl_gotonode_type); add_builtin("QuoteNode", (jl_value_t*)jl_quotenode_type); add_builtin("TopNode", (jl_value_t*)jl_topnode_type); add_builtin("NewvarNode", (jl_value_t*)jl_newvarnode_type); #ifdef _P64 add_builtin("Int", (jl_value_t*)jl_int64_type); #else add_builtin("Int", (jl_value_t*)jl_int32_type); #endif add_builtin("ANY", jl_ANY_flag); }
void jl_add_builtin(const char *name, jl_value_t *v) { return add_builtin(name, v); }
t_builtins *get_builtins(void) { static t_builtins *builtins = 0; if (!builtins) { builtins = (t_builtins *)ft_memalloc(sizeof(t_builtins)); add_builtin(builtins, CD_BUILTIN, b_cd); add_builtin(builtins, ECHO_BUILTIN, b_echo); add_builtin(builtins, EXIT_BUILTIN, b_exit); add_builtin(builtins, ENV_BUILTIN, b_env); add_builtin(builtins, SETENV_BUILTIN, b_setenv); add_builtin(builtins, UNSETENV_BUILTIN, b_unsetenv); add_builtin(builtins, VARS_BUILTIN, b_vars); add_builtin(builtins, SET_BUILTIN, b_set); add_builtin(builtins, UNSET_BUILTIN, b_unset); add_builtin(builtins, EXPORT_BUILTIN, b_export); add_builtin(builtins, PID_BUILTIN, b_pid); add_builtin(builtins, SOURCE_BUILTIN, b_source); add_builtin(builtins, FG_BUILTIN, b_fg); add_builtin(builtins, RAINBOW_BUILTIN, b_rainbow); add_builtin(builtins, HISTORY_BUILTIN, b_history); } return (builtins); }