ruby-changes:7135
From: nobu <ko1@a...>
Date: Sat, 16 Aug 2008 09:21:00 +0900 (JST)
Subject: [ruby-changes:7135] Ruby:r18653 (trunk): * include/ruby/ruby.h (rb_intern_const): tiny optimization.
nobu 2008-08-16 09:20:31 +0900 (Sat, 16 Aug 2008) New Revision: 18653 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18653 Log: * include/ruby/ruby.h (rb_intern_const): tiny optimization. Modified files: trunk/ChangeLog trunk/array.c trunk/compar.c trunk/compile.c trunk/complex.c trunk/encoding.c trunk/enum.c trunk/hash.c trunk/id.c trunk/include/ruby/ruby.h trunk/io.c trunk/load.c trunk/marshal.c trunk/numeric.c trunk/object.c trunk/prec.c trunk/range.c trunk/rational.c trunk/string.c trunk/thread.c trunk/time.c trunk/vm_method.c Index: complex.c =================================================================== --- complex.c (revision 18652) +++ complex.c (revision 18653) @@ -1364,6 +1364,7 @@ Init_Complex(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) assert(fprintf(stderr, "assert() is now active\n")); Index: array.c =================================================================== --- array.c (revision 18652) +++ array.c (revision 18653) @@ -3476,6 +3476,7 @@ Init_Array(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) rb_cArray = rb_define_class("Array", rb_cObject); rb_include_module(rb_cArray, rb_mEnumerable); Index: encoding.c =================================================================== --- encoding.c (revision 18652) +++ encoding.c (revision 18653) @@ -1172,6 +1172,7 @@ Init_Encoding(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) VALUE list; int i; Index: time.c =================================================================== --- time.c (revision 18652) +++ time.c (revision 18653) @@ -2353,6 +2353,7 @@ Init_Time(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) id_divmod = rb_intern("divmod"); id_mul = rb_intern("*"); Index: include/ruby/ruby.h =================================================================== --- include/ruby/ruby.h (revision 18652) +++ include/ruby/ruby.h (revision 18653) @@ -830,6 +830,12 @@ (__builtin_constant_p(str) ? \ __extension__ (CONST_ID_CACHE(/**/, str)) : \ rb_intern(str)) +#define rb_intern_const(str) \ + (__builtin_constant_p(str) ? \ + __extension__ (rb_intern2(str, strlen(str))) : \ + (rb_intern)(str)) +#else +#define rb_intern_const(str) rb_intern2(str, strlen(str)) #endif const char *rb_class2name(VALUE); Index: ChangeLog =================================================================== --- ChangeLog (revision 18652) +++ ChangeLog (revision 18653) @@ -1,5 +1,7 @@ -Sat Aug 16 08:52:55 2008 Nobuyoshi Nakada <nobu@r...> +Sat Aug 16 09:20:18 2008 Nobuyoshi Nakada <nobu@r...> + * include/ruby/ruby.h (rb_intern_const): tiny optimization. + * include/ruby/ruby.h (SSIZET2NUM, NUM2SSIZET, SSIZE_MAX, SSIZE_MIN): macros for ssize_t. Index: enum.c =================================================================== --- enum.c (revision 18652) +++ enum.c (revision 18653) @@ -1803,6 +1803,7 @@ Init_Enumerable(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) rb_mEnumerable = rb_define_module("Enumerable"); Index: string.c =================================================================== --- string.c (revision 18652) +++ string.c (revision 18653) @@ -6611,6 +6611,7 @@ Init_String(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) rb_cString = rb_define_class("String", rb_cObject); rb_include_module(rb_cString, rb_mComparable); Index: object.c =================================================================== --- object.c (revision 18652) +++ object.c (revision 18653) @@ -2428,6 +2428,7 @@ Init_Object(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) VALUE metaclass; Index: io.c =================================================================== --- io.c (revision 18652) +++ io.c (revision 18653) @@ -7613,6 +7613,7 @@ Init_IO(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) VALUE rb_cARGF; #ifdef __CYGWIN__ Index: load.c =================================================================== --- load.c (revision 18652) +++ load.c (revision 18653) @@ -675,13 +675,15 @@ void Init_load() { +#undef rb_intern +#define rb_intern(str) rb_intern2(str, strlen(str)) rb_vm_t *vm = GET_VM(); - const char *var_load_path = "$:"; - ID id_load_path = rb_intern(var_load_path); + static const char var_load_path[] = "$:"; + ID id_load_path = rb_intern2(var_load_path, sizeof(var_load_path)-1); - rb_define_hooked_variable(var_load_path, (VALUE*)GET_VM(), load_path_getter, 0); - rb_alias_variable((rb_intern)("$-I"), id_load_path); - rb_alias_variable((rb_intern)("$LOAD_PATH"), id_load_path); + rb_define_hooked_variable(var_load_path, (VALUE*)vm, load_path_getter, 0); + rb_alias_variable(rb_intern("$-I"), id_load_path); + rb_alias_variable(rb_intern("$LOAD_PATH"), id_load_path); vm->load_path = rb_ary_new(); rb_define_virtual_variable("$\"", get_loaded_features, 0); Index: compile.c =================================================================== --- compile.c (revision 18652) +++ compile.c (revision 18653) @@ -4806,6 +4806,7 @@ get_exception_sym2type(VALUE sym) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) static VALUE symRescue, symEnsure, symRetry; static VALUE symBreak, symRedo, symNext; Index: range.c =================================================================== --- range.c (revision 18652) +++ range.c (revision 18653) @@ -897,6 +897,7 @@ Init_Range(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) id_cmp = rb_intern("<=>"); id_succ = rb_intern("succ"); Index: thread.c =================================================================== --- thread.c (revision 18652) +++ thread.c (revision 18653) @@ -3525,6 +3525,7 @@ Init_Thread(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) VALUE cThGroup; Index: vm_method.c =================================================================== --- vm_method.c (revision 18652) +++ vm_method.c (revision 18653) @@ -1114,6 +1114,7 @@ Init_eval_method(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) rb_define_method(rb_mKernel, "respond_to?", obj_respond_to, -1); Index: id.c =================================================================== --- id.c (revision 18652) +++ id.c (revision 18653) @@ -17,6 +17,7 @@ Init_id(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) #define rb_intern(str) rb_intern2(str, strlen(str)) rb_encoding *enc = rb_usascii_encoding(); Index: hash.c =================================================================== --- hash.c (revision 18652) +++ hash.c (revision 18653) @@ -2597,6 +2597,7 @@ Init_Hash(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) id_hash = rb_intern("hash"); id_yield = rb_intern("yield"); Index: prec.c =================================================================== --- prec.c (revision 18652) +++ prec.c (revision 18653) @@ -125,6 +125,7 @@ Init_Precision(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) rb_mPrecision = rb_define_module("Precision"); rb_define_singleton_method(rb_mPrecision, "included", prec_included, 1); Index: numeric.c =================================================================== --- numeric.c (revision 18652) +++ numeric.c (revision 18653) @@ -3106,6 +3106,7 @@ Init_Numeric(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) #if defined(__FreeBSD__) && __FreeBSD__ < 4 /* allow divide by zero -- Inf */ Index: compar.c =================================================================== --- compar.c (revision 18652) +++ compar.c (revision 18653) @@ -199,6 +199,7 @@ Init_Comparable(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) rb_mComparable = rb_define_module("Comparable"); rb_define_method(rb_mComparable, "==", cmp_equal, 1); Index: marshal.c =================================================================== --- marshal.c (revision 18652) +++ marshal.c (revision 18653) @@ -1689,6 +1689,7 @@ Init_marshal(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) VALUE rb_mMarshal = rb_define_module("Marshal"); Index: rational.c =================================================================== --- rational.c (revision 18652) +++ rational.c (revision 18653) @@ -1470,6 +1470,7 @@ Init_Rational(void) { #undef rb_intern +#define rb_intern(str) rb_intern_const(str) assert(fprintf(stderr, "assert() is now active\n")); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/