Ruby 1.9.3p327(2012-11-10revision37606)
|
00001 /* -*-c-*- 00002 THIS FILE WAS AUTOGENERATED BY tool/compile_prelude.rb. DO NOT EDIT. 00003 00004 sources: prelude, enc/prelude, gem_prelude 00005 */ 00006 #include "ruby/ruby.h" 00007 #include "internal.h" 00008 #include "vm_core.h" 00009 00010 00011 static const char prelude_name0[] = "<internal:prelude>"; 00012 static const char prelude_code0[] = 00013 "class Mutex\n" 00014 " # call-seq:\n" 00015 " # mutex.synchronize { ... }\n" 00016 " #\n" 00017 " # Obtains a lock, runs the block, and releases the lock when the\n" 00018 " # block completes. See the example under Mutex.\n" 00019 " def synchronize\n" 00020 " self.lock\n" 00021 " begin\n" 00022 " yield\n" 00023 " ensure\n" 00024 " self.unlock rescue nil\n" 00025 " end\n" 00026 " end\n" 00027 "end\n" 00028 "\n" 00029 "class Thread\n" 00030 " MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new # :nodoc:\n" 00031 "\n" 00032 " # call-seq:\n" 00033 " # Thread.exclusive { block } => obj\n" 00034 " #\n" 00035 " # Wraps a block in Thread.critical, restoring the original value\n" 00036 " # upon exit from the critical section, and returns the value of the\n" 00037 " # block.\n" 00038 " def self.exclusive\n" 00039 " MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{\n" 00040 " yield\n" 00041 " }\n" 00042 " end\n" 00043 "end\n" 00044 ; 00045 00046 static const char prelude_name1[] = "<internal:enc/prelude>"; 00047 static const char prelude_code1[] = 00048 "%w'enc/encdb.so enc/trans/transdb.so'.each do |init|\n" 00049 " begin\n" 00050 " require(init)\n" 00051 " rescue LoadError\n" 00052 " end\n" 00053 "end\n" 00054 ; 00055 00056 static const char prelude_name2[] = "<internal:gem_prelude>"; 00057 static const char prelude_code2[] = 00058 "require 'rubygems.rb' if defined?(Gem)\n" 00059 ; 00060 00061 #define PRELUDE_COUNT 0 00062 00063 00064 static void 00065 prelude_eval(VALUE code, VALUE name, VALUE line) 00066 { 00067 rb_iseq_eval(rb_iseq_compile_with_option(code, name, Qnil, line, Qtrue)); 00068 } 00069 00070 void 00071 Init_prelude(void) 00072 { 00073 prelude_eval( 00074 rb_usascii_str_new(prelude_code0, sizeof(prelude_code0) - 1), 00075 rb_usascii_str_new(prelude_name0, sizeof(prelude_name0) - 1), 00076 INT2FIX(1)); 00077 prelude_eval( 00078 rb_usascii_str_new(prelude_code1, sizeof(prelude_code1) - 1), 00079 rb_usascii_str_new(prelude_name1, sizeof(prelude_name1) - 1), 00080 INT2FIX(1)); 00081 prelude_eval( 00082 rb_usascii_str_new(prelude_code2, sizeof(prelude_code2) - 1), 00083 rb_usascii_str_new(prelude_name2, sizeof(prelude_name2) - 1), 00084 INT2FIX(1)); 00085 00086 #if 0 00087 puts(prelude_code0); 00088 puts(prelude_code1); 00089 puts(prelude_code2); 00090 #endif 00091 } 00092