[macruby-changes] [2908] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Tue Oct 27 19:24:31 PDT 2009
Revision: 2908
http://trac.macosforge.org/projects/ruby/changeset/2908
Author: lsansonetti at apple.com
Date: 2009-10-27 19:24:31 -0700 (Tue, 27 Oct 2009)
Log Message:
-----------
better MRI 1.9 C API compat
Modified Paths:
--------------
MacRuby/trunk/array.c
MacRuby/trunk/dir.c
MacRuby/trunk/error.c
MacRuby/trunk/hash.c
MacRuby/trunk/include/ruby/intern.h
MacRuby/trunk/include/ruby/io.h
MacRuby/trunk/include/ruby/ruby.h
Modified: MacRuby/trunk/array.c
===================================================================
--- MacRuby/trunk/array.c 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/array.c 2009-10-28 02:24:31 UTC (rev 2908)
@@ -1495,8 +1495,8 @@
* a -- b -- c --
*/
-VALUE
-rb_ary_each(VALUE ary, SEL sel)
+static VALUE
+rb_ary_each_imp(VALUE ary, SEL sel)
{
long i;
@@ -1508,6 +1508,12 @@
return ary;
}
+VALUE
+rb_ary_each(VALUE ary)
+{
+ return rb_ary_each_imp(ary, 0);
+}
+
/*
* call-seq:
* array.each_index {|index| block } -> array
@@ -4285,7 +4291,7 @@
rb_objc_define_method(rb_cArray, "shift", rb_ary_shift_m, -1);
rb_objc_define_method(rb_cArray, "unshift", rb_ary_unshift_m, -1);
rb_objc_define_method(rb_cArray, "insert", rb_ary_insert_m, -1);
- rb_objc_define_method(rb_cArray, "each", rb_ary_each, 0);
+ rb_objc_define_method(rb_cArray, "each", rb_ary_each_imp, 0);
rb_objc_define_method(rb_cArray, "each_index", rb_ary_each_index, 0);
rb_objc_define_method(rb_cArray, "reverse_each", rb_ary_reverse_each, 0);
rb_objc_define_method(rb_cArray, "length", rb_ary_length, 0);
Modified: MacRuby/trunk/dir.c
===================================================================
--- MacRuby/trunk/dir.c 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/dir.c 2009-10-28 02:24:31 UTC (rev 2908)
@@ -1642,8 +1642,6 @@
* Dir.glob(librbfiles) #=> ["lib/song.rb"]
*/
-VALUE rb_ary_each(VALUE recv, SEL sel);
-
static VALUE
dir_s_glob(VALUE obj, SEL sel, int argc, VALUE *argv)
{
@@ -1671,7 +1669,7 @@
}
if (rb_block_given_p()) {
- rb_ary_each(ary, 0);
+ rb_ary_each(ary);
return Qnil;
}
return ary;
Modified: MacRuby/trunk/error.c
===================================================================
--- MacRuby/trunk/error.c 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/error.c 2009-10-28 02:24:31 UTC (rev 2908)
@@ -1140,6 +1140,15 @@
"TODO");//rb_id2name(rb_frame_this_func()));
}
+VALUE
+rb_f_notimplement(VALUE rcv, SEL sel)
+{
+ rb_raise(rb_eNotImpError,
+ "%s() function is unimplemented on this machine",
+ sel_getName(sel));
+ return Qnil; // never reached
+}
+
void
rb_fatal(const char *fmt, ...)
{
Modified: MacRuby/trunk/hash.c
===================================================================
--- MacRuby/trunk/hash.c 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/hash.c 2009-10-28 02:24:31 UTC (rev 2908)
@@ -620,6 +620,12 @@
return ifnone;
}
+VALUE
+rb_hash_set_ifnone(VALUE hash, VALUE ifnone)
+{
+ return rb_hash_set_default(hash, 0, ifnone);
+}
+
/*
* call-seq:
* hsh.default_proc -> anObject
Modified: MacRuby/trunk/include/ruby/intern.h
===================================================================
--- MacRuby/trunk/include/ruby/intern.h 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/include/ruby/intern.h 2009-10-28 02:24:31 UTC (rev 2908)
@@ -58,6 +58,7 @@
VALUE rb_ary_pop(VALUE);
VALUE rb_ary_shift(VALUE);
VALUE rb_ary_unshift(VALUE, VALUE);
+VALUE rb_ary_each(VALUE);
VALUE rb_ary_entry(VALUE, long);
VALUE rb_ary_join(VALUE, VALUE);
VALUE rb_ary_print_on(VALUE, VALUE);
@@ -197,6 +198,7 @@
return rb_enumeratorize(obj, sel, argc, argv); \
} while (0)
/* error.c */
+VALUE rb_f_notimplement(VALUE rcv, SEL sel);
VALUE rb_exc_new(VALUE, const char*, long);
VALUE rb_exc_new2(VALUE, const char*);
VALUE rb_exc_new3(VALUE, VALUE);
@@ -371,6 +373,7 @@
VALUE rb_hash_delete_key(VALUE,VALUE);
VALUE rb_hash_has_key(VALUE hash, VALUE key);
VALUE rb_hash_keys(VALUE hash);
+VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone);
struct st_table *rb_hash_tbl(VALUE);
int rb_path_check(const char*);
int rb_env_path_tainted(void);
Modified: MacRuby/trunk/include/ruby/io.h
===================================================================
--- MacRuby/trunk/include/ruby/io.h 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/include/ruby/io.h 2009-10-28 02:24:31 UTC (rev 2908)
@@ -112,6 +112,12 @@
}
}
+// For MRI 1.9 compat.
+#define HAVE_RB_IO_T 1
+#define rb_io_check_writable rb_io_assert_writable
+#define rb_io_check_readable rb_io_assert_readable
+#define GetOpenFile(obj,fp) (fp = ExtractIOStruct(obj))
+
#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
Modified: MacRuby/trunk/include/ruby/ruby.h
===================================================================
--- MacRuby/trunk/include/ruby/ruby.h 2009-10-28 01:11:13 UTC (rev 2907)
+++ MacRuby/trunk/include/ruby/ruby.h 2009-10-28 02:24:31 UTC (rev 2908)
@@ -194,6 +194,8 @@
#define ULONG2NUM(v) UINT2NUM(v)
#define rb_uint_new(v) rb_uint2inum(v)
+#define TIMET2NUM(t) LONG2NUM(t)
+
#ifdef HAVE_LONG_LONG
VALUE rb_ll2inum(LONG_LONG);
#define LL2NUM(v) rb_ll2inum(v)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091027/dff584f4/attachment.html>
More information about the macruby-changes
mailing list