Show enters and exits. Hide enters and exits.
| 00:01:28 | kstephens | > ~/local/rubinius/trunk/bin/rbx -Xint -P problem/string_formatting.rb |
| 00:01:28 | kstephens | warmup: 10000000. |
| 00:01:28 | kstephens | Has been running for 2.5 hrs. |
| 00:01:50 | evan | you might want to turn down the number of iterations. |
| 00:02:34 | kstephens | ctrl-c does make it dump the profile, though. |
| 00:03:16 | evan | yep. |
| 00:04:07 | kstephens | I added the prof data to http://github.com/evanphx/rubinius/issues/issue/207 |
| 00:05:01 | evan | k |
| 00:05:03 | evan | thanks! |
| 00:05:12 | kstephens | np, ty |
| 00:05:37 | evan | I smell a String#% in the works |
| 00:05:41 | evan | perhaps on the plane tomorrow |
| 00:05:43 | kstephens | I'll try to take a look at String#% myself. |
| 00:05:55 | evan | a tuning |
| 00:05:57 | evan | that is. |
| 00:05:57 | evan | ok |
| 00:08:16 | evan | oinks. |
| 00:08:18 | evan | zoinks |
| 00:08:28 | evan | yeah, this is some... pretty inefficient code. |
| 00:08:39 | evan | like why the fuck is it using a hash for flags?! |
| 00:08:55 | evan | i think this is some really old wycats code |
| 00:09:33 | evan | yeah, this @flags thing feels very railsy. |
| 00:10:46 | evan | i'll bet moving everything in @flags to normal ivars would result in a big speedup. |
| 00:11:23 | kstephens | yea |
| 00:11:28 | kstephens | I was just thinking that |
| 00:11:54 | kstephens | or using @flags = default_flags.dup |
| 00:12:00 | evan | well that too |
| 00:12:01 | evan | yes. |
| 00:12:14 | evan | i'd prefer to delete @flags all together. |
| 00:12:20 | kronos_vano | brixen, About specs. I additing 3 cases in which old Array#hash is failed. I can break it in two "it do" blocks. |
| 00:12:22 | evan | it's not helping at all. |
| 00:14:10 | evan | feels like there are too many regexps matches too |
| 00:14:15 | brixen | kronos_vano: the idea is this: if one .should line fails, all .should lines should fail in the same example block |
| 00:14:41 | brixen | kronos_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:24 | brixen | kronos_vano: calculating #hash for fixnum and string is quite different I think |
| 00:16:11 | kronos_vano | evan, yep. we should avoid regexps. And like 26c73d4876f2c113 in case when is better to use integers, not strings. |
| 00:16:21 | kstephens | what if case @type |
| 00:16:21 | kstephens | when "e", "E", "f", "g", "G" |
| 00:16:21 | kstephens | Dispatched to methods based on @type and other flags? |
| 00:16:30 | kronos_vano | bad test writer :'( |
| 00:16:37 | kstephens | Since non-sizeds formats like "%s" are common. |
| 00:17:22 | kstephens | when "e", "E" creates garbage too. |
| 00:17:27 | brixen | kronos_vano: not at all, many people put too much in one example block |
| 00:17:57 | kronos_vano | brixen, I got you. I'll rewrite it tomorrow, ok? |
| 00:18:11 | brixen | kronos_vano: no problem |
| 00:20:45 | kronos_vano | unless val.respond_to?(:full_to_i) "full_to_i" oO |
| 00:21:48 | brixen | getoptlong.rb way to use masgn with constants, woot |
| 00:22:18 | evan | yeah |
| 00:22:18 | brixen | has antipathy for MRI's scrambled parse tree |
| 00:22:22 | evan | there is a lot of weirdness in this file |
| 00:38:25 | kstephens | evan: I'm working on sprintf.rb, I'll have something tomorrow. |
| 00:38:36 | evan | i can't wait! |
| 00:38:37 | evan | woo. |
| 00:38:43 | evan | no actually |
| 00:38:44 | evan | WOO! |
| 00:39:13 | kronos_vano | I 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:53 | brixen | kronos_vano: show me the code |
| 00:39:58 | brixen | maybe just missed the case |
| 00:40:13 | kronos_vano | defined?(Object.print) |
| 00:40:21 | brixen | that should be in there |
| 00:40:41 | brixen | [:defined, [:call, [:const, :Object], :print, [:arglist]]] |
| 00:41:05 | brixen | I should have left the sexp annotation comments in the specs |
| 00:41:19 | brixen | line 39 |
| 00:41:27 | brixen | it "returns 'method' if the method is defined" do |
| 00:41:27 | brixen | defined?(Kernel.puts).should == "method" |
| 00:41:27 | brixen | end |
| 00:41:31 | kronos_vano | i see |
| 00:41:51 | kronos_vano | in my case right result is nil |
| 00:42:02 | kronos_vano | because print is private |
| 00:42:09 | kronos_vano | for object |
| 00:42:19 | kronos_vano | *private method |
| 00:42:23 | kronos_vano | *Object |
| 00:42:24 | brixen | ah I guess we need another spec then |
| 00:42:31 | kronos_vano | yep |
| 00:42:49 | kronos_vano | another describe block? |
| 00:43:15 | brixen | no, I think just an it block |
| 00:43:27 | brixen | it "returns nil if the method is private" |
| 00:44:13 | brixen | evan: I cleaned up the constant AST nodes but I'll push later |
| 00:44:32 | brixen | headed to gym shortly |
| 00:44:34 | evan | cool. |
| 00:44:52 | kronos_vano | brixen, http://gist.github.com/327331 right? |
| 00:44:59 | brixen | need to fill some holes in the masgn with constants compiler specs too |
| 00:45:00 | kronos_vano | the method instead of method |
| 00:45:11 | kronos_vano | of course |
| 00:45:43 | brixen | kronos_vano: yeah, looks good with that fix |
| 00:45:53 | kronos_vano | good. |
| 00:54:10 | kronos_vano | I should tag the failing spec. Right? |
| 00:55:59 | evan | or fix it. |
| 00:56:19 | kronos_vano | =) |
| 00:56:30 | evan | otherwise, yes, tag. |
| 00:57:56 | boyscout | Update defined? spec: defined? for private class methods should return nil - 1e5a462 - Ivan Samsonov |
| 00:57:56 | boyscout | Tag failing defined? spec - 6b2531a - Ivan Samsonov |
| 01:03:11 | boyscout | CI: rubinius: 6b2531a successful: 3037 files, 12134 examples, 36496 expectations, 0 failures, 0 errors |
| 01:35:46 | boyscout | Don't use #sort! directly, a subclass can override it. - 6734497 - Evan Phoenix |
| 01:35:46 | boyscout | Fix Kernel.Float to be more restrictive - ad3b884 - Evan Phoenix |
| 01:35:46 | boyscout | Add more Kernel.Float specs - 7de9db6 - Evan Phoenix |
| 01:35:46 | boyscout | Fix String#unpack('M') - e849657 - Evan Phoenix |
| 01:35:46 | boyscout | Add multiline quoted-printable spec - c7142c3 - Evan Phoenix |
| 01:35:46 | boyscout | Remove redundent over overtesting specs - 18d4310 - Evan Phoenix |
| 01:35:47 | boyscout | raise NameError when hitting method_missing via a private send - 8220407 - Evan Phoenix |
| 01:35:47 | boyscout | Fix $! interactions with long return - 1b3689f - Evan Phoenix |
| 01:46:01 | boyscout | CI: rubinius: 1b3689f successful: 3037 files, 12133 examples, 36491 expectations, 0 failures, 0 errors |
| 06:51:00 | boyscout | Change the @message to @reason_message in Exception to avoid conflicts - 94ca065 - Evan Phoenix |
| 06:51:01 | boyscout | Cleanup and flesh out Exception#message specs - 8d5fb32 - Evan Phoenix |
| 06:51:01 | boyscout | Prune and quartine IO.new specs. IO.new is the devil. - e61eea0 - Evan Phoenix |
| 06:59:50 | boyscout | CI: rubinius: e61eea0 successful: 3037 files, 12099 examples, 36433 expectations, 0 failures, 0 errors |
| 07:18:04 | postmodern | evan, how is the rails3 + rubinius work? |
| 07:18:20 | postmodern | evan, have a second to look at a patch of mine for the build system |
| 07:37:10 | kronos_vano | postmodern, I think evan already sleep, just create a ticket. What about rails3: actionpack and activesupport pass all tests on rubinius |
| 07:37:45 | postmodern | kronos_vano, word |
| 07:38:01 | postmodern | kronos_vano, yeah there's already a ticket that brixen has in his queue |
| 07:38:12 | kronos_vano | =) |
| 07:38:28 | postmodern | kronos_vano, rubinius is getting exciting, can't wait to see what happens by the end of the month |
| 07:52:07 | boyscout | Small refactor for const_get/const_missing. - a6feef6 - Brian Ford |
| 07:52:07 | boyscout | Cleanup AST for constants. - 1b0c781 - Brian Ford |
| 07:52:07 | boyscout | Fixed masgn for constants. - e392d3e - Brian Ford |
| 07:52:07 | boyscout | Fixed defined?() for self sends. - 9b9e4ef - Brian Ford |
| 07:52:07 | boyscout | Updated compiler specs for defined?(). - f05322f - Brian Ford |
| 07:52:08 | boyscout | Quarantine more IO.new specs. - d96325b - Brian Ford |
| 07:52:27 | brixen | postmodern: we'll look at it tomorrow |
| 07:52:37 | postmodern | brixen, awesome, thank you |
| 07:52:39 | brixen | postmodern: evan and I are meeting up in SF |
| 07:52:45 | brixen | n/p |
| 07:53:06 | brixen | sleep for me, catch y'all later |
| 07:53:14 | postmodern | peace |
| 08:00:32 | boyscout | CI: rubinius: d96325b successful: 3037 files, 12073 examples, 36359 expectations, 0 failures, 0 errors |
| 14:33:59 | khaase | me again |
| 14:34:00 | khaase | http://gist.github.com/327915 |
| 14:34:59 | khaase | hmmm... just trying twice works wonders |
| 14:35:18 | khaase | so, never mind |
| 15:51:04 | rb2k | hey there. is the issue queue the right place to post gem incompatibilities? (e.g. http://github.com/evanphx/rubinius/issues/issue/201 ) ? |
| 15:51:12 | rb2k | or should I put that on the projects page itself |
| 15:51:22 | rb2k | (in this case: em-http-request) |
| 15:53:49 | kronos_vano | rb2k, It's ok |
| 15:53:55 | rb2k | cool |
| 16:49:13 | kstephens | does rubinius have a call site method cache? |
| 18:38:13 | BBHoss | getting a build error on master: https://gist.github.com/df2b10dafbd36ecca174 |
| 18:47:54 | BBHoss | this is on snow leopard |
| 18:55:08 | BBHoss | happens with the rc3 release too, any ideas? |
| 19:14:46 | BBHoss | seems to be working with the os x builtin llvm |
| 20:09:59 | kronos_vano | marcandre, around? |
| 20:10:12 | marcandre | hi! |
| 20:10:39 | kronos_vano | hi! |
| 20:10:46 | kronos_vano | What wrong this hash spec? |
| 20:11:02 | kronos_vano | Why only rubinius? |
| 20:11:15 | kronos_vano | I know about rubyspec mirror. |
| 20:11:42 | marcandre | I feel that the specs for Array#hash are that it must return the same value for two arrays that are equal. |
| 20:12:09 | marcandre | It is allowed to return the same hash for different arrays though. It's not optimal, but it's acceptable. |
| 20:12:35 | marcandre | So you can't really give any two arrays and say the hashes have to be different. |
| 20:12:55 | marcandre | Makes sense? |
| 20:13:19 | kronos_vano | Are you sure about "but it's acceptable"? |
| 20:13:42 | marcandre | Quite, but ask around :-) |
| 20:13:48 | marcandre | You are bound to have collisions anyways |
| 20:14:02 | marcandre | By collision I mean that x.hash == y.hash but x != y. |
| 20:14:28 | kronos_vano | I take this test from 1.8.7 test cases... |
| 20:14:36 | kronos_vano | hm... very intresting |
| 20:14:58 | marcandre | Really? Let me check. |
| 20:15:08 | kronos_vano | 1 sec |
| 20:16:07 | kronos_vano | marcandre, test/ruby/test_array.rb |
| 20:16:15 | kronos_vano | 735 line |
| 20:16:23 | marcandre | Oh, in MRI you mean |
| 20:16:44 | kronos_vano | yes |
| 20:16:52 | kronos_vano | :-) |
| 20:17:05 | marcandre | As 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:20 | marcandre | But Rubyspec can't force that down every implementation's throat... |
| 20:17:28 | kronos_vano | ok, ok I got you. np |
| 20:17:46 | maharg | no 32bit crc could possibly guarantee a lack of collisions |
| 20:17:47 | marcandre | That's why you should move it from the general rubyspec area to the private spec of Rubinius |
| 20:18:45 | marcandre | maharg: no Nbit would :-) |
| 20:19:53 | maharg | well, 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:22 | maharg | especially if you need it to be fast enough to use in a hash function |
| 20:20:38 | maharg | hash table implementation rather |
| 20:36:54 | kstephens | no hash function can guarantee non-collisions on an open domain. Closed domains are different story. |
| 20:39:40 | kstephens | rather: no hash function with a close range on a open domain can guarantee non-collisions. |
| 20:39:55 | kstephens | s/close/closed/ |
| 20:40:19 | kstephens | Since we are talking about the Fixnum range for #hash. |
| 20:49:46 | kstephens | For an example on closed domains see: http://www.gnu.org/software/gperf/ |
| 22:02:17 | rue | Correct, equality implies same hash but not vice versa. |
| 22:02:28 | rue | Hence Hash using #hash and #eql? |
| 22:58:02 | brixen | kronos_vano: we should take the [1,2].hash.should_not == [2,1].hash out completely |
| 22:58:24 | kronos_vano | brixen, may be just revert? |
| 22:58:29 | brixen | kronos_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:40 | brixen | kronos_vano: yes, revert that spec, please |
| 22:58:43 | kronos_vano | np |
| 23:00:47 | boyscout | Revert "Update spec for Array#hash: Add cases for same arrays with diffrent order" - d6c93cf - Ivan Samsonov |
| 23:06:05 | boyscout | CI: rubinius: d6c93cf successful: 3037 files, 12072 examples, 36356 expectations, 0 failures, 0 errors |