Show enters and exits. Hide enters and exits.
| 00:00:29 | KirinDave enters the room. | |
| 00:01:00 | Vagabond | does rbx still need gcc 4? |
| 00:01:20 | rue | Should not, I think brixen built with 3 on Solaris or something |
| 00:01:27 | Vagabond | nice |
| 00:01:28 | drbrain | Vagabond: no |
| 00:01:31 | dbussink | Vagabond: well, it builds on freebsd / openbsd that have older versions |
| 00:01:43 | dbussink | Vagabond: something like 3.3 is the minimum |
| 00:01:47 | Vagabond | 3.3 is fine |
| 00:02:05 | dbussink | i've seen someone who tried it with 3.2 and if i recall correctly, that failed |
| 00:02:43 | dbussink | Vagabond: what are you testing with? |
| 00:02:56 | rue | UltraSPARC? |
| 00:03:51 | dbussink | i've been doing some tinkering on solaris, but was a pretty big pain |
| 00:04:05 | Vagabond | I haven't done anything yet |
| 00:04:08 | dbussink | especially getting it to use the right gnu tools |
| 00:04:13 | Vagabond | just asking questions |
| 00:04:29 | Vagabond | oh, I've set up a gnu toolchain on solaris before, using pkgsrc |
| 00:04:50 | rubuildius | Evan Phoenix: c62daf7d6; 1573 files, 5478 examples, 18952 expectations, 0 failures, 0 errors; http://rafb.net/p/3bzaeU93.html |
| 00:05:30 | dbussink | Vagabond: ah well, i had no solaris experience when i tried it out |
| 00:05:34 | evan | dbussink: BINGO. |
| 00:05:43 | evan | got the obsd SEGV in DEV mode |
| 00:05:55 | twbray_ leaves the room. | |
| 00:05:59 | evan | it's the VTALRM signal |
| 00:06:02 | dbussink | evan: ah, portable ucontext perhaps? |
| 00:06:05 | dbussink | or related to that? |
| 00:06:07 | evan | i guess obsd is firing it really early |
| 00:06:08 | evan | no |
| 00:06:10 | evan | not related. |
| 00:06:28 | Vagabond | if it does work, I can try to compile on ultrasparc/solaris, ultrasparc/[net|open|free]BSD netbsd/alpha and mips/IRIX (not that anyone really cares about alpha and IRIX anymore) |
| 00:06:41 | evan | i do really like that the obsd backtrace has debug symbols |
| 00:06:52 | dbussink | Vagabond: that would be really nice |
| 00:06:53 | evan | ie, obsd left debug symbols in their libpthread and libc |
| 00:06:59 | Vagabond | but hey, extra portability never hurts, eh? |
| 00:07:13 | dbussink | Vagabond: most should work if it uses the gnu tools like gcc and gmake |
| 00:07:18 | Vagabond | yeah, they do |
| 00:07:38 | dbussink | Vagabond: i got it to compile in the end on solaris |
| 00:07:48 | dbussink | Vagabond: did take some ugly shortcuts though |
| 00:07:51 | Vagabond | dbussink: nice |
| 00:07:59 | Vagabond | maybe I can help make it better |
| 00:08:12 | Vagabond | I've spent a lot of time porting stuff to weird platforms |
| 00:08:27 | dbussink | Vagabond: if you feel like it, please do :) |
| 00:08:53 | Vagabond | the gcc4 thing going away should make things easier ;) |
| 00:09:40 | dbussink | Vagabond: a lot of funky optimizations options have been removed, so that's one thing that makes it a lot easier |
| 00:10:05 | Vagabond | nice, it'd be great if rbx was as portable as MRI |
| 00:10:22 | boyscout | 2 commits by Dirkjan Bussink |
| 00:10:24 | boyscout | * Fixed #332 and cleaned up Time a bit. Thanks to gls; ba5a0d8 |
| 00:10:24 | boyscout | * Replace ulong in PortableUContextPPC with unsigned long; ce5c4e0 |
| 00:10:34 | evan | rubinius will be more portable than MRI in the end |
| 00:10:35 | therealadam leaves the room. | |
| 00:10:52 | evan | because we don't have any of the very platform specific stack walking code. |
| 00:11:27 | dbussink | evan: that should get rid of the warnings on openbsd |
| 00:11:33 | evan | danke |
| 00:11:37 | Vagabond | evan: nice |
| 00:11:42 | dbussink | evan: that's german :P |
| 00:11:45 | evan | i know. |
| 00:11:51 | evan | thath was the closest I could get. |
| 00:11:58 | dbussink | just leave of the last e :) |
| 00:12:06 | evan | it was either that or stoopwaffle! |
| 00:12:22 | dbussink | hehehe |
| 00:12:39 | Defiler | We need to find some reason to work on Rubinius here: http://www.metalcamp.com/nav.php?lang=en |
| 00:12:40 | dbussink | i haven't forgotten that i promised to bring some to railsconf :P |
| 00:12:52 | obiejuan_ enters the room. | |
| 00:13:07 | Defiler | looks gorgeous: http://www.metalcamp.com/nav.php?id=4&lang=en&subid=0 |
| 00:13:15 | evan | dbussink: maybe a hackfest, with axes? |
| 00:13:26 | evan | dbussink: huzzah! |
| 00:14:10 | rue | Defiler: That is clearly a fake, "opeth" is not even a real ordinal number |
| 00:14:29 | Defiler | haha |
| 00:15:19 | kofno enters the room. | |
| 00:17:17 | cremes | how do i discover where "Socket::Foreign.getsockopt" is defined? i looked in lib/ext where the subtend parts are, but no luck |
| 00:17:36 | evan | in lib/socket.rb |
| 00:18:10 | cremes | evan: right, but i thought Socket::Foreign was a ruby wrapper around some ffi and C parts, right? |
| 00:18:28 | rue | cremes: FFI is all done in Ruby |
| 00:18:45 | cremes | ok |
| 00:18:47 | rue | The user side, that is. The backend is obviously in C land |
| 00:18:56 | cremes | sure... |
| 00:19:09 | evan | cremes: Foreign.getsockopt is bound directly to the libc getsockopt function |
| 00:20:05 | cremes | evan: thanks. i was curious because at least one of the failing specs on ppc is endian related; i thought i could solve it in C-land with a #ifdef __BIG_ENDIAN__ kind of wrapper |
| 00:20:28 | cremes | how do you all recommend we do something like that in ruby? |
| 00:20:34 | evan | whats the fix? |
| 00:21:19 | evan | call htonl? |
| 00:21:20 | Defiler | rue: How can I NOT go to a metal festival that looks like this? http://www.metalcamp.com/downloads/beach_02.jpg |
| 00:21:38 | Defiler | metal nerds in the sun ha ha |
| 00:21:39 | cremes | evan: in #getsockopt we have a line "return val.read_string(length.read_int)" which needs to flip the bytes on "length.read_int" |
| 00:21:46 | dbussink | pirates ahoy! |
| 00:21:55 | cremes | evan: but only on big-endian boxes |
| 00:22:05 | evan | why? |
| 00:22:10 | evan | is that the correct fix? |
| 00:22:58 | cremes | don't know for sure yet... either that function needs to do it or the comparison value in the spec needs to flip |
| 00:23:09 | evan | whats the spec failure? |
| 00:23:12 | cremes | i don't know where the error is yet... spec or code |
| 00:23:12 | evan | so i can look |
| 00:23:35 | rubuildius_ppc | Dirkjan Bussink: ba5a0d871; 1573 files, 5478 examples, 18931 expectations, 0 failures, 28 errors; http://pastie.caboo.se/155699 |
| 00:23:47 | cremes | evan: here... http://pastie.caboo.se/155700 |
| 00:24:15 | drbrain | evan: what's something I can run that uses the stables? |
| 00:24:33 | evan | drbrain: rake clean:rbc build |
| 00:24:46 | rubuildius | Dirkjan Bussink: ba5a0d871; 1573 files, 5478 examples, 18956 expectations, 0 failures, 0 errors; http://rafb.net/p/LUHo6a71.html |
| 00:24:56 | drbrain | aww, I broked it |
| 00:25:44 | evan | cremes: does that spec fail under MRI? |
| 00:27:05 | cremes | looking now... since the change to bin/mspec, how do i run the equivalent of bin/ci -t ruby ? |
| 00:27:16 | evan | bin/mspec ci -t ruby <file> |
| 00:27:42 | juliamae enters the room. | |
| 00:27:59 | cremes | it tells me "ruby is not a valid target for mspec ci" |
| 00:28:16 | crossblaim enters the room. | |
| 00:28:20 | crossblaim | hi |
| 00:28:26 | rue | 'Lo |
| 00:28:28 | Defiler | evan: This is where we're at on activesupport, by the way: http://rafb.net/p/QMXIQf98.html |
| 00:28:38 | hornbeck enters the room. | |
| 00:29:10 | drbrain | crap how do I enable excessive tracing again? |
| 00:29:18 | drbrain | I'm writing it down this time in README-DEVELOPERS |
| 00:29:45 | Defiler | evan: haha hoooollyyyyy crapppppppp |
| 00:29:58 | Defiler | evan: activesupport redefines instance_exec |
| 00:30:06 | cremes | hmmm, i can't run bin/ci -t ruby at all now... it only runs rbx |
| 00:30:23 | Defiler | Use bin/mspec ci -t ruby |
| 00:30:31 | Defiler | (though the other should still work.. sounds buggy) |
| 00:30:51 | cremes | Defiler: it gives me "ruby is not a valid target for mspec ci" |
| 00:30:59 | agardiner | i think brixen removed ruby as a target for ci... doesn't really make sense to run ci on MRI |
| 00:31:17 | evan | Defiler: there is no instance_exec in 1.8 |
| 00:31:20 | cremes | agardiner: so how can i run a spec against mri? what's the syntax? |
| 00:31:21 | evan | Defiler: so it must defineit |
| 00:31:25 | Defiler | What? It makes utter and total sense to run CI on MRI |
| 00:31:27 | rue | Defiler: It was a "new" method in 1.8 |
| 00:31:44 | agardiner | cremes: just use bin/mspec <spec|dir> |
| 00:31:44 | Defiler | evan: Yeah, I see what it is doing now. The bug is: unless defined? instance_exec |
| 00:31:52 | evan | defined? |
| 00:31:53 | evan | wtf. |
| 00:31:53 | Defiler | Returns false on rubinius, when it should be true |
| 00:31:55 | evan | fired. |
| 00:32:24 | Defiler | why the fuck are they using defined? to check for responds_to? |
| 00:32:26 | Defiler | that is madness |
| 00:32:30 | Defiler | maadddnnnesssss |
| 00:32:52 | agardiner | welcome to rails... :-P |
| 00:33:01 | cremes | evan: getsockopt_spec passes on mri on osx ppc |
| 00:33:03 | KirinDave leaves the room. | |
| 00:33:22 | drbrain | crap how do I enable excessive tracing again? |
| 00:33:28 | evan | cremes: could you check that [1].pack("i") returns the same value under rubinius as MRI for you? |
| 00:33:30 | nicksieger leaves the room. | |
| 00:34:21 | cremes | how do i launch irb under shotgun? |
| 00:34:39 | evan | ./shotgun/rubinius |
| 00:34:42 | obiejuan_ leaves the room. | |
| 00:34:42 | evan | it will launch automatically |
| 00:35:09 | KirinDave enters the room. | |
| 00:35:18 | cremes | evan: [1].pack "i" returns different values on my platform |
| 00:35:21 | drbrain | ah, got it |
| 00:35:28 | boyscout | 1 commit by Evan Phoenix |
| 00:35:29 | boyscout | * Protect the premept alarm when it runs very early; b6bd626 |
| 00:37:24 | crossblaim | spec/core/kernel/load_spec.rb tries to load some files from a non-existent spec/fixtures/load directory. |
| 00:37:24 | crossblaim | Should I create the missing folder and files, or change load path? (there is a fixtures folder in spec/ruby/1.8) |
| 00:37:51 | evan | cremes: so, on your machine, MRI and rubinius return different values for "[1].pack('i')" |
| 00:37:54 | evan | yes? |
| 00:37:59 | evan | if so, then it's Array#pack thats broken |
| 00:38:00 | cremes | evan: correct |
| 00:38:03 | evan | not getsockopt |
| 00:38:09 | cremes | i will look at it |
| 00:42:05 | evan | ok, almost got openbsd running irb |
| 00:42:17 | evan | seems that openbsd doesn't have tgetent |
| 00:42:34 | evan | which strangely, /usr/lib/libreadline is looking for |
| 00:43:01 | dbussink | evan: there is a man page |
| 00:43:11 | wycats | Array#pack ftw |
| 00:43:13 | wycats | defiler: pm |
| 00:43:34 | dbussink | evan: looks like it's in termcap / curses and not readline |
| 00:44:03 | evan | yeah |
| 00:44:10 | evan | it's that you have to link to libncurses too |
| 00:44:40 | dbussink | well, there are already exceptions for various platforms in the makefile |
| 00:44:44 | dbussink | just add another one :P |
| 00:44:49 | evan | B |
| 00:44:49 | evan | I |
| 00:44:50 | evan | N |
| 00:44:51 | evan | G |
| 00:44:51 | evan | O |
| 00:44:52 | dbussink | but i really need to get to bed |
| 00:44:57 | evan | openbsd runs irb |
| 00:45:02 | evan | i'll run the specs now. |
| 00:45:06 | cremes | i think the mspec guards may be wrong... look at mspec/runner/guards/endian.rb... both endians are defined as [1].pack('L') for unsigned long |
| 00:45:35 | cremes | i think little endian should be [1].pack('V') and big endian should be [1].pack('N') in those guards |
| 00:45:47 | evan | no |
| 00:45:48 | evan | not true |
| 00:45:54 | cremes | no? |
| 00:45:55 | evan | L is whatever the encoding of the system is |
| 00:45:59 | cremes | right |
| 00:46:10 | evan | so the guard checks how L is encoded |
| 00:46:15 | cremes | ah, i see |
| 00:46:34 | cremes | pattern[-1] == one or zero |
| 00:46:51 | cremes | i'll keep looking later... gotta run |
| 00:47:08 | evan | k |
| 00:47:54 | evan | hrm |
| 00:48:03 | evan | my openbsd parallels VM locked up |
| 00:48:24 | dbussink | that's nasty |
| 00:48:39 | rubuildius_ppc | Evan Phoenix: b6bd62605; 1573 files, 5478 examples, 18931 expectations, 0 failures, 28 errors; http://pastie.caboo.se/155705 |
| 00:49:10 | dbussink | evan: mine just got through with 47 errors |
| 00:49:14 | evan | ok |
| 00:49:19 | evan | well, then we're getting there. |
| 00:49:46 | rubuildius | Evan Phoenix: b6bd62605; 1573 files, 5478 examples, 18956 expectations, 0 failures, 0 errors; http://rafb.net/p/l0XiH118.html |
| 00:49:51 | dbussink | all errors are dir / file / socket / name anything platform specific related |
| 00:50:06 | evan | hehe |
| 00:50:06 | wayneeseguin_ leaves the room. | |
| 00:50:28 | wayneeseguin enters the room. | |
| 00:51:25 | drbrain | evan: please review my zip -> ar changes: http://rafb.net/p/x10tYv38.html |
| 00:52:30 | evan | i'd prefer it follow the rest of the C code |
| 00:52:34 | dbussink | but i'm turning in |
| 00:52:37 | evan | ie, remove rubinius_ from the front of everything |
| 00:52:41 | evan | and have it just be ar_ |
| 00:52:51 | KirinDav enters the room. | |
| 00:52:54 | drbrain | won't that colide? |
| 00:52:57 | dbussink | nite! |
| 00:53:08 | evan | with what? |
| 00:53:18 | drbrain | some other ar thing |
| 00:53:23 | evan | not that I know of |
| 00:53:29 | drbrain | ok |
| 00:53:33 | drbrain | anything else? |
| 00:53:42 | evan | ar_validate should be type int |
| 00:53:46 | evan | and return TRUE or FALSE |
| 00:53:52 | drbrain | ok |
| 00:54:28 | evan | ditto with the rest of them |
| 00:54:41 | evan | unless they actually return a real OBJECT |
| 00:54:54 | drbrain | ok |
| 00:55:29 | drbrain | here's the Rakefile changes: |
| 00:55:35 | drbrain | http://rafb.net/p/SPqj3V66.html |
| 00:56:55 | evan | is it working? |
| 00:57:09 | drbrain | yes |
| 00:57:15 | evan | cool |
| 00:57:21 | evan | we can deal with this later |
| 00:57:27 | evan | but the AR#replace looks... odd |
| 00:57:38 | drbrain | I'm leaving in the libzip stuff |
| 00:57:38 | evan | it takes the ENTIRE contents of the AR as the last param? |
| 00:57:42 | drbrain | why? |
| 00:57:55 | drbrain | no, it takes the file data you're adding |
| 00:58:05 | evan | ah ah |
| 00:58:09 | evan | i read it wrong. |
| 00:58:49 | drbrain | I didn't write it to be efficient for random access, since we don't do that for our use case |
| 00:58:54 | drbrain | we just add crap to the end |
| 00:58:54 | evan | yeah, thats fine. |
| 00:59:02 | avi_ enters the room. | |
| 00:59:14 | evan | avi_: welcome back |
| 01:01:53 | drbrain | you want me to check this in, with the rake changes? |
| 01:02:32 | evan | sure |
| 01:02:44 | evan | thursday is a good day to blow things up |
| 01:03:09 | drbrain | it shouldn't blow up too hard, as it still supports .zip rbas |
| 01:03:16 | evan | yep |
| 01:04:17 | Defiler | This project gets more fun as time goes on |
| 01:04:30 | evan | :D |
| 01:04:32 | Defiler | Long enough to forget which parts you have written |
| 01:04:45 | Defiler | I was just looking at some code, thinking "damn, that is pretty sweet".. and then realized I wrote it ha ha |
| 01:04:53 | evan | hahah |
| 01:04:55 | evan | love that |
| 01:04:59 | evan | i've done that too |
| 01:05:00 | hornbeck leaves the room. | |
| 01:05:17 | evan | i've also done the 'wtf is this?! this is the stupdiest thing ever... oh, i wrote it.' |
| 01:05:23 | Defiler | Yeah that too |
| 01:05:28 | d2dchat leaves the room. | |
| 01:05:41 | wmoxam leaves the room. | |
| 01:05:56 | evan | ack, i gotta get a hair cut tomorrow. |
| 01:06:10 | agardiner | is that normally followed by the "damn, this is pretty sweet" moment? :-D |
| 01:06:24 | evan | sometimes |
| 01:06:29 | agardiner | hehe |
| 01:06:40 | evan | sometimes it is: "Man, i must have been high when I wrote this." |
| 01:09:42 | Defiler | evan: Hrm.. do we no longer normalize :vcall nodes down to calls? |
| 01:09:49 | evan | no |
| 01:10:00 | evan | there is a VCall AST node now |
| 01:10:00 | Defiler | No we no longer do that? |
| 01:10:02 | Defiler | OK |
| 01:10:17 | Defiler | So that explains this defined? regression.. it gets fed a vcall |
| 01:10:33 | evan | ah |
| 01:10:48 | evan | yeah, i needs to call respond_to? on self i guess |
| 01:11:42 | Defiler | It already handles that, yeah |
| 01:11:51 | Defiler | ..but because it was only expecting :call nodes in compiler1, etc, etc |
| 01:12:04 | evan | yep, yep, yep. |
| 01:12:23 | sfaxon leaves the room. | |
| 01:13:28 | Defiler | Aah, actually... it does need special handling |
| 01:13:37 | Defiler | Is there a good way to get a receiver object for 'self'? |
| 01:13:40 | Defiler | inside bytecode.rb |
| 01:13:57 | Arjen | ezmobius, congrats on finishing the book! :) |
| 01:14:04 | evan | Defiler: how do ya mean |
| 01:14:11 | evan | i don't follow |
| 01:14:16 | evan | g.self |
| 01:14:20 | evan | push's the current self on the stack |
| 01:14:27 | evan | er |
| 01:14:29 | evan | g.push :self |
| 01:15:03 | Defiler | evan: http://rafb.net/p/C8SYLF85.html |
| 01:15:05 | Defiler | aha |
| 01:15:12 | Defiler | Thanks. That's what I needed |
| 01:15:27 | Defiler | I was thinking I wanted/needed one of those 'self's like on line 6 of that paste |
| 01:15:43 | evan | no |
| 01:15:45 | evan | you don't. |
| 01:15:56 | evan | drbrain: going to commit the ar stuff? |
| 01:16:11 | drbrain | evan: yeah, making sure it still works |
| 01:16:16 | evan | good plan. |
| 01:16:47 | AndrewO enters the room. | |
| 01:19:25 | twbray__ leaves the room. | |
| 01:21:53 | boyscout | 2 commits by Wilson Bilkovich |
| 01:21:54 | boyscout | * Handle vcall and fcall arguments to 'defined?'; f415cec |
| 01:21:55 | boyscout | * Some compiler specs for 'defined?' handling; e50ec64 |
| 01:22:34 | drbrain | gah, everything but compiler.rba works |
| 01:23:31 | drbrain | I'm probably missing a file or something |
| 01:24:32 | ezmobius leaves the room. | |
| 01:24:55 | drbrain | haha, somebody put .swp files in the stables |
| 01:24:59 | drbrain | (compiler stable) |
| 01:27:38 | drbrain | what's a .rbo file? |
| 01:27:49 | drbrain | I have lib/compiler/garnet/test.rbo |
| 01:27:49 | Defiler | Anybody already up to date on the 'rake install' process? |
| 01:28:03 | Defiler | require 'tempfile' fails when I do it via the rbx console, but works when I do it via shotgun/rubinius |
| 01:28:04 | drbrain | Defiler: in what sense? |
| 01:28:34 | drbrain | I think tempfile is still in stdlib/ |
| 01:28:45 | Defiler | aha, so rake install skips all that? |
| 01:28:57 | drbrain | I believe so |
| 01:29:07 | Defiler | What is the policy for moving things to lib? |
| 01:29:21 | drbrain | do it when it works |
| 01:29:48 | drbrain | I used tempfile a bunch in the RubyGems tests, I'm pretty sure it works |
| 01:30:06 | Defiler | Yeah.. and it passes the (ha ha) built-in test |
| 01:30:23 | ezmobius enters the room. | |
| 01:31:28 | Defiler | haha I hereby consecrate my church |
| 01:31:29 | KirinDav leaves the room. | |
| 01:31:38 | Defiler | The creed involves hating activesupport as much as possible |
| 01:31:39 | rubymaverick_ leaves the room. | |
| 01:31:55 | Defiler | http://rafb.net/p/912gj497.html |
| 01:32:16 | Defiler | Let those who flaunt the earth-king with a fresher death be kissed |
| 01:33:08 | rubuildius_ppc | Wilson Bilkovich: f415cecac; 1574 files, 5480 examples, 18933 expectations, 0 failures, 28 errors; http://pastie.caboo.se/155719 |
| 01:34:46 | rubuildius | Wilson Bilkovich: f415cecac; 1574 files, 5480 examples, 18958 expectations, 0 failures, 0 errors; http://rafb.net/p/RcJiLE60.html |
| 01:37:08 | wayneeseguin leaves the room. | |
| 01:43:03 | Defiler | evan: oohhh kay.. |
| 01:43:13 | Defiler | evan: So, we define this Class#subclasses method |
| 01:43:30 | evan | drbrain: test.rbo is old |
| 01:43:31 | Defiler | evan: ..turns out activesupport does too.. and so it goes into a loop in ObjectSpace. |
| 01:43:35 | evan | it's a test |
| 01:43:37 | ezmobius | Arjen_: thx |
| 01:43:42 | evan | Defiler: fun. |
| 01:43:49 | Defiler | So, I guess we need a new name for ours |
| 01:45:06 | agile enters the room. | |
| 01:45:12 | Defiler | __subclasses__ ? or are we trying to avoid such hinkery? |
| 01:45:22 | evan | yeah |
| 01:45:25 | evan | that sounds fine. |
| 01:45:39 | agardiner | eww... not to me it doesnt |
| 01:46:10 | agardiner | it seems fair that a Ruby impl might add a subclasses method to Class |
| 01:46:16 | agardiner | maybe AS should be patched? |
| 01:47:13 | ezmobius | hah good luck with that |
| 01:48:02 | ezmobius | AS steps all over the namespace without any care for mortals |
| 01:48:22 | drbrain | ah, here we go, I need to fix up .rba loading from kernel/core/compile.rb |
| 01:48:24 | boyscout | 3 commits by Wilson Bilkovich |
| 01:48:25 | boyscout | * Rename Class#subclasses to __subclasses__ to avoid a conflict with ActiveSupport; 5311938 |
| 01:48:26 | boyscout | * Move the ghastly creation that is tmpdir.rb from stdlib to lib; 0d50795 |
| 01:48:27 | boyscout | * Move tempfile.rb to lib, since it seems to work nicely; ee03d8c |
| 01:49:08 | KirinDave leaves the room. | |
| 01:52:20 | crossblaim leaves the room. | |
| 01:53:55 | Defiler | oooooh this one is fun |
| 01:55:00 | drbrain | ok, I will push my ar(5) change after I get home |
| 01:55:03 | Defiler | aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1 |
| 01:55:13 | Defiler | We seem to not update $1 in time for that to get the right value |
| 01:55:19 | Defiler | We go right to left, right? |
| 01:55:27 | evan | oh gah |
| 01:55:33 | drbrain | yup |
| 01:55:37 | evan | thats insane. |
| 01:55:38 | Defiler | Seriously, I hate activesupport |
| 01:56:32 | agardiner | i was wondering when we'd hit some real code that did this... |
| 01:56:33 | drbrain | evan: I thought for sure order-of-evaluation would take at least a month to hit code that needed it to match MRI |
| 01:56:43 | drbrain | is out |
| 01:56:47 | evan | laters |
| 01:56:48 | Defiler | zero day evaluation order exploitz |
| 01:56:57 | evan | well |
| 01:57:05 | Defiler | evan: what did matz say about this again? |
| 01:57:12 | evan | we can fix this one without fixing call ordering |
| 01:57:16 | evan | because this is just masgn ordering |
| 01:57:21 | agardiner | yeah, this is masgn |
| 01:57:26 | evan | matz said "I expected it to be left to right." |
| 01:58:14 | rubuildius_ppc | Wilson Bilkovich: 531193842; 1574 files, 5480 examples, 18933 expectations, 0 failures, 28 errors; http://pastie.caboo.se/155723 |
| 01:58:39 | evan | i've been thinking about argument evaluation |
| 01:58:45 | evan | i'll come up with a nice solution once |
| 01:58:58 | Defiler | ./shotgun/rubinius describe the_worst_thing_ever.rb |
| 01:59:58 | rubuildius | Wilson Bilkovich: 531193842; 1574 files, 5480 examples, 18958 expectations, 0 failures, 0 errors; http://rafb.net/p/s8n35u43.html |
| 02:00:44 | Defiler | http://rafb.net/p/oxQv5j13.html |
| 02:00:48 | Defiler | just in case anyone wants to play |
| 02:01:34 | agardiner | when i considered this before for masgn, i thought a reverse opcode that could reverse n stack operands would make it a failry simple change... |
| 02:06:34 | Defiler | Here's a better one-liner whee a, b = ($a = 1), $a |
| 02:07:39 | agardiner | huh? is that real? |
| 02:08:12 | agardiner | or a test for the problem? |
| 02:08:40 | Defiler | Just a simplified test |
| 02:08:52 | Defiler | though using @a produces a smaller sexp, so I'll go with that |
| 02:08:53 | agardiner | i was gonna say.. wtf! |
| 02:09:09 | agardiner | :-) |
| 02:11:45 | Defiler | http://rafb.net/p/KsOdmr48.html |
| 02:12:00 | Defiler | what am I missing there? That kinda looks like it should work already, to me |
| 02:13:04 | agardiner | nah, push_ivar, :@a puts the value of @a on the stack |
| 02:13:22 | agardiner | but @a is set in the next two ops |
| 02:13:33 | agardiner | so the first op put nil on the stack |
| 02:14:05 | agardiner | i.e. the push_ivar :@a needs to happen after it has been set, not before |
| 02:14:12 | kofno leaves the room. | |
| 02:15:18 | macournoyer enters the room. | |
| 02:15:40 | KirinDav enters the room. | |
| 02:17:00 | agardiner | i.e. line 4 needs to move to between 8 and 9 |
| 02:17:11 | boyscout | 9 commits by Eric Hodel |
| 02:17:12 | boyscout | * New ar(5) stables.; 303eae2 |
| 02:17:13 | boyscout | * Build ar(5) .rba files for everything but compiler.; 4e6fced |
| 02:17:14 | boyscout | * Style cleanups.; 997537a |
| 02:17:15 | boyscout | * Don't fail ar(5) reading at EOF; 7a7333a |
| 02:17:16 | boyscout | * Allow Ar to create archives; f29ff3b |
| 02:17:17 | boyscout | ... |
| 02:18:17 | Defiler | agardiner: aha, right. Time for some food I think.. brain not worky |
| 02:18:39 | agardiner | hehe... me too (time to eat, i mean) |
| 02:18:52 | Defiler | holy crap look at the time |
| 02:19:00 | Defiler | No food in 8 hours. No wonder |
| 02:28:23 | rubuildius_ppc | Eric Hodel: 303eae25f; 1574 files, 5480 examples, 18933 expectations, 0 failures, 28 errors; http://pastie.caboo.se/155741 |
| 02:29:51 | rubuildius | Eric Hodel: 303eae25f; 1574 files, 5480 examples, 18958 expectations, 0 failures, 0 errors; http://rafb.net/p/VRvUYj13.html |
| 02:30:16 | antares leaves the room. | |
| 02:38:15 | kofno enters the room. | |
| 02:40:36 | mernen enters the room. | |
| 02:40:46 | jbarnette leaves the room. | |
| 02:46:47 | VVSiz_ enters the room. | |
| 02:49:35 | lstoll_ enters the room. | |
| 02:50:27 | _mutle enters the room. | |
| 02:51:31 | jtoy enters the room. | |
| 02:53:54 | KirinDav leaves the room. | |
| 02:55:20 | seydar enters the room. | |
| 02:55:35 | bitbckt enters the room. | |
| 02:56:11 | seydar | so how exactly should I write a patch for two files? |
| 02:57:16 | rue | Not by hand |
| 02:57:41 | seydar | i figured, since diff looks ugly. so what should I do? how do I use git-format-patch |
| 02:59:56 | seydar | rue: what should I do? |
| 02:59:59 | rue | Ah, I think I wrote this somewhere too.. if not, I need to |
| 03:00:53 | seydar | git log |
| 03:00:58 | seydar | whoops. not my terminal |
| 03:01:01 | rue | http://rubinius.lighthouseapp.com/projects/5089/using-git |
| 03:01:01 | lstoll leaves the room. | |
| 03:01:04 | rue | At the bottom there |
| 03:01:11 | seydar | i'm there, but it doesn't make sense |
| 03:01:23 | seydar | how do I write the file though? |
| 03:01:27 | rue | Sorry, just dashing in and out quick |
| 03:01:54 | rue | git format-patch <first_commit_I_want_to_include>..<last_commit_I_want_to_include> |
| 03:02:09 | seydar | how do I write the commits?!?!?! |
| 03:04:21 | rue | If you want to just make a single patch and you only have changes, no new/deleted files, you can use `git commit -a` |
| 03:04:51 | rue | If you want several, then `git add` the files for the first commit and then `git commit`, then repeat for the second |
| 03:04:57 | VVSiz leaves the room. | |
| 03:05:25 | rue | Once you have all commits in, then `git format-patch ...` |
| 03:05:47 | seydar | git commit -a will walk me through writing the patch? |
| 03:06:15 | seydar | btw, how long should `bin/mspec ci` take? |
| 03:06:28 | rue | You just need to give a commit message, usually. The patch is built for you |
| 03:07:08 | mutle leaves the room. | |
| 03:07:39 | enebo leaves the room. | |
| 03:08:35 | drbrain | seydar: it took me 60s last time I ran it |
| 03:09:16 | seydar | drbrain: the same command i posted? because it's banking on 5-10 min now |
| 03:10:22 | drbrain | seydar: 22s, but everything was still hot |
| 03:10:29 | drbrain | seydar: I have a 2.6GHz MBP |
| 03:10:34 | seydar | ah |
| 03:10:48 | seydar | i have 512mb RAM and 1.25 GHz |
| 03:11:02 | drbrain | the first time may take longer because it compiles a lot of stuff |
| 03:11:08 | seydar | oooooh! |
| 03:11:13 | seydar | well then I'll let it sit |
| 03:11:47 | seydar | so how do I do a commit message? i want to replace 3 lines of code in shotgun |
| 03:12:09 | drbrain | `git commit` will bring up an editor |
| 03:12:19 | drbrain | or, you can provide a message with the -m flag |
| 03:13:12 | d2dchat enters the room. | |
| 03:13:25 | drbrain | I recommend the former |
| 03:14:11 | seydar | and in the editor, what should I type |
| 03:14:55 | drbrain | you should have at least one line basically describing the changes |
| 03:15:11 | drbrain | and if you need more room to fully describe, hit return and type as much as needed |
| 03:15:50 | seydar | ok |
| 03:15:55 | seydar | but what about the code entering? |
| 03:16:38 | defunkt enters the room. | |
| 03:16:49 | drbrain | I don't understand |
| 03:17:20 | seydar | when do I enter the code for it to patch? |
| 03:17:30 | Vagabond | seydar: the patch is generated from the changes you've made to the tree |
| 03:17:37 | seydar | ooooh! |
| 03:17:38 | drbrain | before you run `get commit` and test |
| 03:17:38 | seydar | genius! |
| 03:17:47 | seydar | git*? |
| 03:17:54 | drbrain | ah, I see |
| 03:18:43 | Vagabond | man, git looks pretty nifty, I've never had a reason to look into it before |
| 03:19:12 | drbrain | I'm not sure which command generates the mail-formatted patch |
| 03:19:56 | Vagabond | git format-patch; git send-email ? |
| 03:22:44 | seydar | so i ran git commit, it did NOT open up an editor, but displayed some commented stuff |
| 03:22:55 | seydar | i should run `git commit -a` now |
| 03:24:57 | drbrain | yes |
| 03:25:27 | nicksieger leaves the room. | |
| 03:25:44 | ezmobius | seydar: git gui is an easy interface for making commits and patches |
| 03:25:54 | seydar | ok i did that. now, to send it off, git format-patch ? |
| 03:26:54 | drbrain | seydar: I think so |
| 03:27:13 | seydar | ok. bottoms up |
| 03:28:38 | seydar | i did it. do i need to do `git send-email` now? |
| 03:29:11 | Vagabond | give it a try |
| 03:29:43 | KirinDav enters the room. | |
| 03:31:27 | headius enters the room. | |
| 03:32:07 | seydar | any other commands I should try out? |
| 03:32:22 | seydar | ok i think mspec ci is stalling on PPC |
| 03:32:31 | Vagabond | http://git.or.cz/course/svn.html |
| 03:32:33 | seydar | whoops |
| 03:32:35 | Vagabond | did you look at this? |
| 03:32:46 | seydar | because i deleted a file it was using |
| 03:34:44 | Vagabond | are all the ci tests supposed to pass? |
| 03:35:42 | seydar leaves the room. | |
| 03:39:21 | seydar enters the room. | |
| 03:39:49 | hornbeck enters the room. | |
| 03:39:50 | seydar | what does an E mean in the 'bin/mspec ci' run? |
| 03:40:05 | Vagabond | error? |
| 03:40:42 | seydar | k. at the end, will it tell me which ones there were errors on? |
| 03:41:09 | rubyconsumer enters the room. | |
| 03:41:13 | seydar | uhoh. i think i did something wrong in my patch. nowhere did I give it my name |
| 03:42:35 | seydar | although git is smart. maybe it read my mind |
| 03:43:02 | Vagabond | worst that happens is that evan gets a confusing email |
| 03:43:59 | evan | you didnt' do the first step in our using-git page |
| 03:44:03 | evan | ie, setup a name and email |
| 03:45:02 | seydar | i think i did. i probably should've done it again |
| 03:48:45 | KirinDav leaves the room. | |
| 03:48:50 | seydar | ok everyone i'm going to try fixing a spec |
| 03:49:07 | Vagabond | evan: are all the CI specs expected to pass? |
| 03:51:11 | djwhitt | I'm not evan, but yeah, they should |
| 03:51:14 | seydar | im on tiger PPC, remember |
| 03:51:44 | seydar | so how should I fix a spec that's not in spec/ ? I'm trying my hand at IPAddr |
| 03:51:48 | Vagabond | I'm getting failures in some of the socket/IPADDR stuffon freevsd |
| 03:51:57 | seydar | same |
| 03:52:04 | djwhitt | however, I think the only platforms everything is currently passing on are intel 32bit and perhaps OS X on intel 64 bit |
| 03:52:25 | seydar | lame. Vagabond, how do I run a spec for something in stdlib? |
| 03:52:48 | Vagabond | djwhitt: I've got i386 |
| 03:53:10 | djwhitt | Vagabond: yeah, but there are issues on freebsd right now I think |
| 03:53:23 | djwhitt | I should have said intel 32bit linux |
| 03:53:40 | djwhitt | at least that's the only thing I can run it cleanly on right now |
| 03:53:57 | djwhitt | that's also what rubildius is |
| 03:54:05 | juliamae leaves the room. | |
| 03:54:17 | djwhitt | err... rubuildius |
| 03:54:40 | Vagabond | ah |
| 03:54:59 | Vagabond | I suspect that's why it's failing for seydar too |
| 03:55:10 | Vagabond | osX being derived from fbsd and all |
| 03:55:23 | djwhitt | well, I think it runs cleanly on latest OS X |
| 03:55:29 | apples enters the room. | |
| 03:55:33 | djwhitt | at least I imagine so since that's what evan is using I think |
| 03:55:39 | djwhitt | latest OS X on intel I mean |
| 03:55:59 | djwhitt | seydar is on PPC + an older version of OS X |
| 03:56:34 | Vagabond | yeah |
| 03:57:54 | macournoyer leaves the room. | |
| 04:01:55 | seydar | s/older/better |
| 04:02:26 | seydar | what's rubuildius? |
| 04:03:08 | seydar | where are the specs for stdlib? |
| 04:04:14 | seydar | found it |
| 04:05:38 | rue | Bleh, finally done with UNIX Network Programming Vol. 1, 3rd Edition. I only have three more books to read. |
| 04:08:05 | ezmobius | ;) |
| 04:08:24 | seydar | gradz |
| 04:08:34 | seydar | *rocky theme music as rue levels up* |
| 04:09:47 | _ADS enters the room. | |
| 04:10:04 | Vagabond | Socket.const_get "AF_INET6" => 28 |
| 04:10:13 | josb leaves the room. | |
| 04:10:25 | Vagabond | that seems to be why IPSocket isn't getting valid_v4? and friends defined |
| 04:10:35 | rue | ezmobius: I have read, not kidding, around 8400 pages this last two weeks so yours has to wait a little while--congrats though :) |
| 04:10:40 | lstoll enters the room. | |
| 04:10:47 | Vagabond | seydar: what does that report on your rbx install |
| 04:10:56 | ezmobius | wow thats some serious researching |
| 04:12:02 | seydar | Vagabond: install was fine |
| 04:12:02 | bitbckt leaves the room. | |
| 04:12:37 | Vagabond | seydar: ...? |
| 04:12:38 | evan | Vagabond: yes ci should pass |
| 04:12:39 | seydar | how'd you find out the AF_INET6 thing? |
| 04:12:47 | evan | there appears to be ci failures on freebsd that need to be fixed |
| 04:13:01 | seydar | Vagabond: i am trying to fix IPAddr now - same errors as you |
| 04:13:05 | Vagabond | evan: indeed, 12 of them |
| 04:13:17 | apples leaves the room. | |
| 04:13:32 | Vagabond | let me see if this fixes them |
| 04:13:57 | Vagabond | seydar: Socket.const_get "AF_INET6" <- what does that evaluate to for you? |
| 04:14:29 | seydar | MRI => 30 |
| 04:14:58 | Vagabond | seydar: in rbx |
| 04:15:04 | seydar | checking |
| 04:15:06 | seydar | takes a bit to load |
| 04:15:29 | seydar | rbx => 30 |
| 04:15:59 | Vagabond | it returns 28 for me on mri and rbx, but that prevents some methods being defined on IPSocket |
| 04:16:21 | Vagabond | see line 15 of stdlib/ipaddr.rb |
| 04:17:46 | Vagabond | if i comment out that line, I'm down to one failure |
| 04:17:50 | rue | Wow, that is some dumb code |
| 04:18:02 | rue | Or possibly some very clever but extremely poorly documented code |
| 04:18:04 | Vagabond | i have no idea what that line is checking for |
| 04:18:13 | Vagabond | other than ipv6 support? |
| 04:19:46 | seydar | is it the unless Socket.const_defined? line? |
| 04:20:20 | seydar | why did you want to comment it out |
| 04:20:20 | Vagabond | yes |
| 04:20:41 | Vagabond | because that conditional returns false on your and my machines |
| 04:20:41 | seydar | (this is learning xp for me) |
| 04:20:56 | seydar | what? it returns true |
| 04:21:00 | seydar | it's asking if it's defined |
| 04:21:04 | defunkt leaves the room. | |
| 04:21:05 | Vagabond | and therefore valid_v4? and friends don't get defined |
| 04:21:08 | Vagabond | so those specs fail |
| 04:21:13 | Vagabond | seydar: 'unless' |
| 04:21:23 | seydar | yea, if its..... |
| 04:21:28 | Vagabond | it negates the expression, therefore the condition is false |
| 04:21:31 | Vagabond | no? |
| 04:21:38 | seydar | i follow |
| 04:21:51 | lstoll_ leaves the room. | |
| 04:21:53 | seydar | but how did you know valid*s weren't getting defined? |
| 04:22:25 | Vagabond | I looked at the output of mspec ci? |
| 04:22:35 | seydar | i am too, at the error messages |
| 04:22:41 | seydar | no where does it say "undefined method" |
| 04:23:11 | Vagabond | right, you had to look at the file:linenumber |
| 04:23:15 | Vagabond | and see how it reached that raise |
| 04:23:18 | Arjen_ leaves the room. | |
| 04:23:20 | seydar | what exactly are you running |
| 04:23:34 | seydar | i'm running them on operator_spec.rb |
| 04:23:47 | Vagabond | I ran bin/mspec ci |
| 04:24:26 | Vagabond | the backtrace references ipaddr.rb:422 |
| 04:24:29 | seydar | uhuh |
| 04:24:31 | seydar | bingo same here |
| 04:24:46 | Vagabond | and that raise is right after a call to IPSocket.getaddress |
| 04:24:51 | seydar | so i went to look at why getaddress was raising hell |
| 04:25:10 | Vagabond | which, as you'll note, is alised in that block that's not being executed on our machines |
| 04:25:10 | seydar | and i tested valid? s and it returned true |
| 04:25:18 | seydar | fuck you |
| 04:25:22 | twbray enters the room. | |
| 04:25:29 | Vagabond | ? |
| 04:25:29 | seydar | >.< |
| 04:25:34 | seydar | i can't believe i missed that |
| 04:25:54 | seydar | you just beat my ass down in general logic |
| 04:26:05 | seydar | glad you're here though ;-) |
| 04:26:44 | Vagabond | funny way of showing it :P |
| 04:26:53 | seydar | haha |
| 04:26:56 | seydar | nice! your trick worked! it cut my errors down to 3 |
| 04:27:03 | Vagabond | the real question is, why is that line even there |
| 04:27:17 | seydar | noooo clue. don't want to commit it till we know, though |
| 04:27:25 | seydar | Vagabond: what timezone are you? |
| 04:27:38 | Vagabond | anyone with rbx on linux want to see what Socket.const_get "AF_INET6" returns? |
| 04:27:46 | Vagabond | seydar: EST |
| 04:28:16 | seydar | sweet. me too. you want to do this spec-session again sometime? |
| 04:28:34 | Vagabond | my schedule is pretty random |
| 04:28:42 | seydar | damn. |
| 04:28:46 | seydar | well, I'm not leaving yet! |
| 04:28:54 | Vagabond | but ping me and maybe I'll be around |
| 04:29:03 | seydar | back to work. are you getting an error on address inversion? |
| 04:29:31 | Vagabond | no |
| 04:29:37 | Vagabond | I only have a single CI error now |
| 04:29:49 | Vagabond | it's on Module |
| 04:30:11 | seydar | damn |
| 04:30:19 | seydar | i had 40 errors |
| 04:30:36 | Vagabond | pastebin em? |
| 04:33:24 | seydar | doesn't even fit in my terminal. like even with scrolling |
| 04:33:28 | seydar | but i'll run em again |
| 04:33:58 | seydar | how long does it typically take you to run them all? |
| 04:34:02 | manveru | is anyone here using the bin/autotestng.rb ? |
| 04:34:53 | seydar | whooooooa Vagabond: whats your module error coming from IPAddr. check the bottom of spec/ruby/1.8/library/ipaddr/operator_spec.rb |
| 04:35:07 | seydar | i think rubinius is getting confused (you'll know when you see) |
| 04:35:33 | manveru | you guys work on IPAddr? |
| 04:35:47 | Vagabond | seydar: why? |
| 04:35:58 | seydar | manveru: yups. freebsd and tiger |
| 04:36:13 | seydar | Vagabond: do you see it? it's using include, and that might be what's throwing your module panic |
| 04:36:25 | manveru | hm... would be lovely to get the specs pass for linux too :) |
| 04:36:33 | seydar | manveru: i think they already pass |
| 04:36:45 | seydar | thats why we're here and everyone else is sleeping |
| 04:36:47 | Vagabond | Socket#getaddrinfo gets the address information ERROR |
| 04:36:47 | Vagabond | Missing or uninitialized constant: IPPROTO_UDP: |
| 04:37:04 | seydar | lemme do a check on my end |
| 04:37:32 | manveru | wow, indeed |
| 04:37:39 | manveru | last week they were still b0rken |
| 04:37:57 | manveru | now i can resume trying to run ramaze :D |
| 04:38:03 | seydar | haha |
| 04:38:10 | seydar | manveru: you are truly a genius. |
| 04:38:14 | Vagabond | I think that's just a header issue |
| 04:38:26 | seydar | do you all think rubinius will become the new main ruby platform? |
| 04:38:49 | manveru | seydar: i'm not sure about that, but i know it will become my favorite :) |
| 04:39:15 | seydar | Vagabond: it's defined in mine |
| 04:39:33 | _ADS leaves the room. | |
| 04:39:40 | headius | I think rubinius will become A main ruby platform eventually |
| 04:39:50 | headius | there's never going to be just one |
| 04:39:51 | seydar | Vagabond: Socket.const_defined? "IPPROTO_UDP" |
| 04:39:59 | seydar | headius: good enough for me |
| 04:40:05 | manveru | aye |
| 04:40:17 | manveru | say, does rubinius work with rubygems? |
| 04:40:43 | ezmobius | sort of |
| 04:40:44 | djwhitt | not sure what the current status of that is, I know drbrain was getting pretty close |
| 04:41:07 | ezmobius | manveru: if you want to get ramaze running your best off unpacking all the needed gems and unshifting them to the $: |
| 04:41:11 | seydar | i totally love working on rubinius |
| 04:41:14 | ezmobius | thats how i got merb running |
| 04:41:20 | manveru | ezmobius: aye |
| 04:41:21 | ezmobius | manveru: rack and erubis work fine ;) |
| 04:41:31 | manveru | i know |
| 04:41:33 | seydar | Vagabond: you try the socket stuff? |
| 04:41:39 | manveru | i tried rack and bacon before |
| 04:42:12 | Vagabond | seydar: it's not defined here, investigating |
| 04:42:29 | seydar | yea. i'll pop open socket.rb and take a peep myself |
| 04:43:29 | Arjen_ enters the room. | |
| 04:44:18 | seydar | Vagabond: fork - socket is defined in C |
| 04:45:52 | ezmobius leaves the room. | |
| 04:46:00 | seydar | Vagabond: mine gets defined line 4331 - 4335 in stdlib/ext/socket/socket.c |
| 04:46:00 | manveru | oh sweet, i think i got a failing spec for ipaddr :) |
| 04:46:12 | seydar | g2g |
| 04:46:17 | seydar | write good code everyone! |
| 04:46:27 | seydar leaves the room. | |
| 04:47:06 | crafterm leaves the room. | |
| 04:48:18 | Vagabond | I've got a stack of undefined IPROTO constants on Socket |
| 04:48:57 | manveru | gotcha |
| 04:49:06 | manveru | ./shotgun/rubinius -ripaddr -e 'p IPAddr.new("192.168.0.0/16")' |
| 04:50:47 | manveru | that for some reason raises: invalid address (ArgumentError) |
| 04:51:42 | kofno leaves the room. | |
| 04:52:39 | bitbckt enters the room. | |
| 04:52:56 | bitbckt leaves the room. | |
| 04:54:11 | Vagabond | manveru: join the club |
| 04:54:47 | manveru | ha |
| 04:54:58 | manveru | ./shotgun/rubinius -rsocket -e 'p IPSocket.getaddress("192.168.0.0")' |
| 04:55:31 | manveru | Vagabond: as usual :) |
| 04:55:41 | manveru | i really hope our socket stuff is in ruby already... |
| 04:57:29 | manveru | well, at least part of it is |
| 04:58:32 | Vagabond | if I run the preprocessor over the file, I get sock_define_const("IPPROTO_UDP", 17); |
| 04:58:38 | Vagabond | so I don't understand why it's not defined |
| 04:58:48 | manveru | seems like some problem with ffi_decode_sockaddr :P |
| 04:59:12 | Vagabond | oh dear |
| 04:59:55 | Vagabond | manveru: what does Socket.const_get "AF_INET6" evaluate for you (and what OS/arch are you using?) |
| 05:00:17 | agardiner leaves the room. | |
| 05:00:30 | manveru | ./shotgun/rubinius -rsocket -e 'p Socket::AF_INET6' |
| 05:00:32 | manveru | 10 |
| 05:00:44 | manveru | archlinux/amd64 |
| 05:01:08 | manveru | and yeah, it's the same with MRI |
| 05:01:39 | manveru | or did you specifically want me to use const_get? |
| 05:02:07 | Vagabond | look at line 15 in stdlib/ipaddr.rb |
| 05:02:22 | Vagabond | seydar and i were here already ;) |
| 05:02:56 | manveru | i'm fighting ipaddr since months ^^; |
| 05:04:11 | manveru | but i got no idea what AF_INET6 is anyway |
| 05:04:48 | Vagabond | ipv6 support |
| 05:05:08 | Vagabond | try commenting out line 15, and the corresponding end, and see if more specs pass |
| 05:05:13 | Vagabond | it worked for me |
| 05:06:16 | manveru | all specs pass for me |
| 05:06:38 | manveru | and my problem is with an IPv4 anyway :P |
| 05:07:11 | Vagabond | oh |
| 05:07:14 | manveru | but hey |
| 05:07:21 | manveru | it indeed works |
| 05:07:29 | twbray leaves the room. | |
| 05:07:37 | Vagabond | bin/mspec ci wasn't failing at all? |
| 05:07:46 | manveru | no |
| 05:08:29 | manveru | but IPAddr.new('192.168.0.0') fails |
| 05:09:15 | Vagabond | indeed |
| 05:09:52 | Vagabond | why don't the specs test that? |
| 05:10:05 | manveru | because i haven't added it yet |
| 05:10:33 | manveru | i did the translation of the test-unit stuff to mspec for ipaddr btw :) |
| 05:10:39 | headius leaves the room. | |
| 05:11:43 | manveru | anw, let's add that spec |
| 05:13:39 | Vagabond | ah |
| 05:13:41 | rubyconsumer leaves the room. | |
| 05:14:13 | Vagabond | I can't wait until rbx is a valid MRI replacement (with the added embeddable goodness) |
| 05:15:12 | manveru | likewise ^^ |
| 05:16:53 | manveru | ough |
| 05:17:01 | Vagabond | I think platform.conf isn't being generated right on freebsd |
| 05:17:02 | manveru | zsh: illegal hardware instruction ./bin/mspec ci -t rbx |
| 05:20:11 | manveru | tries to find the culprit |
| 05:21:56 | twbray enters the room. | |
| 05:22:44 | jtoy leaves the room. | |
| 05:23:42 | twbray_ enters the room. | |
| 05:27:56 | ezmobius enters the room. | |
| 05:28:11 | _ADS enters the room. | |
| 05:35:46 | KirinDav enters the room. | |
| 05:39:43 | bitbckt enters the room. | |
| 05:42:11 | twbray leaves the room. | |
| 05:45:20 | twbray_ leaves the room. | |
| 06:02:29 | pergesu enters the room. | |
| 06:05:17 | enebo enters the room. | |
| 06:12:59 | nicksieger enters the room. | |
| 06:16:27 | GMFlash leaves the room. | |
| 06:16:36 | GMFlash enters the room. | |
| 06:16:58 | AndrewO leaves the room. | |
| 06:23:25 | d2dchat leaves the room. | |
| 06:31:13 | Tyler enters the room. | |
| 06:31:19 | headius enters the room. | |
| 06:31:25 | tongueroo leaves the room. | |
| 06:44:13 | enebo leaves the room. | |
| 06:44:51 | enebo enters the room. | |
| 06:46:03 | evan | it's a quiet evening. |
| 06:46:39 | headius | hiya |
| 06:46:57 | evan | hey there |
| 06:47:05 | evan | hows brussels going? |
| 06:47:24 | headius | well, I've been asleep since we spoke last, so I presume it's going fine :) |
| 06:47:34 | evan | good, good. |
| 06:47:35 | evan | :D |
| 06:47:45 | headius | monkeying with perf stuff this morning |
| 06:47:52 | evan | been doing some reading on how CLR handles transitioning from managed to unmanaged code |
| 06:47:56 | evan | and visa versa |
| 06:47:57 | headius | oh? |
| 06:48:16 | headius | it's more fluid than JVM, but much less safe/secure |
| 06:48:25 | headius | I don't know most of the internal details though |
| 06:48:27 | evan | subtend is quite similar |
| 06:48:30 | evan | architecturally |
| 06:48:35 | manveru | evan: would you mind trying Socket.getaddress('192.168.0.0') |
| 06:48:39 | benburkert leaves the room. | |
| 06:48:39 | evan | not nearly as complicated. |
| 06:49:06 | TheVoice leaves the room. | |
| 06:49:12 | evan | manveru: no such method |
| 06:49:37 | evan | headius: it's pretty similar to how I think JNI works |
| 06:50:01 | manveru | oh, sorry, that was IPSocket |
| 06:50:16 | evan | "192.168.0.0" |
| 06:50:19 | evan | is the output |
| 06:50:26 | manveru | on rubinius? |
| 06:50:29 | evan | yep |
| 06:50:35 | evan | 10.5.2 / intel |
| 06:50:44 | manveru | huh |
| 06:50:59 | pietia leaves the room. | |
| 06:51:14 | evan | headius: i'm mulling over some of the internal architecture of rubinius |
| 06:51:19 | evan | coding up an experiment currently |
| 06:52:02 | headius | oh? what sort of experiment |
| 06:52:44 | evan | using the C stack to call and return from methods |
| 06:52:53 | RyanTM leaves the room. | |
| 06:52:56 | evan | not doing everything stackless |
| 06:53:21 | headius | having some problem with everything being stackless? |
| 06:53:25 | evan | pretty much every VM begins to use the C stack at some point |
| 06:53:43 | manveru | so that's a 64bit problem... |
| 06:54:01 | evan | i'm pretty sure that the current stackless arch can't be optimized anymore |
| 06:54:31 | evan | plus, you can have a hybrid approach |
| 06:54:35 | manveru | 192.168.0.0 fails on linux/amd64 only, 192.168.0.1 works everywhere... |
| 06:54:36 | evan | which is what VisualWorks 5 does |
| 06:54:54 | cremes | watch out! |
| 06:54:57 | headius | sounds like a pretty heavy change |
| 06:55:13 | evan | Contexts start their life on the C stack, and promote themselves to the heap if needed |
| 06:55:16 | headius | have you identified things about stackless that you can't optimize anymore? |
| 06:55:17 | evan | headius: it's not really |
| 06:55:22 | evan | i've been sliming the VM more and more |
| 06:55:23 | jtoy enters the room. | |
| 06:55:33 | evan | but it's an experiment |
| 06:55:36 | evan | so I shall see |
| 06:55:53 | cremes leaves the room. | |
| 06:56:27 | evan | it might be more work than I want to do |
| 06:56:31 | manveru | maybe some issue with pack... |
| 06:56:35 | evan | but i wont know the work until i poke around |
| 06:57:45 | evan | headius: if you're interested in the CLR managed code stuff, check out http://www.mono-project.com/Interop_with_Native_Libraries |
| 06:58:10 | headius | ahhh, thanks |
| 06:58:20 | evan | they explain it WAY better than microsoft |
| 06:58:28 | evan | from an API standpoint |
| 06:58:53 | headius | I would expect making things "stackful" would increase some of your thread and continuation overhead |
| 06:59:41 | enebo leaves the room. | |
| 06:59:49 | evan | true |
| 06:59:53 | evan | i'm not writing any code for this yet |
| 07:00:01 | evan | just kinda looking around, thinking about it. |
| 07:00:41 | headius | might make it easier to native thread though |
| 07:00:53 | evan | perhaps |
| 07:01:07 | evan | i've been thinking it would be easier to do partial jit |
| 07:01:10 | evan | like you were doing |
| 07:01:33 | evan | because I could use C semantics to call ruby methods more closely |
| 07:04:12 | headius | yeah, it would definitely make that easier |
| 07:04:34 | headius | though I think a harder problem for you would be making a JIT work with green threading |
| 07:04:50 | manveru | gotcha |
| 07:04:51 | manveru | manveru@sigma rubinius-git/src/rubinius % ./shotgun/rubinius -rsocket -e 'p Socket::Foreign::ffi_decode_sockaddr("\002\000\000\000\300\250\000\000\000\000\000\000\000\000\ 000\000", 16, 1)' |
| 07:04:53 | manveru | "Temporary failure in name resolution" |
| 07:05:19 | evan | headius: thats true |
| 07:05:27 | manveru | manveru@pi rubinius-git/src/rubinius % ./shotgun/rubinius -rsocket -e 'p Socket::Foreign::ffi_decode_sockaddr("\002\000\000\000\300\250\000\000\000\000\000\000\000\000\ 000\000", 16, 1)' |
| 07:05:29 | manveru | #<Tuple: "192.168.0.0", "192.168.0.0", 0> |
| 07:05:48 | evan | whats the difference between the 2? |
| 07:06:00 | manveru | one is amd64, the other is intel32 |
| 07:06:05 | headius | I don't know of any jitted systems that are green threaded |
| 07:07:46 | manveru | attach_function "ffi_decode_sockaddr", :ffi_decode_sockaddr, [:state, :string, :int, :int], :object |
| 07:07:54 | manveru | that's as far as i can go... |
| 07:08:09 | evan | not true |
| 07:08:15 | evan | you can go to shotgun/lib/ffi_util.c |
| 07:08:20 | evan | and look at ffi_decode_sockaddr |
| 07:08:29 | manveru | sure, but that's C |
| 07:08:44 | evan | are you alergic? |
| 07:09:03 | headius | hey evan, I have to rib you a little |
| 07:09:12 | manveru | no, i just don't know it |
| 07:09:19 | evan | gets a noogy ready for headius |
| 07:09:22 | headius | there's more lines of C code in shotgun/lib than there are lines of Ruby code in kernel/** |
| 07:09:35 | evan | if you do wc -L |
| 07:09:37 | headius | by a wide margin...29k to 21k or something |
| 07:09:38 | evan | wc -l thats true |
| 07:09:47 | evan | because grammar.c is 10k lines alone. |
| 07:09:52 | evan | and it's autogenerated. |
| 07:10:24 | evan | so do |
| 07:10:33 | evan | 29994 - 10941 |
| 07:10:40 | evan | thats a much more accurate number |
| 07:10:48 | evan | from the standpoint of C code we wrote |
| 07:10:49 | headius | yeah |
| 07:11:08 | headius | C code is gaining on Ruby code though |
| 07:11:24 | evan | i don't think so |
| 07:11:30 | manveru | well, i just can't debug this C stuff without help |
| 07:11:33 | evan | i was going to graph that change actually |
| 07:13:00 | cavalle enters the room. | |
| 07:13:25 | evan | but none the less |
| 07:13:31 | evan | i'll consider myself ribbed |
| 07:13:37 | evan | hows your java versus ruby totals going? |
| 07:13:41 | evan | still 99% java? |
| 07:13:45 | evan | ribs back. |
| 07:13:56 | headius | writing JRuby in Ruby has never been a goal |
| 07:14:06 | headius | so it's not really a fair comparison |
| 07:14:08 | evan | doesn't mean I can't rib. |
| 07:14:12 | evan | sure it is |
| 07:14:30 | headius | if the comparison is how much is written in Java, you're looking pretty bad |
| 07:14:53 | ezmobius | oooh implementors fight! :P |
| 07:14:55 | headius | depends on your perspective |
| 07:15:06 | evan | course it does. |
| 07:15:20 | manveru | error = getnameinfo(addr, len, hbuf, sizeof(hbuf), pbuf, sizeof(pbuf), NI_NUMERICHOST | NI_NUMERICSERV); |
| 07:15:21 | headius | for us it's a far better thing that it's mostly Java and no C |
| 07:15:29 | manveru | i _guess_ that's where the problem occurs |
| 07:15:30 | headius | we have 0% C code :) |
| 07:15:53 | ezmobius | isn't the jvm written in C? |
| 07:16:05 | evan | wow |
| 07:16:12 | evan | rubinius is 2x faster than yarv at method dispatch |
| 07:16:21 | headius | yeah, those are good numbers |
| 07:16:38 | evan | i'm going to make these benchmark numbers into a flag |
| 07:16:39 | headius | you have a much lighter context |
| 07:16:42 | manveru | so, anybody wanna instruct me on how to debug C? |
| 07:16:43 | evan | and fly it from my porch |
| 07:16:46 | evan | if i had a porch |
| 07:16:51 | evan | ... a porch would be nice... |
| 07:16:51 | ezmobius | heh |
| 07:16:54 | geekounet leaves the room. | |
| 07:17:08 | headius | as long as everyone writes methods that only return self, rubinius is golden |
| 07:17:12 | headius | :) |
| 07:17:18 | evan | :D |
| 07:17:26 | evan | are any literal |
| 07:17:28 | headius | your numbers are faster than ours too when we frame |
| 07:17:39 | evan | s/are/or/ |
| 07:18:08 | rudebwoy leaves the room. | |
| 07:18:09 | manveru | gives up and goes back to more interesting things |
| 07:18:20 | evan | looks like 10s to 6s rubinius to yarv when a having to allocate a context |
| 07:18:21 | headius | constructing a frame is literally about 80% of the cost in that method benchmark for us |
| 07:18:37 | evan | brb |
| 07:18:37 | headius | so I was going to ask about that |
| 07:18:50 | headius | you have some optimizations to avoid allocating a context? |
| 07:22:19 | rue | manveru: I am getting "ai_family not supported" |
| 07:23:27 | _ADS_ enters the room. | |
| 07:23:28 | tongueroo enters the room. | |
| 07:23:38 | rue | manveru: And/or "servname not supported for ai_socktype" depending on exactly where |
| 07:26:14 | rue | Hm, wait.. is that even a correct method? |
| 07:28:04 | lstoll leaves the room. | |
| 07:29:30 | lstoll enters the room. | |
| 07:31:03 | lstoll_ enters the room. | |
| 07:31:03 | lstoll leaves the room. | |
| 07:36:38 | evan | headius: so |
| 07:36:42 | evan | to answer your question |
| 07:37:00 | evan | the optimizations I have are the form detection and use a primitive |
| 07:37:12 | evan | what case have you found where you don't need to allocate a context? |
| 07:37:16 | rue | Wtf, why is getaddress using getNAMEinfo? |
| 07:38:51 | defunkt enters the room. | |
| 07:39:01 | rue | You are going to make me look at the source, aren't you |
| 07:40:20 | evan | yep |
| 07:42:11 | _ADS leaves the room. | |
| 07:44:08 | ezmobius leaves the room. | |
| 07:46:01 | brixen | evening folks |
| 07:46:11 | evan_ enters the room. | |
| 07:46:14 | brixen | returns from a long day with shimane oss |
| 07:46:32 | evan | brixen: how was it? |
| 07:46:34 | evan | stupid dircproxy |
| 07:46:41 | brixen | very interesting |
| 07:46:52 | brixen | there's some huge japanese companies using rails now |
| 07:47:13 | evan leaves the room. | |
| 07:47:33 | evan | oh? |
| 07:47:37 | evan | what did matz have to say? |
| 07:47:57 | brixen | matz spoke a bit about ruby association |
| 07:47:57 | KirinDav leaves the room. | |
| 07:48:16 | brixen | it's an llc he's started to help bridge developers and business |
| 07:48:35 | brixen | another guy gave a talk about ruby certification |
| 07:48:55 | brixen | I'm still trying to sort out my business cards and remember who said what ;) |
| 07:49:20 | evan | ruby certification? |
| 07:49:20 | evan | ! |
| 07:49:27 | evan | goody. |
| 07:49:34 | brixen | hehe |
| 07:49:46 | brixen | yeah, ctc is promoting/backing it |
| 07:49:55 | brixen | www.ctc-g.co.jp |
| 07:50:22 | lstoll_ leaves the room. | |
| 07:50:47 | brixen | evan: very interesting though, I met another psu prof: bart massey |
| 07:50:51 | evan | whats ctc? |
| 07:51:11 | brixen | he talked to me about some of ian's work, self, and a system called eureka? |
| 07:51:13 | rue | Phew, looks like manveru got lost somewhere.. it does use getaddrinfo |
| 07:51:41 | evan | brixen: eureka eh? never heard of it. |
| 07:51:54 | rue | Top secret |
| 07:52:06 | brixen | evan: and he knows this retired guy who worked for intel and amd for quite some time. he's invited me to lunch with him and talk about performance issues on modern cpu architectures |
| 07:52:10 | evan | it gets an F- in google-ability |
| 07:52:20 | brixen | evan: I'm trying to find something on eureka now |
| 07:52:34 | brixen | bart said a bunch of the eureka ideas went into self |
| 07:52:37 | evan | brixen: oh fun |
| 07:52:42 | evan | ah |
| 07:53:26 | brixen | I'll see if he can refer me to some papers or something |
| 07:53:53 | evan | yeah |
| 07:53:54 | brixen | apparently eureka (I have no idea if that's spelled right) was a highly dynamic system |
| 07:54:00 | rue | http://sardes.inrialpes.fr/collaborations/collaborations/s4all.html is the only thing I can find |
| 07:55:46 | brixen | evan: so, just catching up on channel chatter, this going less stackless idea, any papers related to that? |
| 07:56:09 | brixen | curious because stackless python was really big for a moment, then totally died |
| 07:56:22 | nicksieger | brixen: isn't the japanese business card dance fun? we did the same here on tuesday |
| 07:56:32 | brixen | but I thought that was more related to guido's dislike for it than any technical issues |
| 07:56:41 | brixen | nicksieger: heh, yeah fun :) |
| 07:56:43 |