Show enters and exits. Hide enters and exits.
| 00:32:03 | mattdaw | Howdy, 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:56 | brixen | mattdaw: I'm not understanding the rubyspec change in that patch |
| 00:38:31 | brixen | before #to_sym was defined to return a symbol (:ruby), but that was still raising a TypeError? |
| 00:39:06 | mattdaw | brixen: 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:29 | brixen | but that spec passes 1.8.6 |
| 00:40:36 | brixen | I'm not getting this... |
| 00:41:54 | mattdaw | interesting. I was thinking that it made sense to check if the result really was a symbol rather than trusting it |
| 00:42:08 | mattdaw | but the original code looked like it should pass to me, so maybe I missed the point |
| 00:42:37 | brixen | well, from looking at this, MRI does not attempt to coerce an argument to Struct.new by calling #to_sym |
| 00:42:45 | brixen | that spec should not be changed |
| 00:42:53 | brixen | as long as I'm following this correctly |
| 00:43:24 | mattdaw | ok, so Struct.new shouldn't be doing attrs = attrs.map { |attr| attr.to_sym } |
| 00:43:24 | mattdaw | ? |
| 00:43:43 | brixen | http://gist.github.com/265753 |
| 00:44:06 | brixen | in MRI Struct.new just raises if the value is literally not a symbol |
| 00:44:26 | brixen | which seems too restrictive, but that's what I see |
| 00:46:10 | mattdaw | yeah, ok, I can give that a shot instead. |
| 00:49:23 | brixen | here's the MRI 1.8.6 relevant code http://gist.github.com/265755 |
| 00:51:55 | mattdaw | thanks, so looks like it's not as simple as checking if it's a Symbol. |
| 00:52:12 | brixen | right |
| 00:52:22 | brixen | basically, rb_to_id is the behavior there |
| 00:52:44 | brixen | and in rbx, we do not support fixnums as symbols |
| 00:53:17 | brixen | so, if it's a String, turn it into a symbol; if it's a symbol, nothing; else raise |
| 00:54:47 | mattdaw | is there a safe way to call that behaviour or should I implement that inside Struct.new? |
| 00:54:53 | brixen | str_to_id is essentially String#to_sym |
| 00:55:05 | brixen | safe way to call what behavior? |
| 00:55:19 | mattdaw | rb_to_id's effect |
| 00:56:13 | brixen | I don't think we have any utilty method for that offhand |
| 00:56:36 | brixen | the normal coerce stuff, where you would call eg #to_sym, is in kernel/common/type.rb |
| 00:56:59 | brixen | but in this case, it's hardcoded checking for kind_of? String, kind_of? Symbol, else |
| 00:58:07 | mattdaw | ok cool, I'll roll that into Struct.new and update the patch. |
| 00:58:11 | mattdaw | thanks for looking at it |
| 00:58:18 | brixen | so you could do that with a case in Struct.new |
| 00:58:20 | brixen | sure thing |
| 00:58:27 | brixen | thanks for pinging us about it |
| 00:58:54 | mattdaw | np, I'm eager to help. :-) |
| 01:01:48 | brixen | sweet :) |
| 01:30:55 | mattdaw | hi brixen, another version of that patch is up (same gist) |
| 01:48:59 | mattdaw | gotta split, lemme know in the issue if you'd like any other changes. 'night |
| 03:22:02 | mistergibson | greetings all |
| 03:41:30 | mistergibson | ouch, got a compile (as non-root) failure off of recent pull. output: http://pastie.org/760905 |
| 03:41:45 | mistergibson | pulled about 20 minutes ago |
| 04:07:50 | mistergibson | built fine now ... hrm |
| 04:14:05 | mistergibson | but borked again on rake install at that same point |
| 06:44:16 | haruki_zaemon | I'm very keen to implement some kind of Rubinius.tailcall or equivalent for a project I'm working on |
| 06:44:31 | haruki_zaemon | Would I need to do this in C++ or can it be done in Ruby? |
| 06:45:17 | brixen | http://groups.google.com/group/rubinius-dev/browse_frm/thread/50530fb2601ca466 |
| 06:45:52 | haruki_zaemon | Heheh, that was me :) |
| 06:46:02 | brixen | ahh, I had a feeling :) |
| 06:46:08 | haruki_zaemon | Asking the same question on the list hehehe |
| 06:46:38 | haruki_zaemon | I have a project I'm working on that is godawful once I convert everything from revursion to iteration |
| 06:46:50 | haruki_zaemon | I'd be happy to compromise on even a special return syntax |
| 06:47:02 | haruki_zaemon | just so I could keep the code recursive |
| 06:47:16 | brixen | what's a typical stack depth? |
| 06:47:38 | haruki_zaemon | potentially tens of thousands ATM. I'm processing really large files |
| 06:47:41 | brixen | like are you blowing up the stack or just want TCO |
| 06:47:48 | brixen | hmm |
| 06:47:57 | haruki_zaemon | no, I'm blowing up the stack |
| 06:47:59 | brixen | why is it so awful iterative? |
| 06:48:12 | brixen | just curious |
| 06:48:21 | brixen | I know recursive can be elegant |
| 06:49:44 | haruki_zaemon | In some cases I have 5 lines of recursive code (in two methods) that become almost 20 when unrolled |
| 06:49:52 | haruki_zaemon | with all the edge case handling, etc. |
| 06:50:01 | haruki_zaemon | I'm VERY willing to have a go at it |
| 06:50:09 | haruki_zaemon | I have LOTS of motivation ;-) |
| 06:51:43 | brixen | well, I could imagine a simple tail call being detected in the bytecode compiler and converted to a goto |
| 06:52:13 | brixen | but you'd need support in the VM for it really |
| 06:52:21 | brixen | you should discuss with evan after the 1st |
| 06:52:26 | brixen | he's on vacation right now |
| 06:52:40 | haruki_zaemon | ok, will do, thanks! |
| 06:52:49 | brixen | n/p |
| 06:53:03 | brixen | it would be cool to have |
| 06:53:12 | brixen | but 5 lines to 20 isn't that big a deal |
| 06:53:22 | brixen | with probably some opportunity for refactoring |
| 06:53:25 | haruki_zaemon | No but I have 20 of those methods |
| 06:53:30 | brixen | I see |
| 06:53:49 | haruki_zaemon | And I'm finding it much harder to add new features |
| 06:53:55 | haruki_zaemon | Basically I have two branches |
| 06:54:02 | haruki_zaemon | I make a change in the recursibe one |
| 06:54:08 | haruki_zaemon | then I manually re-write it |
| 06:54:17 | haruki_zaemon | hehe |
| 06:54:26 | brixen | yeah, that doesn't sound fun |
| 06:54:29 | haruki_zaemon | Anyway I've been promising to do something and I finally have a LOT of motivation |
| 06:54:36 | brixen | cool |
| 06:54:50 | haruki_zaemon | it's not impeding my ability to prgress as specs and test cases all run on small files |
| 06:54:56 | brixen | it would be neat, just not too many people screaming for it |
| 06:55:06 | brixen | it's typically more of a novelty in OO code |
| 06:55:17 | haruki_zaemon | Yeah I've always found that weird |
| 06:55:29 | haruki_zaemon | given that OO abstract types really benifit from it |
| 06:55:31 | haruki_zaemon | benefit |
| 06:55:58 | haruki_zaemon | Well, the way I write OO code anyway ;-) |
| 06:56:02 | brixen | heh |
| 06:56:13 | haruki_zaemon | ok, I'll get back to evan after the 1st |
| 06:56:16 | haruki_zaemon | thanks for the help |
| 06:56:31 | brixen | sure thing |
| 06:59:00 | boyscout | Add missing terminator instructions to SDC - 9626509 - Evan Phoenix |
| 06:59:00 | boyscout | Make SDC print out the bad iseq if there is a problem - 82e03a9 - Evan Phoenix |
| 06:59:20 | evan | i'll be working tomorrow probably |
| 06:59:25 | evan | got home to LA today |
| 07:00:27 | evan | haruki_zaemon: you'd have to probably add a new instruction |
| 07:00:29 | evan | to do tailcalls. |
| 07:00:39 | evan | tailcall support is not trival |
| 07:00:44 | evan | nor can it be tacked on |
| 07:00:51 | evan | it has to be coded in at the lowest level. |
| 07:08:11 | brixen | wb evan! |
| 07:08:20 | brixen | I didn't realize you were back in LA |
| 07:08:26 | evan | yep. |
| 07:08:29 | evan | abby works tomorrow. |
| 07:08:30 | brixen | evan: so, -mdynamic-no-pic |
| 07:08:32 | brixen | ahh |
| 07:08:37 | brixen | did you have fun? |
| 07:08:39 | brixen | ski much? |
| 07:08:49 | evan | nope |
| 07:08:52 | evan | no skiing this time |
| 07:08:56 | evan | no biggy. |
| 07:09:01 | evan | it was uber cold |
| 07:09:08 | brixen | ah, but relaxing at least? |
| 07:09:11 | evan | yep. |
| 07:09:14 | brixen | nice |
| 07:09:24 | brixen | so http://lists.apple.com/archives/darwin-dev/2009/Dec/msg00033.html |
| 07:09:33 | brixen | here's what I'm trying to do... |
| 07:09:46 | brixen | we need a .dylib for the mkmf discovery code to link against |
| 07:09:47 | evan | just remove it. |
| 07:09:51 | brixen | ok, cool |
| 07:09:58 | brixen | I thought you had added it for perf reasons |
| 07:10:08 | evan | there were some perf gains a while back |
| 07:10:13 | brixen | but even the comment in vm.rake says it's not supported on 4.3 |
| 07:10:17 | brixen | ok, out it goes |
| 07:10:44 | evan | it's not critical. |
| 07:11:03 | brixen | did you see my commit on the string interp stuff? |
| 07:11:17 | evan | no |
| 07:11:20 | brixen | well, actually we can discuss in the AM if you want to rest |
| 07:11:48 | evan | yeah, lets do that |
| 07:11:51 | evan | i'll read the commits |
| 07:11:51 | brixen | k |
| 07:12:03 | brixen | the ones on 12/24 |
| 07:12:26 | brixen | not the spec sync ones, but the ones before those |
| 07:19:55 | mistergibson | hey brixen: you see my link? |
| 07:21:40 | brixen | mistergibson: yes I did |
| 07:21:45 | brixen | there's a ticket for that already |
| 07:21:51 | mistergibson | ok, cool |
| 07:22:06 | mistergibson | I suppose I'm going to have to learn how to file tickets at some point |
| 07:23:07 | brixen | heh |
| 07:23:08 | evan | the only way we fix things is tickets |
| 07:23:09 | evan | so yeah. |
| 07:23:11 | brixen | it's not hard |
| 07:23:15 | mistergibson | k |
| 07:23:30 | brixen | mistergibson: there's a link in the topic |
| 07:23:35 | mistergibson | right |
| 07:23:48 | brixen | just put your gist in the ticket, title it, and done |
| 07:23:49 | mistergibson | I've taken a keen interest in rbx, so you're stuck with me :P |
| 07:23:55 | mistergibson | ok |
| 07:24:02 | brixen | make sure you give the full commands to repro the issue |
| 07:24:08 | mistergibson | yes |
| 07:24:29 | brixen | this library thing is driving me crazy |
| 07:24:57 | brixen | I'm just going to shelve it for tonight |
| 07:25:07 | brixen | le'see about the stack thing... |
| 07:25:07 | evan | wow, niagra falls is only 12k years old. |
| 07:25:17 | mistergibson | really? |
| 07:25:21 | mistergibson | no |
| 07:25:23 | evan | yeah |
| 07:25:29 | evan | and it moves 3 feet a year |
| 07:25:36 | evan | upstream |
| 07:25:41 | mistergibson | holy crap |
| 07:26:08 | mistergibson | 7+ miles in 12k yrs ... hrm |
| 07:28:28 | brixen | evan: could you look into boyscout CI |
| 07:28:36 | evan | no, but I shall tomorrow. |
| 07:28:38 | brixen | k |
| 07:28:46 | evan | going to give CI some good work tomorrow probably |
| 07:28:48 | brixen | for some reason, just quit reporting |
| 07:28:51 | brixen | ok |
| 07:28:59 | evan | yeah, it's stuck (which is bad) |
| 07:29:14 | brixen | yeah, seems to be getting stuck a lot lately |
| 07:29:23 | evan | really? |
| 07:29:31 | brixen | yeah |
| 07:29:31 | evan | i can't recall another time |
| 07:29:40 | brixen | before you left you had to restart it |
| 07:29:52 | brixen | and then it reported a couple times and was stuck again |
| 07:30:02 | evan | well anyway |
| 07:30:06 | evan | going to check it out tomorrow. |
| 07:30:13 | brixen | cool |
| 07:37:48 | brixen | well, that was dumb |
| 07:38:02 | brixen | had rbx configured to an old install dir |
| 07:38:13 | brixen | and was completely confused by spec failures |
| 17:48:32 | brixen | fun http://gist.github.com/266227 |
| 17:51:01 | evan | brixen: CI blew up because I upgraded some gems |
| 17:51:08 | evan | but not all the ones that integrity uses |
| 17:51:12 | evan | fixing now. |
| 17:51:28 | evan | brixen: WOW |
| 17:51:30 | evan | thats awesome |
| 17:51:33 | evan | print that out |
| 17:51:36 | evan | wallpaper it up. |
| 17:51:51 | brixen | heh |
| 17:52:04 | brixen | evan: I was getting this repeatedly trying to build with build:debug |
| 17:52:14 | brixen | I could not get a debug build to work |
| 17:52:24 | brixen | but just now I got it with a normal build |
| 17:52:25 | evan | line 104 |
| 17:52:28 | evan | is probably the reason. |
| 17:52:41 | evan | we can probably remove that line now |
| 17:52:56 | evan | now that the JIT is up and going |
| 17:52:56 | brixen | ahh ok |
| 17:53:08 | evan | perhaps use a different ifdef |
| 17:53:27 | evan | like #ifdef X86_ESI_SPEEDUP |
| 17:53:28 | evan | or something |
| 17:53:33 | evan | so we can turn it on again in the future |
| 17:53:34 | evan | if we want. |
| 17:53:56 | brixen | ok |
| 17:54:08 | brixen | I'll see if I can get debug build to work |
| 17:55:34 | evan | k. |
| 18:05:03 | brixen | evan: so, we need to make mkmf discovery code like this work http://gist.github.com/266250 |
| 18:05:15 | brixen | and I am at a loss for the way to do so |
| 18:05:26 | brixen | mri can create a single shared lib to link against |
| 18:05:40 | brixen | we can't really do that afaik |
| 18:06:19 | evan | um |
| 18:06:24 | evan | wtf is with librubinius.a? |
| 18:06:32 | brixen | heh, an experiment |
| 18:06:32 | evan | did you create that? |
| 18:06:34 | brixen | yes |
| 18:06:37 | evan | thats going to fuck you up. |
| 18:06:51 | brixen | well, .dylib wasn't working either |
| 18:06:57 | evan | because it's going to completely alter how the linking goes |
| 18:06:58 | evan | right |
| 18:07:01 | evan | why do you need either? |
| 18:07:02 | brixen | like I said, I don't know how to get this to work |
| 18:07:08 | evan | you shouldn't need any lib |
| 18:07:14 | brixen | did you see the checked program in that gist |
| 18:07:16 | brixen | yes, you do |
| 18:07:20 | brixen | what will it link against? |
| 18:07:24 | evan | nothing |
| 18:07:26 | evan | it's an extension |
| 18:07:31 | evan | thats how shared libraries work. |
| 18:07:31 | brixen | nonono |
| 18:07:36 | brixen | mkmf discovery code |
| 18:07:39 | brixen | looking for symbols |
| 18:07:54 | evan | oh that crap. |
| 18:07:59 | evan | fuck. |
| 18:08:01 | brixen | see line 15-23 |
| 18:08:02 | brixen | yes |
| 18:08:30 | evan | fuuuuuck |
| 18:08:36 | evan | i've been trying to avoid this. |
| 18:08:38 | brixen | I know |
| 18:08:45 | brixen | I've spent 2 days trying to figure it out |
| 18:08:47 | evan | it's not trivial. |
| 18:08:52 | brixen | I see ;) |
| 18:09:12 | brixen | we could install all the libs we link vm/vm against |
| 18:09:12 | evan | whats the mkmf for this look like? |
| 18:09:18 | evan | no no |
| 18:09:23 | evan | thats worse. |
| 18:09:32 | brixen | have_function("blah") generates this code |
| 18:09:41 | brixen | this is coming from mysql |
| 18:09:47 | evan | but have_function needs a library I thought |
| 18:09:57 | evan | how is it testing where the function is |
| 18:10:46 | evan | could you gist the mkmf for mysql? |
| 18:10:47 | brixen | http://gist.github.com/266253 |
| 18:10:55 | brixen | line 51 |
| 18:11:06 | brixen | have_func rather |
| 18:11:15 | evan | ok |
| 18:11:19 | brixen | anyway, it makes that discovery code and tries to compile/link it |
| 18:11:33 | evan | so it's doing that and implicitely hoping that libruby is one of the default libraries. |
| 18:11:39 | brixen | well, no |
| 18:11:48 | brixen | libruby.dylib on os x is in rbconfig |
| 18:11:54 | evan | yeah |
| 18:11:54 | brixen | there's an entry that it uses |
| 18:11:57 | evan | so it's what I said. |
| 18:12:06 | evan | mysql's mkmf doesn't add libruby explicitly |
| 18:12:10 | brixen | right |
| 18:12:19 | evan | it's piggy backing off the fact that libruby is included by default normally. |
| 18:12:26 | brixen | yeah |
| 18:12:26 | evan | thats busted |
| 18:12:35 | evan | because you can (and do) build a MRI without a libruby |
| 18:12:44 | brixen | well, that's only part one |
| 18:12:50 | brixen | so what if they added libruby |
| 18:12:58 | brixen | we still don't have a libruby equiv |
| 18:13:09 | brixen | that mkmf discover code won't work |
| 18:13:31 | evan | yep |
| 18:13:35 | evan | it wont |
| 18:13:52 | evan | so |
| 18:13:56 | evan | what if those fail |
| 18:14:05 | evan | ie, it doesn't find rb_str_set_len |
| 18:14:08 | evan | what then |
| 18:14:18 | brixen | then the HAVE_X macros don't get defined |
| 18:14:23 | evan | ok, thats fine |
| 18:14:25 | evan | so what then |
| 18:14:26 | brixen | and mysql makes its own rb_str |
| 18:14:26 | brixen | nope |
| 18:14:29 | evan | does make faile? |
| 18:14:30 | brixen | not fine |
| 18:14:33 | brixen | yes |
| 18:14:45 | evan | well fuckstart |
| 18:14:50 | brixen | #define rb_str_set_len(str, length) (RSTRING_LEN(str) = (length)) |
| 18:14:55 | evan | this mkmf is busted. :? |
| 18:14:57 | evan | :/ |
| 18:14:59 | brixen | that ain't gonna fly |
| 18:15:17 | evan | because it won't run properly when you build MRI without a libruby |
| 18:15:32 | brixen | we can predefine stuff like HAVE_RB_STR_SET_LEN |
| 18:15:37 | brixen | but that sucks |
| 18:15:45 | evan | well, it sucks less right now |
| 18:15:53 | evan | lib-izing rubinius is a much bigger task. |
| 18:16:03 | brixen | but should it be done? |
| 18:16:10 | brixen | we've avoided it for a long time |
| 18:16:15 | evan | for good reason |
| 18:16:18 | evan | i don't think it should be done now |
| 18:16:19 | evan | no. |
| 18:16:23 | brixen | ok |
| 18:16:24 | evan | not while we are in the rc cycle. |
| 18:16:32 | evan | it will upend the apple cart bigtime. |
| 18:17:51 | brixen | evan: so why did you define rb_str_clamp and not just rb_str_set_len? |
| 18:18:01 | brixen | I don't see any reason not to just use rb_str_set_len |
| 18:18:12 | evan | mmm |
| 18:18:15 | evan | didn't want to conflict |
| 18:18:17 | evan | as I recall |
| 18:18:36 | evan | for this very reason |
| 18:18:41 | brixen | well, it's in the 1.8.7 MRI C-API |
| 18:18:46 | brixen | so I think we just define it |
| 18:18:49 | evan | k |
| 18:18:50 | brixen | and add the HAVE_RB_STR_SET_LEN |
| 18:18:58 | evan | i think I added clamp before we went to 1.8.7 |
| 18:19:09 | evan | plus, I don't think we've really checked out what is in the 1.8.7 API |
| 18:19:13 | evan | C-API wise. |
| 18:19:16 | evan | at least, I haven't. |
| 18:19:17 | brixen | it's in your openssl commit |
| 18:19:28 | brixen | anyway, I'll see if I can get mysql to install |
| 18:19:32 | evan | k |
| 18:20:33 | mattdaw | howdy, just stuck a patch in issue 131 that implements Array#permutation |
| 18:21:43 | evan | yeah! i saw |
| 18:21:47 | evan | going to check it out shortly |
| 18:21:51 | evan | thanks for that. |
| 18:22:15 | mattdaw | cool, it's been fun. breaking for lunch now, but I'll check back in later |
| 18:23:25 | brixen | mattdaw: what was the other ticket # you had a patch in? |
| 18:24:05 | evan | fuck datamapper has a shitton of gems. |
| 18:24:11 | brixen | yeah |
| 18:24:37 | mistergibson | I like sequel :) |
| 18:30:25 | mattdaw | brixen: 126 |
| 18:31:33 | brixen | mattdaw: ah yes, thanks |
| 18:33:30 | brixen | ok mysql 2.8.1 installs |
| 18:33:38 | brixen | fucking linking :( |
| 18:33:58 | brixen | evan: I've been googling all over kansas trying to find a good reference to understand this beotch |
| 18:34:06 | brixen | any suggestions? |
| 18:34:15 | brixen | google in other states? |
| 18:34:16 | evan | which bitch? |
| 18:34:18 | evan | linking? |
| 18:34:18 | evan | heh |
| 18:34:20 | evan | yeah |
| 18:34:21 | brixen | yes |
| 18:34:22 | evan | try google canada |
| 18:34:31 | brixen | fucking canadians :P |
| 18:34:33 | brixen | heh |
| 18:34:39 | evan | i'm not aware of anything |
| 18:34:51 | evan | what part are you trying to understand? |
| 18:34:55 | brixen | I did find a redhat paper by drepper |
| 18:35:03 | brixen | how it all works |
| 18:35:13 | brixen | why I am continually tripping up on it |
| 18:36:48 | evan | um |
| 18:36:49 | evan | well |
| 18:38:30 | evan | FUUUUUCK |
| 18:38:44 | evan | the older integrity doesn't work with newer data-objects |
| 18:38:45 | evan | great. |
| 18:39:03 | brixen | damn :( |
| 18:39:15 | evan | le sigh. |
| 18:39:24 | evan | guess i'll work on getting a newer integrity running |
| 18:39:36 | boyscout | C-API define LONG_LONG, make rb_str_set_len a function. - 7ce281a - Brian Ford |
| 18:39:36 | boyscout | Added explicit define for HAVE_RB_STR_SET_LEN. - f6d4bea - Brian Ford |
| 18:40:01 | evan | oh well |
| 18:40:05 | evan | it needed to be done anyway |
| 18:40:11 | brixen | mistergibson: want to give running mysql a shot |
| 18:40:23 | mistergibson | it failed |
| 18:40:24 | brixen | mistergibson: pull master and build/run without installing |
| 18:40:28 | mistergibson | ffi failed as well |
| 18:40:33 | mistergibson | ok |
| 18:40:37 | mistergibson | hold preeze |
| 18:40:38 | brixen | failed == meaningless |
| 18:40:40 | brixen | ok |
| 18:40:47 | mistergibson | blue, round! |
| 18:41:15 | brixen | blue just makes me think of chimay blue |
| 18:46:42 | boyscout | Fixes for Struct#eql? and Struct#new. - dfe7ec5 - Matt Daw |
| 18:47:28 | brixen | mattdaw: ping evan for a commit bit |
| 18:47:44 | brixen | mattdaw: and you can handle #131 :) |
| 18:49:28 | mattdaw | brixen: thanks, will do. marcandre just replied to #131 |
| 18:50:04 | brixen | ah cool |
| 18:50:16 | brixen | yeah marcandre is the author of most of the 1.8.7 compat stuff |
| 18:50:20 | brixen | glad he saw the ticket |
| 18:53:59 | boyscout | Added C-API define for EXTERN. Closes #127. - 58dc136 - Brian Ford |
| 18:54:07 | brixen | mattdaw: postgres-0.7.9.2008.01.28 installed with your patch |
| 18:54:15 | brixen | mattdaw: do you want to try running it though, see if it works? |
| 18:54:22 | mattdaw | sure, will do now. thanks |
| 18:54:28 | brixen | awesome, thanks |
| 18:58:18 | evan | ARG |
| 18:58:25 | evan | i might have to give up on integrity. |
| 18:59:52 | brixen | CI Joe |
| 18:59:53 | brixen | ? |
| 19:00:02 | evan | i'm pretty close to doing that |
| 19:04:25 | mistergibson | I'm curios, what led you guys to use llvm? |
| 19:04:33 | mistergibson | I think its brilliant btw |
| 19:05:03 | evan | I found it a long time ago |
| 19:05:18 | evan | and followed it for a while |
| 19:05:24 | evan | we played with it for a while |
| 19:05:28 | evan | before deciding how to use it |
| 19:06:15 | mistergibson | building now, then I'll test gem installs |
| 19:08:21 | mattdaw | brixen: postgres builds, thanks |
| 19:09:45 | brixen | mattdaw: yeah, can you run some test code pls |
| 19:09:55 | brixen | I'm curious if it works |
| 19:10:42 | mattdaw | brixen: i got some simple script/console rails stuff working last week |
| 19:11:08 | mattdaw | the unit tests for my app aren't working yet, but we've got a lot of gem dependencies |
| 19:11:44 | brixen | ok |
| 19:12:59 | mistergibson | mysql installed fine here |
| 19:12:59 | dbussink | evan: i was wondering, there is some stuff in vm/assembler, does that need cleaning up? |
| 19:13:16 | evan | yeah |
| 19:13:17 | dbussink | evan: first jit experiments etc. |
| 19:13:22 | evan | it nedes to be removed |
| 19:13:28 | mattdaw | brixen: 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:41 | evan | dbussink: udis86 needs to be moved to vm/external_libs |
| 19:14:15 | dbussink | evan: i did see that the assembly part is used for disassembly in one place, but that's all that's used |
| 19:14:22 | evan | yep |
| 19:14:22 | brixen | mattdaw: ah interesting |
| 19:14:55 | dbussink | wants a nice compacting gc |
| 19:15:32 | mattdaw | brixen: yeah, it'll be interesting to see if rbx makes a significant difference. definitely have a lot of short lived objects |
| 19:16:54 | mattdaw | (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:05 | mistergibson | hrm, it appears that rbx gem install does not pull in dep gems |
| 19:18:22 | evan | mistergibson: it should |
| 19:18:28 | mistergibson | it didn't |
| 19:18:31 | evan | how are you installing it? |
| 19:18:34 | mistergibson | ffi |
| 19:18:38 | mistergibson | after mysql |
| 19:18:48 | evan | huh? |
| 19:18:50 | evan | ffi what? |
| 19:18:53 | brixen | ffi isn't a dep of mysql |
| 19:19:01 | mistergibson | no, but I was testing |
| 19:19:12 | evan | oh man |
| 19:19:17 | evan | DO NOT install the ffi gem on rbx |
| 19:19:21 | mistergibson | understood |
| 19:19:23 | evan | we need to stub that out. |
| 19:19:24 | mistergibson | no worries |
| 19:19:26 | brixen | yeah |
| 19:19:34 | brixen | there's a gem that was trying to install it |
| 19:19:39 | brixen | rbgccxml? |
| 19:19:42 | brixen | I can't remember |
| 19:19:48 | mistergibson | I think so yes |
| 19:19:50 | dbussink | ffi through capi, sounds like fun :P |
| 19:19:59 | mistergibson | ffi is built into rbx? |
| 19:20:03 | brixen | yes |
| 19:20:10 | mistergibson | right, I see |
| 19:20:11 | evan | rubinius is where ffi came from. |
| 19:20:16 | mistergibson | nice |
| 19:20:19 | mistergibson | didn't know that |
| 19:20:26 | mistergibson | ffi rocks |
| 19:20:44 | evan | thanks. |
| 19:20:45 | marcandre | Mmm, 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:52 | mistergibson | any other gems you want me to try and build? |
| 19:21:00 | evan | marcandre: you might need to do a rake clean |
| 19:21:05 | evan | oh you did. |
| 19:21:08 | marcandre | yup |
| 19:21:14 | evan | um |
| 19:21:26 | evan | make sure to remove all .rbc files |
| 19:21:29 | evan | use find. |
| 19:21:33 | evan | then run rake again. |
| 19:21:37 | marcandre | k |
| 19:21:58 | mistergibson | rake clean doesn't sweep for .rbc files? |
| 19:22:05 | brixen | it does |
| 19:22:08 | mistergibson | k |
| 19:22:43 | brixen | marcandre: are you configured to install? |
| 19:23:02 | brixen | marcandre: also, use gists so we can see your whole thing, not the summary |
| 19:23:03 | brixen | please |
| 19:23:21 | marcandre | Well, I was configured to install |
| 19:23:30 | brixen | that's your problem |
| 19:23:48 | brixen | rake install |
| 19:24:20 | mistergibson | yeah, the inplace thing only worked when I withheld the --prefix |
| 19:24:38 | marcandre | http://gist.github.com/266310 |
| 19:25:03 | evan | thats definitely a .rbc problem. |
| 19:25:13 | brixen | marcandre: did you run rake install? |
| 19:25:38 | marcandre | looks like it works. Sorry to have disturbed you. |
| 19:26:29 | dbussink | evan: should i put it into something like vm/llvm/disassembler.{c,h}pp ? |
| 19:26:43 | evan | no? |
| 19:26:48 | evan | it's a whole different library |
| 19:26:53 | evan | put what in there? |
| 19:27:58 | dbussink | evan: the small part from vm/assembler that is used in vm/llvm now |
| 19:28:11 | dbussink | evan: basically some disassembly for debugging purpose i assume |
| 19:28:19 | evan | mm |
| 19:28:26 | evan | it should be just one function |
| 19:28:33 | evan | a wrapper around udis86 |
| 19:29:11 | dbussink | evan: this is basically what is used now: assembler_x86::AssemblerX86::show_buffer(impl, bytes, false, NULL) |
| 19:29:19 | evan | right |
| 19:29:30 | dbussink | evan: so i was wondering where that would fit best |
| 19:29:31 | evan | i'd say move show_buffer into vm/llvm/jit.cpp for now |
| 19:29:32 | evan | is fine |
| 19:29:34 | dbussink | ok |
| 19:29:35 | evan | as a static function |
| 19:29:53 | dbussink | and i'll move libudis and then nuke vm/assembler |
| 19:30:01 | evan | k |
| 20:02:08 | rue | Brisk evening |
| 20:07:48 | brixen | dbussink: hey, trying to repro your #130 |
| 20:07:57 | brixen | dbussink: but I'm not getting that |
| 20:08:05 | dbussink | brixen: what are you getting? |
| 20:08:10 | brixen | sec... |
| 20:08:23 | brixen | I have a debug build so everything is slow :P |
| 20:11:13 | brixen | dbussink: http://gist.github.com/266353 |
| 20:11:54 | dbussink | brixen: hmm, for that compile failure you probably need to install rake-compiler |
| 20:12:27 | dbussink | brixen: 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:34 | dbussink | brixen: what else could cause the issue? |
| 20:13:23 | brixen | dbussink: do you have rbx installed? |
| 20:13:36 | dbussink | brixen: nope, running it from the clone directory |
| 20:13:43 | brixen | then I'm lost |
| 20:14:33 | dbussink | brixen: hmm, i can try with a git clean and start from scratch |
| 20:14:42 | dbussink | brixen: to see if it still happens then |
| 20:20:04 | brixen | dbussink: yeah, all I did was clean build:debug, install those gems, and run your command |
| 20:20:16 | brixen | I already had a DO clone |
| 20:20:26 | dbussink | brixen: assume you pulled the do clone? |
| 20:20:30 | brixen | yeah |
| 20:20:43 | dbussink | hmm, i can try with a debug build to verify |
| 20:24:05 | brixen | dbussink: nah, try normal build |
| 20:24:15 | brixen | I just did debug so I could gdb it if I needed to |
| 20:25:04 | dbussink | brixen: ah, well, just want to be sure |
| 20:26:17 | brixen | dbussink: I'm rebuilding now |
| 20:37:53 | dbussink | brixen: hmm, did a git clean, rake distclean and rake clean |
| 20:38:00 | dbussink | still getting it with a debug build too :S |
| 20:42:33 | dbussink | brixen: ok, fully nuked do and works now, probably some rbc hiding in there i couldn't find :S |
| 20:43:12 | dbussink | brixen: mysql and postgres are passing now again :) |
| 20:43:45 | brixen | ok |
| 20:44:14 | brixen | I don't know how a .rbc can hid from find . -name \*.rbc but ... |
| 20:44:27 | mattdaw | I found another #define that postgres is relying on |
| 20:44:33 | dbussink | brixen: probably in a directory i wasn't looking in |
| 20:44:37 | brixen | anyway, I'm working on adding the signature check, so I'll ignore these tickets for now |
| 20:44:51 | brixen | mattdaw: really? |
| 20:44:55 | dbussink | brixen: ah, cool, well, i'll close mine |
| 20:45:01 | mattdaw | brixen: #define HAVE_RB_DEFINE_ALLOC_FUNC 1 |
| 20:45:06 | brixen | mattdaw: ok |
| 20:45:13 | mattdaw | I think it should go in vm/capi/intern.h |
| 20:45:16 | mattdaw | that sound right |
| 20:45:17 | mattdaw | ? |
| 20:45:27 | brixen | I'm adding those to defines.h |
| 20:45:31 | brixen | see the comment I put in there |
| 20:45:49 | brixen | normally the HAVE_XXX should be defined as a result of mkmy have_func |
| 20:45:53 | brixen | er mkmf |
| 20:45:59 | brixen | or similar discovery code |
| 20:46:22 | brixen | anyway, MRI C-API is just a total mess, so you could probably put it anywhere |
| 20:46:23 | brixen | heh |
| 20:46:29 | mattdaw | heh, ok. |
| 20:46:59 | brixen | let's just do defines.h for now |
| 20:47:14 | brixen | mattdaw: ping evan for a commit bit when he gets back from lunch |
| 20:47:26 | brixen | finds food... |
| 20:47:37 | dbussink | brixen: i'm also adding compat.h to the do_ drivers |
| 20:47:48 | dbussink | brixen: and i want to benchmark also how much they help :) |
| 20:47:48 | mattdaw | brixen: ok, I pinged him via github msg. |
| 20:48:54 | mattdaw | anyone know about Enumerator.new_with_block ? |
| 20:49:02 | mattdaw | Array#product calls that but it doesn't seem to exist |
| 20:49:05 | brixen | mattdaw: just tell him your gh username here |
| 20:58:36 | boyscout | Remove the hand crafted JIT and move udis86 to vm/external_libs - 53160ff - Dirkjan Bussink |
| 20:58:42 | dbussink | evan: there you go |
| 21:20:43 | lypanov | wazzup |
| 21:22:53 | dbussink | evan: brixen: available for a question? |
| 21:29:33 | evan | dbussink: yesh? |
| 21:30:17 | dbussink | evan: 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:27 | dbussink | evan: since that breaks something like 0.instance_variables |
| 21:30:40 | evan | you're thinking it would do what? |
| 21:31:45 | dbussink | evan: well, 0.instance_variables now gives an exception since that primitive returns nil |
| 21:32:00 | dbussink | evan: it should probably return an empty array instead |
| 21:32:19 | dbussink | evan: so i was wondering whether there was some explicit reasoning it doesn't do that already |
| 21:32:50 | evan | m, no specific reason |
| 21:32:58 | evan | other than the primitives don't have to match a ruby method |
| 21:33:01 | evan | strictly |
| 21:33:16 | evan | they can be wrapped to provide the required behavior in rubyland |
| 21:33:25 | dbussink | evan: that can be done too yeah |
| 21:33:31 | evan | that being said |
| 21:33:39 | evan | i doubt anything depends on ivar_names returning Qnil for 1 |
| 21:33:48 | evan | so returning an empty array is fine |
| 21:35:24 | evan | also |
| 21:35:28 | evan | now that I think about it |
| 21:35:34 | evan | it needs to be returning an array |
| 21:35:37 | dbussink | evan: hmm, it also returns the symbol table directly for a primitive |
| 21:35:43 | dbussink | evan: that should be changed too |
| 21:35:50 | evan | really? |
| 21:35:52 | evan | it shouldn't anymore |
| 21:35:55 | evan | i removed all of that |
| 21:36:09 | evan | because it's not a given that all ivars are available by a table |
| 21:36:10 | evan | wait |
| 21:36:15 | evan | "the symbol table"? |
| 21:36:22 | evan | which primitive |
| 21:36:24 | evan | point me to it. |
| 21:36:26 | dbussink | sorry, lookuptable of the defined variables |
| 21:36:39 | dbussink | vm/builtin/object.cpp:272 |
| 21:37:22 | evan | OOOH |
| 21:37:25 | evan | thats VERY WRONG. |
| 21:37:32 | evan | it hought you said it returned nil? |
| 21:37:44 | dbussink | evan: it does if there are no instance variables defined |
| 21:37:46 | evan | oh, it does if there is no external_ivars |
| 21:37:53 | evan | it shouldn't be doing either of those things |
| 21:37:54 | evan | both are wrong. |
| 21:38:00 | dbussink | i can imagine :) |
| 21:38:26 | evan | you need to use the same filtered_keys setup as below that |
| 21:38:29 | evan | if there is a tbl |
| 21:38:34 | evan | otherwise, just return ary. |
| 21:38:38 | dbussink | evan: yeah |
| 21:38:46 | evan | this is just an oversight in the last time I went through this code |
| 21:40:12 | dbussink | evan: ha, you make mistakes! :P |
| 21:40:28 | evan | oh hell yeah I do. |
| 21:40:32 | evan | i'm the first to admit that! |
| 21:44:18 | dbussink | evan: is the match filter actually necessary for ivars on an immediate? |
| 21:44:27 | evan | probably not |
| 21:44:31 | evan | but it can't hurt. |
| 21:44:46 | dbussink | evan: well, if i don't use i have to shuffle less around |
| 21:45:01 | dbussink | evan: dunno if it's problematic that the match is always created even if not necessary |
| 21:45:04 | evan | i'd prefer you use it. |
| 21:47:07 | evan | adding extra data to symbol we might use |
| 21:47:15 | evan | that we don't want to expose directly |
| 21:48:30 | dbussink | evan: https://gist.github.com/a342284c1b44c9da7805 |
| 21:48:53 | dbussink | evan: btw, dunno if you saw i cleaned up assembler |
| 21:48:59 | evan | that looks fine |
| 21:49:00 | evan | yeah, i saw |
| 21:49:03 | evan | didn't checkout the commit yet |
| 21:49:10 | dbussink | i'll also add some specs to rubyspec for this |
| 21:49:36 | evan | cool. |
| 21:50:30 | dbussink | whaa, there aren't any yet |
| 21:50:43 | dbussink | it "needs to be reviewed for spec completeness" :P |
| 21:51:26 | boyscout | Fix Kernel#instance_variables to correcty work with immediates - 2b36f8b - Dirkjan Bussink |
| 21:51:33 | dbussink | i'll add those later, first some sleep |
| 21:51:54 | evan | no prob. |
| 21:51:55 | evan | nite! |
| 22:16:04 | mistergibson | was ffi stubbed out just yet? |
| 22:16:24 | evan | pardon? |
| 22:16:48 | mistergibson | brixen indicated that ffi was to be 'stubbed' out as a dep? |
| 22:16:54 | mistergibson | am I mistaken? |
| 22:17:14 | mistergibson | incase I attempt to install a gem that requires it? |
| 22:17:20 | mistergibson | if I understand the setup... |
| 22:17:27 | evan | oh |
| 22:17:28 | evan | no |
| 22:17:30 | evan | we haven't done that |
| 22:17:37 | evan | we'll get to it eventually. |
| 22:17:43 | mistergibson | right |
| 22:17:44 | brixen | we need to make sure that ruby-ffi gem doesn't get installed as a dep |
| 22:17:52 | brixen | I'm not sure the best way to do that |
| 22:17:54 | mistergibson | ok |
| 22:18:10 | brixen | ruby-ffi is a dep of something you were trying to install |
| 22:18:14 | brixen | I don't remember what |
| 22:18:21 | boyscout | Add initial version of Kernel#instance_variables spec - 63366b7 - Dirkjan Bussink |
| 22:18:22 | boyscout | Cleanup tags for Kernel#instance_variables - 3846d59 - Dirkjan Bussink |
| 22:18:22 | mistergibson | rbgccxml I believe |
| 22:18:45 | dbussink | evan: no sleep yet ;) |
| 22:18:55 | brixen | dbussink: you can just commit to spec/ruby, I will sync it to rubyspec |
| 22:19:02 | brixen | dbussink: I noticed ;) |
| 22:19:11 | dbussink | brixen: ah, well, i pushed it to both this time |
| 22:19:17 | brixen | either you have an evil twin, or you aren't sleeping |
| 22:19:17 | brixen | heh |
| 22:19:23 | dbussink | muhahaha |
| 22:32:09 | rue | Or both |
| 22:56:16 | dwaite | waves |
| 23:23:17 | rue | Wave wave |
| 23:23:37 | brixen | isn't there an app for that |
| 23:44:26 | fynn | heh |
| 23:46:25 | rue | No, there is not |
| 23:46:49 | brixen | sure there is |
| 23:46:58 | brixen | I can get you an invite if you still need one :) |
| 23:48:49 | rue | Interestingly that leads to http://nerduo.com/thebattle/ |
| 23:49:14 | brixen | heh |
| 23:59:22 | evan | well, i've fixed this bug in cijoe |
| 23:59:28 | evan | i'm not sure if anyone actually uses cijoe |
| 23:59:34 | evan | because it wouldn't even work. |