utilrb 1.6.6 → 2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest.txt +10 -9
 - data/README.rd +23 -0
 - data/Rakefile +40 -37
 - data/ext/utilrb/extconf.rb +36 -0
 - data/ext/{proc.cc → utilrb/proc.c} +7 -6
 - data/ext/utilrb/ruby_allocator.hh +76 -0
 - data/ext/{ruby_internals-1.8.h → utilrb/ruby_internals-1.8.h} +0 -0
 - data/ext/{ruby_internals-1.9.h → utilrb/ruby_internals-1.9.h} +0 -0
 - data/ext/{swap.cc → utilrb/swap.cc} +0 -0
 - data/ext/utilrb/utilrb.cc +79 -0
 - data/ext/{value_set.cc → utilrb/value_set.cc} +5 -5
 - data/ext/{weakref.cc → utilrb/weakref.cc} +0 -0
 - data/lib/utilrb/common.rb +7 -2
 - data/lib/utilrb/doc/rake.rb +46 -15
 - data/lib/utilrb/kernel/load_dsl_file.rb +2 -2
 - data/lib/utilrb/kernel/options.rb +6 -0
 - data/lib/utilrb/logger/forward.rb +7 -0
 - data/lib/utilrb/logger/hierarchy.rb +100 -42
 - data/lib/utilrb/logger/indent.rb +38 -3
 - data/lib/utilrb/logger/log_pp.rb +1 -1
 - data/lib/utilrb/logger/root.rb +27 -12
 - data/lib/utilrb/module/inherited_enumerable.rb +2 -196
 - data/lib/utilrb/objectstats.rb +4 -1
 - data/lib/utilrb/pkgconfig.rb +42 -6
 - data/lib/utilrb/rake_common.rb +12 -0
 - data/lib/utilrb/ruby_object_graph.rb +195 -46
 - data/lib/utilrb/yard.rb +89 -89
 - data/test/test_array.rb +1 -1
 - data/test/test_dir.rb +1 -1
 - data/test/test_enumerable.rb +7 -1
 - data/test/test_event_loop.rb +407 -0
 - data/test/test_exception.rb +1 -1
 - data/test/test_gc.rb +1 -1
 - data/test/test_hash.rb +57 -1
 - data/test/test_kernel.rb +52 -21
 - data/test/test_logger.rb +150 -1
 - data/test/test_misc.rb +1 -1
 - data/test/test_models.rb +212 -0
 - data/test/test_module.rb +41 -71
 - data/test/test_object.rb +1 -1
 - data/test/test_objectstats.rb +1 -1
 - data/test/test_pkgconfig.rb +7 -5
 - data/test/test_proc.rb +1 -1
 - data/test/test_set.rb +1 -1
 - data/test/test_thread_pool.rb +409 -0
 - data/test/test_time.rb +6 -6
 - data/test/test_unbound_method.rb +1 -1
 - metadata +157 -131
 - data/README.txt +0 -45
 - data/ext/extconf.rb +0 -29
 - data/ext/utilrb_ext.cc +0 -144
 
    
        data/ext/utilrb_ext.cc
    DELETED
    
    | 
         @@ -1,144 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #include <ruby.h>
         
     | 
| 
       2 
     | 
    
         
            -
            #include <set>
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            #ifndef RUBINIUS
         
     | 
| 
       5 
     | 
    
         
            -
            #ifdef RUBY_IS_19
         
     | 
| 
       6 
     | 
    
         
            -
            #include "ruby_internals-1.9.h"
         
     | 
| 
       7 
     | 
    
         
            -
            #else
         
     | 
| 
       8 
     | 
    
         
            -
            #include "ruby_internals-1.8.h"
         
     | 
| 
       9 
     | 
    
         
            -
            #endif
         
     | 
| 
       10 
     | 
    
         
            -
            #endif
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            static VALUE mUtilrb;
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
            using namespace std;
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            #ifndef RUBINIUS
         
     | 
| 
       17 
     | 
    
         
            -
            static VALUE enumerable_each_uniq_i(VALUE i, VALUE* memo)
         
     | 
| 
       18 
     | 
    
         
            -
            { 
         
     | 
| 
       19 
     | 
    
         
            -
                set<VALUE>& seen = *reinterpret_cast< set<VALUE>* >(memo); 
         
     | 
| 
       20 
     | 
    
         
            -
                if (seen.find(i) == seen.end())
         
     | 
| 
       21 
     | 
    
         
            -
                {
         
     | 
| 
       22 
     | 
    
         
            -
            	seen.insert(i);
         
     | 
| 
       23 
     | 
    
         
            -
            	return rb_yield(i);
         
     | 
| 
       24 
     | 
    
         
            -
                }
         
     | 
| 
       25 
     | 
    
         
            -
                else
         
     | 
| 
       26 
     | 
    
         
            -
            	return Qnil;
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            }
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
            /* :nodoc: */
         
     | 
| 
       31 
     | 
    
         
            -
            static VALUE enumerable_each_uniq(VALUE self)
         
     | 
| 
       32 
     | 
    
         
            -
            {
         
     | 
| 
       33 
     | 
    
         
            -
                set<VALUE> seen;
         
     | 
| 
       34 
     | 
    
         
            -
                rb_iterate(rb_each, self, 
         
     | 
| 
       35 
     | 
    
         
            -
            	    RUBY_METHOD_FUNC(enumerable_each_uniq_i), (VALUE)&seen);
         
     | 
| 
       36 
     | 
    
         
            -
                return self;
         
     | 
| 
       37 
     | 
    
         
            -
            }
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            /* call-seq:
         
     | 
| 
       40 
     | 
    
         
            -
             *  Kernel.is_singleton?(object)
         
     | 
| 
       41 
     | 
    
         
            -
             *
         
     | 
| 
       42 
     | 
    
         
            -
             * Returns true if +self+ is a singleton class 
         
     | 
| 
       43 
     | 
    
         
            -
             */
         
     | 
| 
       44 
     | 
    
         
            -
            static VALUE kernel_is_singleton_p(VALUE self)
         
     | 
| 
       45 
     | 
    
         
            -
            {
         
     | 
| 
       46 
     | 
    
         
            -
                if (BUILTIN_TYPE(self) == T_CLASS && FL_TEST(self, FL_SINGLETON))
         
     | 
| 
       47 
     | 
    
         
            -
            	return Qtrue;
         
     | 
| 
       48 
     | 
    
         
            -
                else
         
     | 
| 
       49 
     | 
    
         
            -
            	return Qfalse;
         
     | 
| 
       50 
     | 
    
         
            -
            }
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
            #ifndef RUBY_IS_19
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
            /* call-seq:
         
     | 
| 
       55 
     | 
    
         
            -
             *  proc.same_body?(other) => true or false
         
     | 
| 
       56 
     | 
    
         
            -
             *
         
     | 
| 
       57 
     | 
    
         
            -
             * Returns true if +self+ and +other+ have the same body
         
     | 
| 
       58 
     | 
    
         
            -
             */
         
     | 
| 
       59 
     | 
    
         
            -
            static VALUE proc_same_body_p(VALUE self, VALUE other)
         
     | 
| 
       60 
     | 
    
         
            -
            {
         
     | 
| 
       61 
     | 
    
         
            -
                if (self == other) return Qtrue;
         
     | 
| 
       62 
     | 
    
         
            -
                if (TYPE(other) != T_DATA) return Qfalse;
         
     | 
| 
       63 
     | 
    
         
            -
                if (RDATA(other)->dmark != RDATA(self)->dmark) return Qfalse;
         
     | 
| 
       64 
     | 
    
         
            -
                if (CLASS_OF(self) != CLASS_OF(other)) return Qfalse;
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                struct BLOCK* data, *data2;
         
     | 
| 
       67 
     | 
    
         
            -
                Data_Get_Struct(self, struct BLOCK, data);
         
     | 
| 
       68 
     | 
    
         
            -
                Data_Get_Struct(other, struct BLOCK, data2);
         
     | 
| 
       69 
     | 
    
         
            -
                return (data->body == data2->body) ? Qtrue : Qfalse;
         
     | 
| 
       70 
     | 
    
         
            -
            }
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
            /* call-seq:
         
     | 
| 
       73 
     | 
    
         
            -
             *  proc.file
         
     | 
| 
       74 
     | 
    
         
            -
             *
         
     | 
| 
       75 
     | 
    
         
            -
             * Returns the file in which the proc body is defined, or nil
         
     | 
| 
       76 
     | 
    
         
            -
             */
         
     | 
| 
       77 
     | 
    
         
            -
            static VALUE proc_file(VALUE self)
         
     | 
| 
       78 
     | 
    
         
            -
            { 
         
     | 
| 
       79 
     | 
    
         
            -
                struct BLOCK *data;
         
     | 
| 
       80 
     | 
    
         
            -
                NODE *node;
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                Data_Get_Struct(self, struct BLOCK, data);
         
     | 
| 
       83 
     | 
    
         
            -
                if ((node = data->frame.node) || (node = data->body)) 
         
     | 
| 
       84 
     | 
    
         
            -
            	return rb_str_new2(node->nd_file);
         
     | 
| 
       85 
     | 
    
         
            -
                else 
         
     | 
| 
       86 
     | 
    
         
            -
            	return Qnil;
         
     | 
| 
       87 
     | 
    
         
            -
            }
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
            /* call-seq:
         
     | 
| 
       90 
     | 
    
         
            -
             *  proc.line
         
     | 
| 
       91 
     | 
    
         
            -
             *
         
     | 
| 
       92 
     | 
    
         
            -
             * Returns the line at which the proc body is defined, or nil
         
     | 
| 
       93 
     | 
    
         
            -
             */
         
     | 
| 
       94 
     | 
    
         
            -
            static VALUE proc_line(VALUE self)
         
     | 
| 
       95 
     | 
    
         
            -
            {
         
     | 
| 
       96 
     | 
    
         
            -
                struct BLOCK *data;
         
     | 
| 
       97 
     | 
    
         
            -
                NODE *node;
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
                Data_Get_Struct(self, struct BLOCK, data);
         
     | 
| 
       100 
     | 
    
         
            -
                if ((node = data->frame.node) || (node = data->body)) 
         
     | 
| 
       101 
     | 
    
         
            -
            	return INT2FIX(nd_line(node));
         
     | 
| 
       102 
     | 
    
         
            -
                else
         
     | 
| 
       103 
     | 
    
         
            -
            	return Qnil;
         
     | 
| 
       104 
     | 
    
         
            -
            }
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
            #endif
         
     | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
            static VALUE kernel_is_immediate(VALUE klass, VALUE object)
         
     | 
| 
       109 
     | 
    
         
            -
            { return IMMEDIATE_P(object) ? Qtrue : Qfalse; }
         
     | 
| 
       110 
     | 
    
         
            -
            #endif
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
            static VALUE kernel_crash(VALUE klass)
         
     | 
| 
       113 
     | 
    
         
            -
            { *((int*)0) = 10; }
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
            extern "C" void Init_value_set();
         
     | 
| 
       116 
     | 
    
         
            -
            extern "C" void Init_swap();
         
     | 
| 
       117 
     | 
    
         
            -
            extern "C" void Init_weakref(VALUE mUtilrb);
         
     | 
| 
       118 
     | 
    
         
            -
            extern "C" void Init_proc();
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
            extern "C" void Init_utilrb_ext()
         
     | 
| 
       121 
     | 
    
         
            -
            {
         
     | 
| 
       122 
     | 
    
         
            -
                mUtilrb = rb_define_module("Utilrb");
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
            #ifndef RUBINIUS
         
     | 
| 
       125 
     | 
    
         
            -
                rb_define_method(rb_mEnumerable, "each_uniq", RUBY_METHOD_FUNC(enumerable_each_uniq), 0);
         
     | 
| 
       126 
     | 
    
         
            -
                rb_define_method(rb_mKernel, "is_singleton?", RUBY_METHOD_FUNC(kernel_is_singleton_p), 0);
         
     | 
| 
       127 
     | 
    
         
            -
            #ifndef RUBY_IS_19
         
     | 
| 
       128 
     | 
    
         
            -
                rb_define_method(rb_cProc, "same_body?", RUBY_METHOD_FUNC(proc_same_body_p), 1);
         
     | 
| 
       129 
     | 
    
         
            -
                rb_define_method(rb_cProc, "file", RUBY_METHOD_FUNC(proc_file), 0);
         
     | 
| 
       130 
     | 
    
         
            -
                rb_define_method(rb_cProc, "line", RUBY_METHOD_FUNC(proc_line), 0);
         
     | 
| 
       131 
     | 
    
         
            -
            #endif
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                rb_define_singleton_method(rb_mKernel, "crash!", RUBY_METHOD_FUNC(kernel_crash), 0);
         
     | 
| 
       134 
     | 
    
         
            -
                rb_define_singleton_method(rb_mKernel, "immediate?", RUBY_METHOD_FUNC(kernel_is_immediate), 1);
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
                Init_swap();
         
     | 
| 
       137 
     | 
    
         
            -
                Init_weakref(mUtilrb);
         
     | 
| 
       138 
     | 
    
         
            -
            #endif
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
                Init_proc();
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
                Init_value_set();
         
     | 
| 
       143 
     | 
    
         
            -
            }
         
     | 
| 
       144 
     | 
    
         
            -
             
     |