[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:10407] Re: Problems creating persistent objects

From: matz@... (Yukihiro Matsumoto)
Date: 2001-02-06 07:39:38 UTC
List: ruby-talk #10407
Hi,

In message "[ruby-talk:10375] Problems creating persistent objects"
    on 01/02/06, "Danny Sofer" <danny@sofer.com> writes:

|Here's the synopsis:

|    ObjectSpace.define_finalizer(self, proc { store } )

The closure created by `proc{store}' contains the reference to self,
so that GC will never reclaim the object.  I think that's not what you
want.

I'd like to do something like this:

module Storage
  def Storage.finalizer(path, data)
    p "finalizer"
    proc{File.open(path, "w") {|f| Marshal.dump(data, f)}}
  end
  def initialize()
    ObjectSpace.define_finalizer(self, Storage.finalizer(@f, @data))
  end
  def Storage.retrieve(path)
    File.open(path) { |f| return Marshal.load(f) }
  end
end

class Obj
  include Storage

  def initialize(f, m='')
    @f = f
    puts "the file is #{@f}"
    @data = {}
    @data['m'] = ''
    if File.exists?(f)
      @data = Storage.retrieve(f)
    end
    puts "Old value : #{@data['m']}"
    @data['m'] = m
    puts "New value : #{@data['m']}"
    super(f, data)
   end
end


|1) i wanted to do something like: "self = retrieve", but in the end settled
|for putting my data in to a hash (@data) and storing that instead, because
|assigning anything to self is a bit naughty. is there a more elegant way to
|round this?

How about using something other than new?  Like Avi mentioned in [ruby-talk:10389].

|2) by the time the finalizer is called, all my instance variables seem to
|have disappeared, so i can't automatically store my data. any other
|suggestions?

It's for safety.  Try the workaround above.

							matz.

In This Thread