Hi
Seems we ran into what football commentators call a ''run of bad
form'',
when you can''t get the ball in the net for love nor money, and your
defence is leaking goals like an extension library leaks memory. But no
bad run lasts forever, so wanted to get your thoughts on what we should
focus on next. Apologies for a longish email.
Roy''s experiences with 0.0.37 on Windows, and Kevin''s comments
on Linux
suggest to me that we shouldn''t continue avoiding addressing memory
management. I''ve been doing a bit of testing on OS X, and I think the
reason Sean and I are not getting crashes is that Ruby GC is not
collecting destroyed objects until shutdown - ie being overly conservative.
So I re-read some docs to see what might be giving us problems:
http://www.swig.org/Doc1.3/Ruby.html#Ruby_nn57
http://wxruby.rubyforge.org/wiki/wiki.pl?Memory_Management
While the wiki page is useful, it''s important to bear in mind that it
predates the release of SWIG 1.3.26, which includes the additional
features for marking and tracking. So my first question is:
1) What''s the status of the handcoded memory management (especially in
wx.i and fixdeleting.rb)? Will current SWIG do everything we need in
terms of linking ruby to c++ objs, and preventing c++ objects being
destroyed twice, if %trackobjects is enabled? Is this the route we
should go?
What''s especially useful on the wiki page is the clear explanation of
the kind of situations that might create problems. It''d be useful to
understand better which of these might be causing the segfaults we''re
seeing. So:
2) Crashes in bigdemo:
- do they happen if you launch the app and do nothing?
- do they happen if you launch the app and just wiggle and click the mouse?
- or they only happen if widgets are being created and destroyed in the
demo pane?
A task I want to work on is to develop simpler test cases for the memory
management crashers - ones that contain fewer routes and fewer types of
widgets than bigdemo. Ideally they can run without user interaction. Roy
- perhaps you could hook me up with a 0.0.37 windows gem.
Other things that need fixing, but are probably lower priority:
1) WxScintilla - let''s not sweat it. It''s great that we have
it up and
running on Windows and OS X 10.3. It will come.
2) Missing classes: HTMLWindow, HTMLEasyPrinting, Drag''n''Drop,
Clipboard.
With that little list tackled, I think we''re looking good for a beta
release. What do others think?
cheers
alex