Index

Show enters and exits. Hide enters and exits.

00:01:28kstephens > ~/local/rubinius/trunk/bin/rbx -Xint -P problem/string_formatting.rb
00:01:28kstephenswarmup: 10000000.
00:01:28kstephensHas been running for 2.5 hrs.
00:01:50evanyou might want to turn down the number of iterations.
00:02:34kstephensctrl-c does make it dump the profile, though.
00:03:16evanyep.
00:04:07kstephensI added the prof data to http://github.com/evanphx/rubinius/issues/issue/207
00:05:01evank
00:05:03evanthanks!
00:05:12kstephensnp, ty
00:05:37evanI smell a String#% in the works
00:05:41evanperhaps on the plane tomorrow
00:05:43kstephensI'll try to take a look at String#% myself.
00:05:55evana tuning
00:05:57evanthat is.
00:05:57evanok
00:08:16evanoinks.
00:08:18evanzoinks
00:08:28evanyeah, this is some... pretty inefficient code.
00:08:39evanlike why the fuck is it using a hash for flags?!
00:08:55evani think this is some really old wycats code
00:09:33evanyeah, this @flags thing feels very railsy.
00:10:46evani'll bet moving everything in @flags to normal ivars would result in a big speedup.
00:11:23kstephensyea
00:11:28kstephensI was just thinking that
00:11:54kstephensor using @flags = default_flags.dup
00:12:00evanwell that too
00:12:01evanyes.
00:12:14evani'd prefer to delete @flags all together.
00:12:20kronos_vanobrixen, About specs. I additing 3 cases in which old Array#hash is failed. I can break it in two "it do" blocks.
00:12:22evanit's not helping at all.
00:14:10evanfeels like there are too many regexps matches too
00:14:15brixenkronos_vano: the idea is this: if one .should line fails, all .should lines should fail in the same example block
00:14:41brixenkronos_vano: if that is not the case, then the example block has more than one "aspect" of behavior and it should be split
00:15:24brixenkronos_vano: calculating #hash for fixnum and string is quite different I think
00:16:11kronos_vanoevan, yep. we should avoid regexps. And like 26c73d4876f2c113 in case when is better to use integers, not strings.
00:16:21kstephenswhat if case @type
00:16:21kstephens when "e", "E", "f", "g", "G"
00:16:21kstephensDispatched to methods based on @type and other flags?
00:16:30kronos_vanobad test writer :'(
00:16:37kstephensSince non-sizeds formats like "%s" are common.
00:17:22kstephenswhen "e", "E" creates garbage too.
00:17:27brixenkronos_vano: not at all, many people put too much in one example block
00:17:57kronos_vanobrixen, I got you. I'll rewrite it tomorrow, ok?
00:18:11brixenkronos_vano: no problem
00:20:45kronos_vanounless val.respond_to?(:full_to_i) "full_to_i" oO
00:21:48brixengetoptlong.rb way to use masgn with constants, woot
00:22:18evanyeah
00:22:18brixenhas antipathy for MRI's scrambled parse tree
00:22:22evanthere is a lot of weirdness in this file
00:38:25kstephensevan: I'm working on sprintf.rb, I'll have something tomorrow.
00:38:36evani can't wait!
00:38:37evanwoo.
00:38:43evanno actually
00:38:44evanWOO!
00:39:13kronos_vanoI just read defined? specs (keyword when called with a method name). Here are: without receiver, module as receiver, local var... etc. Why here is not Class as receiver?
00:39:53brixenkronos_vano: show me the code
00:39:58brixenmaybe just missed the case
00:40:13kronos_vanodefined?(Object.print)
00:40:21brixenthat should be in there
00:40:41brixen[:defined, [:call, [:const, :Object], :print, [:arglist]]]
00:41:05brixenI should have left the sexp annotation comments in the specs
00:41:19brixenline 39
00:41:27brixen it "returns 'method' if the method is defined" do
00:41:27brixen defined?(Kernel.puts).should == "method"
00:41:27brixen end
00:41:31kronos_vanoi see
00:41:51kronos_vanoin my case right result is nil
00:42:02kronos_vanobecause print is private
00:42:09kronos_vanofor object
00:42:19kronos_vano*private method
00:42:23kronos_vano*Object
00:42:24brixenah I guess we need another spec then
00:42:31kronos_vanoyep
00:42:49kronos_vanoanother describe block?
00:43:15brixenno, I think just an it block
00:43:27brixenit "returns nil if the method is private"
00:44:13brixenevan: I cleaned up the constant AST nodes but I'll push later
00:44:32brixenheaded to gym shortly
00:44:34evancool.
00:44:52kronos_vanobrixen, http://gist.github.com/327331 right?
00:44:59brixenneed to fill some holes in the masgn with constants compiler specs too
00:45:00kronos_vanothe method instead of method
00:45:11kronos_vanoof course
00:45:43brixenkronos_vano: yeah, looks good with that fix
00:45:53kronos_vanogood.
00:54:10kronos_vanoI should tag the failing spec. Right?
00:55:59evanor fix it.
00:56:19kronos_vano=)
00:56:30evanotherwise, yes, tag.
00:57:56boyscoutUpdate defined? spec: defined? for private class methods should return nil - 1e5a462 - Ivan Samsonov
00:57:56boyscoutTag failing defined? spec - 6b2531a - Ivan Samsonov
01:03:11boyscoutCI: rubinius: 6b2531a successful: 3037 files, 12134 examples, 36496 expectations, 0 failures, 0 errors
01:35:46boyscoutDon't use #sort! directly, a subclass can override it. - 6734497 - Evan Phoenix
01:35:46boyscoutFix Kernel.Float to be more restrictive - ad3b884 - Evan Phoenix
01:35:46boyscoutAdd more Kernel.Float specs - 7de9db6 - Evan Phoenix
01:35:46boyscoutFix String#unpack('M') - e849657 - Evan Phoenix
01:35:46boyscoutAdd multiline quoted-printable spec - c7142c3 - Evan Phoenix
01:35:46boyscoutRemove redundent over overtesting specs - 18d4310 - Evan Phoenix
01:35:47boyscoutraise NameError when hitting method_missing via a private send - 8220407 - Evan Phoenix
01:35:47boyscoutFix $! interactions with long return - 1b3689f - Evan Phoenix
01:46:01boyscoutCI: rubinius: 1b3689f successful: 3037 files, 12133 examples, 36491 expectations, 0 failures, 0 errors
06:51:00boyscoutChange the @message to @reason_message in Exception to avoid conflicts - 94ca065 - Evan Phoenix
06:51:01boyscoutCleanup and flesh out Exception#message specs - 8d5fb32 - Evan Phoenix
06:51:01boyscoutPrune and quartine IO.new specs. IO.new is the devil. - e61eea0 - Evan Phoenix
06:59:50boyscoutCI: rubinius: e61eea0 successful: 3037 files, 12099 examples, 36433 expectations, 0 failures, 0 errors
07:18:04postmodernevan, how is the rails3 + rubinius work?
07:18:20postmodernevan, have a second to look at a patch of mine for the build system
07:37:10kronos_vanopostmodern, I think evan already sleep, just create a ticket. What about rails3: actionpack and activesupport pass all tests on rubinius
07:37:45postmodernkronos_vano, word
07:38:01postmodernkronos_vano, yeah there's already a ticket that brixen has in his queue
07:38:12kronos_vano=)
07:38:28postmodernkronos_vano, rubinius is getting exciting, can't wait to see what happens by the end of the month
07:52:07boyscoutSmall refactor for const_get/const_missing. - a6feef6 - Brian Ford
07:52:07boyscoutCleanup AST for constants. - 1b0c781 - Brian Ford
07:52:07boyscoutFixed masgn for constants. - e392d3e - Brian Ford
07:52:07boyscoutFixed defined?() for self sends. - 9b9e4ef - Brian Ford
07:52:07boyscoutUpdated compiler specs for defined?(). - f05322f - Brian Ford
07:52:08boyscoutQuarantine more IO.new specs. - d96325b - Brian Ford
07:52:27brixenpostmodern: we'll look at it tomorrow
07:52:37postmodernbrixen, awesome, thank you
07:52:39brixenpostmodern: evan and I are meeting up in SF
07:52:45brixenn/p
07:53:06brixensleep for me, catch y'all later
07:53:14postmodernpeace
08:00:32boyscoutCI: rubinius: d96325b successful: 3037 files, 12073 examples, 36359 expectations, 0 failures, 0 errors
14:33:59khaaseme again
14:34:00khaasehttp://gist.github.com/327915
14:34:59khaasehmmm... just trying twice works wonders
14:35:18khaaseso, never mind
15:51:04rb2khey there. is the issue queue the right place to post gem incompatibilities? (e.g. http://github.com/evanphx/rubinius/issues/issue/201 ) ?
15:51:12rb2kor should I put that on the projects page itself
15:51:22rb2k(in this case: em-http-request)
15:53:49kronos_vanorb2k, It's ok
15:53:55rb2kcool
16:49:13kstephensdoes rubinius have a call site method cache?
18:38:13BBHossgetting a build error on master: https://gist.github.com/df2b10dafbd36ecca174
18:47:54BBHossthis is on snow leopard
18:55:08BBHosshappens with the rc3 release too, any ideas?
19:14:46BBHossseems to be working with the os x builtin llvm
20:09:59kronos_vanomarcandre, around?
20:10:12marcandrehi!
20:10:39kronos_vanohi!
20:10:46kronos_vanoWhat wrong this hash spec?
20:11:02kronos_vanoWhy only rubinius?
20:11:15kronos_vanoI know about rubyspec mirror.
20:11:42marcandreI feel that the specs for Array#hash are that it must return the same value for two arrays that are equal.
20:12:09marcandreIt is allowed to return the same hash for different arrays though. It's not optimal, but it's acceptable.
20:12:35marcandreSo you can't really give any two arrays and say the hashes have to be different.
20:12:55marcandreMakes sense?
20:13:19kronos_vanoAre you sure about "but it's acceptable"?
20:13:42marcandreQuite, but ask around :-)
20:13:48marcandreYou are bound to have collisions anyways
20:14:02marcandreBy collision I mean that x.hash == y.hash but x != y.
20:14:28kronos_vanoI take this test from 1.8.7 test cases...
20:14:36kronos_vanohm... very intresting
20:14:58marcandreReally? Let me check.
20:15:08kronos_vano1 sec
20:16:07kronos_vanomarcandre, test/ruby/test_array.rb
20:16:15kronos_vano735 line
20:16:23marcandreOh, in MRI you mean
20:16:44kronos_vanoyes
20:16:52kronos_vano:-)
20:17:05marcandreAs I said in my comments, it's perfectly ok to say "our implementation will insure that these two arrays don't have the same hash"
20:17:20marcandreBut Rubyspec can't force that down every implementation's throat...
20:17:28kronos_vanook, ok I got you. np
20:17:46mahargno 32bit crc could possibly guarantee a lack of collisions
20:17:47marcandreThat's why you should move it from the general rubyspec area to the private spec of Rubinius
20:18:45marcandremaharg: no Nbit would :-)
20:19:53mahargwell, obviously, but I'm using a loose form of guarantee. In the sense that a cryptographic hash function (sha1, etc) 'guarantees' it. At 32 bits you're not even pretending
20:20:22mahargespecially if you need it to be fast enough to use in a hash function
20:20:38maharghash table implementation rather
20:36:54kstephensno hash function can guarantee non-collisions on an open domain. Closed domains are different story.
20:39:40kstephensrather: no hash function with a close range on a open domain can guarantee non-collisions.
20:39:55kstephenss/close/closed/
20:40:19kstephensSince we are talking about the Fixnum range for #hash.
20:49:46kstephensFor an example on closed domains see: http://www.gnu.org/software/gperf/
22:02:17rueCorrect, equality implies same hash but not vice versa.
22:02:28rueHence Hash using #hash and #eql?
22:58:02brixenkronos_vano: we should take the [1,2].hash.should_not == [2,1].hash out completely
22:58:24kronos_vanobrixen, may be just revert?
22:58:29brixenkronos_vano: because that is not generally true, as discussed above, and while true for one case, the spec suggests it's generally true
22:58:40brixenkronos_vano: yes, revert that spec, please
22:58:43kronos_vanonp
23:00:47boyscoutRevert "Update spec for Array#hash: Add cases for same arrays with diffrent order" - d6c93cf - Ivan Samsonov
23:06:05boyscoutCI: rubinius: d6c93cf successful: 3037 files, 12072 examples, 36356 expectations, 0 failures, 0 errors