From: ts Date: 2004-05-28T22:00:29+09:00 Subject: Re: ruby-dev summary 23459-23562 >>>>> "F" == Florian Gross writes: F> What kind of error are you talking about exactly? The code seems to F> work fine for me. You've not seen my message on ruby-talk svg% ls b.rb x.rb ls: x.rb: No such file or directory b.rb* svg% svg% cat b.rb #!/usr/bin/ruby ObjectSpace.module_eval do class << self old_finalizer = instance_method(:define_finalizer) define_method(:_define_finalizer) do |block, *args| p $SAFE raise(SecurityError, "Penalizing finalizing") if $SAFE > 1 old_finalizer.bind(self).call(*args, &block) end def define_finalizer(*args, &block) _define_finalizer(block, *args) end alias :add_finalizer :define_finalizer end end $SAFE = 4 class << s = "`mv b.rb x.rb`" def call end end a = Object.new ObjectSpace.define_finalizer(a, s) svg% svg% b.rb 0 svg% svg% ls b.rb x.rb ls: b.rb: No such file or directory x.rb* svg% it run with $SAFE = 4 but I've still the possibility to define a finalizer -- Guy Decoux