Index

Show enters and exits. Hide enters and exits.

00:32:03mattdawHowdy, added my first patch before xmas (issue #126) and updated it after reading the source/howtos some more. Could someone review it for me?
00:37:56brixenmattdaw: I'm not understanding the rubyspec change in that patch
00:38:31brixenbefore #to_sym was defined to return a symbol (:ruby), but that was still raising a TypeError?
00:39:06mattdawbrixen: yeah, I wasn't totally clear of the intent of the original. It wasn't returning a TypeError before because the to_sym was a symbol
00:40:29brixenbut that spec passes 1.8.6
00:40:36brixenI'm not getting this...
00:41:54mattdawinteresting. I was thinking that it made sense to check if the result really was a symbol rather than trusting it
00:42:08mattdawbut the original code looked like it should pass to me, so maybe I missed the point
00:42:37brixenwell, from looking at this, MRI does not attempt to coerce an argument to Struct.new by calling #to_sym
00:42:45brixenthat spec should not be changed
00:42:53brixenas long as I'm following this correctly
00:43:24mattdawok, so Struct.new shouldn't be doing attrs = attrs.map { |attr| attr.to_sym }
00:43:24mattdaw?
00:43:43brixenhttp://gist.github.com/265753
00:44:06brixenin MRI Struct.new just raises if the value is literally not a symbol
00:44:26brixenwhich seems too restrictive, but that's what I see
00:46:10mattdawyeah, ok, I can give that a shot instead.
00:49:23brixenhere's the MRI 1.8.6 relevant code http://gist.github.com/265755
00:51:55mattdawthanks, so looks like it's not as simple as checking if it's a Symbol.
00:52:12brixenright
00:52:22brixenbasically, rb_to_id is the behavior there
00:52:44brixenand in rbx, we do not support fixnums as symbols
00:53:17brixenso, if it's a String, turn it into a symbol; if it's a symbol, nothing; else raise
00:54:47mattdawis there a safe way to call that behaviour or should I implement that inside Struct.new?
00:54:53brixenstr_to_id is essentially String#to_sym
00:55:05brixensafe way to call what behavior?
00:55:19mattdawrb_to_id's effect
00:56:13brixenI don't think we have any utilty method for that offhand
00:56:36brixenthe normal coerce stuff, where you would call eg #to_sym, is in kernel/common/type.rb
00:56:59brixenbut in this case, it's hardcoded checking for kind_of? String, kind_of? Symbol, else
00:58:07mattdawok cool, I'll roll that into Struct.new and update the patch.
00:58:11mattdawthanks for looking at it
00:58:18brixenso you could do that with a case in Struct.new
00:58:20brixensure thing
00:58:27brixenthanks for pinging us about it
00:58:54mattdawnp, I'm eager to help. :-)
01:01:48brixensweet :)
01:30:55mattdawhi brixen, another version of that patch is up (same gist)
01:48:59mattdawgotta split, lemme know in the issue if you'd like any other changes. 'night
03:22:02mistergibsongreetings all
03:41:30mistergibsonouch, got a compile (as non-root) failure off of recent pull. output: http://pastie.org/760905
03:41:45mistergibsonpulled about 20 minutes ago
04:07:50mistergibsonbuilt fine now ... hrm
04:14:05mistergibsonbut borked again on rake install at that same point
06:44:16haruki_zaemonI'm very keen to implement some kind of Rubinius.tailcall or equivalent for a project I'm working on
06:44:31haruki_zaemonWould I need to do this in C++ or can it be done in Ruby?
06:45:17brixenhttp://groups.google.com/group/rubinius-dev/browse_frm/thread/50530fb2601ca466
06:45:52haruki_zaemonHeheh, that was me :)
06:46:02brixenahh, I had a feeling :)
06:46:08haruki_zaemonAsking the same question on the list hehehe
06:46:38haruki_zaemonI have a project I'm working on that is godawful once I convert everything from revursion to iteration
06:46:50haruki_zaemonI'd be happy to compromise on even a special return syntax
06:47:02haruki_zaemonjust so I could keep the code recursive
06:47:16brixenwhat's a typical stack depth?
06:47:38haruki_zaemonpotentially tens of thousands ATM. I'm processing really large files
06:47:41brixenlike are you blowing up the stack or just want TCO
06:47:48brixenhmm
06:47:57haruki_zaemonno, I'm blowing up the stack
06:47:59brixenwhy is it so awful iterative?
06:48:12brixenjust curious
06:48:21brixenI know recursive can be elegant
06:49:44haruki_zaemonIn some cases I have 5 lines of recursive code (in two methods) that become almost 20 when unrolled
06:49:52haruki_zaemonwith all the edge case handling, etc.
06:50:01haruki_zaemonI'm VERY willing to have a go at it
06:50:09haruki_zaemonI have LOTS of motivation ;-)
06:51:43brixenwell, I could imagine a simple tail call being detected in the bytecode compiler and converted to a goto
06:52:13brixenbut you'd need support in the VM for it really
06:52:21brixenyou should discuss with evan after the 1st
06:52:26brixenhe's on vacation right now
06:52:40haruki_zaemonok, will do, thanks!
06:52:49brixenn/p
06:53:03brixenit would be cool to have
06:53:12brixenbut 5 lines to 20 isn't that big a deal
06:53:22brixenwith probably some opportunity for refactoring
06:53:25haruki_zaemonNo but I have 20 of those methods
06:53:30brixenI see
06:53:49haruki_zaemonAnd I'm finding it much harder to add new features
06:53:55haruki_zaemonBasically I have two branches
06:54:02haruki_zaemonI make a change in the recursibe one
06:54:08haruki_zaemonthen I manually re-write it
06:54:17haruki_zaemonhehe
06:54:26brixenyeah, that doesn't sound fun
06:54:29haruki_zaemonAnyway I've been promising to do something and I finally have a LOT of motivation
06:54:36brixencool
06:54:50haruki_zaemonit's not impeding my ability to prgress as specs and test cases all run on small files
06:54:56brixenit would be neat, just not too many people screaming for it
06:55:06brixenit's typically more of a novelty in OO code
06:55:17haruki_zaemonYeah I've always found that weird
06:55:29haruki_zaemongiven that OO abstract types really benifit from it
06:55:31haruki_zaemonbenefit
06:55:58haruki_zaemonWell, the way I write OO code anyway ;-)
06:56:02brixenheh
06:56:13haruki_zaemonok, I'll get back to evan after the 1st
06:56:16haruki_zaemonthanks for the help
06:56:31brixensure thing
06:59:00boyscoutAdd missing terminator instructions to SDC - 9626509 - Evan Phoenix
06:59:00boyscoutMake SDC print out the bad iseq if there is a problem - 82e03a9 - Evan Phoenix
06:59:20evani'll be working tomorrow probably
06:59:25evangot home to LA today
07:00:27evanharuki_zaemon: you'd have to probably add a new instruction
07:00:29evanto do tailcalls.
07:00:39evantailcall support is not trival
07:00:44evannor can it be tacked on
07:00:51evanit has to be coded in at the lowest level.
07:08:11brixenwb evan!
07:08:20brixenI didn't realize you were back in LA
07:08:26evanyep.
07:08:29evanabby works tomorrow.
07:08:30brixenevan: so, -mdynamic-no-pic
07:08:32brixenahh
07:08:37brixendid you have fun?
07:08:39brixenski much?
07:08:49evannope
07:08:52evanno skiing this time
07:08:56evanno biggy.
07:09:01evanit was uber cold
07:09:08brixenah, but relaxing at least?
07:09:11evanyep.
07:09:14brixennice
07:09:24brixenso http://lists.apple.com/archives/darwin-dev/2009/Dec/msg00033.html
07:09:33brixenhere's what I'm trying to do...
07:09:46brixenwe need a .dylib for the mkmf discovery code to link against
07:09:47evanjust remove it.
07:09:51brixenok, cool
07:09:58brixenI thought you had added it for perf reasons
07:10:08evanthere were some perf gains a while back
07:10:13brixenbut even the comment in vm.rake says it's not supported on 4.3
07:10:17brixenok, out it goes
07:10:44evanit's not critical.
07:11:03brixendid you see my commit on the string interp stuff?
07:11:17evanno
07:11:20brixenwell, actually we can discuss in the AM if you want to rest
07:11:48evanyeah, lets do that
07:11:51evani'll read the commits
07:11:51brixenk
07:12:03brixenthe ones on 12/24
07:12:26brixennot the spec sync ones, but the ones before those
07:19:55mistergibsonhey brixen: you see my link?
07:21:40brixenmistergibson: yes I did
07:21:45brixenthere's a ticket for that already
07:21:51mistergibsonok, cool
07:22:06mistergibsonI suppose I'm going to have to learn how to file tickets at some point
07:23:07brixenheh
07:23:08evanthe only way we fix things is tickets
07:23:09evanso yeah.
07:23:11brixenit's not hard
07:23:15mistergibsonk
07:23:30brixenmistergibson: there's a link in the topic
07:23:35mistergibsonright
07:23:48brixenjust put your gist in the ticket, title it, and done
07:23:49mistergibsonI've taken a keen interest in rbx, so you're stuck with me :P
07:23:55mistergibsonok
07:24:02brixenmake sure you give the full commands to repro the issue
07:24:08mistergibsonyes
07:24:29brixenthis library thing is driving me crazy
07:24:57brixenI'm just going to shelve it for tonight
07:25:07brixenle'see about the stack thing...
07:25:07evanwow, niagra falls is only 12k years old.
07:25:17mistergibsonreally?
07:25:21mistergibsonno
07:25:23evanyeah
07:25:29evanand it moves 3 feet a year
07:25:36evanupstream
07:25:41mistergibsonholy crap
07:26:08mistergibson7+ miles in 12k yrs ... hrm
07:28:28brixenevan: could you look into boyscout CI
07:28:36evanno, but I shall tomorrow.
07:28:38brixenk
07:28:46evangoing to give CI some good work tomorrow probably
07:28:48brixenfor some reason, just quit reporting
07:28:51brixenok
07:28:59evanyeah, it's stuck (which is bad)
07:29:14brixenyeah, seems to be getting stuck a lot lately
07:29:23evanreally?
07:29:31brixenyeah
07:29:31evani can't recall another time
07:29:40brixenbefore you left you had to restart it
07:29:52brixenand then it reported a couple times and was stuck again
07:30:02evanwell anyway
07:30:06evangoing to check it out tomorrow.
07:30:13brixencool
07:37:48brixenwell, that was dumb
07:38:02brixenhad rbx configured to an old install dir
07:38:13brixenand was completely confused by spec failures
17:48:32brixenfun http://gist.github.com/266227
17:51:01evanbrixen: CI blew up because I upgraded some gems
17:51:08evanbut not all the ones that integrity uses
17:51:12evanfixing now.
17:51:28evanbrixen: WOW
17:51:30evanthats awesome
17:51:33evanprint that out
17:51:36evanwallpaper it up.
17:51:51brixenheh
17:52:04brixenevan: I was getting this repeatedly trying to build with build:debug
17:52:14brixenI could not get a debug build to work
17:52:24brixenbut just now I got it with a normal build
17:52:25evanline 104
17:52:28evanis probably the reason.
17:52:41evanwe can probably remove that line now
17:52:56evannow that the JIT is up and going
17:52:56brixenahh ok
17:53:08evanperhaps use a different ifdef
17:53:27evanlike #ifdef X86_ESI_SPEEDUP
17:53:28evanor something
17:53:33evanso we can turn it on again in the future
17:53:34evanif we want.
17:53:56brixenok
17:54:08brixenI'll see if I can get debug build to work
17:55:34evank.
18:05:03brixenevan: so, we need to make mkmf discovery code like this work http://gist.github.com/266250
18:05:15brixenand I am at a loss for the way to do so
18:05:26brixenmri can create a single shared lib to link against
18:05:40brixenwe can't really do that afaik
18:06:19evanum
18:06:24evanwtf is with librubinius.a?
18:06:32brixenheh, an experiment
18:06:32evandid you create that?
18:06:34brixenyes
18:06:37evanthats going to fuck you up.
18:06:51brixenwell, .dylib wasn't working either
18:06:57evanbecause it's going to completely alter how the linking goes
18:06:58evanright
18:07:01evanwhy do you need either?
18:07:02brixenlike I said, I don't know how to get this to work
18:07:08evanyou shouldn't need any lib
18:07:14brixendid you see the checked program in that gist
18:07:16brixenyes, you do
18:07:20brixenwhat will it link against?
18:07:24evannothing
18:07:26evanit's an extension
18:07:31evanthats how shared libraries work.
18:07:31brixennonono
18:07:36brixenmkmf discovery code
18:07:39brixenlooking for symbols
18:07:54evanoh that crap.
18:07:59evanfuck.
18:08:01brixensee line 15-23
18:08:02brixenyes
18:08:30evanfuuuuuck
18:08:36evani've been trying to avoid this.
18:08:38brixenI know
18:08:45brixenI've spent 2 days trying to figure it out
18:08:47evanit's not trivial.
18:08:52brixenI see ;)
18:09:12brixenwe could install all the libs we link vm/vm against
18:09:12evanwhats the mkmf for this look like?
18:09:18evanno no
18:09:23evanthats worse.
18:09:32brixenhave_function("blah") generates this code
18:09:41brixenthis is coming from mysql
18:09:47evanbut have_function needs a library I thought
18:09:57evanhow is it testing where the function is
18:10:46evancould you gist the mkmf for mysql?
18:10:47brixenhttp://gist.github.com/266253
18:10:55brixenline 51
18:11:06brixenhave_func rather
18:11:15evanok
18:11:19brixenanyway, it makes that discovery code and tries to compile/link it
18:11:33evanso it's doing that and implicitely hoping that libruby is one of the default libraries.
18:11:39brixenwell, no
18:11:48brixenlibruby.dylib on os x is in rbconfig
18:11:54evanyeah
18:11:54brixenthere's an entry that it uses
18:11:57evanso it's what I said.
18:12:06evanmysql's mkmf doesn't add libruby explicitly
18:12:10brixenright
18:12:19evanit's piggy backing off the fact that libruby is included by default normally.
18:12:26brixenyeah
18:12:26evanthats busted
18:12:35evanbecause you can (and do) build a MRI without a libruby
18:12:44brixenwell, that's only part one
18:12:50brixenso what if they added libruby
18:12:58brixenwe still don't have a libruby equiv
18:13:09brixenthat mkmf discover code won't work
18:13:31evanyep
18:13:35evanit wont
18:13:52evanso
18:13:56evanwhat if those fail
18:14:05evanie, it doesn't find rb_str_set_len
18:14:08evanwhat then
18:14:18brixenthen the HAVE_X macros don't get defined
18:14:23evanok, thats fine
18:14:25evanso what then
18:14:26brixenand mysql makes its own rb_str
18:14:26brixennope
18:14:29evandoes make faile?
18:14:30brixennot fine
18:14:33brixenyes
18:14:45evanwell fuckstart
18:14:50brixen#define rb_str_set_len(str, length) (RSTRING_LEN(str) = (length))
18:14:55evanthis mkmf is busted. :?
18:14:57evan:/
18:14:59brixenthat ain't gonna fly
18:15:17evanbecause it won't run properly when you build MRI without a libruby
18:15:32brixenwe can predefine stuff like HAVE_RB_STR_SET_LEN
18:15:37brixenbut that sucks
18:15:45evanwell, it sucks less right now
18:15:53evanlib-izing rubinius is a much bigger task.
18:16:03brixenbut should it be done?
18:16:10brixenwe've avoided it for a long time
18:16:15evanfor good reason
18:16:18evani don't think it should be done now
18:16:19evanno.
18:16:23brixenok
18:16:24evannot while we are in the rc cycle.
18:16:32evanit will upend the apple cart bigtime.
18:17:51brixenevan: so why did you define rb_str_clamp and not just rb_str_set_len?
18:18:01brixenI don't see any reason not to just use rb_str_set_len
18:18:12evanmmm
18:18:15evandidn't want to conflict
18:18:17evanas I recall
18:18:36evanfor this very reason
18:18:41brixenwell, it's in the 1.8.7 MRI C-API
18:18:46brixenso I think we just define it
18:18:49evank
18:18:50brixenand add the HAVE_RB_STR_SET_LEN
18:18:58evani think I added clamp before we went to 1.8.7
18:19:09evanplus, I don't think we've really checked out what is in the 1.8.7 API
18:19:13evanC-API wise.
18:19:16evanat least, I haven't.
18:19:17brixenit's in your openssl commit
18:19:28brixenanyway, I'll see if I can get mysql to install
18:19:32evank
18:20:33mattdawhowdy, just stuck a patch in issue 131 that implements Array#permutation
18:21:43evanyeah! i saw
18:21:47evangoing to check it out shortly
18:21:51evanthanks for that.
18:22:15mattdawcool, it's been fun. breaking for lunch now, but I'll check back in later
18:23:25brixenmattdaw: what was the other ticket # you had a patch in?
18:24:05evanfuck datamapper has a shitton of gems.
18:24:11brixenyeah
18:24:37mistergibsonI like sequel :)
18:30:25mattdawbrixen: 126
18:31:33brixenmattdaw: ah yes, thanks
18:33:30brixenok mysql 2.8.1 installs
18:33:38brixenfucking linking :(
18:33:58brixenevan: I've been googling all over kansas trying to find a good reference to understand this beotch
18:34:06brixenany suggestions?
18:34:15brixengoogle in other states?
18:34:16evanwhich bitch?
18:34:18evanlinking?
18:34:18evanheh
18:34:20evanyeah
18:34:21brixenyes
18:34:22evantry google canada
18:34:31brixenfucking canadians :P
18:34:33brixenheh
18:34:39evani'm not aware of anything
18:34:51evanwhat part are you trying to understand?
18:34:55brixenI did find a redhat paper by drepper
18:35:03brixenhow it all works
18:35:13brixenwhy I am continually tripping up on it
18:36:48evanum
18:36:49evanwell
18:38:30evanFUUUUUCK
18:38:44evanthe older integrity doesn't work with newer data-objects
18:38:45evangreat.
18:39:03brixendamn :(
18:39:15evanle sigh.
18:39:24evanguess i'll work on getting a newer integrity running
18:39:36boyscoutC-API define LONG_LONG, make rb_str_set_len a function. - 7ce281a - Brian Ford
18:39:36boyscoutAdded explicit define for HAVE_RB_STR_SET_LEN. - f6d4bea - Brian Ford
18:40:01evanoh well
18:40:05evanit needed to be done anyway
18:40:11brixenmistergibson: want to give running mysql a shot
18:40:23mistergibsonit failed
18:40:24brixenmistergibson: pull master and build/run without installing
18:40:28mistergibsonffi failed as well
18:40:33mistergibsonok
18:40:37mistergibsonhold preeze
18:40:38brixenfailed == meaningless
18:40:40brixenok
18:40:47mistergibsonblue, round!
18:41:15brixenblue just makes me think of chimay blue
18:46:42boyscoutFixes for Struct#eql? and Struct#new. - dfe7ec5 - Matt Daw
18:47:28brixenmattdaw: ping evan for a commit bit
18:47:44brixenmattdaw: and you can handle #131 :)
18:49:28mattdawbrixen: thanks, will do. marcandre just replied to #131
18:50:04brixenah cool
18:50:16brixenyeah marcandre is the author of most of the 1.8.7 compat stuff
18:50:20brixenglad he saw the ticket
18:53:59boyscoutAdded C-API define for EXTERN. Closes #127. - 58dc136 - Brian Ford
18:54:07brixenmattdaw: postgres-0.7.9.2008.01.28 installed with your patch
18:54:15brixenmattdaw: do you want to try running it though, see if it works?
18:54:22mattdawsure, will do now. thanks
18:54:28brixenawesome, thanks
18:58:18evanARG
18:58:25evani might have to give up on integrity.
18:59:52brixenCI Joe
18:59:53brixen?
19:00:02evani'm pretty close to doing that
19:04:25mistergibsonI'm curios, what led you guys to use llvm?
19:04:33mistergibsonI think its brilliant btw
19:05:03evanI found it a long time ago
19:05:18evanand followed it for a while
19:05:24evanwe played with it for a while
19:05:28evanbefore deciding how to use it
19:06:15mistergibsonbuilding now, then I'll test gem installs
19:08:21mattdawbrixen: postgres builds, thanks
19:09:45brixenmattdaw: yeah, can you run some test code pls
19:09:55brixenI'm curious if it works
19:10:42mattdawbrixen: i got some simple script/console rails stuff working last week
19:11:08mattdawthe unit tests for my app aren't working yet, but we've got a lot of gem dependencies
19:11:44brixenok
19:12:59mistergibsonmysql installed fine here
19:12:59dbussinkevan: i was wondering, there is some stuff in vm/assembler, does that need cleaning up?
19:13:16evanyeah
19:13:17dbussinkevan: first jit experiments etc.
19:13:22evanit nedes to be removed
19:13:28mattdawbrixen: working towards getting it all working over the next couple of weeks hopefully. MRI's speed isn't killing us, but non-generational GC is. :-)
19:13:41evandbussink: udis86 needs to be moved to vm/external_libs
19:14:15dbussinkevan: i did see that the assembly part is used for disassembly in one place, but that's all that's used
19:14:22evanyep
19:14:22brixenmattdaw: ah interesting
19:14:55dbussinkwants a nice compacting gc
19:15:32mattdawbrixen: yeah, it'll be interesting to see if rbx makes a significant difference. definitely have a lot of short lived objects
19:16:54mattdaw(and a number of things that stick around forever that it doesn't make sense to be checking for GC all the time)
19:18:05mistergibsonhrm, it appears that rbx gem install does not pull in dep gems
19:18:22evanmistergibson: it should
19:18:28mistergibsonit didn't
19:18:31evanhow are you installing it?
19:18:34mistergibsonffi
19:18:38mistergibsonafter mysql
19:18:48evanhuh?
19:18:50evanffi what?
19:18:53brixenffi isn't a dep of mysql
19:19:01mistergibsonno, but I was testing
19:19:12evanoh man
19:19:17evanDO NOT install the ffi gem on rbx
19:19:21mistergibsonunderstood
19:19:23evanwe need to stub that out.
19:19:24mistergibsonno worries
19:19:26brixenyeah
19:19:34brixenthere's a gem that was trying to install it
19:19:39brixenrbgccxml?
19:19:42brixenI can't remember
19:19:48mistergibsonI think so yes
19:19:50dbussinkffi through capi, sounds like fun :P
19:19:59mistergibsonffi is built into rbx?
19:20:03brixenyes
19:20:10mistergibsonright, I see
19:20:11evanrubinius is where ffi came from.
19:20:16mistergibsonnice
19:20:19mistergibsondidn't know that
19:20:26mistergibsonffi rocks
19:20:44evanthanks.
19:20:45marcandreMmm, trying to build rbx. I did "rake clean && rake distclean && rake" and I get "exception detected at toplevel: Tried to use object of type CompiledMethod (16) as type String (48) (TypeError)
19:20:52mistergibsonany other gems you want me to try and build?
19:21:00evanmarcandre: you might need to do a rake clean
19:21:05evanoh you did.
19:21:08marcandreyup
19:21:14evanum
19:21:26evanmake sure to remove all .rbc files
19:21:29evanuse find.
19:21:33evanthen run rake again.
19:21:37marcandrek
19:21:58mistergibsonrake clean doesn't sweep for .rbc files?
19:22:05brixenit does
19:22:08mistergibsonk
19:22:43brixenmarcandre: are you configured to install?
19:23:02brixenmarcandre: also, use gists so we can see your whole thing, not the summary
19:23:03brixenplease
19:23:21marcandreWell, I was configured to install
19:23:30brixenthat's your problem
19:23:48brixenrake install
19:24:20mistergibsonyeah, the inplace thing only worked when I withheld the --prefix
19:24:38marcandrehttp://gist.github.com/266310
19:25:03evanthats definitely a .rbc problem.
19:25:13brixenmarcandre: did you run rake install?
19:25:38marcandrelooks like it works. Sorry to have disturbed you.
19:26:29dbussinkevan: should i put it into something like vm/llvm/disassembler.{c,h}pp ?
19:26:43evanno?
19:26:48evanit's a whole different library
19:26:53evanput what in there?
19:27:58dbussinkevan: the small part from vm/assembler that is used in vm/llvm now
19:28:11dbussinkevan: basically some disassembly for debugging purpose i assume
19:28:19evanmm
19:28:26evanit should be just one function
19:28:33evana wrapper around udis86
19:29:11dbussinkevan: this is basically what is used now: assembler_x86::AssemblerX86::show_buffer(impl, bytes, false, NULL)
19:29:19evanright
19:29:30dbussinkevan: so i was wondering where that would fit best
19:29:31evani'd say move show_buffer into vm/llvm/jit.cpp for now
19:29:32evanis fine
19:29:34dbussinkok
19:29:35evanas a static function
19:29:53dbussinkand i'll move libudis and then nuke vm/assembler
19:30:01evank
20:02:08rueBrisk evening
20:07:48brixendbussink: hey, trying to repro your #130
20:07:57brixendbussink: but I'm not getting that
20:08:05dbussinkbrixen: what are you getting?
20:08:10brixensec...
20:08:23brixenI have a debug build so everything is slow :P
20:11:13brixendbussink: http://gist.github.com/266353
20:11:54dbussinkbrixen: hmm, for that compile failure you probably need to install rake-compiler
20:12:27dbussinkbrixen: but this is pretty weird, i've nuked my gems dir, reinstalled all gems and also ensured that i removed all rbc files
20:12:34dbussinkbrixen: what else could cause the issue?
20:13:23brixendbussink: do you have rbx installed?
20:13:36dbussinkbrixen: nope, running it from the clone directory
20:13:43brixenthen I'm lost
20:14:33dbussinkbrixen: hmm, i can try with a git clean and start from scratch
20:14:42dbussinkbrixen: to see if it still happens then
20:20:04brixendbussink: yeah, all I did was clean build:debug, install those gems, and run your command
20:20:16brixenI already had a DO clone
20:20:26dbussinkbrixen: assume you pulled the do clone?
20:20:30brixenyeah
20:20:43dbussinkhmm, i can try with a debug build to verify
20:24:05brixendbussink: nah, try normal build
20:24:15brixenI just did debug so I could gdb it if I needed to
20:25:04dbussinkbrixen: ah, well, just want to be sure
20:26:17brixendbussink: I'm rebuilding now
20:37:53dbussinkbrixen: hmm, did a git clean, rake distclean and rake clean
20:38:00dbussinkstill getting it with a debug build too :S
20:42:33dbussinkbrixen: ok, fully nuked do and works now, probably some rbc hiding in there i couldn't find :S
20:43:12dbussinkbrixen: mysql and postgres are passing now again :)
20:43:45brixenok
20:44:14brixenI don't know how a .rbc can hid from find . -name \*.rbc but ...
20:44:27mattdawI found another #define that postgres is relying on
20:44:33dbussinkbrixen: probably in a directory i wasn't looking in
20:44:37brixenanyway, I'm working on adding the signature check, so I'll ignore these tickets for now
20:44:51brixenmattdaw: really?
20:44:55dbussinkbrixen: ah, cool, well, i'll close mine
20:45:01mattdawbrixen: #define HAVE_RB_DEFINE_ALLOC_FUNC 1
20:45:06brixenmattdaw: ok
20:45:13mattdawI think it should go in vm/capi/intern.h
20:45:16mattdawthat sound right
20:45:17mattdaw?
20:45:27brixenI'm adding those to defines.h
20:45:31brixensee the comment I put in there
20:45:49brixennormally the HAVE_XXX should be defined as a result of mkmy have_func
20:45:53brixener mkmf
20:45:59brixenor similar discovery code
20:46:22brixenanyway, MRI C-API is just a total mess, so you could probably put it anywhere
20:46:23brixenheh
20:46:29mattdawheh, ok.
20:46:59brixenlet's just do defines.h for now
20:47:14brixenmattdaw: ping evan for a commit bit when he gets back from lunch
20:47:26brixenfinds food...
20:47:37dbussinkbrixen: i'm also adding compat.h to the do_ drivers
20:47:48dbussinkbrixen: and i want to benchmark also how much they help :)
20:47:48mattdawbrixen: ok, I pinged him via github msg.
20:48:54mattdawanyone know about Enumerator.new_with_block ?
20:49:02mattdawArray#product calls that but it doesn't seem to exist
20:49:05brixenmattdaw: just tell him your gh username here
20:58:36boyscoutRemove the hand crafted JIT and move udis86 to vm/external_libs - 53160ff - Dirkjan Bussink
20:58:42dbussinkevan: there you go
21:20:43lypanovwazzup
21:22:53dbussinkevan: brixen: available for a question?
21:29:33evandbussink: yesh?
21:30:17dbussinkevan: quick question, is there an explicit reason that Object* Object::ivar_names returns Qnil for a non reference object that has no ivars?
21:30:27dbussinkevan: since that breaks something like 0.instance_variables
21:30:40evanyou're thinking it would do what?
21:31:45dbussinkevan: well, 0.instance_variables now gives an exception since that primitive returns nil
21:32:00dbussinkevan: it should probably return an empty array instead
21:32:19dbussinkevan: so i was wondering whether there was some explicit reasoning it doesn't do that already
21:32:50evanm, no specific reason
21:32:58evanother than the primitives don't have to match a ruby method
21:33:01evanstrictly
21:33:16evanthey can be wrapped to provide the required behavior in rubyland
21:33:25dbussinkevan: that can be done too yeah
21:33:31evanthat being said
21:33:39evani doubt anything depends on ivar_names returning Qnil for 1
21:33:48evanso returning an empty array is fine
21:35:24evanalso
21:35:28evannow that I think about it
21:35:34evanit needs to be returning an array
21:35:37dbussinkevan: hmm, it also returns the symbol table directly for a primitive
21:35:43dbussinkevan: that should be changed too
21:35:50evanreally?
21:35:52evanit shouldn't anymore
21:35:55evani removed all of that
21:36:09evanbecause it's not a given that all ivars are available by a table
21:36:10evanwait
21:36:15evan"the symbol table"?
21:36:22evanwhich primitive
21:36:24evanpoint me to it.
21:36:26dbussinksorry, lookuptable of the defined variables
21:36:39dbussinkvm/builtin/object.cpp:272
21:37:22evanOOOH
21:37:25evanthats VERY WRONG.
21:37:32evanit hought you said it returned nil?
21:37:44dbussinkevan: it does if there are no instance variables defined
21:37:46evanoh, it does if there is no external_ivars
21:37:53evanit shouldn't be doing either of those things
21:37:54evanboth are wrong.
21:38:00dbussinki can imagine :)
21:38:26evanyou need to use the same filtered_keys setup as below that
21:38:29evanif there is a tbl
21:38:34evanotherwise, just return ary.
21:38:38dbussinkevan: yeah
21:38:46evanthis is just an oversight in the last time I went through this code
21:40:12dbussinkevan: ha, you make mistakes! :P
21:40:28evanoh hell yeah I do.
21:40:32evani'm the first to admit that!
21:44:18dbussinkevan: is the match filter actually necessary for ivars on an immediate?
21:44:27evanprobably not
21:44:31evanbut it can't hurt.
21:44:46dbussinkevan: well, if i don't use i have to shuffle less around
21:45:01dbussinkevan: dunno if it's problematic that the match is always created even if not necessary
21:45:04evani'd prefer you use it.
21:47:07evanadding extra data to symbol we might use
21:47:15evanthat we don't want to expose directly
21:48:30dbussinkevan: https://gist.github.com/a342284c1b44c9da7805
21:48:53dbussinkevan: btw, dunno if you saw i cleaned up assembler
21:48:59evanthat looks fine
21:49:00evanyeah, i saw
21:49:03evandidn't checkout the commit yet
21:49:10dbussinki'll also add some specs to rubyspec for this
21:49:36evancool.
21:50:30dbussinkwhaa, there aren't any yet
21:50:43dbussinkit "needs to be reviewed for spec completeness" :P
21:51:26boyscoutFix Kernel#instance_variables to correcty work with immediates - 2b36f8b - Dirkjan Bussink
21:51:33dbussinki'll add those later, first some sleep
21:51:54evanno prob.
21:51:55evannite!
22:16:04mistergibsonwas ffi stubbed out just yet?
22:16:24evanpardon?
22:16:48mistergibsonbrixen indicated that ffi was to be 'stubbed' out as a dep?
22:16:54mistergibsonam I mistaken?
22:17:14mistergibsonincase I attempt to install a gem that requires it?
22:17:20mistergibsonif I understand the setup...
22:17:27evanoh
22:17:28evanno
22:17:30evanwe haven't done that
22:17:37evanwe'll get to it eventually.
22:17:43mistergibsonright
22:17:44brixenwe need to make sure that ruby-ffi gem doesn't get installed as a dep
22:17:52brixenI'm not sure the best way to do that
22:17:54mistergibsonok
22:18:10brixenruby-ffi is a dep of something you were trying to install
22:18:14brixenI don't remember what
22:18:21boyscoutAdd initial version of Kernel#instance_variables spec - 63366b7 - Dirkjan Bussink
22:18:22boyscoutCleanup tags for Kernel#instance_variables - 3846d59 - Dirkjan Bussink
22:18:22mistergibsonrbgccxml I believe
22:18:45dbussinkevan: no sleep yet ;)
22:18:55brixendbussink: you can just commit to spec/ruby, I will sync it to rubyspec
22:19:02brixendbussink: I noticed ;)
22:19:11dbussinkbrixen: ah, well, i pushed it to both this time
22:19:17brixeneither you have an evil twin, or you aren't sleeping
22:19:17brixenheh
22:19:23dbussinkmuhahaha
22:32:09rueOr both
22:56:16dwaitewaves
23:23:17rueWave wave
23:23:37brixenisn't there an app for that
23:44:26fynnheh
23:46:25rueNo, there is not
23:46:49brixensure there is
23:46:58brixenI can get you an invite if you still need one :)
23:48:49rueInterestingly that leads to http://nerduo.com/thebattle/
23:49:14brixenheh
23:59:22evanwell, i've fixed this bug in cijoe
23:59:28evani'm not sure if anyone actually uses cijoe
23:59:34evanbecause it wouldn't even work.