Branch: refs/heads/master Home: https://github.com/MacRuby/MacRuby Commit: 7b14592ab1b9b2d2b05f7393251713682d6cd6eb https://github.com/MacRuby/MacRuby/commit/7b14592ab1b9b2d2b05f7393251713682d... Author: Kouji Takao <kouji@takao7.net> Date: 2011-06-15 (Wed, 15 Jun 2011) Changed paths: M compiler.cpp M compiler.h M debugger.cpp M dispatcher.cpp M interpreter.cpp M kernel.c M proc.c A spec/frozen/tags/macruby/library/bigdecimal/add_tags.txt M test_vm/block.rb M test_vm/dispatch.rb M vm.cpp M vm.h M vm_eval.c Log Message: ----------- fixed below. (fixes #1285 and #1292) however, this changes has regresion that does not support alias eval, instance_eval, module_eval and class_eval. --- Squashed commit of the following: commit 5da9a951b2e483753b2bab0929037af2d3c30b23 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 15 20:49:45 2011 +0900 fixed memory error in Binding#dup, Binding#clone. removed fails tag for spec/frozen/tags/macruby/core/binding/clone_tags.txt and spec/frozen/tags/macruby/core/binding/dup_tags.txt. commit f03f4a48869978764f7d92c5fb556f0dec003c50 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 15 20:19:26 2011 +0900 fixed memory leak in proc + outer_stack. fixed segv with RBO. commit e0bd18a4225f1f16f7a967d89cbbd063fb2b4a9c Author: Kouji Takao <kouji@takao7.net> Date: Sat Jun 4 00:49:22 2011 +0900 passed failed test in test_vm/block.rb below. --- assert ':ok', %{ proc do def proc_caller(&b) b.call end def enclosing_method proc_caller { return :ok } :nok end p enclosing_method end.call } raise TypeError below. --- 1.instance_eval "def f; end" 1.instance_eval { def f; end } commit 87657c9de4df385319e4729b3a8c30c15b823a72 Author: Kouji Takao <kouji@takao7.net> Date: Fri Jun 3 22:36:29 2011 +0900 added fails tags, because segfault on BigDecimal with raise exception. commit 3ff39e9fa36758f69ce2faded063c066e3abf3c8 Author: Kouji Takao <kouji@takao7.net> Date: Fri Jun 3 22:31:33 2011 +0900 reset current_class, outer_stack and current_outer in rb_vm_aot_feature_load(). commit da2dfc2c48ad668b5898a233c8585d7cdfea4596 Author: Kouji Takao <kouji@takao7.net> Date: Fri Jun 3 22:30:43 2011 +0900 added initialize outer_stack. commit 0638482e0c91584d9a6ef981066bb0f1292fe5f3 Author: Kouji Takao <kouji@takao7.net> Date: Fri Jun 3 22:30:22 2011 +0900 fixed segfault on rubyspec. commit 66c81e720c55641453a543d90691c541d7ffa3a9 Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 23:20:47 2011 +0900 reset outer_stack when loading rbo. commit 55beb0c2922839210215938a1c9462ffab639b7c Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 19:24:34 2011 +0900 removed outer_mask from RoxorCompiler, because It is not used now. commit ccbb5b390bebe3849904921210201d5ccd2e52c8 Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 18:51:11 2011 +0900 fixed bug, retain outer_stack in RoxorVM copy constructer and release outer_stack in RoxorVM destructer. commit e78a418480d41fdaffb6962dd5b386ddb7769892 Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 17:22:34 2011 +0900 fixed bug, defined?(<expected constants>) commit bdfde05de4cf1b7777894383afd1fb1c1aa80827 Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 14:44:07 2011 +0900 implemented Binding#dup and Binding#clone. commit 227017b27d2ce39692f10b51b95d20f3f4097dbf Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 14:27:26 2011 +0900 removed rb_vm_set_outer() and rb_vm_get_outer(). because does not use original outer now. commit 3c11376eb514301a2474693a8e4cd893e0dab833 Author: Kouji Takao <kouji@takao7.net> Date: Thu Jun 2 11:46:18 2011 +0900 fixed segfault on defined?(CONSTANT) in method below. --- class A CONST = 42 def f p(defined? CONST) end end GC.start # GC [A] outer_stack A.new.f # before SEGV commit 96cf97a5a6315d684297685fc05d95c223dd4949 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 23:19:51 2011 +0900 occurs TypeError exception below. This is CRuby spec. (like above) --- 1.instance_eval "class A; end" commit a51d5415c9d6ef1532a0f2a4b1cd37d9b0c9afa8 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 23:07:05 2011 +0900 occurs TypeError exception below. This is CRuby spec. --- 1.instance_eval "A = 10" commit 6a55eac0bec96de075e648683298cae1ec40d50f Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 22:00:29 2011 +0900 fixed memory leak below. (but MacRuby has memory leak calling eval with string now) --- Array.class_eval <<-EOS def f end EOS commit b1aa927a45085305a317a7fbc96212582e12c0b7 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 16:38:16 2011 +0900 does not push outer in eval. commit 4f8696d7c095cbc311b8f3a1e5f7af37c2f1de2b Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 16:11:22 2011 +0900 fixed bug below. --- module M1 B = 42 module M2 eval("B") # before uninitialized constant M1::M2::B (NameError), after none. end end commit ba3b3110139003b970c207e8c68ec9591fd36cad Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 15:06:40 2011 +0900 fixed memory leak below. --- loop do 1.instance_eval do 42 end end commit c0b3bbf22383a1fd9689698a6b2df4801a851bfc Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 14:41:08 2011 +0900 Revert "removed rb_vm_outer_t.pushed_by_eval struct member. it use detecting current class on cRuby, but MacRuby has rb_vm_t.current_class." This reverts commit 5f6cf8fd924a07553e59a474d508274e2ec2b275. commit 1446c62436ba5fc7a9d71dc929fc84278778f718 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 14:40:54 2011 +0900 Revert "fixed bug below." This reverts commit 3531dfc0c48af2b610946159a5f621db52d42b4e. commit d297f371b9d4fd3ebf03fb1534e9bcbb80f524ce Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 14:37:15 2011 +0900 fixed bug below. --- class EvalSpecs class A def c eval "class C; end" end end end EvalSpecs::A.new.c p EvalSpecs::A::C.name #=> "EvalSpecs::A::C" commit 7f0595b4d23a0494949bf7c23b11a0e007f5e25b Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 13:40:16 2011 +0900 removed rb_vm_outer_t.pushed_by_eval struct member. it use detecting current class on cRuby, but MacRuby has rb_vm_t.current_class. commit dad53ecafda46ebe7c08a8836260c577df805503 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 13:24:23 2011 +0900 fixed memory leak like below. --- class A Module.nesting end commit a3e956ba4681d16686178fe5f8b93eaae9d89e28 Author: Kouji Takao <kouji@takao7.net> Date: Wed Jun 1 02:08:26 2011 +0900 fixed memory leak when run below. --- loop do class A end end commit d40229a6dfc92571803e858310cf7bb5fdbf3f3d Author: Kouji Takao <kouji@takao7.net> Date: Sun May 29 21:10:54 2011 +0900 Revert "fixed displays "reference count underflow" message (fixes #1284)" and "fixed RoxorVM::pop_outer() leaks memory. (fixes #1267)" This reverts commit 3b4d10ef3897ce11919bdea99d32b6fb3ce7390b and 68ac3fcaf1041ef9b25fb3bc940a47f41505b7e5.