Camelia, the Perl 6 bug

IRC log for #padre, 2010-01-19

| Channels | #padre index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:18 teejay joined #padre
00:21 Alias joined #padre
00:22 Alias j0
00:27 kentnl joined #padre
00:28 Hyppolit svn: r10148 | adamk++ | http://padre.perlide.org/trac/changeset/10148
00:28 Hyppolit Don't create the error list by default
00:28 Hyppolit trunk/Padre/lib/Padre/Wx/
00:46 u-foka joined #padre
01:07 Hyppolit svn: r10149 | adamk++ | http://padre.perlide.org/trac/changeset/10149
01:07 Hyppolit Avoid the run-time loading of the ErrorList
01:07 Hyppolit trunk/Padre/lib/Padre/Wx/
01:07 jazzanova joined #padre
01:09 Hyppolit svn: r10150 | garu++ | http://padre.perlide.org/trac/changeset/10150
01:09 Hyppolit updated brazilian portuguese translations
01:09 Hyppolit trunk/Padre/share/locale/
01:23 kent\n joined #padre
01:28 Hyppolit svn: r10151 | adamk++ | http://padre.perlide.org/trac/changeset/10151
01:28 Hyppolit Suppress warnings when loading plugins
01:28 Hyppolit trunk/Padre/lib/Padre/
01:47 cognominal joined #padre
01:52 Hyppolit svn: r10152 | garu++ | http://padre.perlide.org/trac/changeset/10152
01:52 Hyppolit added brazilian portuguese translation
01:52 Hyppolit trunk/Padre-Plugin-Plack/share/locale/
02:06 garu hey guys, is it just me or is the pod viewer broken? side panel of the Plugin Manager, Help... all of them give me non-formatted, plain text output
02:19 Hyppolit svn: r10153 | adamk++ | http://padre.perlide.org/trac/changeset/10153
02:19 Hyppolit Delay loading more things.
02:19 Hyppolit Suppress a critic test that matches the (temporary) Padre::DB::Migrate::Patch
02:19 Hyppolit trunk/Padre/ trunk/Padre/lib/Padre/Wx/ trunk/Padre/xt/
02:31 * Alias pokes submersible
02:46 awnstudio joined #padre
02:55 awnstudio joined #padre
02:59 waxhead_ joined #padre
03:13 Hyppolit svn: r10154 | garu++ | http://padre.perlide.org/trac/changeset/10154
03:13 Hyppolit handling menu graying out when no Cat project is on
03:13 Hyppolit trunk/Padre-Plugin-Catalyst/lib/Padre/Plugin/ trunk/Padre-Plugin-Catalyst​/lib/Padre/Plugin/Catalyst/
03:17 Hyppolit svn: r10155 | garu++ | http://padre.perlide.org/trac/changeset/10155
03:17 Hyppolit bumping up cat plugin version to 0.08 for release
03:17 Hyppolit trunk/Padre-Plugin-Catalyst/lib/Padre/Plugin/ trunk/Padre-Plugin-Catalyst​/lib/Padre/Plugin/Catalyst/
03:28 Hyppolit svn: r10156 | garu++ | http://padre.perlide.org/trac/changeset/10156
03:28 Hyppolit updating Changes files for Catalyst plugin
03:28 Hyppolit trunk/Padre-Plugin-Catalyst/
04:00 kentnl joined #padre
04:19 Hyppolit svn: r10157 | garu++ | http://padre.perlide.org/trac/changeset/10157
04:19 Hyppolit handling error cases for Cat plugin
04:19 Hyppolit trunk/Padre-Plugin-Catalyst/lib/Padre/Plugin/ trunk/Padre-Plugin-Catalyst​/lib/Padre/Plugin/Catalyst/
04:21 Hyppolit svn: r10158 | garu++ | http://padre.perlide.org/trac/changeset/10158
04:21 Hyppolit syncing pod's VERSION tag to module's $VERSION
04:21 Hyppolit trunk/Padre-Plugin-Plack/lib/Padre/Plugin/
04:26 Hyppolit svn: r10159 | garu++ | http://padre.perlide.org/trac/changeset/10159
04:26 Hyppolit skipping MYMETA.yml
04:26 Hyppolit trunk/Padre-Plugin-Catalyst/
05:02 CSJewell "The server at padre.perlide.org is taking too long to respond."
05:36 patspam joined #padre
05:37 dorkfish joined #padre
05:41 dorkfish Hi, i'm getting an error in Padre::Plugin::REPL, here's the error on nopaste:
05:41 dorkfish │ Hinrik
05:41 dorkfish er, http://scsys.co.uk:8001/38291
05:43 cognominal joined #padre
05:43 danlucraft joined #padre
06:17 szabgab svn?
06:38 dorkfish joined #padre
06:43 Sewi joined #padre
06:45 szabgab server is up and running again
06:46 Sewi goodmorning
06:46 Sewi Hyppolit is missing
06:46 szabgab yes, the server was just rebooted
06:47 szabgab I'll have to see how to setup Hyppolit as a daemon
06:47 Sewi I'm using cronjobs for things like this:
06:48 Sewi ps x|grep -v grep|grep "hyppolit.pl" >/dev/null || ./hyppolit.pl &
06:48 szabgab oh, yes I can setup cron @ boot, right ?
06:48 szabgab how?
06:48 Sewi cron is usually started at boot automatically.
06:49 szabgab cron itself yes but the jobs themseves not
06:49 Sewi And all "user-daemons" will start within "x" minutes after boot automatically depending how often you check. 5min is usually a good timeframe.
06:50 kaare joined #padre
06:50 szabgab how is it setup for you?
06:50 Sewi Sorry, I don't understand the question.
06:51 szabgab oh I see now, you try if hyppolit is running and if not then start it
06:51 Sewi yes.
06:52 szabgab and this is a regular cron job running every 5 mins
06:52 szabgab so it is also a watchdog-ish things
06:52 Sewi yes, I added all jobs (per user) in one shell script
06:52 szabgab I'll try that
06:53 Sewi My main database servers are running this way and also some apache tasks. You got some minutes to stop them before they're started after one of them crashed the server and it was rebooted.
06:54 szabgab I had a load of 178 on the server the last view I had on htop
06:55 szabgab but it was responding to ping so the hosting company have not noticed the problem
06:55 Sewi nice thing, they usually don't survive this
06:55 szabgab but my ssh connection was dead also, so I could not kill process
06:56 Sewi Yes,killing processes on a machine at this level may take longer than a reboot :-)
07:10 Hyppolit joined #padre
07:10 Hyppolit joined #padre
07:12 Hyppolit joined #padre
07:28 submersible joined #padre
07:41 szabgab Sewi, when you see Corion again, please tell him he has the commit bit now
07:43 pece joined #padre
07:43 Sewi szabgab: Ok, will do
07:59 submersible braaains...
07:59 submersible ping Alias
08:20 marcela joined #padre
08:20 Sewi Hi sub
08:21 Sewi You escaped yesterday: I didn't ask him for trac upload because it only accepts limited size files.
08:29 danlucraft joined #padre
09:02 submersible Sewi: no worries now it seems.
09:17 szabgab I am working on the server, it got another 1Gb memory
09:17 szabgab and I am trying to find out what part caused the extensive load and how fix that
09:32 kentnl joined #padre
09:41 Hyppolit joined #padre
09:41 pece joined #padre
09:41 Sewi szabgab: Let Hyppolit check /proc/loadavg every minute or so and /msg you if it's >3 or >5 or so
09:42 szabgab I had that once dragging a server to its knees :-)
09:42 szabgab first I'll need to do the current emergency sysadmin work
09:42 Sewi ;-)
09:43 szabgab and then see if I can start using the new Hyppolit
09:49 Alias_ joined #padre
09:59 szabgab Getty, ??
09:59 szabgab Couldn't load class (MooseX::Storage::Format::YAML) because: Can't locate Best.p
10:00 szabgab is it really using a module called Best ?
10:01 szabgab and it was written by Gaal
10:01 szabgab wow
10:02 szabgab after installing that I get:
10:02 szabgab Could not find an attribute by the name of 'use_logger_singleton' to inherit from in Hyppolit at /home/gabor/perl5/lib/perl5/Moose/Meta/Class.pm line 547
10:03 szabgab I think I know why I was afraid switching to the new code of Hyppolit
10:09 szabgab Getty, while you are fixing this, could you please make sure that one process of Hyppolit can support several servers and several channels with slightly different configuration,
10:10 tsee joined #padre
10:10 Alias_ yo
10:11 tsee Hey!
10:11 Alias_ tsee: So, a question
10:11 * tsee pretends to be dead.
10:11 Alias_ Would it be worthwhile spawning an early thread, before you load up most of Padre
10:12 Alias_ To use as a kind of master thread for copying
10:12 tsee Answer: I don't know and if I had a chunk of time for playing, then I would have given that a whirl.
10:12 Alias_ And so to avoid the need to copy the entire loaded Padre later
10:12 tsee You *do* need to load Wx before.
10:12 szabgab another question, what are those WxThreads?
10:13 Alias_ You need to load Wx...
10:13 Alias_ hrm
10:13 tsee That's one gotcha and the other is that in the bg threads, if you start loading chunks of Padre, you may end up loading the bulk of it anyway, thus increasing CPU load.
10:13 tsee Alias, so the docs say. One day, we should nicely ask Mattia for some more info.
10:13 Alias_ tsee: But only background CPU, and that can be optimised to reduce load gradually over time
10:13 tsee (CPU and disk load)
10:13 tsee But you'd still pay the memory.
10:13 tsee Just later.
10:14 Alias_ IF we loaded it
10:14 Alias_ But if we contain a thread to just running some ::Tasls
10:14 Alias_ Task's
10:14 tsee AND it has the potential to break if the dependencies between subsystems in Padre aren't declared properly with use/require.
10:14 Alias_ They are declared properly
10:14 szabgab tsee, have you looked at the threading provided by wx itself?
10:14 Alias_ That's what the xt/compile.t test is for
10:14 tsee Alias, ah, right. Good.
10:14 Alias_ There would be other problems though
10:15 Alias_ Things like Padre::DB or Padre::Locale or whatever maybe wanting to re-initialise themselves
10:15 tsee Though that doesn't test whether there are some *extra* dependencies.
10:15 Alias_ true
10:15 Alias_ But right now, we have NO option for recovering that cost
10:15 tsee szabgab, "threading by wx itseld"?
10:15 Alias_ And the same problems can occur regardless
10:15 szabgab itself
10:15 tsee That was my typo. :)
10:15 szabgab http://docs.wxwidgets.org/stable/wx_wxthread.html
10:15 Alias_ Whereas if we could copy off some kind of cleanroom master thread, we would have a _CHANCE_ to recover the cost
10:16 tsee That's a C++ threading thing.
10:16 tsee Alias, I agree that it's worthwhile testing.
10:16 tsee szabgab, how do C++ threads help us?
10:17 tsee Put differently: The Wx.pm API for passing events between threads is probably the only part of that wx threading stuff that we can use.
10:20 tsee Ideally, at the same time, we would accomplish two more things:
10:20 tsee a) Fix the Scalars Leaked thing because we magically gain a better understanding of what's happening wrt. Wx + threads.
10:20 tsee b) Quiz Mattia about the requirement to pre-load Wx.pm and find a way to only pre-load a fraction of Wx.pm.
10:20 szabgab tsee, I have no clue what is that threading
10:21 szabgab I was just wondering
10:21 cognominal joined #padre
10:22 tsee I pinged Mattia. Let's see whether he has the time to respond.
10:24 Hyppolit joined #padre
10:24 kthakore joined #padre
10:25 Hyppolit joined #padre
10:25 szabgab it is me playing with the watchdog ...
10:29 tsee Alias, about makeing Data::Dumper recognize whether there's a compiler. EU::MakeMaker uses EU::CBuilder->new->have_compiler for that.
10:29 tsee http://cpansearch.perl.org/src/MSCHWERN/ExtUtil​s-MakeMaker-6.56/t/lib/MakeMaker/Test/Utils.pm
10:33 Hyppolit joined #padre
10:34 yakudzo joined #padre
10:35 szabgab Sewi, btw crontab can have  @reboot  and a few others
10:36 szabgab but I went with the every 5 minutes...
10:38 daxim joined #padre
10:52 basti1985 joined #padre
10:52 basti1985 left #padre
10:58 tsee Alias, szabgab: Ok, quick report from Mattia before I go back to work.
10:58 tsee Two things could conceptually be done.
10:58 tsee a) Separate the Wx::PlThreadEvent stuff from Wx.pm so Wx.pm could be loaded later.
10:58 tsee b) Delay creation of XS wrappers until later.
10:59 tsee Mattia said he's experimenting with b) in a branch.
10:59 tsee Could save 1.5MB per thread.
11:00 tsee He estimates a) could be 2-3 full days of work.
11:00 tsee That is, for him. Which is likely A LOT more for us.
11:01 tsee He also thinks that the Scalars leaked warning is likely caused by core bugs relating to the stack not being ref-counted.
11:02 tsee My hunch is that we might get lucky and fix the leak if we move to an earlier thread creation.
11:03 tsee If we had a), then that guess would be a little more solid.
11:03 Alias_ As long as Mattia is taking a regular interest in Padre and it's behaviour, I'm happy
11:03 tsee Well, I bugged him directly via Skype.
11:04 tsee That's it. Unless we find a simple working example that shows the leak, we're not likely to get help with fixing it from anybody.
11:04 tsee "Mattia Barbon: about memory consumption: I will try move the branch where I started to implement delayed loading to a point where it's usable and somebody else can work on it; at the moment it's a bit clunky"
11:05 tsee Mattia++ # it's a mistery to me how he can handle all this (Wx maintenance and all the other stuff he does)
11:06 tsee Okay, back to work.
11:07 tsee PS: Each one of us should buy him loads of beer in Pisa.
11:48 abraxxa joined #padre
11:50 abraxxa garu: thanks for the quick padre::plugin::catalyst fix!
11:51 abraxxa garu: the crash is fixed although you could still open the dialog and the info that no e.g. controller can be created without at least one file opened is displayed after entering everything and clicking ok is quite annoying
11:52 abraxxa can the menu entry be disabled or is this not possible with padre at the moment?
12:00 Alias_ It's possible to do that
12:00 Alias_ You'd need to upgrade from plugin_menu_simple to the fully fledged plugin_menu
12:00 Alias_ But if someone wanted to code it, it can be done
12:02 abraxxa thanks
12:12 Getty szabgab: the modules i use seemed to get older while you not tested it ;) hehe
12:14 Getty szabgab: not a big problem supporting severals, its more the question about the config file
12:15 yakudzo left #padre
12:16 kentnl joined #padre
12:20 garu abraxxa, Alias I did that already, and the menu is manipulated via the 'editor_changed' sub. Only the sub is not called when a document is closed :(
12:22 garu so, if you click on another tab to switch your active document to one that's not part of a catalyst project, the menu is disabled. But if you close a document (switching automatically to another tab or to no doc open) you get nothing
12:23 garu I meant to look into it, but it was really late and I thought hey, I can always do another release :)
12:23 danlucraft Alias_: hiya. After our last discussion I rewrote Redcar's plugin loader: http://danlucraft.com/blog/​2010/01/plugin-manager-gem/
12:24 danlucraft it's now much more opinionated about how plugins tell the system about things like menu items
12:24 Alias_ danlucraft, neat
12:43 basti1985 joined #padre
12:44 basti1985 left #padre
12:55 szabgab Getty, so what will happen now regarding Hyppolit?
12:56 Getty szabgab: i recheck it, and change it up for that
12:56 Getty szabgab: and also fix it to fix to the current module versions
12:57 Getty szabgab: but then i make new config style, i would suggest one file of your format per channel?
12:57 Getty szabgab: or shared data?
12:57 Getty szabgab: splitted bots or "all in one"?
12:57 szabgab splitted
12:57 Getty so every bot own process
12:57 Getty own database?
12:57 szabgab for now at least let's keep the configs
12:57 szabgab no
12:57 Getty just one task for them all?
12:58 szabgab one process
12:58 Getty aehm own bot inside one process
12:58 Getty like several PoCo::IRC
12:58 Getty just curious, why several?
12:58 szabgab the config file can be shared but not the data
12:59 szabgab svn?  is different on different channels
12:59 Getty yeah but that can be done via channel splitting
12:59 szabgab trusted users are different
12:59 Getty i can split that up via channel
12:59 Getty so that the bot acts different on every channel
12:59 Getty but its still THE hyppolit
12:59 szabgab yes
12:59 Getty sounds better?
12:59 szabgab one hyppolit user on several servers and channels
12:59 Getty yes
13:00 Getty and he acts different for every chanel
13:00 szabgab as it is used both on irc.perl.org and freenode
13:00 szabgab yes
13:00 Getty yeah, then its definitly better to stay to one bot, cause you dont get problems with connection limits on freenode
13:06 Hyppolit svn: r10160 | tsee++ | http://padre.perlide.org/trac/changeset/10160
13:06 Hyppolit branch for playing with slave drivers
13:06 Hyppolit branches/
13:06 tsee joined #padre
13:13 Alias_ danlucraft: Your model sounds great, it's actually a but closer to what I would have written if I did Padre's one over again
13:13 Alias_ danlucraft: Currently, we tacitly encourage people to mix their declaration and main plugin code, so we probably end up loading more core than we really need to
13:14 Alias_ danlucraft: Your method should mean much less code to load for plugins that are disabled
13:15 danlucraft right.
13:15 danlucraft Rubyists will always put executable code in class definitions, so it's really easy to break things
13:16 Alias_ danlucraft: We've ended up with a situation where move code moves into child classes as they grow bigger
13:16 danlucraft that's why it also catches things like syntax errors in loading the definition files, to make sure you really can't bring the editor down
13:16 Alias_ And the plugin managed only checks at one directory level
13:16 Alias_ manager
13:16 danlucraft Alias_: sure, that seems fine
13:16 Alias_ It's still a bit fuzzy
13:16 danlucraft no need to register every class is there?
13:16 Alias_ Nope
13:17 Alias_ Our model expects that the parent plugin class will load all of it's children once it's ->enable method is fired
13:17 Alias_ And the manager won't get involved in anything beyond guarenteeing to load the top plugin module and firing ->enable
13:17 Alias_ Which is pretty damned close to yours
13:17 zloyrusskiy joined #padre
13:17 Alias_ (Although we don't have dependencies yet) :(
13:17 asphere joined #padre
13:18 danlucraft well, you kind of do
13:18 danlucraft with your interface versioning thing
13:18 Alias_ Well, that's meant for dependencies on the core
13:18 danlucraft I'm considering whether that's good for redcar, but the plugin versioning hopefully takes care of most of it
13:18 Alias_ But good point, we could probably overload it to support the other dependencies
13:18 danlucraft the load/enable distinction is something I haven't worked out yet entirely
13:19 danlucraft at the moment, code is loaded by the plugin manager, which then calls "loaded" on the plugin object
13:19 Alias_ Well, with the separate definition class, you mostly have it already
13:19 danlucraft yep
13:19 danlucraft I need to let users disable and enable plugins though, which isn't supported yet
13:19 Alias_ You've got most of the things you need working
13:19 danlucraft but I can now reload plugins from within the editor, which is nice
13:20 Alias_ Yup
13:20 danlucraft you have to fool Ruby into thinking it has not loaded the code yet
13:20 Alias_ There's no Ruby gem/thingy for doing unload/clean
13:20 Alias_ ?
13:20 Alias_ http://search.cpan.org/~ilmari/Cla​ss-Unload-0.05/lib/Class/Unload.pm
13:20 danlucraft kind of
13:20 Alias_ There's our hacky one
13:20 danlucraft you can undef classes
13:21 Alias_ It flushes out anything global
13:21 Alias_ It's not perfect, and if there's naked references floating around, they don't get cleaned
13:21 danlucraft exactly.
13:21 danlucraft how do you make sure all the child classes of the plugin get unloaded?
13:21 Alias_ We make it the responsibility of the plugin :)
13:22 Alias_ And we recommend keeping their own code compatible with Class::Unload
13:22 danlucraft hmm
13:22 Alias_ Plugins are utterly responsible for their own child classes
13:22 danlucraft so can classes do stuff when they get unloaded in Perl?
13:22 Alias_ Unload hooks?
13:22 Alias_ Kinda
13:22 Alias_ There's the END { ... } scoping
13:22 Alias_ But that's meant to fire at process exit
13:23 Alias_ For Padre we do two things
13:23 Alias_ 1. We tell plugin authors that their plugins will be unloaded via Class::Unload, so they should stay compatible with it
13:23 Alias_ 2. We tell plugin authors they are responsible for unloading their child classes during ->disable, and we recommend they use Class::Unload on their own children
13:24 danlucraft ahh, I see
13:24 Alias_ The plugin authors are completely free to ignore our recommendations :)
13:24 Alias_ But then reload won't work
13:24 danlucraft what happens to all the instances of these classes that are floating around?
13:24 danlucraft like document types, file handlers, commands etc etc
13:24 Alias_ Plugins have full access to Padre's internals
13:25 Alias_ They are responsible for dealing with stuff during ->disable
13:25 Alias_ But in addition to that, because plugins advertise the document types in metadata methods, we can use those declarations to look through our editor list and "downgrade" them from first class documents to the base Padre::Document type, which only gets default scintilla lexing
13:26 Alias_ Commands, I'm not sure we've actually got working unload for
13:26 Alias_ Have you had a look through our actual code yet?
13:26 Alias_ http://cpansearch.perl.org/src/PLAVEN/​Padre-0.54/lib/Padre/PluginManager.pm
13:26 danlucraft yes, but I don't know perl so it's hard for me to skim it
13:27 danlucraft oh wow, I swear I didn't take the name from there
13:28 Alias_ heh
13:28 Alias_ It's kind of an obvious name :)
13:28 danlucraft well yes
13:28 danlucraft and noone had registered a gem with it yet so I felt lucky
13:28 Alias_ The code is fairly well commented/docced
13:28 Alias_ Just reading through the comments should be informative
13:28 danlucraft yeah thanks for this
13:29 Alias_ http://cpansearch.perl.org/src/PLAVEN​/Padre-0.54/lib/Padre/PluginHandle.pm
13:29 Alias_ (That's the wrapper object around the raw one of the plugin class itself)
13:30 Alias_ So that the plugin manager can just say "enable" without having to worry about the paranoid exception trapping etc
13:30 danlucraft yep
13:30 danlucraft got the beginnings of something similar in plugin_manager
13:30 Alias_ sub enable { ... in that second class is particularly instructive
13:31 danlucraft what's an "editor" in padre?
13:31 Alias_ It goes through the laborious part
13:31 Alias_ "Editor" is the rich text control that holds an open file
13:31 danlucraft like, the widget?
13:31 Alias_ Yes
13:31 danlucraft heh, "reload current plugin", I was just thinking about that
13:31 Alias_ Padre->ide->main_window->n​otebook->editor->document
13:31 Alias_ That's about the nesting
13:32 Alias_ The document holds the abstract stuff, the editor is the actual widget around it
13:32 danlucraft we have the same: App.window.notebook.tab.edit_view.document
13:32 Alias_ Although in practice, we're a bit spagetti there, some functionality bleeds across the editor/document boundary
13:32 danlucraft tab's can be subclassed, so we have edittabs, htmltabs etc
13:32 danlucraft I'll say
13:33 Alias_ We're not quite mature enough to subclass our tabs yet :(
13:33 danlucraft especially because the editview/document pair is duplicated on the gui side as well
13:33 Alias_ The document/editor code needs a new-generation API
13:33 Alias_ Your edit_view isn't the gui thing?
13:33 danlucraft we have a model hierarchy and a view hierarchy
13:33 danlucraft so all the gui stuff is completely separate from the models
13:34 Alias_ Ditto, but not in parallel
13:34 Alias_ If something is almost entirely gui, we don't bother
13:34 Alias_ And our purity isn't brilliant
13:34 Alias_ It's the price of development speed
13:34 danlucraft I've been burned on this before, when wanting to switch guis
13:35 danlucraft now we're religious about it
13:35 Alias_ Which, as I understand it, you've done a few times :)
13:35 danlucraft just once :)
13:35 danlucraft Gtk -> SWT
13:35 basti1985 joined #padre
13:35 Alias_ At the moment, we don't really have any viable alternative gui models
13:35 Alias_ Unless QT comes back to Perl again one day
13:35 danlucraft the gui layer listens to events from the models, like "window_opened", and creates gui controllers to reflect that in the user interface
13:35 danlucraft hmm
13:36 danlucraft I have this crazy idea that one day someone will write a curses mode for it
13:36 Alias_ heh
13:36 danlucraft I'm also trying to make plugin authors have to touch SWT as little as possible
13:36 Alias_ We have a more differential approach
13:36 Alias_ Most of our non-gui code is more about specific functions
13:37 Alias_ Doc2html, threading support, and so on
13:37 Alias_ We'd hope to see it reused not with another gui, but with an entirely different type of application
13:37 danlucraft yep
13:37 danlucraft oh cool, you're building a platform
13:37 Alias_ But it's usually not mature enough to split out into a different distribution yet
13:37 Alias_ That too
13:38 Alias_ We're all starting to see potential for a GTK-like PTK
13:38 Alias_ An application wrapper over the top of raw Wx
13:38 danlucraft that would be nice.
13:38 Alias_ As for the standalone things, they usually just become CPAN distributions
13:38 danlucraft it's so easy to end up with a dumbed down API though
13:38 Alias_ true
13:39 Alias_ The tricky bit is to make the dumbed down part optional
13:39 Alias_ Leave the deeper hooks exposed for optional use
13:39 danlucraft literally everyone who works with a complex gui api in Ruby has the same idea: "this is too complicated, I should write a simple wrapper for it!"
13:40 danlucraft yeah, well done guy. add it to the pile
13:40 danlucraft but it sounds like your providing support libraries rather than wrapping
13:41 Alias_ It's the CPAN way
13:41 Alias_ Standalone modules whereever possible
13:41 Alias_ Frameworks as a last resort
13:42 tsee Alias, regarding the slave driver threading.
13:42 tsee I created a branch
13:42 Alias_ awesome
13:42 tsee And have some crazy shit in my checkout now.
13:42 tsee BUT
13:42 Alias_ "slave driver" :)
13:42 tsee # Non-Padre modules we need in order to do the single-instance check should be loaded early to simplify the load order.
13:43 tsee That's a lot of modules to load *way* early.
13:43 Alias_ hrm
13:43 Alias_ That's true, we need to load Padre::DB right now
13:43 tsee And you can't go about spawning threads if you're not going to hand everything to another instance altogether...
13:43 Getty Making Module concepts is always a hazard
13:43 Alias_ I've been meaning to provide an upgrade for Padre::Config to allow delaying the loading of the host half of the config and only load the human half
13:44 Getty technical you want anything at start
13:44 Getty but technical you also want anything to be addable
13:44 Getty and then also removable
13:44 Getty its a horror
13:44 tsee Alias: There's generally still a lot of use() calls in Padre.pm
13:44 Alias_ tsee: We can solve this problem in reverse
13:44 tsee Can't we just move a ton of them to a Padre::startup method which does require()'s?
13:44 Alias_ tsee: If it works but is inneficient, we can look at new optimisation strategies after
13:45 tsee Works as in doesn't crash?
13:45 Alias_ Right
13:45 tsee It does.
13:45 Alias_ Awesome
13:45 tsee Well. It *starts*
13:45 Alias_ heh
13:45 tsee No further testing performed yet.
13:45 Alias_ tsee: BTW, I've gotten a few different requests about PAR::Packer on the #win32 channel
13:45 Alias_ Apparently PAR doesn't build properly on Win32 any more
13:46 tsee *sigh*
13:46 Alias_ It looks somewhat trivial
13:46 tsee I've seen bug reports.
13:46 tsee But ENOTIME and ENOWIN32.
13:46 Alias_ I can fix the latter
13:46 tsee If there's a patch, I'll make sure to apply it and do a release.
13:46 * danlucraft love the little smiley in the bottom right
13:47 Alias_ danlucraft, I've grown rather endeared to it, despite my initial annoyance
13:47 tsee Ah. I spoke too soon.
13:47 Alias_ It's a good reminder not to panic :)
13:48 tsee The annoying part is that you need a pointer to the main window in order to spawn a worker thread. But that means you have to be able to pass the main window around *at all* because otherwise, you can't have it in the slave driver thread.
13:48 tsee BUT that's created way before the main window.
13:48 Alias_ hrm
13:48 Alias_ Why do we need a pointer to the main window?
13:49 Getty btw someone here watched Boston Public?
13:49 Alias_ Is that some kind of TV thing?
13:50 Getty its a David E Kelly series
13:50 Alias_ Which country is it on in?
13:50 Getty it comes from US
13:50 Getty its "done" already and shut off, but its always something good to watch
13:50 Alias_ Ah, I think about 5% or less of Padre contributors are from the US :)
13:50 Alias_ So odds are no :)
13:50 Getty you know Ally McBeal, or?
13:50 Alias_ I hate that show
13:50 Getty hehehe
13:50 Getty its david e kellys most worst show
13:51 Alias_ I was living with a female 20-something blond skinny lawyer for a while
13:51 Getty what about picket fences?
13:51 Alias_ I had standing rules to absolutely never miss taping it for her
13:54 tsee Alias: You need the MW ptr for posting Wx thread events.
13:54 tsee This may be a real problem.
13:54 Alias_ Could we create an artificial point to broker them through?
13:55 tsee Well. When you create a thread, you can pass stuff as arguments. Such as $mw.
13:55 Alias_ Maybe use the Padre->ide->wx object, since almost nothing at all uses it currently
13:55 Alias_ It's an object looking for a purpose
13:55 tsee But if you want to pass it via a Thread::Queue to the thread, it has to be Storable::freeze'n.
13:55 Alias_ hrm
13:55 tsee Which doesn't work because there are code refs.
13:56 Alias_ And the main window doesn't?
13:56 tsee Yes, it does. That's what I'm talking about.
13:56 tsee $queue->enqueue(Storable::frteeze($mw))
13:56 tsee Essentially.
13:56 Alias_ hrm
13:56 tsee So the thread cloning code is more powerful than Storable.
13:57 Alias_ So we could just make an entirely synthetic Wx::Object as an event broker...
13:57 Alias_ And use that somehow
13:57 Alias_ I'm way outside my area of expertise though, so I'll shut up now :)
13:57 tsee Might have to be a Wx::WhateverClassMWIsIn
13:57 tsee Which would then require loading a shitload of things.
13:57 rindolf joined #padre
13:58 * Getty sees Storable and runs ;)
13:58 Alias_ tsee: We can fix that... a lot of stuff is use()'ed as a convenience
13:58 Alias_ I removed the entire set of tool classes and panel classes yesterday, for example
13:58 Alias_ So that's a bunch less to load
13:58 tsee Right. but we must not load Padre::Wx::MainWindow for the master thread.
13:59 tsee Or else everything is moot.
13:59 tsee So it'd have to be some special fake-window thing.
13:59 Alias_ right
13:59 Alias_ Padre::Wx::FakeThreadObjectBrokerInvisiblePanel
13:59 tsee Somesuch
13:59 tsee Makes me cringe, but I'm not sure I know a better way.
13:59 Alias_ Seems solvable, if delicate
14:00 tsee I'll run out of time soon, by the way. Thus, I'll just commit to the branch what I have.
14:00 Alias_ That's fine
14:00 tsee Not sure when I get another slice, so somebody else should also keep an eye on this.
14:01 Alias_ One of these days I'll find the time to look at the thread stuff
14:01 Alias_ And submersible knows some of it, in the mean time
14:01 tsee He must have cursed a lot when I dug into it.
14:02 Alias_ :)
14:02 Alias_ He's distracted cursing multicast most of the time
14:02 Alias_ You've got a while until that's entirely solved
14:03 tsee I curse enough myself
14:05 tsee svn commit -m "All hail the slave driver. Alas, he's on strike still."
14:14 Hyppolit svn: r10161 | tsee++ | http://padre.perlide.org/trac/changeset/10161
14:14 Hyppolit All hail the slave driver. Alas, he's on strike still.
14:14 Hyppolit branches/Padre-slave-driver-thread/lib/Padre/
14:15 tsee Now, that's a slow connection. Damn proxy.
14:40 abraxxa left #padre
15:06 Haarg joined #padre
15:17 Hinrik joined #padre
15:19 n00b1_ joined #padre
15:23 Hinrik joined #padre
15:23 asphere joined #padre
15:37 asphere joined #padre
15:39 Hinrik joined #padre
15:43 asphere joined #padre
17:17 CSJewell joined #padre
17:23 tsee joined #padre
18:03 kyanardag joined #padre
18:30 awnstudio joined #padre
18:53 jayk I wonder if padre will work better with remote files than TextMate does
18:53 jayk I bet it will.
20:05 Sewi Hi jayk
20:05 jayk hiya.
20:09 Sewi You're talking about files on remote filesystems (like nfs, smbfs) or internal support for remote files?
20:10 jayk well - I'm really talking about the fact that when I have remote filesystems mounted, and am operating on them within Textmate - there are noticable lags here and there that I think should not be there.
20:10 jayk nfs isn't an issue as much as like sftp / fuse type mounts
20:10 jayk but Textmate makes a lot of assumptions when working with 'projects' which are simply not feasible over a slower link.
20:10 Sewi I'm using Padre on sshfs mounts (which should be similar to your sftp mounts).
20:11 Sewi There is a config option on the first panel (behavior), the 5st from the bottom.
20:12 Sewi increase it (I'm using 30 seconds here) and everything should be fine.
20:12 jayk Cool.  I will check that out.  Thanks.
20:16 Sewi You're welcome
20:18 danlucraft joined #padre
20:29 Sewi szabgab: Any news on your CeBit plans?
20:38 Getty i can just tell that we make a first pre version of t-shirts for discussion hehe ;)
20:38 Getty and beside that i'm also interested in plans and "todos" that have to be done before
20:38 Getty Sewi: and you dont forget my sleeping place ;)
20:40 Sewi Getty: Already reserved :-)
20:40 Getty wonderful, i hope i can come already sunday or monday, cause i make a long travel and dont want to make it on first day of cebit (like all others probably)
20:40 Getty best is sunday, then i can take a drive by chance
20:41 Sewi "long travel"??? Are going Stuttgart -> New York -> Hannover? :)
20:41 Getty these are several hours
20:41 Getty still
20:41 Getty and i dont want to go by train cause of price
20:41 Getty carpool
20:41 Getty makes it 1/5 of the price
20:43 Sewi 184�Entf:226,9NMH�he:ft|FLZeit:113 min :-)
20:56 cognominal joined #padre
22:20 tsee joined #padre
22:24 cognominal joined #padre
22:28 mib_3wgegt joined #padre
22:52 Alias_ joined #padre

| Channels | #padre index | Today | | Search | Google Search | Plain-Text | summary