You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(60) |
Jul
(35) |
Aug
(32) |
Sep
(5) |
Oct
(5) |
Nov
(58) |
Dec
(34) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(114) |
Feb
(184) |
Mar
(153) |
Apr
(90) |
May
(153) |
Jun
(59) |
Jul
(24) |
Aug
(43) |
Sep
(17) |
Oct
(34) |
Nov
(11) |
Dec
(204) |
2007 |
Jan
(84) |
Feb
(119) |
Mar
(38) |
Apr
(28) |
May
(52) |
Jun
(105) |
Jul
(64) |
Aug
(67) |
Sep
(14) |
Oct
(3) |
Nov
(28) |
Dec
(55) |
2008 |
Jan
(228) |
Feb
(55) |
Mar
(30) |
Apr
(30) |
May
(15) |
Jun
(20) |
Jul
(12) |
Aug
(3) |
Sep
(13) |
Oct
(54) |
Nov
(35) |
Dec
(35) |
2009 |
Jan
(19) |
Feb
(20) |
Mar
(34) |
Apr
(4) |
May
(60) |
Jun
(25) |
Jul
(16) |
Aug
(51) |
Sep
(19) |
Oct
(62) |
Nov
(21) |
Dec
(12) |
2010 |
Jan
(1) |
Feb
|
Mar
(4) |
Apr
(12) |
May
(23) |
Jun
(13) |
Jul
(1) |
Aug
(40) |
Sep
(18) |
Oct
(21) |
Nov
(26) |
Dec
(34) |
2011 |
Jan
(17) |
Feb
(23) |
Mar
(1) |
Apr
(10) |
May
(1) |
Jun
(5) |
Jul
(1) |
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(43) |
2012 |
Jan
(5) |
Feb
(19) |
Mar
(6) |
Apr
(24) |
May
(39) |
Jun
(83) |
Jul
(29) |
Aug
(36) |
Sep
(64) |
Oct
(55) |
Nov
(12) |
Dec
(7) |
2013 |
Jan
(17) |
Feb
(10) |
Mar
(37) |
Apr
(27) |
May
(13) |
Jun
(9) |
Jul
(7) |
Aug
(61) |
Sep
(23) |
Oct
(23) |
Nov
(30) |
Dec
(16) |
2014 |
Jan
(23) |
Feb
(13) |
Mar
(9) |
Apr
(17) |
May
(2) |
Jun
(11) |
Jul
(2) |
Aug
|
Sep
(9) |
Oct
(24) |
Nov
(2) |
Dec
(14) |
2015 |
Jan
(6) |
Feb
(4) |
Mar
(17) |
Apr
|
May
(7) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
(21) |
Nov
(6) |
Dec
(2) |
2016 |
Jan
(4) |
Feb
(2) |
Mar
(7) |
Apr
(3) |
May
(11) |
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(4) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(8) |
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
(1) |
12
|
13
|
14
(2) |
15
(3) |
16
(2) |
17
|
18
(3) |
19
|
20
|
21
(3) |
22
(1) |
23
|
24
(7) |
25
(9) |
26
(1) |
27
(1) |
28
|
29
|
30
(2) |
|
|
|
|
|
|
From: John L. <jla...@gm...> - 2008-11-18 16:17:22
|
On Tue, Nov 18, 2008 at 9:03 AM, Evan DeMond <eva...@gm...> wrote: > Thanks for the info; I managed to diagnose what was going on: the event > handler for my wxSocketClient was getting cleaned up accidentally, since > apparently you have to create one explicitly to handle events with that > object. Just use your wxFrame or any wxWindow; you can even use wxGetApp(), the wxApp. There's nothing special about any particular wxEvtHandler. The only thing you have to worry about is being able to determine where the events come from, use unique IDs. > As an aside, is there any known reason why wxSocketBase shouldn't derive > from wxEvtHandler? That choice doesn't entirely make sense to me. Because it doesn't in C++. Regards, John |
From: Evan D. <eva...@gm...> - 2008-11-18 14:03:27
|
Thanks for the info; I managed to diagnose what was going on: the event handler for my wxSocketClient was getting cleaned up accidentally, since apparently you have to create one explicitly to handle events with that object. As an aside, is there any known reason why wxSocketBase shouldn't derive from wxEvtHandler? That choice doesn't entirely make sense to me. Thanks all, Evan |
From: John L. <jla...@gm...> - 2008-11-16 06:40:52
|
On Sat, Nov 15, 2008 at 7:09 PM, Eero Pajarre <epa...@gm...> wrote: > >> To be sure, you cannot create anything you want to outlive the current >> scope with the "local" keyword since it will be GCed. > > It may be that one of things which led to my confusion was that > with GUI objects you can let their "Lua variables" to go out of their scope > if they have been added to an other GUI object. This association is enough > for keeping them alive > > (and actually it appears that a visible frame is not collected, even if its Lua > variable goes out of scope) Ahh, there's the rub, all wxWindow derived classes are owned by their parents and the top level windows, like a wxFrame or wxDialog, are are expected to exist until the user explicitly closes them. When you look at the binding files you will see the %delete keyword in the %class declaration for all objects that will be garbage collected. This is the way it has to be to avoid double deletion or no deletion at all. You will also see the very rare cases of the %gc and %ungc tags used to enforce changes in ownership. http://wxlua.sourceforge.net/docs/wxluaref.html > But the fact that the timer is live (creating timer events), will not save it > from GC. We cannot possibly check for all special cases like this where some object might be "active" or not, the code base would balloon to the point of being unmaintainable or incomprehensible. > And of course after I realised that my timer will get collected I was able to > avoid that. It just took some time to realise... My wxLua main program > forces gc_step so often that my timer never had time to trigger, so I > thought that it was not working at all. > > btw. even after some reconsidering I think that the way how it works, > is the correct/better behaviour for timers Good, there are unfortunately a few seemingly oddities like wxWindows from a Lua standpoint, but the bottom line is that I've tried to be consistent with the C++ version. Any object taking or loosing ownership of another in the C++ wxWidgets docs also applies to wxLua and if it didn't your program would crash. The silent failure of your wxTimer is unfortunate, but it is behaving correctly. Regards, John |
From: Eero P. <epa...@gm...> - 2008-11-16 00:09:26
|
On Sat, Nov 15, 2008 at 9:02 PM, John Labenski <jla...@gm...> wrote: > On Sat, Nov 15, 2008 at 2:58 AM, Eero Pajarre <epa...@gm...> wrote: >> >> Just wanted to tell about my own experience, which I told on this >> mailing list in June. wxTimers can be garbage collected even if they >> are in use. So if you use timers you might want to check for that possibility. >> > > Could you elaborate? There is no reason why a wxTimer should be > deleted and not a wxPoint for the same code. > Sorry I didn't want to say that I considered the behaviour wrong. I just wanted mention this because it managed to confuse me for a while when it happened in my code. > To be sure, you cannot create anything you want to outlive the current > scope with the "local" keyword since it will be GCed. It may be that one of things which led to my confusion was that with GUI objects you can let their "Lua variables" to go out of their scope if they have been added to an other GUI object. This association is enough for keeping them alive (and actually it appears that a visible frame is not collected, even if its Lua variable goes out of scope) But the fact that the timer is live (creating timer events), will not save it from GC. And of course after I realised that my timer will get collected I was able to avoid that. It just took some time to realise... My wxLua main program forces gc_step so often that my timer never had time to trigger, so I thought that it was not working at all. btw. even after some reconsidering I think that the way how it works, is the correct/better behaviour for timers Eero |
From: John L. <jla...@gm...> - 2008-11-15 19:11:16
|
See this thread on the Lua list for a current discussion about some related problems with Lua's GC and userdata. http://lua-users.org/lists/lua-l/2008-11/msg00262.html Also note that you can tweak up the collector to make it more aggressive, but getting the right values is a trial and error process as the values of setpause and setstepmul are not simple. See the collectgarbage() function http://www.lua.org/manual/5.1/manual.html#pdf-collectgarbage wxLua already does this at startup to make it a little more frequent: // Make the GC a little more aggressive since we push void* data // that may be quite large. The upshot is that Lua runs faster. // Empirically found by timing: "for i = 1, 1E6 do local p = wx.wxPoint() end" lua_gc(L, LUA_GCSETPAUSE, 120); lua_gc(L, LUA_GCSETSTEPMUL, 400); Regards, John On Fri, Nov 14, 2008 at 12:28 PM, John Labenski <jla...@gm...> wrote: > On Thu, Nov 13, 2008 at 7:16 PM, Evan DeMond <eva...@gm...> wrote: >> Hi all, >> >> I've got a wxLua application that freezes when Lua performs garbage >> collection. I suspect that some important piece of the application is >> getting garbage collected - so I need to devise a way to tell what's getting >> garbage collected and when. The __gc metamethod was my first idea, but that >> has to be set from the C API, and can't be set from within Lua, so that >> seems out. >> >> Any other recourse I can take to figure out what's going on here? > > You cannot get the list of objects that will be GCed in the next > cycle, but you can get a complete list of wxWidgets objects that will > be garbage collected when there are no more references to them in Lua. > > Search for this word: GetTrackedWindowInfo > Here: http://wxlua.sourceforge.net/docs/wxluaref.html > > I recommend just printing them out occasionally and see if you are > collecting a lot of objects and add a call to obj:delete() to force > immediate collection. You may need to do this in "for" loops where you > may generate a lot of them since the Lua GC only runs (I may not > remember correctly) for table creation, function calls, and maybe > something else. > > You can also call collectgarbage("collect") to force collections at > the end of functions that you know generate a lot of objects that will > be garbage collected. However, I recommend being more proactive with > the :delete() function if you really are generating a lot of them. > > Hope this helps, > John > |
From: John L. <jla...@gm...> - 2008-11-15 19:03:03
|
On Sat, Nov 15, 2008 at 2:58 AM, Eero Pajarre <epa...@gm...> wrote: > > Just wanted to tell about my own experience, which I told on this > mailing list in June. wxTimers can be garbage collected even if they > are in use. So if you use timers you might want to check for that possibility. > Could you elaborate? There is no reason why a wxTimer should be deleted and not a wxPoint for the same code. To be sure, you cannot create anything you want to outlive the current scope with the "local" keyword since it will be GCed. If you don't want to pollute the global table with objects you can tuck your wxTimer into a frame or a special table of things you want to keep. Try this in the minimal.wx.lua sample, put it just before the frame:Show(true) line. frame.timer = wx.wxTimer(frame, 100) frame:Connect(100, wx.wxEVT_TIMER, function (event) wx.wxMessageBox('This is the timer dialog of the Minimal wxLua sample.\n'.. wxlua.wxLUA_VERSION_STRING.." built with "..wx.wxVERSION_STRING, "About wxLua", wx.wxOK + wx.wxICON_INFORMATION, frame) end ) frame.timer:Start(5000, false) Hope this helps, John |
From: Eero P. <epa...@gm...> - 2008-11-15 07:58:56
|
On Fri, Nov 14, 2008 at 2:16 AM, Evan DeMond <eva...@gm...> wrote: > Hi all, > > I've got a wxLua application that freezes when Lua performs garbage > collection. I suspect that some important piece of the application is > getting garbage collected - so I need to devise a way to tell what's getting > garbage collected and when. The __gc metamethod was my first idea, but that > has to be set from the C API, and can't be set from within Lua, so that > seems out. > > Any other recourse I can take to figure out what's going on here? > Just wanted to tell about my own experience, which I told on this mailing list in June. wxTimers can be garbage collected even if they are in use. So if you use timers you might want to check for that possibility. Eero |
From: John L. <jla...@gm...> - 2008-11-14 17:28:16
|
On Thu, Nov 13, 2008 at 7:16 PM, Evan DeMond <eva...@gm...> wrote: > Hi all, > > I've got a wxLua application that freezes when Lua performs garbage > collection. I suspect that some important piece of the application is > getting garbage collected - so I need to devise a way to tell what's getting > garbage collected and when. The __gc metamethod was my first idea, but that > has to be set from the C API, and can't be set from within Lua, so that > seems out. > > Any other recourse I can take to figure out what's going on here? You cannot get the list of objects that will be GCed in the next cycle, but you can get a complete list of wxWidgets objects that will be garbage collected when there are no more references to them in Lua. Search for this word: GetTrackedWindowInfo Here: http://wxlua.sourceforge.net/docs/wxluaref.html I recommend just printing them out occasionally and see if you are collecting a lot of objects and add a call to obj:delete() to force immediate collection. You may need to do this in "for" loops where you may generate a lot of them since the Lua GC only runs (I may not remember correctly) for table creation, function calls, and maybe something else. You can also call collectgarbage("collect") to force collections at the end of functions that you know generate a lot of objects that will be garbage collected. However, I recommend being more proactive with the :delete() function if you really are generating a lot of them. Hope this helps, John |
From: Evan D. <eva...@gm...> - 2008-11-14 00:16:13
|
Hi all, I've got a wxLua application that freezes when Lua performs garbage collection. I suspect that some important piece of the application is getting garbage collected - so I need to devise a way to tell what's getting garbage collected and when. The __gc metamethod was my first idea, but that has to be set from the C API, and can't be set from within Lua, so that seems out. Any other recourse I can take to figure out what's going on here? Thanks, Evan |
From: Charles S. <hoo...@gm...> - 2008-11-11 14:25:17
|
I've made wxlua packages for maemo (http://maemo.org) and posted them on my site. You can install them on your N810 or (possibly) on your N770 by pointing your browser at http://tomshiro.org/lua-maemo and bonking the appropriate links. Happy Hacking! -- CHS |