[macruby-changes] [1012] MacRuby/branches/experimental

source_changes at macosforge.org source_changes at macosforge.org
Fri Mar 20 00:07:58 PDT 2009


Revision: 1012
          http://trac.macosforge.org/projects/ruby/changeset/1012
Author:   lsansonetti at apple.com
Date:     2009-03-20 00:07:50 -0700 (Fri, 20 Mar 2009)
Log Message:
-----------
ported some methods of process.c to rb_objc_define_method()

Modified Paths:
--------------
    MacRuby/branches/experimental/include/ruby/intern.h
    MacRuby/branches/experimental/process.c

Modified: MacRuby/branches/experimental/include/ruby/intern.h
===================================================================
--- MacRuby/branches/experimental/include/ruby/intern.h	2009-03-20 06:51:26 UTC (rev 1011)
+++ MacRuby/branches/experimental/include/ruby/intern.h	2009-03-20 07:07:50 UTC (rev 1012)
@@ -244,8 +244,6 @@
 
 NORETURN(void rb_exc_raise(VALUE));
 NORETURN(void rb_exc_fatal(VALUE));
-VALUE rb_f_exit(int,VALUE*);
-VALUE rb_f_abort(int,VALUE*);
 void rb_remove_method(VALUE, const char*);
 #define rb_disable_super(klass, name) ((void)0)
 #define rb_enable_super(klass, name) ((void)0)
@@ -481,7 +479,6 @@
 int rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s);
 int rb_exec(const struct rb_exec_arg*);
 rb_pid_t rb_fork(int*, int (*)(void*), void*, VALUE);
-VALUE rb_f_exec(int,VALUE*);
 rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags);
 void rb_syswait(rb_pid_t pid);
 rb_pid_t rb_spawn(int, VALUE*);

Modified: MacRuby/branches/experimental/process.c
===================================================================
--- MacRuby/branches/experimental/process.c	2009-03-20 06:51:26 UTC (rev 1011)
+++ MacRuby/branches/experimental/process.c	2009-03-20 07:07:50 UTC (rev 1012)
@@ -1713,8 +1713,8 @@
  *     # never get here
  */
 
-VALUE
-rb_f_exec(int argc, VALUE *argv)
+static VALUE
+rb_f_exec(VALUE rcv, SEL sel, int argc, VALUE *argv)
 {
     struct rb_exec_arg earg;
 
@@ -2415,18 +2415,14 @@
  */
 
 static VALUE
-rb_f_fork(VALUE obj)
+rb_f_fork(VALUE obj, SEL sel)
 {
-#if defined(HAVE_FORK) && !defined(__NetBSD__)
     rb_pid_t pid;
 
     rb_secure(2);
 
     switch (pid = rb_fork(0, 0, 0, Qnil)) {
       case 0:
-#ifdef linux
-	after_exec();
-#endif
 	//rb_thread_atfork();
 	if (rb_block_given_p()) {
 	    int status;
@@ -2443,9 +2439,6 @@
       default:
 	return PIDT2NUM(pid);
     }
-#else
-    rb_notimplement();
-#endif
 }
 
 
@@ -2461,7 +2454,7 @@
  */
 
 static VALUE
-rb_f_exit_bang(int argc, VALUE *argv, VALUE obj)
+rb_f_exit_bang(VALUE obj, SEL sel, int argc, VALUE *argv)
 {
     VALUE status;
     int istatus;
@@ -2543,8 +2536,8 @@
  *     in finalizer
  */
 
-VALUE
-rb_f_exit(int argc, VALUE *argv)
+static VALUE
+rb_f_exit(VALUE obj, SEL sel, int argc, VALUE *argv)
 {
     VALUE status;
     int istatus;
@@ -2588,8 +2581,8 @@
 
 VALUE rb_io_puts(VALUE out, SEL sel, int argc, VALUE *argv);
 
-VALUE
-rb_f_abort(int argc, VALUE *argv)
+static VALUE
+rb_f_abort(VALUE obj, SEL sel, int argc, VALUE *argv)
 {
     extern void ruby_error_print(void);
 
@@ -2749,7 +2742,7 @@
  */
 
 static VALUE
-rb_f_system(int argc, VALUE *argv)
+rb_f_system(VALUE obj, SEL sel, int argc, VALUE *argv)
 {
     int status;
 
@@ -2921,17 +2914,13 @@
  */
 
 static VALUE
-rb_f_spawn(int argc, VALUE *argv)
+rb_f_spawn(VALUE obj, SEL sel, int argc, VALUE *argv)
 {
     rb_pid_t pid;
 
     pid = rb_spawn(argc, argv);
     if (pid == -1) rb_sys_fail(RSTRING_PTR(argv[0]));
-#if defined(HAVE_FORK) || defined(HAVE_SPAWNV)
     return PIDT2NUM(pid);
-#else
-    return Qnil;
-#endif
 }
 
 /*
@@ -5082,14 +5071,14 @@
 {
     rb_define_virtual_variable("$?", rb_last_status_get, 0);
     rb_define_virtual_variable("$$", get_pid, 0);
-    rb_define_global_function("exec", rb_f_exec, -1);
-    rb_define_global_function("fork", rb_f_fork, 0);
-    rb_define_global_function("exit!", rb_f_exit_bang, -1);
-    rb_define_global_function("system", rb_f_system, -1);
-    rb_define_global_function("spawn", rb_f_spawn, -1);
+    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_define_global_function("exit", rb_f_exit, -1);
-    rb_define_global_function("abort", rb_f_abort, -1);
+    rb_objc_define_method(rb_mKernel, "exit", rb_f_exit, -1);
+    rb_objc_define_method(rb_mKernel, "abort", rb_f_abort, -1);
 
     rb_mProcess = rb_define_module("Process");
 
@@ -5104,12 +5093,12 @@
     rb_define_const(rb_mProcess, "WUNTRACED", INT2FIX(0));
 #endif
 
-    rb_define_singleton_method(rb_mProcess, "exec", rb_f_exec, -1);
-    rb_define_singleton_method(rb_mProcess, "fork", rb_f_fork, 0);
-    rb_define_singleton_method(rb_mProcess, "spawn", rb_f_spawn, -1);
-    rb_define_singleton_method(rb_mProcess, "exit!", rb_f_exit_bang, -1);
-    rb_define_singleton_method(rb_mProcess, "exit", rb_f_exit, -1);
-    rb_define_singleton_method(rb_mProcess, "abort", rb_f_abort, -1);
+    rb_objc_define_method(*(VALUE *)rb_mProcess, "exec", rb_f_exec, -1);
+    rb_objc_define_method(*(VALUE *)rb_mProcess, "fork", rb_f_fork, 0);
+    rb_objc_define_method(*(VALUE *)rb_mProcess, "spawn", rb_f_spawn, -1);
+    rb_objc_define_method(*(VALUE *)rb_mProcess, "exit!", rb_f_exit_bang, -1);
+    rb_objc_define_method(*(VALUE *)rb_mProcess, "exit", rb_f_exit, -1);
+    rb_objc_define_method(*(VALUE *)rb_mProcess, "abort", rb_f_abort, -1);
 
     rb_define_module_function(rb_mProcess, "kill", rb_f_kill, -1); /* in signal.c */
     rb_define_module_function(rb_mProcess, "wait", proc_wait, -1);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090320/78429a8a/attachment-0001.html>


More information about the macruby-changes mailing list