Index

Show enters and exits. Hide enters and exits.

00:00:09brixenhaha, no surprise :)
00:01:21brixenkronos_vano: are you on twitter?
00:01:31kronos_vanoyep
00:01:37brixennick?
00:01:46kronos_vanohttp://twitter.com/kronos_vano
00:01:51brixenhah
00:01:59kronos_vano:D
00:02:00brixenwhy don't you make hard for me, eh?
00:03:04brixenhttp://twitter.com/brixen/status/14065602684
00:03:10brixenkronos_vano: pressure is on! :)
00:03:18kronos_vanosuperstar
00:03:19kronos_vano:D
00:03:22brixenheh
00:03:33kronos_vanobrixen, Do you see #292 ?
00:03:54brixenyeah
00:04:04kronos_vanoand?
00:04:16brixenI haven't looked into it
00:04:21brixenprobably easy fix
00:04:27kronos_vanoI'm about http://gist.github.com/402214
00:04:51brixenah yeah, just saw it
00:05:02brixenspec needs to be split, but looks fine
00:05:52brixenspec needs to be separate commit, I mean
00:07:21kronos_vanoOf course. Just it is more easy to review spec & code in one patch
00:07:50brixensure
00:16:19slavabrixen: why do you put all spec changes in separate commits?
00:17:59kronos_vanoslava, It is more simple to pull spec change into rubyspec.
00:18:24slavamakes sense
00:23:18boyscoutSpec for module: Module.include?(Module) should always be false - 9634d5c - Ivan Samsonov
00:23:19boyscoutFix edge case for Module#include?. Closes #292. - d3efd7b - Ivan Samsonov
00:23:37slavatime for rbx 1.0.1?
00:24:02brixenslava: probably monday!
00:25:21brixenthe time between a 1.0.0 and 1.0.1 is proportional to the size of your llvm context
00:25:26brixenor something like that
00:29:54slavaheh
00:31:07boyscoutCI: rubinius: d3efd7b successful: 3457 files, 13597 examples, 41217 expectations, 0 failures, 0 errors
01:18:25kronos_vano#303 :/
01:18:48postmodernhey thanks for resolving that module.include? issue so fast
01:18:55postmoderni got plenty more thought :)
01:18:57postmodern*though
01:19:16postmoderni have a non-duplicatable issue with bundler and yard
01:19:19postmodernwhen i run rake spec
01:19:41postmodernhttp://pastie.org/962149
01:21:53postmodernthis appears to happen on most of my jeweler + bundler + yard projects
02:56:04brixensince when is a Set a sorted data structure?
02:56:28brixenthat's a SortedSet
04:18:19postmodernbrixen, haha, yeah idk
04:18:31postmodernbrixen, i changed those specs to use =~ to get around it
04:36:00postmodernwhats up with FFI on rubinius
04:36:11postmodernit fails like crazy when i attempt to run the specs for ffi-udis86
05:09:08brixenpostmodern: ruby-ffi deviated from the API that rubinius implemented
05:09:25brixenwe have not yet implemented that deviant api
05:09:40brixenbut once evan decides what he will or won't support, we will
05:09:42postmodernbrixen, basic things like uint16 type are missing
05:09:45brixenwhich should be very soon
05:09:50postmoderncool cool
05:09:58postmodernyeah it would be nice if there was a unified FFI API
05:10:05postmodernthat all imps had to support
05:10:06brixenthere once was
05:10:19brixenand we hope there will be again
05:10:23brixensoon :)
05:10:23postmodernyes back in the days of middle earth
05:10:28brixenheh yeah
05:10:46postmoderngot pretty much half of my code passing specs on 1.0
05:10:48postmodernso that's good
05:10:59brixenthat's awesome
05:11:07brixenI'm working on the Array subclass issue
05:11:11brixenneed to write a bunch of specs
05:11:38brixenthe loading .rbc requires some thought
05:11:58brixentechnically, #require should not load a .rbc file
05:12:22postmodernit could be something weird YARD is doing
05:12:23brixenie, #require only loads .rb files
05:12:31postmodernthey load plugins using some Dir[] globbing
05:12:32brixenit's probably globbing to broadly
05:12:39postmodernbut that should never hit core_ext/*
05:12:40brixenyeah, that's what I guessed
05:12:44brixenhmm
05:12:49postmodernit's a weird one
05:13:02brixenit shouldn't glob for other than .rb unless it is using #load
05:14:00brixenand again, load should only load Ruby source files
05:14:18brixenif you try to #load an ext, you get an exception
05:14:24brixensame should hold for .rbc files
05:14:41brixenI'll discuss with evan, but I'm against allowing loading .rbc files directly
05:17:04postmodernbrixen, http://github.com/evanphx/rubinius/issues/#issue/305
05:17:06postmodernbrixen, ah ha
05:18:45brixenhmm
05:19:11brixenyeah, that's a pretty broken glob
05:19:23brixenamazing the stuff that just works by a prayer
05:20:38brixenwhy the hell would someone write: require file.gsub(/\.rb$/, '') ?
05:20:43brixenthat is so funny
05:21:52postmodernno clue
05:22:03postmodernalso the new style is to use chomp
05:22:07postmoderninstead of gsub
05:22:28dkubbheh, as I mentioned in #datamapper, I would probably not even bother with that :P
05:22:31brixenum, you have a .rb file, why do anything but require it?
05:23:07postmodernyeah
05:23:17postmodernalso the Dir.glob should do *.rb instead of just *
05:23:28brixenbasically, you chop off .rb so that #require can go through some serious work to put it back on
05:23:48dkubbalthough in other cases I would much rather use string.chomp('.rb') than string.gsub(/\.rb$/, '') (why gsub too, sub would work just as well in this case)
05:24:00brixenwhy chomp anything?!
05:24:10dkubboh I was talking about in other cases.. nothing at all related to this
05:24:17postmodernis require normally cleaver about detecting .rb?
05:24:22dkubbI've had cases where I needed to strip the end of a string by some pattern
05:24:49brixenpostmodern: #require can only load 2 things: Ruby source and C exts
05:24:54postmodernah
05:25:03postmodernok i've notified argv[0]
05:25:05brixenif you don't give it a file ext, it has to search for one
05:25:28brixenand the only Ruby file it will load is one with a .rb ext
05:25:34brixenperiod, end of story
05:25:48brixen#load will load a Ruby source file with any ext
05:25:56brixenbut only a Ruby source file
05:29:06postmodernthere's probably a reason for globbing core_ext
05:29:15postmodernbut i would normally just make a core_ext.rb file that loads everything
05:29:18postmodernand maintain that
05:31:48brixenI definitely prefer explicit over implicit
05:32:03brixenthe glob is not unreasonable, but it should only glob .rb if it's going to use #require
05:32:08brixenand it should just require the file
05:33:10postmodernforked and changed
05:33:29brixensweet :)
05:37:31postmodernstill im a bit confused
05:37:35postmodernif it was gsubing off .rb
05:38:07postmodernhow would "require 'yard/core_ext/symbol_hash'" end up loading the .rbc version
05:38:49dkubbgsub(/\.rb$/, '') won't match anything.rbc
05:38:59postmoderndurp
05:39:00brixenthe * would
05:39:14brixenbut yes, the gsub would be a noop on that
05:40:44postmodernand sent
06:09:10postmodernbrixen, and someone pulled in the commit
06:09:17postmodernbrixen, edge yard should work now
06:09:17brixencool beans
06:09:21brixennice
06:09:47brixennow if ppl would quit writing very stupid subclasses of Array, I'd be much happier
06:10:22brixenit's like, "polymophism, what's that?" :(
06:10:33brixenwell, polymorphism, but same diff :)
06:10:36postmoderni've done it before, and it's kind of hard actually
06:11:10brixenwe can't write Array to be nice to your subclass if you break Array's contracts
06:11:17postmodernwow someone needs to look into running YARD specs on rubinius
06:11:21postmodernthis one spec just hangs
06:11:21brixenbecause we can't dispatch polymorphically and hit your methods
06:11:26postmodernYARD::CodeObjects::Base#relative_path
06:11:27brixenwe have to work around your methods
06:12:00dkubbwhenever I find myself subclassing a ruby core class I usually change it to use composition.. I rarely need the full richness of an Array
06:12:15brixendkubb: yes, that's another huge issue
06:12:46dkubbI only did it once where I actually did subclass Array for DataMapper, and I made sure all the original methods worked, and it sucked to get right
06:12:53brixensadly, Ruby has semantics that are purely due to MRI's implementation
06:13:00brixenand it really impoverishes the language
06:13:14brixenbecause it let's really crappy architecture live
06:13:49brixener lets
06:14:00dkubbbrixen: I saw the Liskov tweet earlier ;)
06:14:06brixenheh
06:14:08brixenyeah
06:14:17brixenI'm hacking up Array right now
06:14:20brixenand it's making me sad
06:14:49brixenbecause one of the shitty things about MRI Array and Hash is that you *can't* subclass it correctly when you need to
06:15:01brixensometimes you get an Array and sometimes a MyArray
06:15:06brixenand that's just fucked
06:15:12brixenfrom an OO perspective
06:15:15brixenle sigh :(
06:16:24dkubbwhen I was implementing Collection for DM, I wished that there was a shared spec I could use to test my code to see if it implemented Array's interface perfectly
06:16:55dkubbI've been thinking lately in my other projects that anytime I have a class I expect to be inherited, I'll put it's specs into shared specs and make sure all the subclasses pass with those too
06:17:14brixenoh, but there is! :)
06:17:20dkubboh :D
06:17:24brixenrubyspec uses new_array helper
06:17:29postmodernfor the low low price of 39.99
06:17:33brixenoh wait, shit, I only did that for Hash
06:17:41brixenbut I plan on doing it for Array too!
06:17:45dkubbcool
06:17:52brixenyou should have bothered me :)
06:18:02dkubbI will definately give it a try
06:18:21brixenI just need to audit the specs for everywhere it uses a literal Array in the Array specs
06:18:26dkubbI worked really hard to make sure it worked the same as Array, but I'd bet there are still some edge cases I didn't cover
06:18:30brixenthen you write your own #new_array and run them
06:18:55brixenI used this effectively to implement a half dozen different Hash classes
06:19:01brixento test perf characteristics
06:19:05brixenworked well
06:19:19brixenbut I have to edit the Array specs first
06:23:05postmodernThere was a LoadError while evaluating yard.gemspec.
06:23:05postmodernDoes it try to require a relative path? That doesn't work in Ruby 1.9.
06:23:10postmodernhmm looks like there's more issues with YARD
06:23:24postmodernor bundler + yard on rubinius
06:54:24slavahi brixen
08:04:30fbuilesvbrixen: ping
09:47:51dbussinkfbuilesv: why does sinatra want to load win32api? :)
09:49:02fbuilesvdbussink: no idea of what's going on there, I gave a quick look at Sinatra's source and found nothing, but it only happens with that lib :(
09:49:14fbuilesvmaybe it's just that I'm sleepy at 5am and missing something
09:50:21dbussinkfbuilesv: that's weird, i just tried a require 'sinatra' in an irb session and it worked fine
09:51:05dbussinkfbuilesv: ah, wait, you added -vd to it i see
09:51:30fbuilesvdbussink: it works in an irb session here too, but when I try to run a script (or just require 'sinatra') it fails.
09:51:59dbussinkfbuilesv: because if i run it with mri with -vd there are a bunch of errors whizzing by too
09:52:01fbuilesvnot sure what the loader's trying to bring up (which reminds me, rbx could use a stub for Win32API) :)
09:52:32dbussinkvery similar errors actually
09:53:01fbuilesvdbussink: same here but it does start
09:53:03dbussinkfbuilesv: https://gist.github.com/acf0eae2bcc2ad818bdc
09:53:15dbussinktrue, but that probably means those errors aren't related to the problem :)
09:53:26fbuilesvyup
09:53:31fbuilesvgood point.
09:54:14fbuilesvdbussink: can ya run reproduce the error with any simple Sinatra app tho? I can't get it to load anything.
09:55:12dbussinkfbuilesv: i also see it here that it just exits
09:55:17dbussinkno error / warnings or whatever
09:55:33fbuilesvdbussink: ya, that's what's weird, I ended up doing -vd to see what was going wrong.
09:58:31fbuilesvdbussink: I'm off to bed now, I'll try to run this through the debugger tomorrow and see what I can come up with
09:58:32fbuilesvttyl.
09:58:42dbussinkfbuilesv: i've found some initial stuff
09:58:51dbussinkseems like Application.run? returns false
09:58:51fbuilesvdbussink: what are you seeing?
09:59:27dbussinkfbuilesv: that method is defined through some meta programming, probably goes wrong there
10:01:39dbussinkfbuilesv: if you look at gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1009
10:01:44dbussinkthat metadef stuff
10:01:50dbussinkthat probably trips something up
10:02:08fbuilesvdbussink: you got latest version? I got a "subclass.reset!" there.
10:02:15postmodernif a ruby file is above 1k lines, something is probably up
10:02:19dbussinkfbuilesv: i have 1.0
10:02:43fbuilesvdbussink: I'm running head but I see the #metadef you m ention
10:02:59dbussinkfbuilesv: ah ok, yeah, well, i guess there something going wrong there
10:10:43fbuilesvdbussink: I think it's borking the caller_files array. On the good side of things, I think I just found another bug with this. C-c won't stop think until you actually make a request to that port.
10:11:19dbussinkfbuilesv: what is happening to that array?
10:13:34fbuilesvdbussink: thought $0 != app_file but I can't quite confirm it, it works fine if I run lib/sinatra.rb but I can't get it to load any external files.
10:15:50dbussinkfbuilesv: ah, yeah, that seem to be it
10:16:06dbussinkfbuilesv: https://gist.github.com/4607d8b8815d58137dbf
10:16:15dbussinkthat's $0 and app_file here for me
10:16:31fbuilesvdbussink: cool, how'd you get it to run?
10:17:06dbussinkfbuilesv: just ignored it there and forced it to run :P
10:17:10dbussinkto see where the issue was
10:17:12fbuilesvdbussink: that works :P
10:17:22dbussinkbut it's in the Application.run? check, that's where i started
10:18:22dbussinkfbuilesv: for some reason app_file is the full path on rbx
10:18:27dbussinkand not the relative one
10:19:38fbuilesvdbussink: I'm guessing it's the Kernel#caller impl on Rbx, I'll check the specs for that.
10:20:16fbuilesvnope, that seems fine.
10:23:19dbussinkfbuilesv: looks like caller on rbx returns complete paths
10:23:24dbussinkand relative ones on mri
10:23:52fbuilesvdbussink: inside Sinatra it does that, but in a regular irb I get relative paths too.
10:24:14fbuilesvI'm not entirely sure of how caller works when working with gems and stuff.
10:24:54dbussinkfbuilesv: https://gist.github.com/904eb6552cdb141f9a13
10:26:59fbuilesvdbussink: yup, you're right. I'll update the ticket and try to write a fix for that later today :)
10:27:05fbuilesvdbussink: thanks for the help :D
10:38:56dbussinkfbuilesv: so annoying that stuff depends on caller() behavior like this :(
10:41:37fbuilesvdbussink: agreed but they might have a good reason to do that, I think I'll look a bit into it and see if it can be replaced for something a bit more robust.
21:10:43fbuilesvevan: ping
21:11:15tarcieriding a ling
21:18:28dbussinkfbuilesv: he's still partying because of the 1.0 release i guess ;)