Show enters and exits. Hide enters and exits.
| 00:00:18 | dbussink | jp_tix: but i really need to some sleep |
| 00:00:34 | twbray enters the room. | |
| 00:00:43 | jp_tix | dbussink: me too, I think we're in the same time zone :) |
| 00:00:47 | jp_tix | thanks for your help |
| 00:01:42 | dbussink | jp_tix: no problem |
| 00:01:48 | dbussink | night all |
| 00:01:55 | evan | dbussink: nite |
| 00:02:06 | dbussink leaves the room. | |
| 00:03:31 | GMFlash leaves the room. | |
| 00:03:40 | GMFlash enters the room. | |
| 00:05:36 | imajes leaves the room. | |
| 00:06:16 | imajes enters the room. | |
| 00:07:05 | imajes leaves the room. | |
| 00:09:19 | imajes_ enters the room. | |
| 00:10:01 | imajes_ leaves the room. | |
| 00:10:44 | geekounet leaves the room. | |
| 00:11:49 | evan | so, the meta instruction to do + is 2.5x faster than without it |
| 00:12:00 | imajes enters the room. | |
| 00:12:41 | headius | meta instruction? |
| 00:12:57 | evan | meta_send_op_plus |
| 00:13:01 | evan | it's an optional instruction |
| 00:13:05 | evan | same way yarv does it |
| 00:13:18 | headius | oh, the optimized math ops |
| 00:13:20 | evan | if it sees something being sent the + selector, it uses this |
| 00:13:22 | evan | yeah |
| 00:15:34 | headius | playing with specific math optimizations? |
| 00:16:07 | vintrepid leaves the room. | |
| 00:16:50 | vintrepid enters the room. | |
| 00:16:59 | imajes leaves the room. | |
| 00:17:25 | imajes enters the room. | |
| 00:17:53 | imajes leaves the room. | |
| 00:18:36 | evan | headius: looking at the method dispatch performance |
| 00:19:49 | imajes enters the room. | |
| 00:20:05 | headius | I haven't tried operator optz recently |
| 00:21:02 | Defiler | evan: Do you have a suggestion for how I should debug this? http://rafb.net/p/mdBiIM75.html |
| 00:21:41 | evan | debug what? |
| 00:21:43 | evan | whats the problem? |
| 00:21:59 | Defiler | Aah, sorry.. the 'type' is wrong |
| 00:22:07 | Defiler | I pass in zero, and get back 4196896 |
| 00:22:11 | Defiler | ..and then fire |
| 00:22:24 | evan | whats the type in ffi? |
| 00:22:29 | evan | debugging is a bitch. |
| 00:22:38 | evan | you're going to have to debug the stub generator |
| 00:23:26 | Defiler | name and port are strings, type and flags are ints |
| 00:23:32 | Defiler | (in the attach_function call) |
| 00:23:38 | evan | you're in 32bit mode? |
| 00:23:40 | Defiler | Yeah |
| 00:23:56 | evan | i'd very it's wrong on another platform first |
| 00:24:01 | evan | before you start to spin your wheels |
| 00:24:07 | evan | s/very/verify/ |
| 00:24:09 | Defiler | It isn't. It only blows up on MacOS, as far as I can tell |
| 00:24:16 | evan | be sure. |
| 00:24:19 | Defiler | OK |
| 00:24:59 | Defiler | spec/ruby/1.8/library/socket/pack_sockaddr_in_spec.rb if anyone else wants to run it with mspec |
| 00:25:03 | Defiler | Trying it on Gentoo now |
| 00:27:02 | rue | Dinner, be back in a bit |
| 00:35:37 | Defiler | evan: Ouch. http://rafb.net/p/plSrvt46.html |
| 00:35:42 | Defiler | That is on an EY slice |
| 00:35:58 | Defiler | (attaching to the same function) |
| 00:36:03 | evan | fun. |
| 00:36:06 | Defiler | So maybe the stub for that signature is broken ugh |
| 00:38:07 | evan | which function is this? |
| 00:38:37 | Defiler | ffi_pack_sockaddr_in in ffi_util.c |
| 00:38:51 | evan | :state, :string, :string, :int, :int |
| 00:38:52 | evan | right? |
| 00:39:01 | Defiler | Yeah |
| 00:39:02 | Defiler | OBJECT ffi_pack_sockaddr_in(STATE, char *name, char *port, int type, int flags) { |
| 00:39:44 | Defiler | We don't use lightning on MacOS x86 anymore, right? |
| 00:39:54 | Defiler | It seems that way to me, just checking |
| 00:40:00 | evan | yeah |
| 00:40:02 | evan | we don't |
| 00:40:08 | evan | i got ffi_x86.c working on darwin |
| 00:40:25 | Defiler | We do use it on Linux 64bit though, right? |
| 00:40:38 | evan | thats a different one |
| 00:40:42 | evan | the 64bit one is different |
| 00:40:44 | Defiler | Yeah |
| 00:40:58 | Defiler | I am just surprised that it would happen to be wrong in both implementations |
| 00:41:10 | evan | true dat. |
| 00:42:19 | therealadam leaves the room. | |
| 00:42:24 | ragnard leaves the room. | |
| 00:42:43 | headius | pastie: for evan |
| 00:43:02 | tmpk | evan: trace trees can be considered a form of dead-code elimination. |
| 00:43:12 | tmpk | rue: is this the most recent benchmark? http://pastie.org/152553 |
| 00:43:17 | pastie | evan: http://pastie.org/152962 by headius. |
| 00:43:18 | evan | headius: url? |
| 00:43:24 | evan | pastie is SOO slow. |
| 00:43:47 | headius | that's the difference between normal and fast operators (for fixnum only) |
| 00:44:06 | evan | cool |
| 00:44:33 | MenTaLguY | I wish pastie wouldn't keep defaulting to the midnight theme on me |
| 00:44:42 | MenTaLguY | oh, wait, different pastie |
| 00:45:19 | pauldix enters the room. | |
| 00:45:39 | headius | evan: so not as much as 2.5x for us, but quite a chunk |
| 00:46:42 | pauldix_ enters the room. | |
| 00:46:59 | pauldix_ leaves the room. | |
| 00:49:16 | Yurik leaves the room. | |
| 00:52:19 | Yurik enters the room. | |
| 00:56:25 | Yurik leaves the room. | |
| 00:59:13 | cored enters the room. | |
| 01:03:54 | agile leaves the room. | |
| 01:06:34 | pauldix leaves the room. | |
| 01:07:14 | drbrain | I found a bug in IO#eof? |
| 01:07:24 | drbrain | it does not return true until the next read |
| 01:07:46 | Defiler | That doesn't sound as eof-ish as it should |
| 01:07:53 | drbrain | echo 'x' > x; shotgun/rubinius -e "File.open 'x' do |io| io.read 2; p io.eof? end" |
| 01:07:59 | drbrain | MRI reports true |
| 01:10:20 | tongueroo leaves the room. | |
| 01:11:38 | drbrain | yes, it is exculded |
| 01:16:28 | menator enters the room. | |
| 01:28:06 | graza_ enters the room. | |
| 01:28:07 | graza leaves the room. | |
| 01:30:22 | KirinDave enters the room. | |
| 01:31:31 | drbrain | IO#read reads the specified number of bytes from the file to the buffer FAILED |
| 01:31:35 | drbrain | !!!! |
| 01:31:38 | drbrain | wtf? |
| 01:32:22 | KirinDav enters the room. | |
| 01:37:52 | wvl leaves the room. | |
| 01:38:18 | brixen | evan: I need a quick confirm: the new hash_rehash should be semantically equivalent to: out = {}; self.each { |k,v| out[k] = v }; replace out (i.e our old Ruby code rehash) |
| 01:38:32 | wvl enters the room. | |
| 01:40:17 | technomancy leaves the room. | |
| 01:41:01 | ezmobius leaves the room. | |
| 01:45:23 | imajes leaves the room. | |
| 01:45:44 | imajes enters the room. | |
| 01:46:11 | macournoyer enters the room. | |
| 01:48:00 | RyanTM_ leaves the room. | |
| 01:48:01 | KirinDave leaves the room. | |
| 01:49:22 | RyanTM_ enters the room. | |
| 01:49:34 | obvio enters the room. | |
| 01:51:25 | lopex leaves the room. | |
| 01:52:41 | boyscout | 3 commits by Eric Hodel |
| 01:52:42 | boyscout | * (Last change was ok). Force check for data so #eof? works; e0a6c8e |
| 01:52:43 | boyscout | * Revert "Force a check for more data on the IO for IO#eof?"; d7e67c2 |
| 01:52:44 | boyscout | * Force a check for more data on the IO for IO#eof?; 4c1182c |
| 01:53:10 | menator leaves the room. | |
| 01:53:52 | menator enters the room. | |
| 01:56:37 | evan | drbrain: next time, just use git reset --hard HEAD^ |
| 01:56:43 | evan | drbrain: to throw away your last commit |
| 01:57:48 | MenTaLguY | note that that is only safe when you haven't pushed yet. but if you haven't pushed it yet, it IS the strongly recommended way to roll back |
| 01:58:19 | evan | yes, thanks for the clarification |
| 01:59:53 | rubyconsumer enters the room. | |
| 02:00:41 | headius leaves the room. | |
| 02:00:50 | cored leaves the room. | |
| 02:01:18 | KirinDav leaves the room. | |
| 02:01:50 | twbray leaves the room. | |
| 02:02:17 | enebo leaves the room. | |
| 02:04:08 | rubuildius | Eric Hodel: e0a6c8e17; 4812 examples, 17512 expectations, 0 failures, 0 errors |
| 02:04:59 | enebo enters the room. | |
| 02:06:15 | wycats enters the room. | |
| 02:07:21 | nicksieger leaves the room. | |
| 02:09:05 | RyanTM_ leaves the room. | |
| 02:09:56 | enebo leaves the room. | |
| 02:10:18 | RyanTM_ enters the room. | |
| 02:10:24 | nicksieger enters the room. | |
| 02:11:33 | agile enters the room. | |
| 02:16:02 | djwhitt | I'm seeing some errors related to Fixnum operations when I run ci now |
| 02:16:06 | djwhitt | http://pastie.org/152987 |
| 02:16:41 | evan | hm |
| 02:16:49 | djwhitt | those are from Gentoo on amd64 |
| 02:17:17 | brixen | djwhitt: I'll check gentoo |
| 02:17:43 | wifelette enters the room. | |
| 02:20:05 | _meadow | http://pastie.caboo.se/152984 |
| 02:20:29 | _meadow | is it code bug or platform/compiler specific? |
| 02:20:45 | evan | you mean the enum? |
| 02:20:51 | _meadow | yes |
| 02:21:08 | evan | it's not a bug |
| 02:21:18 | evan | it's so that those are available in gdb |
| 02:22:02 | evan | _meadow_: when you change it, does that error at the top of that pastie go away? |
| 02:22:36 | _meadow | using defines those errors go away |
| 02:23:01 | evan | which errors? |
| 02:23:06 | evan | the spec failures? |
| 02:23:36 | _meadow | specs pass |
| 02:23:54 | evan | ok |
| 02:24:03 | evan | the something is up with the enums |
| 02:24:15 | evan | we can replace them with #define's |
| 02:24:15 | VVSiz_ enters the room. | |
| 02:24:16 | evan | thats fine. |
| 02:25:04 | evan | gcc is casting the enum's differently that having the code in a #define |
| 02:27:03 | tarcieri | evan: what do you think about wrapping up libev's nested event loops and exporting that in Ruby... that would allow you to monitor sets of file descriptors/IO objects independently from the rest of the system |
| 02:27:47 | tarcieri | that'd provide the base functionality needed to build a Reactor library for Rubinius |
| 02:27:56 | evan | i think thats ok, but i'd rather have it be abstracted slightly |
| 02:28:14 | evan | ie, the words libev wouldn't be in any module name or method :) |
| 02:28:20 | tarcieri | oh, most certainly |
| 02:28:34 | evan | i'm ok with that otherwise |
| 02:28:45 | evan | it would mainly be writing a Scheduler::Work object |
| 02:28:52 | evan | you'd build a Work object, and hand it to the VM |
| 02:28:58 | tarcieri | The way I do that in my libev-based Reactor library is to provide "Loop" objects, which hold a collection of "Watcher" objects... |
| 02:28:59 | evan | the VM would fill in Work info |
| 02:29:21 | tarcieri | the Loop can either #run or #run_once |
| 02:29:26 | tarcieri | I'll take a look at Work objects |
| 02:29:35 | evan | i've just made it up |
| 02:29:38 | evan | so there is nothing to look at |
| 02:29:39 | evan | :) |
| 02:29:39 | tarcieri | oh |
| 02:29:39 | tarcieri | heh |
| 02:29:51 | tarcieri | I don't know a better name than Loop :/ |
| 02:29:56 | evan | the main thing is that the only 'blocking' call can be one to Scheduler.something |
| 02:29:59 | tarcieri | or rathe,r can't think of one |
| 02:30:02 | evan | well, thats not blocking |
| 02:30:09 | evan | the Channel#receive can be the only blocking one |
| 02:30:26 | evan | so you have to describe what you want in some form and ask the VM to act on that description |
| 02:30:43 | tarcieri | the underlying functionality for this would have to be in C :/ |
| 02:31:03 | evan | right, but i think it can only be a little bit of C |
| 02:31:11 | tarcieri | libev lets you have multiple ev_loops(), and you can use one to monitor the other, provided it contains only ev_io watchers |
| 02:31:23 | tarcieri | so the actual blocking call would be the ev_loop for the current VM |
| 02:31:26 | evan | mainly, how to take a Work object and map it to libev events |
| 02:31:40 | tarcieri | which, afaict, is the only blocking call in Rubinius |
| 02:31:51 | evan | i won't have the multiple loops |
| 02:32:00 | evan | but they don't provide anything extra I can see |
| 02:32:09 | evan | the extra 'loop' would be just a ruby API |
| 02:32:11 | srbaker leaves the room. | |
| 02:32:19 | evan | thats mapped onto the single libev loop. |
| 02:32:33 | evan | ok, got to run. |
| 02:32:39 | tarcieri | you could do it that way as well... hmmm |
| 02:32:43 | evan | food, movie, bed, skydiving (finally, yes) |
| 02:32:49 | tarcieri | haha wow |
| 02:34:45 | evan | the only time for tomorrow was 7:30am |
| 02:34:51 | evan | and it's at least an hour drive |
| 02:34:58 | evan | so we have to be up at 5:30 :P |
| 02:38:26 | tarcieri | evan: there's one advantage to nested loops through libev |
| 02:38:27 | tmornini_ enters the room. | |
| 02:38:57 | tarcieri | evan: on platforms with epoll or kqueue, nested loops can be kept statefully in the kernel |
| 02:39:24 | tarcieri | i.e. you can create two kqueues, and use one to monitor the other |
| 02:40:22 | tarcieri | so if you're finished monitoring a nested loop, you can just remove it from the main loop, rather than unregistering its entire set of event monitors from the main loop one at a time, then registering them again one at a time when you want to monitor it again |
| 02:41:45 | VVSiz leaves the room. | |
| 02:44:15 | srbaker enters the room. | |
| 02:45:29 | tmornini leaves the room. | |
| 02:46:00 | wycats | oy: http://www.oreillynet.com/xml/blog/2008/02/how_to_pronounce_rubinius.html?CMP=OTC-TY3388567169& ;ATT=How+To+Pronounce+Rubinius |
| 02:46:19 | geekounet leaves the room. | |
| 02:47:34 | obvio leaves the room. | |
| 02:50:23 | _mutle enters the room. | |
| 02:52:59 | geekounet enters the room. | |
| 02:54:32 | rue | Backaroni |
| 02:55:50 | mutle leaves the room. | |
| 02:59:30 | bburcham leaves the room. | |
| 03:01:25 | bburcham enters the room. | |
| 03:02:37 | srbaker leaves the room. | |
| 03:02:59 | noclue123 enters the room. | |
| 03:03:11 | bburcham leaves the room. | |
| 03:03:16 | kofno enters the room. | |
| 03:03:21 | drbrain | evan: oh, right, but I will not remember that again :( |
| 03:04:06 | bburcham enters the room. | |
| 03:04:52 | b3b0p enters the room. | |
| 03:05:13 | bburcham leaves the room. | |
| 03:08:20 | rue | tmpk: Yeah, that is the last one |
| 03:09:21 | drbrain | sighs |
| 03:09:27 | drbrain | there are not enough IO tests |
| 03:09:36 | drbrain | or, there are not enough good IO tests |
| 03:10:10 | tmornini | drbrain: congrats on gems. That's *super* cool. |
| 03:10:24 | drbrain | tmornini_: thanks |
| 03:10:34 | tmornini | drbrain: no, thank you! |
| 03:10:35 | tmornini | :-) |
| 03:10:43 | drbrain | although, something broke it last night, and I haven't tried again :( |
| 03:12:17 | rue | drbrain: I am trying to find a really bad string perf regression right now |
| 03:12:27 | rue | Have no idea if this is related |
| 03:12:42 | rue | It is somewhere between HEAD~25 and ~37 is all I know so far :D |
| 03:12:58 | drbrain | rue: I'm not sure if it was your Array#sort thing that broke it, or something entirely different |
| 03:13:05 | drbrain | I don't think I'd tried it at all that day |
| 03:13:48 | tmornini_ leaves the room. | |
| 03:14:27 | drbrain | I broke IO#read |
| 03:14:39 | rue | Heh |
| 03:15:02 | drbrain | hrm, nope! |
| 03:16:14 | drbrain | something is really messed up |
| 03:16:25 | drbrain | File.open 'README' do |fp| p fp.gets, fp.read(0), fp.read(16) end |
| 03:16:43 | drbrain | I get nil, "", "1. What is Rubin" |
| 03:17:56 | drbrain | if I change that to be a new p per #read, I get nil for the last thing, and the correct value for the first |
| 03:18:37 | rue | Have you tried to bisect? |
| 03:18:45 | drbrain | no |
| 03:19:06 | drbrain | first I'm going to try figuring out where the buffer thinks it's supposed to be |
| 03:22:05 | lvmc | hey rue |
| 03:22:05 | _meadow_ leaves the room. | |
| 03:22:18 | lvmc | you can open mod_rubinius to google summer code? |
| 03:24:23 | VVSiz enters the room. | |
| 03:25:21 | dysinger_ leaves the room. | |
| 03:25:47 | rue | lvmc: Oh, I would not expect that to be a problem |
| 03:25:54 | rue | drbrain: Debugger? |
| 03:26:14 | lvmc | rue, very nice! i`m say yesterday. i want to help with it |
| 03:26:23 | vintrepid leaves the room. | |
| 03:26:52 | lvmc | but if i participated via google summer code i will can buy a new laptop, if my work sounds nice |
| 03:27:04 | lvmc | can you mentor me or anything else?? |
| 03:27:53 | eventualbuddha leaves the room. | |
| 03:28:59 | rue | lvmc: I do not know at this point |
| 03:29:18 | rue | I am not opposed to the idea or anything but I will have to see a bit further down the road |
| 03:29:41 | lvmc | hum |
| 03:30:33 | lvmc | the mod_rubinius will be projected to 2.0 or 2.2? |
| 03:31:39 | MenTaLguY leaves the room. | |
| 03:31:42 | lvmc | (apache) |
| 03:31:56 | rue | I will probably target 2.2 initially |
| 03:32:05 | lvmc | perfect |
| 03:32:08 | srbaker enters the room. | |
| 03:32:15 | lvmc | i`m testing a lot of things related with dso |
| 03:32:18 | lvmc | apxs |
| 03:32:20 | drbrain | rue: it was probably the code I deleted from #read to make #eof? work |
| 03:33:25 | rue | Hm, weird, looks like ddc63b96fe is the culprit for the String problem |
| 03:35:07 | rue | Well, my String problem which is really some other problem |
| 03:35:21 | vintrepid enters the room. | |
| 03:36:26 | MenTaLguY enters the room. | |
| 03:37:29 | drbrain | yup, it was my fix for #eof? that broke it |
| 03:37:37 | drbrain | I'm going to test out my chains, then come back and fix it |
| 03:37:53 | nicksieger leaves the room. | |
| 03:42:17 | femtowin leaves the room. | |
| 03:42:30 | VVSiz_ leaves the room. | |
| 03:47:17 | defunkt enters the room. | |
| 03:51:22 | srbaker leaves the room. | |
| 03:53:43 | graza_ leaves the room. | |
| 03:53:45 | graza enters the room. | |
| 03:54:46 | srbaker enters the room. | |
| 03:55:11 | nutrimatt leaves the room. | |
| 03:55:17 | rue | Haha! `git log origin` |
| 03:55:24 | wycats leaves the room. | |
| 04:08:25 | graza_ enters the room. | |
| 04:08:26 | graza leaves the room. | |
| 04:16:06 | macournoyer leaves the room. | |
| 04:21:01 | graza enters the room. | |
| 04:21:02 | graza_ leaves the room. | |
| 04:24:56 | srbaker leaves the room. | |
| 04:25:10 | srbaker enters the room. | |
| 04:27:22 | twbray enters the room. | |
| 04:29:43 | benburkert_ enters the room. | |
| 04:30:16 | nicksieger enters the room. | |
| 04:39:30 | rue | WTF, Lighthouse has 'lost' my login..? |
| 04:39:59 | drbrain | ugh |
| 04:40:11 | drbrain | IO#read can't read more than 8k |
| 04:42:20 | felipec | hi everyone |
| 04:42:35 | lvmc | yeah |
| 04:45:12 | rue | Hello, felipec |
| 04:45:46 | rue | drbrain: Dunno what this is but there is something funky going on. It seems that the problem is exponential--and I am doing linear |
| 04:45:54 | rue | b.report { 10.times { strings = ('Hello there how aaaa'..'Hello there how bbbb').to_a } } |
| 04:46:22 | drbrain | rue: :( |
| 04:46:24 | rue | If I do 1.times, it completes in 4.4 seconds (the last good version takes 0.2s), but 10.times may or may not even finish |
| 04:46:39 | drbrain | rue: I am wading through the broken IO#read code |
| 04:46:44 | drbrain | it makes me sad |
| 04:46:47 | drbrain | wow! |
| 04:46:56 | drbrain | I'm sorry :( |
| 04:47:04 | rue | So there is something *badly* wrong |
| 04:47:22 | drbrain | at least I know what my problems are |
| 04:47:49 | rue | Heh |
| 04:48:02 | rue | Plus stupid-ass LH cannot find my profile |
| 04:48:34 | felipec | I saw an interview with Evan Phoenix and I found it very interesting |
| 04:48:52 | drbrain | felipec: he's an interesting guy |
| 04:48:57 | rue | Er, actually, 2.times royally screws things up. Logically one would expect a roughly linear + a bit for extra memory shufflig |
| 04:48:59 | felipec | specially all the tools that are being used |
| 04:49:19 | felipec | stuff that other project might definitely find handy |
| 04:51:20 | rue | 19313 ruerue 1 100 0 2302M 1594M pfault 0:11 14.96% rubinius.bin |
| 04:51:20 | rue | 19313 ruerue 1 100 0 2302M 1594M pfault 0:11 14.96% rubinius.bin |
| 04:51:24 | rue | Whops, sorry |
| 04:52:34 | RyanTM_ leaves the room. | |
| 04:53:16 | felipec | but what about the Ruby Implementations Shootout |
| 04:53:38 | rue | I think allocate_bytes is broken |
| 04:55:16 | Defiler | felipec: We are generally moving too fast to pay a lot of attention to those |
| 04:55:38 | Defiler | felipec: Though I am glad people are interested enough to do them.. they are a hassle to set up |
| 04:59:25 | felipec | Defiler: that's good because it was doing very bad |
| 04:59:36 | Defiler | Yeah, those results are ancient now |
| 04:59:59 | Defiler | Hardly a day goes by where someone doesn't check in a patch improving the performance of something by 5 to 100x |
| 05:00:19 | rue | Defiler: Or quadratically regressing allocate_bytes perf :/ |
| 05:00:21 | Defiler | We just aren't an old enough project for those shootouts to offer much in the way of guidance |
| 05:00:25 | Defiler | rue: Sure, or that :) |
| 05:00:28 | rue | OK, admittedly the latter is a bit rarer |
| 05:00:42 | Defiler | I mean.. who uses allocate_bytes.. that's an edge case :) |
| 05:00:45 | rue | Defiler: Actually, you have a beefy machine |
| 05:00:52 | drbrain | I am making IO#read slower today, muhahaha |
| 05:01:32 | Defiler | rue: Sure. Need me to run something? |
| 05:01:32 | drbrain | rue: from the numbers, Defiler's machine doesn't seem to be much faster than mine in real-world performance |
| 05:01:38 | rue | Defiler: Can you execute require "benchmark" |
| 05:01:38 | rue | Benchmark.bm {|b| |
| 05:01:38 | rue | b.report { |
| 05:01:38 | rue | strings = ('Hello there how aaaa'..'Hello there how bbbb').to_a |
| 05:01:38 | rue | strings = ('Hello there how aaaa'..'Hello there how bbbb').to_a |
| 05:01:39 | rue | } |
| 05:01:41 | rue | # b.report { |
| 05:01:43 | rue | # s = 'Hello there how aaaa' |
| 05:01:44 | Defiler | Which numbers are those? |
| 05:01:45 | rue | # a = Array.new(18000).map! { s = s.succ } |
| 05:01:47 | rue | # } |
| 05:01:49 | rue | } |
| 05:01:51 | rue | Oop, sorry |
| 05:01:57 | Defiler | Why are you pasting this ghastly thing in my beautiful IRC channel =( |
| 05:01:57 | drbrain | Defiler: bin/ci time, mostly |
| 05:02:12 | Defiler | It has been around 15.2/15.4 recently, yeah |
| 05:02:22 | Defiler | The CPUs in this machine aren't particularly exciting |
| 05:02:26 | Defiler | In wins in IO speed and RAM |
| 05:02:37 | rue | Defiler: The machine is horribly slow due to the page faulting, everything is uncached :( |
| 05:02:43 | rue | Should resolve in a couple minutes |
| 05:02:54 | drbrain | hey! look at that! I can do math! |
| 05:03:41 | rue | Defiler: Anyway, here a single invocation of the Range thing works, the threshold for failure is somewhere around 25k array elements |
| 05:05:04 | Defiler | rue: http://rafb.net/p/78aeYi52.html |
| 05:05:34 | Defiler | rue: Running this, assuming I pasted it properly http://rafb.net/p/569E1617.html |
| 05:06:03 | Defiler | So, 200x slower than ruby 1.8 |
| 05:06:05 | Defiler | heh |
| 05:06:37 | drbrain | ha, sweet, now the read specs take 1.4s! |
| 05:06:47 | graza leaves the room. | |
| 05:06:51 | graza_ enters the room. | |
| 05:08:59 | rue | Defiler: It does actually complete there? |
| 05:09:59 | Defiler | Yeah. Make sure the second paste matches what you expect to see |
| 05:10:52 | rue | Yep, looks fine. Do me one more favour and test the Range version with 10.times and 100.times? |
| 05:10:58 | Defiler | Sure. |
| 05:11:10 | Defiler | Uses a lot of RAM. activity monitor shows a peak of 1.26GB real |
| 05:11:12 | Defiler | heh |
| 05:11:17 | rue | Yeah |
| 05:11:34 | rue | The most bizarre thing is where it breaks |
| 05:11:48 | rue | tig show ddc63b96f |
| 05:12:30 | Defiler | 30.712804 |
| 05:12:40 | Defiler | for 10.times do version of the Array.new() thing |
| 05:13:14 | rue | What about the first one with the Range? |
| 05:13:52 | Defiler | Oh, I misunderstood which one you wanted me to test, didn't I |
| 05:14:11 | Defiler | You want both of those identical strings = lines inside the 10.times block? |
| 05:15:34 | rue | Just one is fine |
| 05:15:48 | rue | I just took it out of the loop to eliminate that |
| 05:15:56 | rue | (It did not help :P) |
| 05:16:04 | Defiler | Ouch. Spends over 95% of its time in bytearray_new / bytearray_allocate_with_extra |
| 05:16:20 | Defiler | 72 seconds with 10.times do wrapped around both of the lines |
| 05:16:25 | Defiler | So like 20.times do |
| 05:17:26 | Defiler | 32 seconds for just 10.times do, without the sampler running |
| 05:17:45 | Defiler | vs. 0.132 seconds in ruby 1.8.6. hah |
| 05:17:59 | rue | Yeah, it worked just fine before that patch |
| 05:18:23 | rue | I mean not exactly MatzRuby speed but reasonable |
| 05:18:52 | Defiler | Yeah, we need to avoid these n^2 wacky temporary Arrays :) |
| 05:27:29 | rue | Could one of you gentlemen invite me on LH? esaynatkari at the EY domain |
| 05:28:41 | imajes leaves the room. | |
| 05:32:58 | defunkt enters the room. | |
| 05:32:59 | graza_ leaves the room. | |
| 05:33:09 | graza enters the room. | |
| 05:34:29 | drbrain | fucking git |
| 05:34:50 | boyscout | 2 commits by Eric Hodel |
| 05:34:51 | boyscout | * Fix IO#read for large files and small parts of files.; 0898232 |
| 05:34:53 | boyscout | * Add missing spec for IO#eof? and fix.; 1d07588 |
| 05:35:43 | drbrain | something's still broken with #gets + #read :( |
| 05:35:58 | rue | Ugh, I need to figure out how to use gprof with libtool |
| 05:36:13 | _ADS enters the room. | |
| 05:44:09 | rubuildius | Eric Hodel: 089823214; 4824 examples, 17537 expectations, 0 failures, 0 errors |
| 05:48:08 | zf leaves the room. | |
| 05:55:53 | lstoll enters the room. | |
| 05:58:30 | pergesu enters the room. | |
| 06:00:22 | vintrepid leaves the room. | |
| 06:08:09 | headius enters the room. | |
| 06:08:40 | smtlaissezfaire enters the room. | |
| 06:11:22 | VVSiz_ enters the room. | |
| 06:12:18 | smtlaissezfaire | How much of rubinius is based on the Smalltalk-80 implementation? Is it worth reading the implementation section of the blue book to get some insight into the internals of rubinius? |
| 06:13:22 | smtlaissezfaire | I imagine a lot of the implementation has changed, even in the smalltalk world... |
| 06:13:27 | srbaker leaves the room. | |
| 06:13:49 | drbrain | smtlaissezfaire: reading the blue book will familiarize you with the ideas |
| 06:14:01 | drbrain | smtlaissezfaire: then you can read the rest of the papers that have been sourced |
| 06:14:05 | srbaker enters the room. | |
| 06:17:45 | _ADS | hooray! finally got rubinius to run on my windows machine (sort of) |
| 06:17:54 | _ADS | it's runing under coLinux |
| 06:19:46 | drbrain | _ADS: hahaha |
| 06:19:50 | drbrain | _ADS: cheater |
| 06:20:24 | _ADS | it works.... |
| 06:20:46 | _ADS | I got cygwin to build as far as rubinius.bin |
| 06:21:00 | _ADS | but then it segfaulted in the startup code - before main even |
| 06:22:12 | flori leaves the room. | |
| 06:22:34 | smtlaissezfaire | drbrain: I've noticed that smalltalk returns self if no return is explicitly stated in a method, and ruby obviously returns the last object given (or nil, when no method body is given). |
| 06:22:46 | smtlaissezfaire | Is this an optimization move for smalltalk? |
| 06:22:58 | drbrain | smtlaissezfaire: no idea |
| 06:23:41 | flori enters the room. | |
| 06:24:00 | smtlaissezfaire | That first implementation chapter in the blue book follows how a method actually executes, regarding the stack, and it seems like at the end of the method nothing is left on the stack except the current context. |
| 06:24:53 | drbrain | smtlaissezfaire: I'll bet it's a language feature more than an optimization |
| 06:25:30 | smtlaissezfaire | Yeah - although, have you ever thought: "wow, it would be nice if ruby, by default, returned self" ? |
| 06:26:14 | drbrain | no, but that may be due to the rest of ruby's style |
| 06:26:43 | smtlaissezfaire | I've only had that feeling once - when I was writing a DSL - one of those without parens: "one day from now" - which I wanted evaluated as one.day.from.now, all executing in the current context |
| 06:26:51 | smtlaissezfaire | Yeah - or habit, maybe. |
| 06:27:15 | smtlaissezfaire | Anyway - I've been thinking about these little differences between our language and smalltalk...why we do the things the way we do them. What they are missing, and what we are missing. |
| 06:27:38 | _ADS | anyone knwo where String#to_f is defined? |
| 06:27:43 | _ADS | oops know |
| 06:28:46 | smtlaissezfaire | _ADS: search, my friend |
| 06:28:58 | _ADS | working on it. |
| 06:29:11 | smtlaissezfaire | kernel/bootstrap/string.rb |
| 06:29:15 | VVSiz leaves the room. | |
| 06:29:18 | _ADS | my linux-foo is rusty |
| 06:29:47 | smtlaissezfaire | What is the right syntax for find? I always fuck it up and end up doing du | grep ... |
| 06:29:59 | rue | find where opts |
| 06:30:59 | _ADS | so are the classes in kernel/bootstrap extended by those in kernel/core? or overridden? |
| 06:31:49 | rue | Reopened |
| 06:31:51 | menator leaves the room. | |
| 06:32:01 | dewd leaves the room. | |
| 06:32:56 | _ADS | rue: thanks |
| 06:33:13 | smtlaissezfaire | drbrain: Am I making sense with the smalltalk thing? Do most ruby programmers find it alienating? I think we should be stealing ideas like pirates from them. |
| 06:33:49 | rue | Find what alienating? |
| 06:34:07 | smtlaissezfaire | The smalltalk environment, in general |
| 06:34:29 | smtlaissezfaire | It doesn't seem like many rubists want anything to do with Smalltalk, which seems strange. |
| 06:36:24 | menator enters the room. | |
| 06:36:51 | rue | Smalltalk is not a very popular language |
| 06:36:54 | drbrain | smtlaissezfaire: it's true of all other OO language users |
| 06:36:59 | drbrain | (except maybe self) |
| 06:38:03 | smtlaissezfaire | Yeah - I get this impression that the dude from self was pretty good friends with Dan Ingalis. |
| 06:38:41 | drbrain | Ungar was Ingalls' student |
| 06:38:51 | smtlaissezfaire | I saw one talk online by Dan Ingalis in which he fielded questions at the end, and the guy who created self asked a question like: "Don't you think it's sad that java won" |
| 06:40:11 | smtlaissezfaire | drbrain: interesting. |
| 06:41:21 | headius | ruby is like smalltalk without being walled in |
| 06:41:44 | smtlaissezfaire | headius: What do you mean? |
| 06:42:06 | smtlaissezfaire | As in - a self contained world? |
| 06:42:19 | headius | as in one true world and if you don't like it, tough |
| 06:42:29 | headius | you live in that box, for better or worse |
| 06:42:40 | smtlaissezfaire | yeah - I've been thinking about that |
| 06:42:49 | smtlaissezfaire | a trade off - but in both directions. |
| 06:43:35 | smtlaissezfaire | I've always hated GUI's because I couldn't manipulate them programatically |
| 06:45:01 | tarcieri | http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht53Ht/doc_kay_oop_en |
| 06:45:04 | tarcieri | ^^^ ever read that? |
| 06:45:17 | ezmobius enters the room. | |
| 06:45:39 | smtlaissezfaire | I was pairing with brynary today, and he ended up changing webrat open up a browser when rails raised an error - as if you had actually clicked around and saw the error in the development environment. |
| 06:45:51 | tmpk | rue: if I read the graphs right, the new mutating sort runs faster, but the non-mutating one doesn't. |
| 06:45:55 | tmpk | Why is that? |
| 06:47:02 | smtlaissezfaire | headius: And I thought it was one of the coolest things that I had seen in a while. But it couldn't be changed, because firefox or whatever wasn't in ruby... |
| 06:47:06 | tmpk | smtlaissezfaire: what Ruby needs more than returning self and cascading is first-class blocks. |
| 06:47:32 | smtlaissezfaire | Why is that, tmpk? |
| 06:48:26 | tmpk | Purely anecdotally, because I almost never return self, but I find myself wishing that passing multiple blocks was easier. |
| 06:48:35 | smtlaissezfaire | We have first class procs/lambdas, which blocks can be converted to: it's never inconvenienced me that the block itself isn't first class, since it is implicitly converted to a first class |
| 06:48:43 | smtlaissezfaire | tmpk: it's just syntax. |
| 06:48:43 | flori leaves the room. | |
| 06:48:44 | headius | stabby! |
| 06:49:16 | smtlaissezfaire | tmpk: And not used very often. But I imagine in a language like scheme it's not absurd to pass several lambdas at once. |
| 06:49:18 | tmpk | It's not just syntax. Why can't I do an x = { |...|...} ? |
| 06:49:31 | flori enters the room. | |
| 06:49:35 | tmpk | There's something to be said for lightweight syntax. |
| 06:49:36 | smtlaissezfaire | sure you can: x = lambda { |x| puts x } |
| 06:49:59 | tarcieri | in ruby 1.9 |
| 06:50:09 | tarcieri | lambdas have block semantics |
| 06:51:08 | smtlaissezfaire | Is this about proper argument passing? |
| 06:52:06 | smtlaissezfaire | Ah - I know what you mean - for lambda's to take blocks |
| 06:52:18 | smtlaissezfaire | so lambda { |x, *args, &blk| blk.call(x) } |
| 06:52:48 | felipec | is the output of the c compiler readable? |
| 06:54:00 | headius | what C compiler? |
| 06:54:46 | felipec | well, I heard rubinius takes ruby code and generates c code |
| 06:55:00 | headius | no, it compiled to rubinius bytecode |
| 06:55:03 | headius | compiles |
| 06:55:19 | rue | tmpk: One very important note about the numbers: NEW is 1000.times { 1000 elements }, OLD is 100.times { 100 elements } |
| 06:55:41 | rue | tmpk: And OLD uses 1400 strings, NEW 140,000 |
| 06:56:06 | rue | Op, sorry, 100.times { 1000 elements } |
| 06:56:31 | tmpk | I need to read these things more carefully. Nice job. :D |
| 06:56:44 | rue | Heh |
| 06:56:53 | rue | I did apparently manage to mangle the paste |
| 06:56:57 | headius | pastie |
| 06:57:21 | pastie | http://pastie.org/153028 by headius. |
| 06:57:34 | headius | not sure if eval perf has been considered yet, but it's pretty poor at the moment |
| 06:57:37 | rue | tmpk: But yeah, roughly an OoM all around + much better worst-case etc. plus not running out of stack space at ~20k strings |
| 06:57:41 | headius | benchmark runs fine now though |
| 07:02:02 | tmpk | rue: I think you said it's a quicksort with a fallback? What algorithm is that? |
| 07:02:46 | rue | Insertion sort |
| 07:02:48 | tmpk | smtlaissezfaire: everything in Ruby is supposedly an object. But not quite. I'm not a fan of that. |
| 07:02:56 | rue | Currently drops at <7 |
| 07:03:00 | rue | Sorry, <9 |
| 07:04:41 | tmpk | Nine what? |
| 07:05:18 | headius | 9!! |
| 07:06:22 | benburkert enters the room. | |
| 07:06:22 | benburkert_ leaves the room. | |
| 07:06:50 | tmpk | Heh. I take that back. |
| 07:13:13 | graza_ enters the room. | |
| 07:13:14 | graza leaves the room. | |
| 07:14:42 | twbray leaves the room. | |
| 07:25:50 | graza enters the room. | |
| 07:25:51 | graza_ leaves the room. | |
| 07:32:26 | smtlaissezfaire | tmpk? |
| 07:36:11 | tyler enters the room. | |
| 07:38:52 | _mutle leaves the room. | |
| 07:39:01 | mutle enters the room. | |
| 07:42:41 | tyler | hey, I just pulled a fresh copy of the source, and it seems to be missing shotgun/lib/grammar.c ... or maybe I screwed up? |
| 07:43:32 | rue | You need bison |
| 07:43:52 | rue | Make sure you have everything on the install page on LH |
| 07:44:19 | tyler | ah, blast I didn't notice that in the INSTALL file. Thanks. |
| 07:44:22 | rue | Looks like INSTALL is fairly up-to-date too actually |
| 07:44:30 | rue | Need to update it |
| 07:45:15 | rue | Damn. |
| 07:46:08 | rue | It is the fscking cache change |
| 07:49:05 | lstoll leaves the room. | |
| 07:49:16 | twbray enters the room. | |
| 07:49:26 | drbrain | calling IO#pos breaks IO#read with size |
| 07:49:44 | rue | Clearly a feature |
| 07:49:54 | drbrain | clearly |
| 07:50:27 | drbrain | 'night |
| 07:53:00 | dbussink enters the room. | |
| 07:56:40 | rue | Morning |
| 07:57:55 | dbussink | morning |
| 07:58:18 | dbussink | drbrain: i read you were having troubles on freebsd? |
| 07:58:33 | rue | Think he just turned in |
| 07:58:41 | drbrain | dbussink: yes, since around the time of the libevent/libev switch |
| 07:58:41 | headius | to a pumpkin! |
| 07:58:50 | drbrain | I have 2 minutes left, then I leave for real |
| 07:59:09 | dbussink | drbrain: hehe, well, i got it to build on my freebsd install, only irb isn't working |
| 07:59:15 | dkubb enters the room. | |
| 07:59:19 | dbussink | ./bin/ci is though |
| 07:59:26 | drbrain | I was waiting for Nathan Sobo to say something on IM, but it seems that he just has a cat laying on his keyboard |
| 07:59:34 | tmpk | smtlaissezfaire: sorry, things are a bit involved here at the moment. |
| 07:59:46 | dkubb enters the room. | |
| 08:00:51 | drbrain | dbussink: which gcc? |
| 08:01:25 | smartocci leaves the room. | |
| 08:01:29 | dbussink | drbrain: i have a 6.3R install with only the minimal installed packages, so the default one on that platform |
| 08:01:37 | drbrain | ok |
| 08:01:38 | twbray leaves the room. | |
| 08:01:44 | dbussink | drbrain: it's something 3.4.6, but i'll have to check |
| 08:01:58 | drbrain | that's all I needed to know |
| 08:02:13 | drbrain | the compiler never changes between major releases |
| 08:03:37 | headius leaves the room. | |
| 08:04:03 | twbray enters the room. | |
| 08:04:11 | drbrain | hrm, I think it will work now |
| 08:04:17 | mutle leaves the room. | |
| 08:04:26 | drbrain | I've gotten farther with no F or E than ever before |
| 08:05:04 | boyscout | 1 commit by Brian Ford |
| 08:05:05 | boyscout | * Enums for FIXNUM_MAX, etc. were not casting properly on 64bit.; 1f6c6a1 |
| 08:05:48 | drbrain | dbussink: Process.setpriority sets the scheduling priority for a specified process group FAILED |
| 08:05:53 | drbrain | is the only one I get |
| 08:05:57 | dbussink | yeah, me too |
| 08:06:07 | dbussink | did you try starting irb? |
| 08:06:12 | drbrain | and shotgun/rubinius fails with Missing or uninitialized constant: AlreadyDefinedToken |
| 08:06:19 | drbrain | ^^ |
| 08:06:23 | dbussink | yeah, same here |
| 08:07:31 | drbrain | MD5 doesn't work :( |
| 08:07:38 | drbrain | can't run my rdocwiki |
| 08:08:30 | drbrain | it is most definitely in the .so |
| 08:09:25 | drbrain | shotgun/rubinius -r digest/md5 -e 0 fails when it can't find rbx_Digest_MD5_Init |
| 08:09:29 | drbrain | :( |
| 08:09:35 | drbrain | ok, I'm really leaving the keyboard now |
| 08:09:47 | dbussink | drbrain: good night! |
| 08:12:18 | Yurik enters the room. | |
| 08:12:30 | ezmobius leaves the room. | |
| 08:17:39 | graza_ enters the room. | |
| 08:17:40 | graza leaves the room. | |
| 08:19:11 | rubuildius | Brian Ford: 1f6c6a1e0; 4824 examples, 17537 expectations, 0 failures, 0 errors |
| 08:22:03 | twbray leaves the room. | |
| 08:22:28 | flori leaves the room. | |
| 08:23:19 | flori enters the room. | |
| 08:26:29 | twbray enters the room. | |
| 08:32:59 | dbussink leaves the room. | |
| 08:34:31 | tyler leaves the room. | |
| 08:38:06 | twbray leaves the room. | |
| 08:42:02 | smtlaissezfaire leaves the room. | |
| 08:44:17 | nathansobo enters the room. | |
| 08:45:59 | dbussink enters the room. | |
| 08:48:02 | twbray enters the room. | |
| 08:58:52 | dbussink leaves the room. | |
| 08:59:00 | _ADS | does ruby make any guarantees about the order of evaluation of operands, or is it up to the implementaion |
| 08:59:59 | _ADS | http://www.pastie.org/153035 |
| 09:01:09 | graza enters the room. | |
| 09:01:09 | graza_ leaves the room. | |
| 09:01:10 | _ADS | it looks like, given A+B ruby evaluates A first, but rbx does B first. |
| 09:05:24 | twbray leaves the room. | |
| 09:06:23 | nathansobo leaves the room. | |
| 09:08:05 | boyscout | 2 commits by Eero Saynatkari |
| 09:08:06 | boyscout | * Better String generation (although the old one exposed a bug.); 54fe3a0 |
| 09:08:07 | boyscout | * Partially reverted ddc63b967 due to performance issue. Need research.; 5fdba38 |
| 09:09:00 | rue | Heading out |
| 09:10:32 | _ADS leaves the room. | |
| 09:10:49 | zenspider leaves the room. | |
| 09:10:52 | dbussink enters the room. | |
| 09:14:22 | graza_ enters the room. | |
| 09:14:23 | graza leaves the room. | |
| 09:15:32 | dbussink leaves the room. | |
| 09:18:19 | vintrepid enters the room. | |
| 09:19:12 | rubuildius | Eero Saynatkari: 54fe3a013; 4824 examples, 17535 expectations, 2 failures, 0 errors; http://rafb.net/p/dcDCet14.html |
| 09:23:03 | ragge enters the room. | |
| 09:23:21 | ragge leaves the room. | |
| 09:24:24 | rubyconsumer leaves the room. | |
| 09:24:56 | rubyconsumer enters the room. | |
| 09:31:22 | nathansobo enters the room. | |
| 09:31:25 | langenberg enters the room. | |
| 09:31:40 | graza_ leaves the room. | |
| 09:32:22 | graza enters the room. | |
| 09:32:24 | nathansobo | seems pretty important to me |
| 09:32:29 | nathansobo | that order be preserved |
| 09:40:48 | imajes enters the room. | |
| 09:42:17 | dbussink enters the room. | |
| 09:44:11 | vintrepid leaves the room. | |
| 09:44:26 | dbussink | let me see how this dircproxy stuff works :) |
| 09:44:36 | langenberg leaves the room. | |
| 09:46:18 | graza_ enters the room. | |
| 09:46:19 | graza leaves the room. | |
| 09:50:34 | maduyb__ enters the room. | |
| 09:52:00 | yaroslav enters the room. | |
| 09:57:45 | nathansobo leaves the room. | |
| 10:05:12 | maduyb__ leaves the room. | |
| 10:08:00 | crossblaim enters the room. | |
| 10:08:05 | crossblaim | hi |
| 10:08:14 | dbussink | crossblaim: hi |
| 10:11:39 | graza enters the room. | |
| 10:11:41 | graza_ leaves the room. | |
| 10:22:33 | context leaves the room. | |
| 10:22:49 | context enters the room. | |
| 10:26:58 | graza_ enters the room. | |
| 10:26:59 | graza leaves the room. | |
| 10:29:44 | context | ouch. the first point in 2.3 sounds harsh |
| 10:32:09 | dbussink | context: what do you mean? |
| 10:32:17 | imajes leaves the room. | |
| 10:40:56 | dbussink | context: you mean the developers readme? |
| 10:41:00 | vintrepid enters the room. | |
| 10:41:21 | MenTaLguY leaves the room. | |
| 10:42:02 | dbussink | context: it's not that big a problem really |
| 10:51:17 | chris2 enters the room. | |
| 10:56:18 | graza enters the room. | |
| 10:56:19 | graza_ leaves the room. | |
| 11:06:19 | Arjen_ enters the room. | |
| 11:07:41 | yipstar leaves the room. | |
| 11:13:23 | remcob enters the room. | |
| 11:14:39 | ragge enters the room. | |
| 11:21:31 | lstoll enters the room. | |
| 11:23:36 | vintrepid leaves the room. | |
| 11:32:03 | geekounet leaves the room. | |
| 11:35:08 | graza_ enters the room. | |
| 11:35:10 | graza leaves the room. | |
| 11:37:10 | lstoll leaves the room. | |
| 11:37:21 | lstoll enters the room. | |
| 11:42:25 | lstoll leaves the room. | |
| 11:42:52 | Arjen_ leaves the room. | |
| 11:46:22 | defunkt leaves the room. | |
| 11:49:04 | graza enters the room. | |
| 11:49:06 | graza_ leaves the room. | |
| 11:49:50 | antares enters the room. | |
| 11:57:19 | cjheath leaves the room. | |
| 11:58:15 | Fullmoon leaves the room. | |
| 11:58:24 | lvmc leaves the room. | |
| 11:59:11 | cjheath enters the room. | |
| 12:03:28 | cjheath leaves the room. | |
| 12:03:34 | GMFlash leaves the room. | |
| 12:03:42 | GMFlash enters the room. | |
| 12:05:02 | octopod enters the room. | |
| 12:13:21 | langenberg enters the room. | |
| 12:16:50 | langenberg leaves the room. | |
| 12:19:18 | graza_ enters the room. | |
| 12:19:19 | graza leaves the room. | |
| 12:22:04 | ragnard leaves the room. | |
| 12:23:30 | rightondev leaves the room. | |
| 12:24:04 | ragnard enters the room. | |
| 12:24:26 | rightondev enters the room. | |
| 12:26:43 | VVSiz | brixen: are you there? (just checking) :) |
| 12:27:58 | VVSiz | brixen: just in case if you read this... :) I'm really confused why BignumHelper in specs was moved to spec_helper, and named bignum_value |
| 12:28:48 | VVSiz | it was in a good place, now it's in the common helper file. I'm sure there was a reason for that, but I couldnt' come up with it myself though... |
| 12:29:28 | VVSiz | to me Bignum fixture should be in bignum/fixtures... no? |
| 12:31:50 | yaroslav leaves the room. | |
| 12:40:50 | graza enters the room. | |
| 12:40:51 | graza_ leaves the room. | |
| 12:45:24 | antares | Anyone knows whether Shotgun page at LH is up to date? I look at oop.h and have number of questions... |
| 12:47:08 | Fullmoon enters the room. | |
| 12:50:09 | Arjen_ enters the room. | |
| 12:51:09 | dbussink | i think it's up to date, but it doesn't have a lot of details |
| 12:52:17 | boyscout | 1 commit by Vladimir Sizikov |
| 12:52:19 | boyscout | * Corrected copy-paste error in recent fixnum specs.; 7d1c744 |
| 12:52:47 | pergesu leaves the room. | |
| 12:53:32 | dbussink | hmm, are all the Makefiles in external libs the default ons? |
| 12:53:36 | dbussink | default ones? |
| 12:54:21 | sizon enters the room. | |
| 12:54:38 | sizon | hi, everybody |
| 12:54:47 | antares | dbussink, what exactly do you mean? |
| 12:55:08 | dbussink | i'm working on getting it running on openbsd atm |
| 12:55:27 | dbussink | but that gcc version is a bit older and doesn't support al the compiler options in the various Makefile files |
| 12:56:00 | dbussink | and i'm wondering whether those options are just put into it, or that they are actually tested and profiled (a lot of inlining stuff) |
| 12:57:06 | mutle enters the room. | |
| 12:57:32 | dbussink | but it looks like i've hit a bigger obstacle, namely a lack of ucontext |
| 12:57:39 | mutle | hi |
| 12:58:28 | ragnard | dbussink: tried openbsd yesterday and also discovered the lack of ucontext... |
| 12:58:53 | dbussink | ragnard: well, we have PortableUContext, but i don't know whether that still works |
| 12:59:04 | dbussink | because i saw someone reporting problems with that on tiger |
| 12:59:13 | dbussink | os x 10.4 also doesn't have ucontext afaik |
| 12:59:24 | ragnard | dbussink: yeah, I saw PortableUContext had a section about __OpenBSD__ |
| 12:59:57 | ragnard | although I couldn't see how the libthread_ #defines would help |
| 13:04:13 | rubuildius | Vladimir Sizikov: 7d1c744d9; 4824 examples, 17535 expectations, 2 failures, 0 errors; http://rafb.net/p/2qjAzM11.html |
| 13:05:29 | dbussink | ragnard: the include just has to be removed in state.h |
| 13:05:47 | dbussink | ragnard: because including PortableUContext.h will fix it for all platforms |
| 13:07:09 | ragnard | dbussink: yeah, did that... but it failed on nmc.c... don't remember why... |
| 13:07:25 | dbussink | ragnard: i'm having trouble with ffi_util.c |
| 13:07:42 | dbussink | ragnard: weird thing is that i'm getting syntax errors on a system include file |
| 13:07:46 | dbussink | sys/socket.h |
| 13:07:49 | ragnard | dbussink: you need sys/types.h before sys/socket.h |
| 13:07:55 | ragnard | :) |
| 13:08:23 | dbussink | ragnard: of course :) |
| 13:08:41 | ragnard | dbussink: nothing strange there... |
| 13:09:00 | dbussink | ragnard: no indeed, but these are just the platform annoyances |
| 13:09:25 | dbussink | ragnard: i'm having the poblems on nmc too, looks like still something wrong with ucontext |
| 13:09:28 | ragnard | dbussink: I was kidding... :) |
| 13:10:45 | dbussink | ragnard: but it looks like a more general problem with ucontext |
| 13:10:59 | dbussink | which was quick fixed by adding the include in state.h |
| 13:11:17 | ragnard | dbussink: yeah... I sort of abandoned it there and went to bed |
| 13:12:13 | ragnard | dbussink: http://pastie.org/153055 |
| 13:12:29 | ragnard | dbussink: I don't see how that would help (from PortableUContext.h) |
| 13:13:00 | ragnard | there is no libthread_?context |
| 13:13:16 | dbussink | ragnard: dunno, but if i remove the ucontext.h include from state.h, i get warnings even on os x 10.5 |
| 13:13:26 | dbussink | ragnard: so there is something else flaky too |
| 13:15:34 | dbussink | ragnard: ok, i've fixed that issue |
| 13:16:28 | dbussink | ragnard: PortableUContext.h line 9, should be without the ! imho |
| 13:16:53 | dbussink | ragnard: but that doesn't help openbsd of course |
| 13:18:39 | ragnard | dbussink: yeah, that seems right... the other case is one line 37, right? |
| 13:19:01 | dbussink | ragnard: yeah, that is for tiger and older versions |
| 13:20:25 | mutle leaves the room. | |
| 13:21:11 | dbussink | ragnard: hmm, guess the condition on line 9 could be just #if HAS_UCONTEXT |
| 13:22:03 | mutle enters the room. | |
| 13:24:58 | crossblaim leaves the room. | |
| 13:27:44 | jp_tix | dbussink: I'm having this issue as well: http://rubinius.lighthouseapp.com/projects/5089/tickets/328-build-broken-on-osx-ppc |
| 13:27:59 | dbussink | jp_tix: what os x version? |
| 13:28:17 | jp_tix | 10.5.2 |
| 13:28:29 | jp_tix | Darwin XXBZ.lan 9.2.0 Darwin Kernel Version 9.2.0: Tue Feb 5 16:15:19 PST 2008; root:xnu-1228.3.13~1/RELEASE_PPC Power Macintosh |
| 13:29:46 | jp_tix | I used Software Update to go from 10.5.1 -> 10.5.2, perhaps I should try the combo update instead |
| 13:30:46 | dbussink | jp_tix: really shouldn't matter |
| 13:31:13 | jp_tix | it might be unrelated, but the machine didn't boot properly after the update |
| 13:31:25 | dbussink | jp_tix: it shouldn't pull in the portable ucontext, because 10.5 already provides it natively |
| 13:31:26 | jp_tix | so I'll try the combo update anyway |
| 13:31:33 | jp_tix | aha |
| 13:32:35 | mutle leaves the room. | |
| 13:35:09 | mutle enters the room. | |
| 13:35:43 | dbussink | jp_tix: could run this in your terminal: echo -e '#if !__DARWIN_UNIX03\n here\n#else\nthere\n#endif' | cpp |
| 13:36:42 | jp_tix | dbussink: http://pastie.caboo.se/private/bomccnk0dvj36qpn7omtq |
| 13:39:14 | dbussink | jp_tix: that was not completely right from my side :) |
| 13:39:19 | dbussink | jp_tix: echo -e '#include <sys/types.h>\n#if __DARWIN_UNIX03\n here\n#else\nthere\n#endif' | cpp |
| 13:41:45 | jp_tix | dbussink: http://pastie.caboo.se/153060 |
| 13:43:13 | dbussink | jp_tix: hmm, seems ok (the last line was what i was interested in :P) |
| 13:44:06 | jp_tix | loves piping to pastie :) |
| 13:44:27 | dbussink | hmm, now i wish i had a ppc system to test with myself :) |
| 13:46:44 | jp_tix | just give me a shout if there's more stuff we could try |
| 13:48:39 | dbussink | jp_tix: could you try moving #include <sys/types.h> up immediately after #define PORTABLEUCONTEXT_DEFINED ? |
| 13:49:05 | jp_tix | uhm, what file? |
| 13:49:44 | dbussink | jp_tix: shotgun/lib/subtend/PortableUContext.h |
| 13:49:47 | dbussink | sorry :) |
| 13:49:54 | jp_tix | on it |
| 13:51:26 | ragnard | dbussink: I'm getting there for OpenBSD... the #idefs are a bit dizzy, the __OpenBSD__ section is never even reached... |
| 13:51:53 | dbussink | ragnard: looks like rubinius' version is somewhat based on http://websvn.nyaxtstep.com/viewvc.cgi/3rdparty/libcoroutine/source/PortableUContext.h?revision=57 3&view=markup |
| 13:52:02 | dbussink | ragnard: but it's not exactly the same |
| 13:52:26 | dbussink | jp_tix: you could also try by replacing that file with the one in the link i just pasted |
| 13:52:49 | geekounet leaves the room. | |
| 13:57:59 | sizon leaves the room. | |
| 14:06:22 | ragnard | dbussink: got shotgun to compile on openbsd now... sigsegvs when compiling kernel/core/compile.rb though... :) |
| 14:06:24 | graza leaves the room. | |
| 14:06:28 | graza enters the room. | |
| 14:06:38 | dbussink | ragnard: what are the fixes? |
| 14:07:07 | dbussink | ragnard: are the sigsevs related to the ucontext problems? or something different? |
| 14:07:14 | ragnard | dbussink: don't know yet... |
| 14:07:22 | ragnard | dbussink: hold on, will pastie some stuff... |
| 14:07:29 | ragnard | dbussink: my machine is very slooow though |
| 14:10:14 | ragnard | dbussink: makefile question: how do you specify multiple conditions in an ifneq? |
| 14:10:39 | ragnard | dbussink: http://pastie.org/153070 |
| 14:10:45 | dbussink | ragnard: what is it you want to say? |
| 14:10:52 | ragnard | dbussink: that is true for openbsd too, ie. no -lcrypt |
| 14:11:55 | femtowin enters the room. | |
| 14:12:17 | dbussink | ragnard: i think those should all be refactored, because on solaris they aren't needed too |
| 14:12:44 | ragnard | dbussink: sounds right... gonna be a lot of strange cases otherwise |
| 14:13:25 | dbussink | ragnard: yeah, and it's gonna be a complete mess and not understandable otherwise |
| 14:14:22 | dbussink | should be something like linux and freebsd require -lcrypt |
| 14:17:04 | jp_tix | dbussink: neither moving the include or replacing the file helped |
| 14:17:38 | dbussink | jp_tix: you could try reverting to the version before Defiler refactored it |
| 14:19:44 | jp_tix | dbussink: what commit would that be? |
| 14:20:14 | dbussink | jp_tix: if you don't know the commands, you can also use the web interface to browse through and look at it |
| 14:21:26 | jp_tix | I assume you're talking about the changes from Jan 23 |
| 14:21:48 | dbussink | jp_tix: yeah |
| 14:23:51 | antares leaves the room. | |
| 14:29:50 | gnufied enters the room. | |
| 14:31:07 | nicksieger leaves the room. | |
| 14:33:40 | ragnard | dbussink: http://pastie.org/153077 |
| 14:34:13 | ragnard | dbussink: if you want to have a go... should not be committed. |
| 14:34:37 | ragnard | dbussink: but maybe something to work from. |
| 14:42:15 | graza_ enters the room. | |
| 14:42:16 | graza leaves the room. | |
| 14:43:12 | dbussink | ragnard: thnx, i'll see whether that works :) |
| 14:46:02 | jp_tix | dbussink: what's the easiest way to revert? I tried 'git revert 91432f7960c60a5a3a133713bf769f299a56cb5a' but I get a lot of merge errors |
| 14:48:18 | jp_tix | ah, maybe reset |
| 14:48:24 | dbussink | jp_tix: you can use git checkout too |
| 14:48:32 | dbussink | jp_tix: git checkout path/to/file rev |
| 14:49:03 | jp_tix | ah, ok |
| 14:49:46 | hornbeck leaves the room. | |
| 14:51:56 | dbussink | ragnard: strange segfaults |
| 14:54:56 | dbussink | ragnard: i did get it to compile by simply trying rake build multiple times :P |
| 14:55:28 | dbussink | ragnard: hmm, same error on openbsd as on freebsd when starting irb |
| 14:55:33 | ragnard | dbussink: yeah, me too... won't run when complete though... |
| 14:55:44 | dbussink | ragnard: well, ./bin/ci is running atm |
| 14:55:48 | ragnard | i'm currently recompiling... takes forever on my machine |
| 14:55:53 | dbussink | with quite some failures though |
| 14:56:02 | ragnard | dbussink: oh! really? i didn't get that far. |
| 14:56:55 | dbussink | had a nice illegal instruction and it just stopped though |
| 14:57:01 | dbussink | checking in gdb right now |
| 14:57:17 | dbussink | ragnard: your makefile changes break on linux btw |
| 14:57:35 | ragnard | dbussink: wouldn't be surprised :) |
| 14:58:22 | jp_tix | dbussink: it still fails with the same error - perhaps the problem is elsewhere? |
| 14:58:44 | dbussink | jp_tix: well, the problem is defintely in here somewhere |
| 14:58:54 | dbussink | because the error message also says it's defined multiple times |
| 14:59:01 | dbussink | but i don't know why it is |
| 14:59:04 | ragnard | dbussink: but that makefile could need a little bit of polish |
| 14:59:22 | dbussink | and without access to a ppc machine i'm not gonna find the problem probably |
| 14:59:28 | dbussink | ragnard: yeah |
| 14:59:49 | dbussink | ragnard: did you have to remove some of those inline optimizations? |
| 14:59:56 | dbussink | ragnard: or did you install a newer gcc? |
| 15:00:28 | ragnard | dbussink: i used DEV=1 and VERBOSE=1 for now |
| 15:01:16 | femtowin leaves the room. | |
| 15:03:27 | dbussink | but i'm about to go |
| 15:04:52 | jp_tix | dbussink: I think I found the bug?!? http://pastie.caboo.se/private/vc0k28l0fea9hxdhzs3q |
| 15:05:18 | dbussink | jp_tix: did i forgot to mention that? |
| 15:05:29 | dbussink | jp_tix: that's the first thing i fixed when i was in there :P |
| 15:05:35 | jp_tix | lol |
| 15:06:22 | dbussink | ragnard: wow, my ./bin/ci run actually finished with a DEV=1 vm |
| 15:06:48 | ragnard | dbussink: aha! nice one... :) |
| 15:06:54 | dbussink | ragnard: all failures are File/Dir related |
| 15:06:58 | ragnard | dbussink: zero failures i presume? |
| 15:07:02 | dbussink | ragnard: so looks like a problem there |
| 15:07:08 | dbussink | ragnard: of course not :P |
| 15:07:16 | ragnard | dbussink: huh... not to bad though. |
| 15:07:31 | dbussink | ragnard: no, but the random segfaults trouble ee :) |
| 15:07:34 | dbussink | me |
| 15:07:59 | ragnard | nothing like a good ol' random segfault |
| 15:08:31 | ragnard | hm. my machine refuses to start rubinius... |
| 15:09:05 | dbussink | ragnard: AlreadyDefinedToken problem? |
| 15:09:13 | dbussink | ragnard: because that's also a problem on freebsd |
| 15:09:16 | ragnard | dbussink: nope... http://pastie.org/153085 |
| 15:12:09 | squeegy leaves the room. | |
| 15:12:21 | dbussink | ragnard: strange |
| 15:12:25 | dbussink | what openbsd version? |
| 15:12:36 | ragnard | 4.2 |
| 15:12:55 | ragnard | stable |
| 15:13:05 | dbussink | jp_tix: i just pushed some things |
| 15:13:12 | dbussink | jp_tix: you can test with those fixes |
| 15:13:12 | boyscout | 1 commit by Dirkjan Bussink |
| 15:13:13 | boyscout | * Fixes for building on OpenBSD and OS X PPC; f94d8d4 |
| 15:13:30 | dbussink | now i really have to get going :) |
| 15:13:46 | dbussink | if something broke, i take the blame :P |
| 15:15:03 | jp_tix | push and run, huh? |
| 15:15:13 | dbussink | jp_tix: of course :P |
| 15:15:28 | dbussink | jp_tix: well, tested on at least on os x intel and linux |
| 15:15:55 | jp_tix | I'll try it on PPC |
| 15:17:42 | dbussink | ragnard: when i pushed i realized i should have given you some credit for it |
| 15:17:59 | dbussink | ragnard: sorry about that, you can mention to evan that you helped out with this stuff :) |
| 15:18:20 | rubyconsumer leaves the room. | |
| 15:18:38 | ragnard | dbussink: np... don't think about that. it compiles on openbsd, that's cool! :) |
| 15:19:44 | antares enters the room. | |
| 15:20:37 | dbussink | but i'm off |
| 15:20:43 | dbussink | jp_tix: just leave a message whether it works |
| 15:24:07 | jp_tix | will do |
| 15:24:17 | rubuildius | Dirkjan Bussink: f94d8d4dd; 4824 examples, 17535 expectations, 2 failures, 0 errors; http://rafb.net/p/SXYDvc89.html |
| 15:26:42 | squeegy enters the room. | |
| 15:31:16 | jeremydurham enters the room. | |
| 15:32:18 | squeegy leaves the room. | |
| 15:32:35 | squeegy enters the room. | |
| 15:51:32 | graza_ leaves the room. | |
| 15:52:13 | graza enters the room. | |
| 15:54:58 | jeremydurham leaves the room. | |
| 16:09:44 | langenberg enters the room. | |
| 16:10:48 | graza_ enters the room. | |
| 16:10:49 | graza leaves the room. | |
| 16:12:26 | twbray enters the room. | |
| 16:16:46 | menator_ enters the room. | |
| 16:17:49 | menator leaves the room. | |
| 16:20:56 | twbray leaves the room. | |
| 16:23:49 | tizianobis enters the room. | |
| 16:33:07 | tizianobis_ enters the room. | |
| 16:40:02 | graza enters the room. | |
| 16:40:03 | graza_ leaves the room. | |
| 16:44:57 | headius enters the room. | |
| 16:46:20 | hornbeck enters the room. | |
| 16:50:41 | tizianobis leaves the room. | |
| 16:53:45 | antares leaves the room. | |
| 16:56:33 | twbray enters the room. | |
| 16:57:10 | ataiar enters the room. | |
| 16:57:14 | dewd enters the room. | |
| 16:58:51 | headius | morning! |
| 17:00:42 | timo leaves the room. | |
| 17:04:19 | jp_tix | is 'Generating runtime/platform.conf...' supposed to take forever? |
| 17:04:20 | pergesu enters the room. | |
| 17:04:34 | jp_tix | i.e. be the longest-running part of the build process (so far) |
| 17:05:13 | headius | beats me, I only build rubinius from scratch occasionally |
| 17:05:30 | jp_tix | headius: I'm building it for the first time :) |
| 17:05:42 | ataiar | afternoon! |