Show enters and exits. Hide enters and exits.
| 00:00:18 | boyscout | Remove old, stale minitest - 76d5300 - Evan Phoenix |
| 00:00:19 | boyscout | Don't expand -I paths. Fixes #434. - d518663 - Evan Phoenix |
| 00:03:00 | evan | brixen: thoughts on http://github.com/evanphx/rubinius/issues/#issue/431 |
| 00:03:02 | evan | ezmobius: sup ez. |
| 00:04:02 | ezmobius | sup bro |
| 00:04:19 | ezmobius | hows trix? |
| 00:04:37 | evan | good, good. |
| 00:04:44 | evan | workin' on some 1.1 stuff. |
| 00:04:49 | ezmobius | nice |
| 00:06:01 | brixen | evan: x.each { |z| z.class.should == String or NilClass} |
| 00:06:09 | brixen | not good |
| 00:06:15 | evan | huh? |
| 00:06:21 | brixen | evan: just tag that ticket me and I'll look at it |
| 00:06:26 | evan | k |
| 00:06:43 | evan | oh yeah |
| 00:06:46 | evan | wtf is that!? |
| 00:06:49 | brixen | hahah |
| 00:06:51 | brixen | dunno |
| 00:07:02 | evan | he clearly didn't see these tests fail |
| 00:09:55 | boyscout | CI: rubinius: d518663 successful: 3512 files, 15101 examples, 42941 expectations, 0 failures, 0 errors |
| 00:12:54 | evan | geez, macruby doesn't support fork() |
| 00:13:17 | BrianRice-work | I can see how that would be a problem to implement |
| 00:14:01 | evan | i guess CF and libauto don't support forking |
| 00:23:02 | boyscout | Remove failure obscuring code, change prio to safe value. Fixes #380. - 9346a50 - Evan Phoenix |
| 00:40:54 | philo | hi |
| 00:51:34 | boyscout | CI: Commit 9346a50 failed. http://github.com/evanphx/rubinius/commit/9346a50a188e4814b328ea10cbebc28bef37a3e2 |
| 01:02:26 | evan | :/ |
| 01:06:40 | evan | brixen: you around? |
| 01:07:44 | brixen | yah |
| 01:07:50 | evan | oh good |
| 01:07:50 | evan | ok |
| 01:07:58 | evan | so this process/setpriority_spec.rb |
| 01:08:06 | evan | it needs to only run if the user is root |
| 01:08:17 | evan | it really can't run properly on any OS unless thats true |
| 01:08:24 | evan | the spec is a mess basically dealing with that fact |
| 01:08:31 | brixen | ah yeah, as_superuser do |
| 01:08:38 | evan | it should just not run |
| 01:08:39 | evan | ok |
| 01:08:43 | evan | does that use sudo? |
| 01:08:49 | brixen | nope |
| 01:08:51 | evan | or just ignore the spec unless the specs are running as root |
| 01:08:53 | evan | ok good. |
| 01:15:02 | boyscout | Only run Process.setpriority spec as root - c8a2f69 - Evan Phoenix |
| 01:15:02 | boyscout | Add specs for block arg Array unwrapping behavior - 699f47b - Evan Phoenix |
| 01:15:02 | boyscout | Check for and run #to_ary when passed to yield with 2+ args. Fixes #374. - 1968a40 - Evan Phoenix |
| 01:26:39 | boyscout | CI: rubinius: 1968a40 successful: 3512 files, 15103 examples, 42947 expectations, 0 failures, 0 errors |
| 01:59:49 | boyscout | Add option to use single quotes to ruby_exe - 711fad4 - Evan Phoenix |
| 01:59:49 | boyscout | Add specs for CLI options -n, -p, and -a - d05a0b7 - Evan Phoenix |
| 01:59:49 | boyscout | Implement support for -n, -p, and -a. Fixes #353. - 8d88819 - Evan Phoenix |
| 02:28:25 | boyscout | CI: Commit 8d88819 failed. http://github.com/evanphx/rubinius/commit/8d888196dc62b8412bfb6ef16abd460ac1e38ae2 |
| 03:46:39 | dwaite | waves |
| 04:16:14 | postmodern | http://github.com/evanphx/rubinius/issues/issue/439 |
| 04:16:16 | postmodern | new bug |
| 05:27:36 | dbussink | morning |
| 05:41:13 | evan | morning |
| 05:41:16 | evan | i'm just headed up to read. |
| 05:41:31 | dbussink | evan: ah, well, good night then :) |
| 05:41:49 | dbussink | evan: wasn't able to find that issue from yesterday (or earlier today for you) ;) |
| 05:42:11 | evan | ok |
| 05:42:22 | slava | hi evan |
| 05:42:28 | slava | heading to SF any time soon? |
| 05:43:07 | evan | september probably |
| 05:43:29 | evan | i'll def be there the 16th to 20th for gogaruco |
| 05:43:55 | slava | hit me up mang |
| 05:44:57 | evan | word. |
| 05:45:09 | evan | you in SF or down south in the valley? |
| 05:45:42 | evan | well anyway |
| 05:45:44 | evan | off to bed |
| 05:45:44 | evan | nite. |
| 05:45:46 | slava | nite |
| 05:45:49 | slava | I'm in the south bay |
| 15:03:45 | boyscout | Use same function signature as MRI for rb_reg_new - e60b382 - Jeremy Evans |
| 15:03:45 | boyscout | Make a completely new copy of string when testing rb_str_set_len - 14bc963 - Jeremy Evans |
| 15:15:01 | boyscout | CI: rubinius: 14bc963 successful: 3515 files, 15106 examples, 42950 expectations, 0 failures, 0 errors |
| 16:37:10 | dwaite | what was up with json? |
| 16:42:26 | brixen | the gem was released, should be fine |
| 16:42:36 | brixen | are you having an issue dwaite? |
| 16:46:03 | dwaite | nah just curious about the /topic |
| 16:46:08 | dwaite | mr. brixen |
| 16:46:36 | brixen | jeremyevans: could you explain 14bc963 ? |
| 16:46:43 | brixen | ok mr. waite |
| 16:50:04 | jeremyevans | brixen: Try reverting it and adding a p @str after that line |
| 16:50:24 | jeremyevans | brixen: rb_set_str_len changes the stored literal string |
| 16:50:57 | jeremyevans | brixen: It doesn't have an affect in the current state, but if more tests are added it could definitely cause a problem |
| 16:51:05 | brixen | what? |
| 16:51:19 | brixen | the before runs every time, you get a new string every time |
| 16:51:23 | jeremyevans | brixen: At first I thought this was a bug, but MRI has the same behavior |
| 16:51:31 | brixen | what behavior? |
| 16:51:32 | jeremyevans | brixen: That's what you think, isn't it :) |
| 16:51:41 | jeremyevans | brixen: Try reverting it and adding a p @str after that line |
| 16:51:41 | brixen | it's what I see, yes |
| 16:51:52 | brixen | I added a STDERR.puts @str.object_id |
| 16:53:03 | jeremyevans | brixen: I didn't check if the object_it was the same, I was checking the content of the string, which apparently can get reused |
| 16:53:21 | brixen | jeremyevans: show me actual behavior, not "what might happen if more tests are added" |
| 16:53:35 | jeremyevans | brixen: Sure, give me a sec |
| 16:55:23 | dwaite | ooh ruby 1.9.2 final. good thing I came back from vacation! |
| 16:57:22 | jeremyevans | brixen: http://pastie.org/1100285 |
| 16:58:34 | jeremyevans | brixen: I didn't include the MRI output, but it's the same. The stored literal string gets modified. |
| 16:59:21 | jeremyevans | brixen: The reason it doesn't cause problems is just an accident due to how the tests are written |
| 17:00:20 | evan | if the literal string is changed |
| 17:00:25 | evan | thats a bug in C-API |
| 17:00:28 | evan | not in your test. |
| 17:00:29 | brixen | yeah |
| 17:00:41 | jeremyevans | evan: Even if the behavior matches MRI? |
| 17:00:44 | evan | namely that rb_str_set_len doesn't unshare a COW'd String |
| 17:00:57 | evan | imho, yes. |
| 17:01:03 | evan | sounds like MRI might have the same bug. |
| 17:01:15 | evan | which i'll check right now. |
| 17:01:29 | evan | and yes, it does. |
| 17:01:36 | evan | rb_str_set_len has the same bug as rbx |
| 17:01:49 | evan | namely that it doesn't unshare a COW'd String before changing it. |
| 17:01:57 | dwaite | oops |
| 17:02:10 | evan | jeremyevans: thats why you had to do [0..-1] |
| 17:02:12 | evan | and not just .dup |
| 17:02:22 | evan | most likely. |
| 17:02:36 | evan | so the MRI behavior matches because they both have the bug. |
| 17:02:38 | brixen | and why you'd get a new object id |
| 17:02:52 | jeremyevans | evan: Don't get me wrong, it sounds like a bug and quacks like a bug, but since MRI had the same behavior I thought it was intentional |
| 17:02:56 | evan | then new object id is there to throw you off. |
| 17:03:01 | brixen | yeah |
| 17:03:05 | evan | jeremyevans: sure, i can see why you'd think that. |
| 17:03:12 | evan | and after all this analysis |
| 17:03:19 | evan | it appears to be a bug in both runtimes. |
| 17:03:33 | evan | the test therefore can deal with that |
| 17:03:38 | dwaite | it seems to be a problem in your expectations of correct behavior |
| 17:03:42 | evan | but should include a comment about why it's compensating. |
| 17:03:56 | brixen | wait |
| 17:04:06 | brixen | the bug should be filed and the test should not be changed |
| 17:04:15 | jeremyevans | evan: OK. I didn't know the cause, only the symptom :) |
| 17:04:21 | brixen | unless MRI says, rb_str_set_len should have this behavior |
| 17:04:29 | evan | brixen: ok |
| 17:04:38 | evan | so it should fail on MRI for now? |
| 17:04:39 | brixen | I'm checking 1.9 right now |
| 17:04:57 | evan | 1.9 fixes it. |
| 17:04:59 | evan | just checked. |
| 17:05:00 | brixen | well, nothing fails yet because there is not a specific spec for this |
| 17:05:08 | brixen | ok good |
| 17:05:11 | evan | 1.9 has " str_modifiable(str); " at the top |
| 17:05:25 | brixen | easy then! |
| 17:05:31 | brixen | we just fix it in rbx |
| 17:06:04 | evan | also fun (ug) is that 1.9 uses rb_bug() if the requested len is greater than the capacity |
| 17:06:11 | evan | and rb_bug() calls abort(2) |
| 17:06:30 | evan | thaht it checks is good, that it doesn't just throw an exception: bad. |
| 17:06:42 | evan | brixen: what should the test look like? |
| 17:06:42 | jeremyevans | Well, I'm glad I brought it to attention, though I probably should have asked first |
| 17:06:45 | evan | use ruby_begu? |
| 17:07:07 | evan | jeremyevans: no prob. you've had on an interesting property of rubyspec |
| 17:07:12 | brixen | evan: yeah |
| 17:07:17 | evan | namely, we can't assume that MRI is always correct. |
| 17:07:26 | evan | er. ruby_bug. |
| 17:07:58 | dbussink | evan: would you know any other place that could perhaps corrupt that global threads list in hydra/ |
| 17:07:58 | dbussink | ? |
| 17:08:05 | evan | oh oh actually |
| 17:08:17 | evan | 1.9 raises a RuntimeError if you try and use rb_str_set_len on a shared string |
| 17:08:25 | evan | so if you run that test on 1.9 |
| 17:08:30 | evan | you'll probably get an exception. |
| 17:08:40 | evan | sorry, that probably complicates things. |
| 17:08:55 | evan | dbussink: i'd have to go look |
| 17:08:57 | evan | i don't kno off hand. |
| 17:12:55 | evan | I think the reason that rb_str_set_len doesn't unshare is because it would change ->ptr which would break some extensions maybe? |
| 17:13:11 | evan | since people are dumb and they cache ->ptr in a C local sometimes |
| 17:13:30 | brixen | hmm |
| 17:13:42 | brixen | but they "fixed" it in 1.9... |
| 17:13:55 | evan | "fixed" in so far as they detect the issue and raise an exception, sure. |
| 17:14:21 | evan | this is a great example of why RSTRING_PTR() sucks ass actually |
| 17:14:26 | evan | when you use it on COW'd strings |
| 17:14:36 | evan | you get the char* used by 2 different objects |
| 17:18:05 | brixen | yeah, unfortunate API for sure |
| 17:20:56 | jeremyevans | evan: Yeah. You pretty much have to call str_modifiable yourself if you want to write to a string you didn't create |
| 17:21:23 | brixen | only if you are working behind MRI's back really |
| 17:21:33 | brixen | which again, is an unfortunate consequence of C |
| 17:22:07 | brixen | if you use the "Ruby" functions, it's handled |
| 17:22:08 | evan | jeremyevans: I assume you mean rb_str_modify() |
| 17:22:20 | bougyman | i've kinda been waiting on 1.9.2 |
| 17:22:27 | brixen | if you use MRI's utility functions, you're on your own and need to act like MRI |
| 17:22:28 | evan | which makes the the string independent if it's not. |
| 17:22:35 | bougyman | but why the hell do they release it using /1.9.1/ as the dir for the stdlib? |
| 17:22:38 | bougyman | that's nonsensical. |
| 17:22:44 | evan | bougyman: yeah, i thought so too. |
| 17:22:45 | brixen | bougyman: yeah, that is crazy |
| 17:22:47 | evan | weird. |
| 17:22:57 | brixen | it's probably a bug |
| 17:23:04 | bougyman | it's intended. |
| 17:23:13 | bougyman | bug dressed in a tuxedo, call it a feature! |
| 17:23:18 | brixen | yep |
| 17:28:50 | evan | brixen: so, given all of this |
| 17:29:01 | evan | how should the spec for rb_str_set_len be written? |
| 17:29:18 | evan | should we assume that 1.8's bug would be fixed by raising an exception, 1.9 style? |
| 17:30:58 | brixen | well, good question |
| 17:31:18 | brixen | I'm trying to find info about this change in 1.9 |
| 17:31:22 | evan | k |
| 17:32:58 | dbussink | evan: where does this __lsl_guard__ come from that SYNC uses? |
| 17:33:10 | evan | SYNC defines it. |
| 17:33:12 | evan | it's a local variable. |
| 17:33:25 | evan | SYNC creates makes a C++ object on the stack |
| 17:33:30 | evan | called __lsl_guard__ |
| 17:33:41 | dbussink | ah, doh, i just totally glanced over the LockableScopedLock |
| 17:33:52 | evan | :D |
| 17:33:54 | evan | gotta read the whole thing! |
| 17:37:23 | brixen | stuff like this makes me :( http://redmine.ruby-lang.org/repositories/diff/ruby-19?rev=28871 |
| 17:38:07 | brixen | they raise an exception above, why not on the overflow |
| 17:38:23 | evan | exactly. |
| 17:39:43 | brixen | heh http://redmine.ruby-lang.org/repositories/diff/ruby-19?rev=28856 |
| 17:39:50 | brixen | nice commit msg |
| 17:40:21 | evan | @_O |
| 17:40:25 | evan | that makes no sense. |
| 17:40:26 | brixen | yo dawg, I hear you like preconditions in your preconditions so I added... |
| 17:40:33 | evan | you have to create a string to use rb_str_set_len |
| 17:40:35 | evan | and when you create a string |
| 17:40:37 | evan | you set the length. |
| 17:42:32 | brixen | there is no bug associated with any of these changes afaics on ruby redmine |
| 17:42:38 | brixen | evan: so, what do you want to do here? |
| 17:42:51 | brixen | we can mimic 1.8.7 behavior, or call it a bug |
| 17:43:00 | jeremyevans | brixen: http://redmine.ruby-lang.org/issues/show/3652 |
| 17:43:20 | jeremyevans | brixen: Not use why 28856 isn't listed there, though |
| 17:43:42 | evan | brixen: well, I suppose we should go with the weird 1.8.7 behavior |
| 17:43:56 | evan | and the spec needs to detail the behavior in a comment probably |
| 17:44:07 | brixen | jeremyevans: that doesn't have to do with this behavior in set_len |
| 17:44:21 | brixen | evan: ok, I'll fix up the spec |
| 17:44:31 | jeremyevans | brixen: True, but it's undoubtedly related |
| 17:44:51 | brixen | jeremyevans: I don't follow |
| 17:48:05 | dbussink | evan: hmm, i see a Mutex class in lock.hpp, which uses a thread::Mutex right? |
| 17:48:15 | evan | yes |
| 17:48:20 | evan | it augments thread::Mutex |
| 17:48:28 | evan | to contain a pointer to the ManagedThread that locked it |
| 17:48:41 | evan | the stuff in thread:: is rubinius independent |
| 17:48:51 | dbussink | evan: ok, and constructors are ran too then right? |
| 17:48:59 | evan | .. |
| 17:49:01 | evan | yeah.. |
| 17:49:28 | evan | in C++, if you have a superclass and you don't invoke the superclass constructor explicitly |
| 17:49:39 | evan | it's implicitly invoked without any arguments. |
| 17:51:30 | jeremyevans | brixen: I suppose it's not technically related, but nobu was working on rb_str_resize in the commit before and after, and his advice to use rb_str_set_len in the redmine ticket probably alerted him to the condition the ticket describes (calling it on a 0 length string) |
| 17:51:49 | dbussink | evan: ok, and how does that work together exactly with the SYNC statements, don't they create a new lock object each time then? |
| 17:52:07 | evan | ok |
| 17:52:08 | evan | back up. |
| 17:52:17 | evan | the SYNC statement is creating what? |
| 17:52:20 | jeremyevans | brixen: I'm not sure what the change made in 28856 actually does, though |
| 17:52:35 | evan | dbussink: a LockableScopedLock is the answer |
| 17:52:42 | evan | it's not creating a new Mutex or a new Lockable |
| 17:52:54 | evan | so go look at definition of LockableScopedLock |
| 17:53:48 | dbussink | evan: ah ok, yeah, so it uses this |
| 17:54:11 | dbussink | evan: i wonder if passing in a 0 as the managedthread could cause a potential issue? |
| 17:54:35 | evan | a LockableScopedLock locks the Lockable in it's constructor (ie, when SYNC is run) and unlocks the lockable in the destructor (when the function returns) |
| 17:54:41 | evan | pass in where? |
| 17:55:41 | dbussink | evan: well, that parameter to sync marks the owner right? |
| 17:55:53 | dbussink | the owning managed thread |
| 17:56:14 | evan | that pointer isn't deref'd |
| 17:56:21 | evan | so if you pass in 0, it shows up without issue. |
| 17:58:07 | dbussink | evan: i'm trying something now, shooting in the dark though :S |
| 17:58:15 | evan | ok |
| 17:58:23 | evan | i thought you couldn't duplicate the problem |
| 17:59:23 | dbussink | how do you mean? i can pretty reliably cause the problem, but i can't find any place where the threads global list is used outside a lock |
| 17:59:25 | dbussink | or in the gc |
| 17:59:33 | evan | hold up. |
| 17:59:40 | dbussink | reproducing it is pretty easy |
| 17:59:41 | evan | ii thought you told me you couldn't make it happen again |
| 18:00:00 | dbussink | evan: nope, i can't find anything that could cause it |
| 18:00:12 | evan | huh? |
| 18:00:20 | evan | you're nope is confusing |
| 18:00:25 | evan | you're negating a negative statement |
| 18:00:29 | dbussink | ok, back to square one |
| 18:00:31 | evan | please indicate the situation in full. |
| 18:00:39 | dbussink | i can reliably cause it to crash |
| 18:00:51 | dbussink | the global threads list in shared_state seems to be corrupt |
| 18:01:00 | dbussink | because it contains an invalid reference in the list |
| 18:01:14 | dbussink | so i was looking for thread unsafe usage of that global threads list |
| 18:01:17 | dbussink | which i can't find |
| 18:02:21 | evan | what is your repro |
| 18:02:26 | evan | how do you make it happen |
| 18:03:43 | dbussink | evan: https://gist.github.com/13f250d409e41a2d7448 |
| 18:03:51 | dbussink | that's what i'm running |
| 18:04:10 | evan | ok |
| 18:04:22 | evan | you'll have to keep poking |
| 18:04:24 | evan | but i'll run that here |
| 18:04:28 | evan | and see what i get. |
| 18:05:02 | dbussink | evan: doesn't crash each time for me, but about one in two runs |
| 18:05:12 | evan | k |
| 18:11:17 | brixen | I'd really like to know if MRI core devs problems with rubyspec are laziness or inability to recognize decent code |
| 18:11:24 | brixen | http://github.com/nurse/rubyspec/commit/8617114ba6200d4eee9330ecd0ed20092df6c3bc |
| 18:11:48 | brixen | why duplicate all the expectations when all you need to do is conditionalize the before :each |
| 18:12:13 | brixen | and separate these massive specs |
| 18:12:39 | brixen | may it's "not my problem, I didn't write these" |
| 18:12:44 | brixen | I wish I knew |
| 18:16:31 | Defiler | brixen: MRI core wouldn't know decent code if it tied them up in a basement and read them bad poetry |
| 18:17:46 | evan | brixen: maybe they don't know you can conditionalize the before :each |
| 18:17:56 | evan | i can't say i'd know off hand what you mean |
| 18:19:56 | brixen | ruby_version_is |
| 18:19:58 | brixen | :( |
| 18:22:56 | evan | hm |
| 18:23:33 | evan | ah i see. |
| 18:24:30 | dbussink | evan: the hydra crash? |
| 18:24:37 | evan | not on it yet |
| 18:24:38 | evan | shortly. |
| 18:25:35 | brixen | lulz (a = mock('nil')).should_not_receive(:method_missing).with(:<=>, b).and_return(nil) |
| 18:25:57 | brixen | I guess such code just looks dandy to someone |
| 18:26:01 | brixen | whoever wrote it |
| 18:26:04 | brixen | :'C |
| 18:26:19 | brixen | fortunately, I have a hefty napkin here for my tears of frustration |
| 18:27:27 | evan | :( |
| 20:01:13 | dbussink | evan: any luck? or working on something else? |
| 20:01:20 | evan | just got back from lunch |
| 20:01:32 | evan | yeah, trying to speed up Kernel#` a little |
| 20:02:32 | evan | shark is giving me really weird results |
| 20:08:33 | dbussink | evan: shark weirdness or perhaps pointer at a bigger issue? |
| 20:08:37 | dbussink | pointing |
| 20:09:10 | evan | well, this benchmark is running `echo 1` in a loop |
| 20:09:26 | evan | so shark shows me mainly kernel functions related to starting a process |
| 20:14:56 | evan | mmmm, ok, i figured it out. |
| 20:15:09 | evan | we always start ever command passed to `` under /bin/sh |
| 20:15:18 | evan | but MRI runs it directly if it can |
| 20:15:28 | evan | turns out thats a big performance difference. |
| 20:22:31 | Defiler | what does 'directly' mean for that? fork something minimal and then exec? |
| 20:22:44 | evan | fork + execl(2) |
| 20:22:57 | evan | well, execl(str) |
| 20:22:58 | evan | rather than |
| 20:23:06 | evan | execl("/bin/sh", "sh", "-c", str) |
| 20:23:18 | Defiler | gotcha |
| 20:39:38 | dbussink | evan: so adding that trick too? |
| 20:40:23 | evan | yep. |
| 20:51:17 | dbussink | evan: adding that file / line thing to a mutex is really nice :) |
| 20:51:31 | evan | :D |
| 20:51:38 | evan | yeah, helps debugging a bunch. |
| 20:54:41 | dbussink | evan: i see there's a lock around CompiledMethod::default_executor, isn't that a pretty big impact or is it not so bad? |
| 20:54:59 | evan | not bad at all |
| 20:55:06 | evan | default_executor is only used the first time a method is invoked |
| 20:58:28 | dbussink | evan: ah ok, and then replaced by something more specialized? |
| 20:59:03 | evan | yeah |
| 20:59:12 | evan | the execute_specialized in VMMethod |
| 20:59:15 | evan | to be precise. |
| 21:04:43 | dbussink | evan: ah, yeah, walking through it a bit |
| 21:05:17 | dbussink | evan: just playing around a bit to see what it does and why there were some recursive lockings occuring, just for my knowledge :) |
| 21:05:39 | evan | ok |
| 21:22:48 | boyscout | Speed up Kernel#` by using a specialized primitive - 7a928de - Evan Phoenix |
| 21:30:50 | dbussink | evan: can stuff like system() also benefit from this? |
| 21:31:00 | evan | could yes. |
| 21:31:15 | evan | we need to add a little more to spawn to tell it to not always redirect stdout |
| 21:31:26 | evan | to have it used in system() |
| 21:35:16 | dbussink | ah ok, but anyway, i'm off to be |
| 21:35:17 | dbussink | bed |
| 21:35:28 | evan | nite. |
| 21:35:28 | dbussink | evan: were you able to repro that crash with hydra or not? |
| 21:35:35 | evan | not when compiled with DEV=1 |
| 21:35:39 | evan | trying without now. |
| 21:35:45 | dbussink | hmm, i have it compiled with DEV=1 too :S |
| 21:36:30 | boyscout | CI: rubinius: 7a928de successful: 3515 files, 15106 examples, 42950 expectations, 0 failures, 0 errors |
| 21:38:58 | evan | dbussink: got it. |
| 21:39:18 | dbussink | evan: you can probably fix it in like 5 mins :P |
| 21:39:31 | evan | i've got a lot of practice |
| 21:39:32 | evan | :D |
| 21:39:49 | evan | i've made a career out of being the guy that fixes shit. |
| 21:40:20 | evan | dbussink: i'm going to start a screencast now |
| 21:40:28 | evan | so you can watch me debug it. |
| 21:41:02 | dbussink | evan: ah, cool :) |
| 21:41:06 | dbussink | evan: should blog that too |
| 21:41:12 | dbussink | would be pretty nice for people to watch |
| 21:44:50 | dbussink | evan: anyway, really night time! |
| 21:44:57 | evan | nite! |
| 21:48:46 | brixen | yay, screencasts |
| 22:01:55 | dwaite | screencasts would be neat |
| 22:47:35 | evan | yay! |
| 22:47:38 | evan | fixed the bug |
| 22:47:46 | evan | AND got the 30 minute screencast of me fixing it |
| 22:48:20 | brixen | awesome! |
| 22:48:32 | brixen | so, 1.9.2 -v gives 1.9.2p0 |
| 22:48:50 | evan | so in other words, the p is always there now. |
| 22:48:55 | brixen | I guess |
| 22:49:32 | evan | wow, this is funny. |
| 22:49:36 | evan | i'm watching the screencast |
| 22:54:26 | evan | oh rad |
| 22:54:30 | evan | only 175M |
| 22:54:54 | Defiler | can't wait to see it haha |
| 22:55:41 | evan | i'm uploading it to my public dropbox now. |
| 23:02:45 | evan | this is really quite enlightening. |
| 23:02:57 | evan | i never get to see/hear myself discover |
| 23:03:03 | evan | because i'm too busy discovering. |
| 23:12:51 | evan | almost there |
| 23:12:56 | evan | for those who are going to watch it |
| 23:13:06 | evan | you can skip minutes 21 to 26 if you want |
| 23:13:14 | evan | thats just us watching Rubinius compile and listening to music. |
| 23:13:24 | evan | by us i mean me and whoever is watching the video. |
| 23:14:08 | evan | http://dl.dropbox.com/u/384131/debugging-thread-list.mov |
| 23:15:14 | evan | :) |
| 23:15:16 | evan | that was fun! |
| 23:18:02 | brixen | sweet! |
| 23:30:45 | evan | anyone watching the video? |
| 23:31:37 | kronos_vano | evan, yes |
| 23:31:55 | evan | ok, so it's working |
| 23:31:56 | evan | good. |
| 23:32:44 | boyscout | Ignore recursive locking if the ManagedThread is null. - d97059f - Evan Phoenix (hydra) |
| 23:32:44 | boyscout | Remove a VM from the thread list while still GC dependent - 1ca43b1 - Evan Phoenix (hydra) |
| 23:49:23 | boyscout | Merge branch 'master' into hydra - edb5f4a - Evan Phoenix (hydra) |
| 23:51:59 | evan | HRM |
| 23:52:10 | evan | http://www.manning-sandbox.com/thread.jspa?threadID=39154 |
| 23:53:48 | Defiler | what is Lift? |
| 23:54:09 | Defiler | aah |
| 23:54:12 | Defiler | scala web framework |
| 23:54:43 | Defiler | Pollak also felt that it was very difficult to effectively conduct a skills or knowledge transfer between teams that were working on any given Rails project; the lack of static typing and other such developer conveniences meant that the team would need to document all their working practices and styles in minute detail to ensure that no understanding was lost by the new team. This was a huge draw on resources and added more time and bloat to the project li |
| 23:54:51 | Defiler | hilarious |
| 23:54:59 | Defiler | "This was a huge draw on resources and added more time and bloat to the project lifecycle than could easily be avoided. |
| 23:55:05 | Defiler | fox news meets technical books |