Have you considered architecting the rb-threadframe as a github fork of https://github.com/ruby/ruby instead of as patches? I see several advantages:1. Git can intelligently rebase and merge; you wouldn't have to maintain the patches against frequent ruby trunk changes just to keep line numbers in sync. Right now, the 1.9.3 patch is, um, 5000 commits behind. (I'm sure there were only a few breaking changes, but they definitely broke.)
2. It would make it easier for those of us who want to use multiple patchsets; for instance, I would like to use both rb-threadframe and railsbench patchsets. If I convince both of you to maintain your patches as forks, I can fork ruby too and merge your forks into mine.
3. There's a slight possibility that it could pave the way to get some of these patches into core.
I saw your frustrated post from December, and it really bugs me (architecturally, aesthetically and pragmatically) that I need to apply patches to make Ruby an operationally-sound component of my app. I'm old school, and if I can't profile and debug, I don't have a production app, period. While ruby-core still doesn't really use github pull requests as a patch queue, it's possible that they'll grow into it - and it'd let multiple people attempt different combinations of "OK, well, how about THIS small subset of the patch?" simply by forking and sending pull requests to core. It would crowdsource the push into core. As you said, "I could spend my time maintaining 15 or so individual patch files, writing redmine tickets.. Or... I could just work on the code." Maybe the community can pitch in here.
The only downside is that you'd probably want to frequently rebase the fork, which means folks would have to rebase, not pull, from github. I suspect that anyone technical enough to care about alternative debuggers and garbage collection is cool with that.Are you interested? My C is at the "Crash? Try an ampersand. OK, so try an asterisk." level, but I could do the grunt work of turning your patches into cleanly-applicable ruby forks.
Wow - thanks for the detailed and thoughtful response. I understand the context a lot better now.For one, I didn't realize that 1.9.3 was unsupported; I saw the first pass at it in the code, and assumed it ought to be working. I'll stick to 1.9.2 for now (and you'll see a bug report in a moment, since I can't build it cleanly.) I got all excited at the 1.9.3 preview release, and wanted all my shiny new toys to play together. You might want to add that to the README.
...
You're right - what you need is a project manager to shepherd the changes into core. So that is what I will volunteer to do.
I don't think there's much value in doing so with the 1.9.2 patches, since core is focused on getting 1.9.3 out the door, but once that ships and you bring rb-threadframe up to speed, I will start opening core tickets to see if at least some of it can get into 1.9.4. I'll also be interested in what parts of core could be reorganized for modularity; perhaps that's the first patch.
Maybe you could drop me a line when you start working on that? My real e-mail is jay at jay dot eff em.
Next 2.0 ...
Simply, we will add same mechanism as rb-threadframe. However, we can't
introduce features such as "replace return value", and so on.
In other words, we support frame "querying" API.
Sorry for my lazyness.
Thanks,
Koichi
--
// SASADA Koichi at atdot dot net