Branch: refs/heads/master Home: https://github.com/MacRuby/MacRuby Commit: 68ac3fcaf1041ef9b25fb3bc940a47f41505b7e5 https://github.com/MacRuby/MacRuby/commit/68ac3fcaf1041ef9b25fb3bc940a47f415... Author: Kouji Takao <kouji@takao7.net> Date: 2011-05-18 (Wed, 18 May 2011) Changed paths: M class.c M compiler.cpp M compiler.h M debugger.cpp M dispatcher.cpp M dln.c M interpreter.cpp M kernel.c M proc.c R spec/frozen/tags/macruby/core/binding/clone_tags.txt R spec/frozen/tags/macruby/core/binding/dup_tags.txt M test_vm/block.rb M test_vm/dispatch.rb M variable.c M vm.cpp M vm.h M vm_eval.c Log Message: ----------- fixed RoxorVM::pop_outer() leaks memory. (fixes #1267) This changes included many things. See below. (1) fixed memory leak below. 1.instance_eval { 42 } But did not below. 1.instance_eval "42" I think currently MacRuby occurs memory leak in eval(). (2) occurs TypeError exception below. This is CRuby spec. 1.instance_eval "A = 10" (3) occurs TypeError exception below. This is CRuby spec. (like above) 1.instance_eval "class A; end" (4) 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 } (5) removed outer_mask in RoxorCompiler Because It is not used now. (6) supported alias eval, instance_eval, module_eval and class_eval. (7) set, push and pop outer_stack in runtime. (8) removed rb_vm_set_outer() and rb_vm_get_outer(). because does not use original outer now. (9) implemented Binding#dup and Binding#clone.