Index

Show enters and exits. Hide enters and exits.

00:30:05jakedouglashi
02:13:44boyscoutAllow IO.setup to be passed a numeric mode - 3c8751b - Jake Douglas
02:13:44boyscoutMake a File.open spec more sensible. Testing for an exception shouldn't rely on the return value of this block. - dea9a8c - Jake Douglas
02:13:44boyscoutRemove failing tags for some File specs. - 9fa8477 - Jake Douglas
02:22:19boyscoutCI: rubinius: 9fa8477 successful: 3498 files, 14402 examples, 42183 expectations, 0 failures, 0 errors
05:23:06boyscoutGeneralize AST grapher to accept other node types. - 8740ca3 - Brian Ford
05:23:06boyscoutSome fixes for File.open specs. - c43ba3e - Brian Ford
05:27:09jakedouglasbrixen: scary
05:28:27brixen?
05:29:33jakedouglasheh i just didn't understand at first.
05:29:44brixenah ok
05:30:12jakedouglashey uhm…theres a problem with the json gem + gc :(
05:30:23jakedouglasreally json gems fault i guess.
05:30:39brixenwhat's it do?
05:33:01boyscoutCI: rubinius: c43ba3e successful: 3498 files, 14402 examples, 42180 expectations, 0 failures, 0 errors
05:34:04jakedouglasit doesnt set the fields on one of it's structs to null when it allocates it. then it tries to create a new ruby object to assign to it, which triggers gc, which calls it's mark function, which calls rb_gc_mark_maybe with the field, and in some cases the garbage data of the unset field computes to appear as a capi handle
05:35:03jakedouglaswhich obviously causes an explosion
05:35:50brixenahh yeah, bad news
05:36:12brixenuninitialized data sucks
06:35:38jakedouglasyea.
06:46:37jakedouglasthe profiler seems to give me inconsistent results
09:21:27boyscoutFix MatchData#string returns a frozen copy of the match string - 2e4d754 - Jose Narvaez
09:21:28boyscoutRemove MatchData#string failing tags - 983d63d - Jose Narvaez
09:23:19dbussinkmorning
09:30:04boyscoutCI: rubinius: 983d63d successful: 3498 files, 14403 examples, 42182 expectations, 0 failures, 0 errors
13:07:47boyscoutStringIO#seek should raise IOError on closed stream - 1baf6f7 - Dirkjan Bussink
13:07:48boyscoutRemove tag for passing StringIO#seek spec - 06267f4 - Dirkjan Bussink
13:16:22boyscoutCI: rubinius: 06267f4 successful: 3498 files, 14404 examples, 42183 expectations, 0 failures, 0 errors
13:53:29boyscoutHandle frozen strings used for a StringIO - 4e0ac9f - Dirkjan Bussink
13:53:30boyscoutRemove tags for now passing StringIO specs - d0eab59 - Dirkjan Bussink
14:02:01boyscoutCI: rubinius: d0eab59 successful: 3498 files, 14410 examples, 42199 expectations, 0 failures, 0 errors
15:57:02dbussinkugh, in some places mri is pretty retarded
15:57:11dbussink "Hello".freeze.gsub!(/e/, "e") => TypeError
15:57:22dbussinkbut "Hello".freeze.gsub!(/e/) { "e" } results in a RuntimeError
15:57:43dbussinkbrixen: is that something we should support completely too?
16:00:02DefilerI saw that ticket. Lame. :(
16:01:35dbussinkDefiler: i wanted to fix some specs to changed it to runtimerror, then it blew up someplace else
16:01:43dbussinkeven took me some time to see the actual difference :P
16:01:57dbussinkDefiler: is there an mri ticket for it then?
16:03:30boyscoutSocket#bind should return the error code - d46ef17 - Dirkjan Bussink
16:03:30boyscoutRemove tags for passing Socket#bind specs - ec26f57 - Dirkjan Bussink
16:12:21boyscoutCI: rubinius: ec26f57 successful: 3498 files, 14412 examples, 42203 expectations, 0 failures, 0 errors
16:13:12Defilerdbussink: I just saw the rbx one.. not one fo rmri.
16:13:17Defiler'for mri', sorry
16:13:47dbussinkDefiler: huh, i don't seen an rbx ticket for it?
16:14:29Defilerhttp://github.com/evanphx/rubinius/issues/issue/427
16:14:34Defilerthat one
16:14:47Defilersorry, just read the preview in my inbox.. guess that's related but not the same
16:15:38dbussinkDefiler: ah ok, yeah, that's a different one :)
17:52:05boyscoutRaise ArgumentError if too much data is to be consumed in Marshal.load - 8dc9e2a - Dirkjan Bussink
17:52:05boyscoutRemove tag for now passing Marshal.load spec - 92ff653 - Dirkjan Bussink
17:59:27boyscoutRemove tag for passing BigDecimal#power spec - ef749f0 - Dirkjan Bussink
18:00:44boyscoutCI: rubinius: 92ff653 successful: 3498 files, 14413 examples, 42204 expectations, 0 failures, 0 errors
18:11:09boyscoutCI: rubinius: ef749f0 successful: 3498 files, 14414 examples, 42214 expectations, 0 failures, 0 errors
18:13:08boyscoutRemove tags for passing Object#to_yaml specs - bf7c6f0 - Dirkjan Bussink
18:13:17jakedouglasreally slaying them today huh
18:14:52dbussinkjakedouglas: hehe, just killing some easy stuff
18:15:10dbussinkjakedouglas: btw, i think it's a good idea to write that json thing up in an issue
18:15:14dbussinkso it's not forgotten
18:15:39jakedouglasi wont forget, it happens every 4-5 times i run my tests :)
18:16:11jakedouglasreally it just requires a patch to evan's json gem or something i guess
18:18:41dbussinkjakedouglas: well, it's not that you don't forget, but that it's fixed
18:18:52dbussinkjakedouglas: evan could apply it to his json fork
18:19:15jakedouglasyea. ill write something today or tomorrow.
18:19:38jakedouglasdo you know anything about how the profiler works?
18:19:42jakedouglasim getting some strange results
18:20:55dbussinkjakedouglas: can you reproduce those results?
18:21:01dbussinkjakedouglas: and what's weird about them?
18:21:44boyscoutCI: rubinius: bf7c6f0 successful: 3498 files, 14416 examples, 42216 expectations, 0 failures, 0 errors
18:28:20jakedouglasyea
18:28:23jakedouglaswhat im seeing is that
18:28:34jakedouglasfor the same test suite
18:29:07jakedouglasthe top profile result, taking ~28% of the time, its either FFI::Platform::POSIX.memset or FFI::Platform::POSIX.stat
18:29:26jakedouglasits one or the other, but the other is no where to be seen
18:30:11jakedouglasi dont know anything in the test suite that would change between runs that would cause a shift of 28% of the execution time from one thing to another
18:30:38jakedouglasim just supposed to use -Xprofile right?
18:35:06jakedouglaslet me gist an example.
18:36:54jakedouglashttp://gist.github.com/489762
18:42:29dbussinkjakedouglas: is this code we could run too?
18:42:46dbussinkjakedouglas: otherwise you should ask evan or brixen if they can check it out
18:43:07jakedouglashmm. unfortunately not yet
18:43:55dbussinkjakedouglas: what does including -Xprofiler.graph give you?
18:44:03jakedouglaslet me try.
18:48:47jakedouglashow do i read it?
18:51:25dbussinkjakedouglas: well, you can see where calls come from etc.
18:53:34jakedouglasis the callee the one more to the left of the others?
18:56:01dbussinkjakedouglas: do you have a gist?
18:56:08jakedouglasyea. just a sec.
18:57:41jakedouglashttp://gist.github.com/489786
18:58:38jakedouglasi kind of understand it
18:59:16dbussinkjakedouglas: what you see in one block is the line that it's about, the callee's above it
18:59:23dbussinkand the deeper stack beneath
18:59:30dbussinkand the numbers also cross reference
18:59:46jakedouglashmm
19:00:12dbussinkjakedouglas: here you see it spends a lot of time in memset
19:00:24dbussinkbeing called from the FFI::Memorypointer constructor
19:00:44jakedouglasso the confusing result was probably something about memset being called during stat?
19:01:22dbussinkjakedouglas: yeah, that comes from File::Stat
19:01:27dbussinkyou can see that in [35]
19:02:03jakedouglasah, now i see it
19:02:04jakedouglasokay
19:02:42dbussinkjakedouglas: so improving stat performance should help you quite a bit :)
19:03:00jakedouglasindeed
19:03:29jakedouglasthanks
19:14:32dbussinkjakedouglas: hmm, but the profile still looks off though :S
19:14:59dbussinkjakedouglas: if i compare it to a profile of benchmark/rubinius/bm_stat.rb in the rbx tree
19:15:33jakedouglasdarn.
19:19:40dbussinkjakedouglas: also memset isn't as high up there
19:19:44dbussinkas in your example
19:19:58jakedouglasyea.
19:33:21jakedouglasdo i have to do something special other than 'rake build' when i change things under kernel/platform?
19:33:34jakedouglasi get errors
19:33:36jakedouglasAn exception occurred loading the compiler
19:33:36jakedouglas no method 'suffix?' on nil:NilClass. (NoMethodError)
19:34:39dbussinkjakedouglas: rake build should usually do the trick
19:34:53jakedouglashmm. not doing it for me.
19:35:16jakedouglasim not doing anything special, not sure why its breaking
19:35:24jakedouglasif i undo my changes and rake build it works again
19:36:25dbussinkjakedouglas: then it must be something in your changes ;)
19:36:34jakedouglaswell duh
20:11:19dbussinkjakedouglas: found it?
20:11:31jakedouglasyea i got it to built
20:11:41jakedouglasthe profile stuff doest make any senes though
20:11:42jakedouglassense
20:11:48jakedouglasi mean
20:11:58jakedouglasthe stat benchmark doesnt run any faster if i get rid of the memset
20:14:01Defilerwell, it's a sampling profiler
20:14:06Defilerso you can run into strange outcomes like that
20:14:21Defilerbut that is pretty weird yeah
20:15:07jakedouglasand POSIX.stat doesn't even show up on the one from the test suite, but it dominates the benchmark
20:17:04dbussinkDefiler: isn't the sampling profiler disabled for now?
20:17:13dbussinkafaik -Xprofile doens't run a sampling profiler
20:17:31Defileroh, what is it these days then?
20:17:41dbussinkperformance different is also too different i think for just a sampling profiler
20:17:49Defileraah, ok
20:20:07jakedouglasis confused
20:24:14dbussinkjakedouglas: you know what a sampling profiler is?
20:25:07jakedouglasyea
20:25:28jakedouglasim just confused about my results
20:42:48jakedouglasnow i run again on the test suite and instead of POSIX.memset it shows POSIX.stat, as the big one...
20:44:32jakedouglas(with the profiler.graph)
20:46:33dbussinkjakedouglas: should probably dig into this with evan
20:46:41jakedouglasok.