[macruby-changes] [2382] MacRuby/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Aug 25 18:35:20 PDT 2009


Revision: 2382
          http://trac.macosforge.org/projects/ruby/changeset/2382
Author:   lsansonetti at apple.com
Date:     2009-08-25 18:35:19 -0700 (Tue, 25 Aug 2009)
Log Message:
-----------
introduce rb_objc_define_module_function() which mimics the ruby spec

Modified Paths:
--------------
    MacRuby/trunk/class.c
    MacRuby/trunk/compiler.cpp
    MacRuby/trunk/error.c
    MacRuby/trunk/eval.c
    MacRuby/trunk/eval_jump.c
    MacRuby/trunk/file.c
    MacRuby/trunk/include/ruby/ruby.h
    MacRuby/trunk/io.c
    MacRuby/trunk/load.c
    MacRuby/trunk/math.c
    MacRuby/trunk/object.c
    MacRuby/trunk/proc.c
    MacRuby/trunk/process.c
    MacRuby/trunk/random.c
    MacRuby/trunk/signal.c
    MacRuby/trunk/vm_eval.c

Modified: MacRuby/trunk/class.c
===================================================================
--- MacRuby/trunk/class.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/class.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -985,6 +985,14 @@
 }
 
 void
+rb_objc_define_module_function(VALUE module, const char *name, void *imp,
+			       const int arity)
+{
+    rb_objc_define_private_method(module, name, imp, arity);
+    rb_objc_define_method(*(VALUE *)module, name, imp, arity);
+}
+
+void
 rb_define_method_id(VALUE klass, ID name, VALUE (*func)(ANYARGS), int argc)
 {
     rb_add_method(klass, name, NEW_CFUNC(func,argc), NOEX_PUBLIC);

Modified: MacRuby/trunk/compiler.cpp
===================================================================
--- MacRuby/trunk/compiler.cpp	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/compiler.cpp	2009-08-26 01:35:19 UTC (rev 2382)
@@ -3486,10 +3486,11 @@
 
 		std::vector<Value *> params;
 		params.push_back(compile_mcache(selBackquote, false));
-		params.push_back(nilVal);
+		params.push_back(current_self);
 		params.push_back(compile_sel(selBackquote));
 		params.push_back(compile_const_pointer(NULL));
-		params.push_back(ConstantInt::get(Type::Int8Ty, 0));
+		params.push_back(ConstantInt::get(Type::Int8Ty,
+			    DISPATCH_FCALL));
 		params.push_back(ConstantInt::get(Type::Int32Ty, 1));
 		params.push_back(str);
 

Modified: MacRuby/trunk/error.c
===================================================================
--- MacRuby/trunk/error.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/error.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -1105,7 +1105,7 @@
     rb_mErrno = rb_define_module("Errno");
     rb_objc_define_method(*(VALUE *)rb_mErrno, "const_missing", errno_missing, 1);
 
-    rb_objc_define_method(rb_mKernel, "warn", rb_warn_m, 1);
+    rb_objc_define_module_function(rb_mKernel, "warn", rb_warn_m, 1);
 }
 
 void

Modified: MacRuby/trunk/eval.c
===================================================================
--- MacRuby/trunk/eval.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/eval.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -773,15 +773,15 @@
     rb_define_virtual_variable("$@", errat_getter, errat_setter);
     rb_define_virtual_variable("$!", errinfo_getter, 0);
 
-    rb_objc_define_method(rb_mKernel, "eval", rb_f_eval, -1);
-    rb_objc_define_method(rb_mKernel, "iterator?", rb_f_block_given_p, 0);
-    rb_objc_define_method(rb_mKernel, "block_given?", rb_f_block_given_p, 0);
+    rb_objc_define_module_function(rb_mKernel, "eval", rb_f_eval, -1);
+    rb_objc_define_module_function(rb_mKernel, "iterator?", rb_f_block_given_p, 0);
+    rb_objc_define_module_function(rb_mKernel, "block_given?", rb_f_block_given_p, 0);
 
-    rb_objc_define_method(rb_mKernel, "raise", rb_f_raise, -1);
-    rb_objc_define_method(rb_mKernel, "fail", rb_f_raise, -1);
+    rb_objc_define_module_function(rb_mKernel, "raise", rb_f_raise, -1);
+    rb_objc_define_module_function(rb_mKernel, "fail", rb_f_raise, -1);
 
-    rb_objc_define_method(rb_mKernel, "global_variables", rb_f_global_variables, 0);	/* in variable.c */
-    rb_objc_define_method(rb_mKernel, "local_variables", rb_f_local_variables, 0);
+    rb_objc_define_module_function(rb_mKernel, "global_variables", rb_f_global_variables, 0);	/* in variable.c */
+    rb_objc_define_module_function(rb_mKernel, "local_variables", rb_f_local_variables, 0);
 
     rb_objc_define_method(rb_mKernel, "__method__", rb_f_method_name, 0);
     rb_objc_define_method(rb_mKernel, "__callee__", rb_f_method_name, 0);
@@ -805,8 +805,8 @@
 
     rb_objc_define_method(rb_mKernel, "extend", rb_obj_extend, -1);
 
-    rb_objc_define_method(rb_mKernel, "trace_var", rb_f_trace_var, -1);	/* in variable.c */
-    rb_objc_define_method(rb_mKernel, "untrace_var", rb_f_untrace_var, -1);	/* in variable.c */
+    rb_objc_define_module_function(rb_mKernel, "trace_var", rb_f_trace_var, -1);	/* in variable.c */
+    rb_objc_define_module_function(rb_mKernel, "untrace_var", rb_f_untrace_var, -1);	/* in variable.c */
 
     rb_define_virtual_variable("$SAFE", safe_getter, safe_setter);
 

Modified: MacRuby/trunk/eval_jump.c
===================================================================
--- MacRuby/trunk/eval_jump.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/eval_jump.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -92,6 +92,6 @@
 void
 Init_jump(void)
 {
-    rb_objc_define_method(rb_mKernel, "at_exit", rb_f_at_exit, 0);
+    rb_objc_define_module_function(rb_mKernel, "at_exit", rb_f_at_exit, 0);
     GC_ROOT(&end_procs);
 }

Modified: MacRuby/trunk/file.c
===================================================================
--- MacRuby/trunk/file.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/file.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -4101,7 +4101,7 @@
 
     rb_objc_define_method(rb_cFile, "path",  rb_file_path, 0);
     rb_objc_define_method(rb_cFile, "to_path",  rb_file_path, 0);
-    rb_objc_define_method(rb_mKernel, "test", rb_f_test, -1);
+    rb_objc_define_module_function(rb_mKernel, "test", rb_f_test, -1);
 
     rb_cStat = rb_define_class_under(rb_cFile, "Stat", rb_cObject);
     rb_objc_define_method(*(VALUE *)rb_cStat, "alloc", rb_stat_s_alloc, 0);

Modified: MacRuby/trunk/include/ruby/ruby.h
===================================================================
--- MacRuby/trunk/include/ruby/ruby.h	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/include/ruby/ruby.h	2009-08-26 01:35:19 UTC (rev 2382)
@@ -934,6 +934,7 @@
 void rb_objc_define_method(VALUE klass, const char *name, void *imp, const int arity);
 void rb_objc_define_direct_method(VALUE klass, const char *name, void *imp, const int arity);
 void rb_objc_define_private_method(VALUE klass, const char *name, void *imp, const int arity);
+void rb_objc_define_module_function(VALUE klass, const char *name, void *imp, const int arity);
 void rb_objc_undef_method(VALUE klass, const char *name);
 
 void rb_global_variable(VALUE*);

Modified: MacRuby/trunk/io.c
===================================================================
--- MacRuby/trunk/io.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/io.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -4481,23 +4481,23 @@
     id_encode = rb_intern("encode");
     id_readpartial = rb_intern("readpartial");
 
-    rb_objc_define_method(rb_mKernel, "syscall", rb_f_syscall, -1);
+    rb_objc_define_module_function(rb_mKernel, "syscall", rb_f_syscall, -1);
 
-    rb_objc_define_method(rb_mKernel, "open", rb_f_open, -1);
-    rb_objc_define_method(rb_mKernel, "printf", rb_f_printf, -1);
-    rb_objc_define_method(rb_mKernel, "print", rb_f_print, -1);
-    rb_objc_define_method(rb_mKernel, "putc", rb_f_putc, 1);
-    rb_objc_define_method(rb_mKernel, "puts", rb_f_puts, -1);
-    rb_objc_define_method(rb_mKernel, "gets", rb_f_gets, -1);
-    rb_objc_define_method(rb_mKernel, "readline", rb_f_readline, -1);
-    rb_objc_define_method(rb_mKernel, "select", rb_f_select, -1);
+    rb_objc_define_module_function(rb_mKernel, "open", rb_f_open, -1);
+    rb_objc_define_module_function(rb_mKernel, "printf", rb_f_printf, -1);
+    rb_objc_define_module_function(rb_mKernel, "print", rb_f_print, -1);
+    rb_objc_define_module_function(rb_mKernel, "putc", rb_f_putc, 1);
+    rb_objc_define_module_function(rb_mKernel, "puts", rb_f_puts, -1);
+    rb_objc_define_module_function(rb_mKernel, "gets", rb_f_gets, -1);
+    rb_objc_define_module_function(rb_mKernel, "readline", rb_f_readline, -1);
+    rb_objc_define_module_function(rb_mKernel, "select", rb_f_select, -1);
 
-    rb_objc_define_method(rb_mKernel, "readlines", rb_f_readlines, -1);
+    rb_objc_define_module_function(rb_mKernel, "readlines", rb_f_readlines, -1);
 
-    rb_objc_define_method(rb_mKernel, "`", rb_f_backquote, 1);
+    rb_objc_define_module_function(rb_mKernel, "`", rb_f_backquote, 1);
 
-    rb_objc_define_method(rb_mKernel, "p", rb_f_p, -1);
-    rb_objc_define_method(rb_mKernel, "display", rb_obj_display, -1);
+    rb_objc_define_module_function(rb_mKernel, "p", rb_f_p, -1);
+    rb_objc_define_module_function(rb_mKernel, "display", rb_obj_display, -1);
 
     rb_cIO = rb_define_class("IO", rb_cObject);
     rb_include_module(rb_cIO, rb_mEnumerable);

Modified: MacRuby/trunk/load.c
===================================================================
--- MacRuby/trunk/load.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/load.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -605,12 +605,12 @@
     rb_define_virtual_variable("$\"", rb_vm_loaded_features, 0);
     rb_define_virtual_variable("$LOADED_FEATURES", rb_vm_loaded_features, 0);
 
-    rb_objc_define_method(rb_mKernel, "load", rb_f_load, -1);
-    rb_objc_define_method(rb_mKernel, "require", rb_f_require_imp, 1);
+    rb_objc_define_module_function(rb_mKernel, "load", rb_f_load, -1);
+    rb_objc_define_module_function(rb_mKernel, "require", rb_f_require_imp, 1);
     rb_objc_define_method(rb_cModule, "autoload", rb_mod_autoload, 2);
     rb_objc_define_method(rb_cModule, "autoload?", rb_mod_autoload_p, 1);
-    rb_objc_define_method(rb_mKernel, "autoload", rb_f_autoload, 2);
-    rb_objc_define_method(rb_mKernel, "autoload?", rb_f_autoload_p, 1);
+    rb_objc_define_module_function(rb_mKernel, "autoload", rb_f_autoload, 2);
+    rb_objc_define_module_function(rb_mKernel, "autoload?", rb_f_autoload_p, 1);
 
-    rb_objc_define_method(rb_mKernel, "framework", rb_require_framework, -1);
+    rb_objc_define_module_function(rb_mKernel, "framework", rb_require_framework, -1);
 }

Modified: MacRuby/trunk/math.c
===================================================================
--- MacRuby/trunk/math.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/math.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -621,39 +621,38 @@
     rb_define_const(rb_mMath, "E", DOUBLE2NUM(exp(1.0)));
 #endif
 
-    VALUE rb_cmMath = *(VALUE *)rb_mMath;
-    rb_objc_define_method(rb_cmMath, "atan2", math_atan2, 2);
-    rb_objc_define_method(rb_cmMath, "cos", math_cos, 1);
-    rb_objc_define_method(rb_cmMath, "sin", math_sin, 1);
-    rb_objc_define_method(rb_cmMath, "tan", math_tan, 1);
+    rb_objc_define_module_function(rb_mMath, "atan2", math_atan2, 2);
+    rb_objc_define_module_function(rb_mMath, "cos", math_cos, 1);
+    rb_objc_define_module_function(rb_mMath, "sin", math_sin, 1);
+    rb_objc_define_module_function(rb_mMath, "tan", math_tan, 1);
 
-    rb_objc_define_method(rb_cmMath, "acos", math_acos, 1);
-    rb_objc_define_method(rb_cmMath, "asin", math_asin, 1);
-    rb_objc_define_method(rb_cmMath, "atan", math_atan, 1);
+    rb_objc_define_module_function(rb_mMath, "acos", math_acos, 1);
+    rb_objc_define_module_function(rb_mMath, "asin", math_asin, 1);
+    rb_objc_define_module_function(rb_mMath, "atan", math_atan, 1);
 
-    rb_objc_define_method(rb_cmMath, "cosh", math_cosh, 1);
-    rb_objc_define_method(rb_cmMath, "sinh", math_sinh, 1);
-    rb_objc_define_method(rb_cmMath, "tanh", math_tanh, 1);
+    rb_objc_define_module_function(rb_mMath, "cosh", math_cosh, 1);
+    rb_objc_define_module_function(rb_mMath, "sinh", math_sinh, 1);
+    rb_objc_define_module_function(rb_mMath, "tanh", math_tanh, 1);
 
-    rb_objc_define_method(rb_cmMath, "acosh", math_acosh, 1);
-    rb_objc_define_method(rb_cmMath, "asinh", math_asinh, 1);
-    rb_objc_define_method(rb_cmMath, "atanh", math_atanh, 1);
+    rb_objc_define_module_function(rb_mMath, "acosh", math_acosh, 1);
+    rb_objc_define_module_function(rb_mMath, "asinh", math_asinh, 1);
+    rb_objc_define_module_function(rb_mMath, "atanh", math_atanh, 1);
 
-    rb_objc_define_method(rb_cmMath, "exp", math_exp, 1);
-    rb_objc_define_method(rb_cmMath, "log", math_log, -1);
-    rb_objc_define_method(rb_cmMath, "log2", math_log2, 1);
-    rb_objc_define_method(rb_cmMath, "log10", math_log10, 1);
-    rb_objc_define_method(rb_cmMath, "sqrt", math_sqrt, 1);
-    rb_objc_define_method(rb_cmMath, "cbrt", math_cbrt, 1);
+    rb_objc_define_module_function(rb_mMath, "exp", math_exp, 1);
+    rb_objc_define_module_function(rb_mMath, "log", math_log, -1);
+    rb_objc_define_module_function(rb_mMath, "log2", math_log2, 1);
+    rb_objc_define_module_function(rb_mMath, "log10", math_log10, 1);
+    rb_objc_define_module_function(rb_mMath, "sqrt", math_sqrt, 1);
+    rb_objc_define_module_function(rb_mMath, "cbrt", math_cbrt, 1);
 
-    rb_objc_define_method(rb_cmMath, "frexp", math_frexp, 1);
-    rb_objc_define_method(rb_cmMath, "ldexp", math_ldexp, 2);
+    rb_objc_define_module_function(rb_mMath, "frexp", math_frexp, 1);
+    rb_objc_define_module_function(rb_mMath, "ldexp", math_ldexp, 2);
 
-    rb_objc_define_method(rb_cmMath, "hypot", math_hypot, 2);
+    rb_objc_define_module_function(rb_mMath, "hypot", math_hypot, 2);
 
-    rb_objc_define_method(rb_cmMath, "erf",  math_erf,  1);
-    rb_objc_define_method(rb_cmMath, "erfc", math_erfc, 1);
+    rb_objc_define_module_function(rb_mMath, "erf",  math_erf,  1);
+    rb_objc_define_module_function(rb_mMath, "erfc", math_erfc, 1);
 
-    rb_objc_define_method(rb_cmMath, "gamma", math_gamma, 1);
-    rb_objc_define_method(rb_cmMath, "lgamma", math_lgamma, 1);
+    rb_objc_define_module_function(rb_mMath, "gamma", math_gamma, 1);
+    rb_objc_define_module_function(rb_mMath, "lgamma", math_lgamma, 1);
 }

Modified: MacRuby/trunk/object.c
===================================================================
--- MacRuby/trunk/object.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/object.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -2914,6 +2914,7 @@
     rb_objc_define_method(rb_cNSObject, "clone", rb_obj_clone_imp, 0);
     rb_objc_define_method(rb_cNSObject, "dup", rb_nsobj_dup, 0);
 
+    rb_objc_define_method(rb_mKernel, "initialize_copy", rb_obj_init_copy, 1);
     rb_objc_define_method(rb_mKernel, "taint", rb_obj_taint_m, 0);
     rb_objc_define_method(rb_mKernel, "tainted?", rb_obj_tainted_p, 0);
     rb_objc_define_method(rb_mKernel, "untaint", rb_obj_untaint_m, 0);
@@ -2947,15 +2948,14 @@
 
     rb_objc_define_method(rb_mKernel, "__native__?", rb_obj_is_native, 0);
 
-    rb_objc_define_method(rb_mKernel, "sprintf", rb_f_sprintf_imp, -1); /* in sprintf.c */
-    rb_objc_define_method(rb_mKernel, "format", rb_f_sprintf_imp, -1);  /* in sprintf.c */
+    rb_objc_define_module_function(rb_mKernel, "sprintf", rb_f_sprintf_imp, -1); /* in sprintf.c */
+    rb_objc_define_module_function(rb_mKernel, "format", rb_f_sprintf_imp, -1);  /* in sprintf.c */
 
-    rb_objc_define_method(rb_mKernel, "Integer", rb_f_integer, 1);
-    rb_objc_define_method(rb_mKernel, "Float", rb_f_float, 1);
+    rb_objc_define_module_function(rb_mKernel, "Integer", rb_f_integer, 1);
+    rb_objc_define_module_function(rb_mKernel, "Float", rb_f_float, 1);
+    rb_objc_define_module_function(rb_mKernel, "String", rb_f_string, 1);
+    rb_objc_define_module_function(rb_mKernel, "Array", rb_f_array, 1);
 
-    rb_objc_define_method(rb_mKernel, "String", rb_f_string, 1);
-    rb_objc_define_method(rb_mKernel, "Array", rb_f_array, 1);
-
     rb_const_set(rb_cObject, rb_intern("NSNull"), (VALUE)objc_getClass("NSNull"));
 
     rb_cNilClass = rb_define_class("NilClass", rb_cObject);

Modified: MacRuby/trunk/proc.c
===================================================================
--- MacRuby/trunk/proc.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/proc.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -1512,8 +1512,8 @@
     rb_objc_retain((void *)sysstack_error);
 
     /* utility functions */
-    rb_objc_define_method(rb_mKernel, "proc", rb_block_proc_imp, 0);
-    rb_objc_define_method(rb_mKernel, "lambda", proc_lambda, 0);
+    rb_objc_define_module_function(rb_mKernel, "proc", rb_block_proc_imp, 0);
+    rb_objc_define_module_function(rb_mKernel, "lambda", proc_lambda, 0);
 
     /* Method */
     rb_cMethod = rb_define_class("Method", rb_cObject);
@@ -1605,7 +1605,7 @@
     rb_objc_define_method(rb_cBinding, "clone", binding_clone, 0);
     rb_objc_define_method(rb_cBinding, "dup", binding_dup, 0);
     rb_objc_define_method(rb_cBinding, "eval", bind_eval, -1);
-    rb_objc_define_method(rb_mKernel, "binding", rb_f_binding, 0);
+    rb_objc_define_module_function(rb_mKernel, "binding", rb_f_binding, 0);
 
     rb_vm_binding_t *binding = (rb_vm_binding_t *)xmalloc(
 	    sizeof(rb_vm_binding_t));

Modified: MacRuby/trunk/process.c
===================================================================
--- MacRuby/trunk/process.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/process.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -5037,14 +5037,14 @@
 {
     rb_define_virtual_variable("$?", rb_last_status_get, 0);
     rb_define_virtual_variable("$$", get_pid, 0);
-    rb_objc_define_method(rb_mKernel, "exec", rb_f_exec, -1);
-    rb_objc_define_method(rb_mKernel, "fork", rb_f_fork, 0);
-    rb_objc_define_method(rb_mKernel, "exit!", rb_f_exit_bang, -1);
-    rb_objc_define_method(rb_mKernel, "system", rb_f_system, -1);
-    rb_objc_define_method(rb_mKernel, "spawn", rb_f_spawn, -1);
-    rb_objc_define_method(rb_mKernel, "sleep", rb_f_sleep, -1);
-    rb_objc_define_method(rb_mKernel, "exit", rb_f_exit, -1);
-    rb_objc_define_method(rb_mKernel, "abort", rb_f_abort, -1);
+    rb_objc_define_module_function(rb_mKernel, "exec", rb_f_exec, -1);
+    rb_objc_define_module_function(rb_mKernel, "fork", rb_f_fork, 0);
+    rb_objc_define_module_function(rb_mKernel, "exit!", rb_f_exit_bang, -1);
+    rb_objc_define_module_function(rb_mKernel, "system", rb_f_system, -1);
+    rb_objc_define_module_function(rb_mKernel, "spawn", rb_f_spawn, -1);
+    rb_objc_define_module_function(rb_mKernel, "sleep", rb_f_sleep, -1);
+    rb_objc_define_module_function(rb_mKernel, "exit", rb_f_exit, -1);
+    rb_objc_define_module_function(rb_mKernel, "abort", rb_f_abort, -1);
 
     rb_mProcess = rb_define_module("Process");
 

Modified: MacRuby/trunk/random.c
===================================================================
--- MacRuby/trunk/random.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/random.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -503,7 +503,7 @@
 Init_Random(void)
 {
     rand_init(random_seed());
-    rb_objc_define_method(rb_mKernel, "srand", rb_f_srand, -1);
-    rb_objc_define_method(rb_mKernel, "rand", rb_f_rand, -1);
+    rb_objc_define_module_function(rb_mKernel, "srand", rb_f_srand, -1);
+    rb_objc_define_module_function(rb_mKernel, "rand", rb_f_rand, -1);
     rb_global_variable(&saved_seed);
 }

Modified: MacRuby/trunk/signal.c
===================================================================
--- MacRuby/trunk/signal.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/signal.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -1086,7 +1086,7 @@
 #ifndef MACOS_UNUSE_SIGNAL
     VALUE mSignal = rb_define_module("Signal");
 
-    rb_objc_define_method(rb_mKernel, "trap", sig_trap, -1);
+    rb_objc_define_module_function(rb_mKernel, "trap", sig_trap, -1);
     rb_objc_define_method(*(VALUE *)mSignal, "trap", sig_trap, -1);
     rb_objc_define_method(*(VALUE *)mSignal, "list", sig_list, 0);
 

Modified: MacRuby/trunk/vm_eval.c
===================================================================
--- MacRuby/trunk/vm_eval.c	2009-08-26 01:34:54 UTC (rev 2381)
+++ MacRuby/trunk/vm_eval.c	2009-08-26 01:35:19 UTC (rev 2382)
@@ -272,8 +272,9 @@
  */
 
 static VALUE
-rb_f_loop(VALUE klass, SEL sel)
+rb_f_loop(VALUE rcv, SEL sel)
 {
+    RETURN_ENUMERATOR(rcv, 0, 0);
     return rb_rescue2(loop_i, (VALUE)0, 0, 0, rb_eStopIteration, (VALUE)0);
 }
 
@@ -765,10 +766,10 @@
 void
 Init_vm_eval(void)
 {
-    rb_objc_define_method(rb_mKernel, "catch", rb_f_catch, 1);
-    rb_objc_define_method(rb_mKernel, "throw", rb_f_throw, -1);
+    rb_objc_define_module_function(rb_mKernel, "catch", rb_f_catch, 1);
+    rb_objc_define_module_function(rb_mKernel, "throw", rb_f_throw, -1);
 
-    rb_objc_define_method(rb_mKernel, "loop", rb_f_loop, 0);
+    rb_objc_define_module_function(rb_mKernel, "loop", rb_f_loop, 0);
 
     rb_objc_define_method(rb_cNSObject, "instance_eval", rb_obj_instance_eval, -1);
     rb_objc_define_method(rb_cNSObject, "instance_exec", rb_obj_instance_exec, -1);
@@ -786,6 +787,6 @@
     rb_objc_define_method(rb_cModule, "module_exec", rb_mod_module_exec, -1);
     rb_objc_define_method(rb_cModule, "class_exec", rb_mod_module_exec, -1);
 
-    rb_objc_define_method(rb_mKernel, "caller", rb_f_caller, -1);
+    rb_objc_define_module_function(rb_mKernel, "caller", rb_f_caller, -1);
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090825/37943a5a/attachment-0001.html>


More information about the macruby-changes mailing list