Show enters and exits. Hide enters and exits.
| 00:02:43 | tmm1 | doesn't mongrel run? |
| 00:02:54 | tmm1 | i thought someone got it running |
| 00:05:04 | antares | tmm1: with a number of fixes to it's code, yes |
| 00:05:42 | rby leaves the room. | |
| 00:07:11 | ezmobius | webrick runs |
| 00:07:28 | ezmobius | there is a modified http11 mongrel parser in the rbx repo |
| 00:07:40 | ezmobius | so you can get mongrel running with some hand waving and jig dnacing |
| 00:09:15 | antares | ezmobius: what has been modified in parser, isn't it a ragel-generated C code? |
| 00:09:43 | tarcieri | ezmobius: does Rack::Handler::WEBRick work? |
| 00:09:46 | ezmobius | there were a few small things adjusted |
| 00:09:50 | ezmobius | tarcieri: yup |
| 00:09:53 | tarcieri | cool |
| 00:10:23 | ezmobius | antares: also it was done a while ago so rbx may have overcome the issues since then |
| 00:10:33 | ezmobius | there was some problem with global variables |
| 00:11:31 | agile leaves the room. | |
| 00:14:04 | imajes leaves the room. | |
| 00:14:28 | peeja enters the room. | |
| 00:14:41 | Arjen_ leaves the room. | |
| 00:16:22 | antares | ezmobius: thanks for info ;) |
| 00:16:29 | Fullmoon enters the room. | |
| 00:17:40 | lstoll leaves the room. | |
| 00:23:34 | jayWHY leaves the room. | |
| 00:24:03 | antares | loves that 500 lines C switch in instructions.gen |
| 00:24:39 | antares | code generation produces code for machines ;) |
| 00:26:55 | foysavas leaves the room. | |
| 00:28:18 | boyscout | 1 commit by Eric Hodel |
| 00:28:19 | boyscout | * Import RubyGems 1.1.0.; 70465ee |
| 00:30:17 | rue | Wee |
| 00:31:08 | rue | drbrain: Is the ticket for Gems still valid? |
| 00:31:21 | drbrain | which? |
| 00:31:26 | drbrain | if you have it handy |
| 00:32:08 | mass | rue: see my msg earlier re: GC? |
| 00:32:56 | kwl leaves the room. | |
| 00:35:18 | rubuildius_amd64 | Eric Hodel: 70465eeb0; 1844 files, 6259 examples, 22316 expectations, 0 failures, 0 errors; http://rafb.net/p/QMXOT410.html |
| 00:35:18 | rue | drbrain: #347: "Integrate RubyGems" |
| 00:35:30 | drbrain | ah, yes, that is done |
| 00:36:30 | rue | mass: Ah, yeah--I was looking at page faulting variants.. you found some benchmarks that performed worse though? |
| 00:36:57 | foysavas enters the room. | |
| 00:37:04 | zenspider | I could use some help in the subtend arena... anyone? |
| 00:37:36 | rue | I am always ready to confuse matters! Shoot! |
| 00:39:09 | mass | word of mouth from evan who hangs with those types of hombres |
| 00:39:28 | mass | I really liked the idea and wanted to work on it, but it was an awful amount of work for something that might be slower |
| 00:40:10 | mass | write barriers and even read barriers are very much in fashion still |
| 00:40:24 | mass | the other thing, which might or might not matter, is that a page-based system would require a MMU |
| 00:40:30 | rue | Yep.. I was going to peek at the JVMs a bit |
| 00:40:35 | rubuildius_ppc | Eric Hodel: 70465eeb0; 1844 files, 6262 examples, 22345 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/173458 |
| 00:40:45 | mass | I believe the JVM system is very close to what is in rubinius today :) |
| 00:40:49 | rue | mass: Well, we *should* be able to provide a separate one for embedded systems etc. |
| 00:41:02 | rue | Parallel would be interesting to do |
| 00:41:13 | mass | perhaps rubinius is simplified. the one thing I didn't get from my research is how to make a parallel gc which isn't based on write and read barriers |
| 00:41:31 | mass | err, sorry, which IS |
| 00:41:37 | mass | the pagefault system was safe |
| 00:42:21 | rue | Ah, yeah |
| 00:42:25 | mass | there were approaches that did really fun things like marked a page unwritable then mapped the same page again to another part of memory that would write to it, to catch modifications by other threads |
| 00:42:39 | mass | but still let you GC it |
| 00:43:05 | mass | "The Compressor" in particular was a paper that made my brain ache :) |
| 00:43:12 | zenspider | rue: I've added arity checks for C method dispatches. they were missing. now I have 45ish failures... I'm looking at subtend_string.c and everything there looks as it should... |
| 00:43:19 | jayWHY enters the room. | |
| 00:43:42 | zenspider | rb_str_substr: wrong number of arguments (got 3, required 0) -- 3 is correct.. so it looks like the arity isn't stored correctly? |
| 00:44:03 | zenspider | my original test case passes tho. :/ |
| 00:44:15 | zenspider | http://rafb.net/p/ZSx7BU25.html |
| 00:44:34 | mass | rue, that one is at http://www.cs.technion.ac.il/~erez/Papers/compressor-pldi.pdf |
| 00:45:36 | zenspider | sec... lemme rake clean just to make sure |
| 00:45:57 | mass | if you decide to go with an approach lemme know, I might be interested in helping out :) |
| 00:46:54 | drbrain | rue: thanks for closing |
| 00:47:45 | rue | Yep, I have been going through the tickets a bit. That loop {} was a bit embarrassing |
| 00:48:32 | rue | zenspider: I see a segfault in the subtend Array specs as-is |
| 00:49:21 | zenspider | rue: I'm running ci on em... |
| 00:49:30 | zenspider | SubtendString rb_str_substr should return a substring ERROR |
| 00:49:39 | zenspider | wrong number of arguments (got 3, required -1073749232) |
| 00:49:42 | zenspider | |
| 00:49:51 | zenspider | yeah.... this is just not set. :/ |
| 00:50:09 | zenspider | what I added was: ARITY(cmethod_get_args(msg->method)); to nmethod_call... seemed fine and worked for my isolated tests |
| 00:51:18 | rue | Hm, subtend/string_spec.rb is green on HEAD with darwin 9.2.0 x86 |
| 00:51:44 | rue | SubtendObject has some issues though |
| 00:53:27 | zenspider | rue: yeah. it was green before my change |
| 00:54:47 | rue | Aha |
| 00:55:26 | zenspider | does that arity check look bad tho? it should always be getting a cmethod, shouldn't it? |
| 00:59:24 | nemerle enters the room. | |
| 00:59:30 | rue | Tracing, sec |
| 00:59:41 | loincloth leaves the room. | |
| 01:03:01 | zenspider | there are a lot of void* wrappers... I dunno if I can ever be sure. :/ |
| 01:06:10 | rue | Yeah, plus the cmethod/nmethod boundary etc. |
| 01:08:39 | rue | Actually, it may not be |
| 01:13:42 | rue | cmethod_get_args would access field number 18 of a CompiledMethod |
| 01:15:46 | agardiner | ew! is there something in subtend using CM#args? |
| 01:16:04 | agardiner | that might explain why i kept getting segfaults when i tried to move it yesterday |
| 01:17:08 | agardiner | it's no good the way it is though, since field 18 is not persisted to .rbcs |
| 01:18:28 | rue | ((native_method*) BYTES_OF(nmethod_get_data(nm)))->args |
| 01:19:08 | lstoll enters the room. | |
| 01:19:26 | zenspider | agardiner: I'm adding arity checking for cmethods |
| 01:20:41 | zenspider | rue: should I be doing some sort of type check on msg? |
| 01:21:06 | agardiner | rue: hmmm... that looks like it is getting args from bytecode or something??? it doesn't look like it uses field 18 on CM |
| 01:21:41 | rue | agardiner: nmethods store the arg count from nmethod_new |
| 01:21:51 | zenspider | rue: nm == msg->method? |
| 01:22:13 | rue | Should be, checking.. man, unit tests will really help here :P |
| 01:22:23 | rue | That reminds me-- |
| 01:22:34 | rue | evan: Push the C++ into a branch, plwees |
| 01:22:45 | zenspider | haha |
| 01:22:50 | zenspider | yes, they would |
| 01:22:51 | agardiner | ah, ok... it looks like NativeMethod uses the bytecodes field to store stuff |
| 01:23:00 | antares | for it with rue |
| 01:23:01 | mass | c++? |
| 01:23:11 | mass | whats that evil mastermind doing now? |
| 01:23:13 | agardiner | so it isn't using field 18 of CM for this |
| 01:23:16 | rue | Right |
| 01:23:17 | zenspider | that did it |
| 01:23:25 | antares | mass: there's a migration from C to C++ for shotgun happening |
| 01:23:34 | mass | really? |
| 01:23:42 | mass | oh, that would have made a lot of things simpler |
| 01:23:48 | antares | mass: that's being said at least |
| 01:23:52 | zenspider | mass: currently he's sleeping. :) but he's got a new architecture in a simplified C++ that will help with testing |
| 01:23:55 | mass | in exchange for making a lot of things harder to understand :) |
| 01:23:57 | zenspider | among other things |
| 01:24:16 | zenspider | rue: ok... TEACH ME... how the fuck did you come up with that? |
| 01:24:24 | antares | zenspider: does evan has any plans to publish it before it is completely done? |
| 01:24:29 | agardiner | so i'm still stumped by why my change to remove CM field 18 causes problems at GC time... |
| 01:24:37 | zenspider | antares: no clue. :) |
| 01:24:47 | agardiner | i've rebuilt stables, stopped using the field, etc without any luck |
| 01:24:55 | zenspider | I tried to work that back from nmc_new, and had a couple approaches that went that direction, but eventually went with cmethod_get_args |
| 01:25:03 | zenspider | I think I might add nmethod_get_args and the like |
| 01:25:36 | rue | zenspider: Heh, I went to see what a nmethod looks like. shotgun/lib/subtend/nmethod.{h,c}. You see the args there; then I went through nmc_activate() from nmc.c to verify it was not actually getting set on the cmethod |
| 01:25:59 | zenspider | agardiner: I have a really really hard time with bootstrapping this thing. I'm mostly playing with the parser which is outside the stables rba file, but still... it is tough |
| 01:26:06 | dysinger enters the room. | |
| 01:26:20 | cored enters the room. | |
| 01:26:21 | zenspider | ok... I didn't look at nmc_activate at all... but I guess I was close |
| 01:26:26 | binary42 enters the room. | |
| 01:26:29 | zenspider | I'll get better the more I dig in this stuff |
| 01:26:58 | agardiner | zenspider: yeah, whenever you change anything that is in stable it gets difficult |
| 01:27:16 | zenspider | is it worth it to add nmethod_get* macros? |
| 01:27:52 | agardiner | seems like it would be clearer |
| 01:29:24 | rue | Yep, no harm at least |
| 01:29:48 | tarcieri leaves the room. | |
| 01:29:54 | zenspider | hrm... doesn't really fit in genheader.rb |
| 01:30:12 | agardiner | no, you'd want to add it to nmethod.h I think |
| 01:30:14 | zenspider | how about in nmc.h ? |
| 01:30:18 | rue | Nah, you have to handcode it so nmethod.h |
| 01:30:52 | zenspider | k |
| 01:31:55 | zenspider | is there anything OTHER than args to do? |
| 01:32:08 | zenspider | we don't do nasty struct "inheritance" or anything, right? |
| 01:33:46 | rue | I would go case by case, there is probably stuff in nmc that might be useful |
| 01:36:44 | binary42 leaves the room. | |
| 01:36:51 | binary42 enters the room. | |
| 01:38:52 | rue | antares: I closed the Range#step ticket, we are going to track 111 and looks like the 114 change is getting fixed too |
| 01:39:29 | antares | rue: roger that |
| 01:39:58 | antares | rue: I am deep into kernel documentation now, probably will need a review from you soon |
| 01:42:28 | agile enters the room. | |
| 01:47:29 | rue | Man, these "hint of lime & salt" chips are tasty. I do not even have salsa :D |
| 01:49:43 | zenspider | rue: heh... I just grabbed some irish cheddar because I don't have salsa. :) |
| 01:49:49 | zenspider | yay for raw nachos |
| 01:52:23 | boyscout | 4 commits by Ryan Davis |
| 01:52:24 | boyscout | * mkspec now stubs a failure; 94bcb30 |
| 01:52:25 | boyscout | * Added mri vs rubinius check in rbconfig - also horrid LDSHARED hack, but I'll fix ...; d4793b5 |
| 01:52:26 | boyscout | * Added arity check for nmethod_call - thanks to rue and evan; 2e0c078 |
| 01:52:27 | boyscout | * Added nmethod_[sg]et_args; 30f1cca |
| 01:52:51 | rue | Ha, nice on 94bcb |
| 01:53:27 | zenspider | yeah. we need it |
| 01:53:39 | zenspider | too many essentially empty files w/ no good way to track |
| 01:58:18 | webmat enters the room. | |
| 02:00:12 | rubuildius_amd64 | Ryan Davis: 94bcb30b4; 1844 files, 6259 examples, 22316 expectations, 0 failures, 0 errors; http://rafb.net/p/GoUqPo43.html |
| 02:00:19 | kw enters the room. | |
| 02:03:23 | justinweiss enters the room. | |
| 02:06:09 | rubuildius_ppc | Ryan Davis: 94bcb30b4; 1844 files, 6262 examples, 22345 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/173506 |
| 02:07:57 | kw leaves the room. | |
| 02:08:16 | kw enters the room. | |
| 02:09:02 | kwl leaves the room. | |
| 02:17:52 | obvio enters the room. | |
| 02:20:01 | KirinDav leaves the room. | |
| 02:23:57 | _VVSiz_ enters the room. | |
| 02:24:41 | agile leaves the room. | |
| 02:24:57 | cored leaves the room. | |
| 02:28:09 | kw enters the room. | |
| 02:29:29 | agile enters the room. | |
| 02:30:16 | AndrewO enters the room. | |
| 02:32:45 | agile leaves the room. | |
| 02:33:13 | agile enters the room. | |
| 02:35:13 | lstoll leaves the room. | |
| 02:35:31 | kw leaves the room. | |
| 02:35:48 | kw enters the room. | |
| 02:36:12 | kw leaves the room. | |
| 02:36:52 | agile leaves the room. | |
| 02:42:10 | fbuilesv enters the room. | |
| 02:42:17 | VVSiz_ leaves the room. | |
| 02:49:53 | djwhitt | man, someone has to try this at somepoint: http://murmurhash.googlepages.com/ |
| 02:50:25 | agile enters the room. | |
| 02:52:02 | GMFlash leaves the room. | |
| 02:53:41 | rue | Yeah, that looked interesting |
| 02:55:36 | djwhitt | hmm... I wonder how hard it would be to hack that in |
| 03:01:32 | Fobax | Apparently it is now the default Ruby hash |
| 03:06:55 | jrun enters the room. | |
| 03:08:37 | srbaker leaves the room. | |
| 03:10:26 | joachimm_ enters the room. | |
| 03:11:37 | srbaker enters the room. | |
| 03:13:24 | rue | Should not be very difficult |
| 03:14:53 | MenTaLguY enters the room. | |
| 03:17:52 | antares | rue: I see there's a separate heap for contexts. Could you explain this decision? I am a bit confused after blue book :) |
| 03:19:42 | rue | Contexts are preallocated and recycled to avoid the cost of allocation every method call |
| 03:19:52 | jayWHY_ enters the room. | |
| 03:19:55 | rue | So the OM manages those separatey |
| 03:19:57 | ezmobius leaves the room. | |
| 03:19:59 | rue | Separately also |
| 03:20:28 | antares | rue: I see. They got recycled when VM is low on memory, right? |
| 03:20:43 | antares | rue: or when execution of methods/blocks end? |
| 03:21:21 | jtoy enters the room. | |
| 03:23:48 | cremes_ enters the room. | |
| 03:24:45 | rue | It should be done each time the GC runs |
| 03:26:47 | joachimm leaves the room. | |
| 03:29:20 | rue | Wth |
| 03:31:52 | antares | rue: thanks, exploring on my own now :) |
| 03:32:23 | rue | There is a file in doc/ that may help, then look at object_memory.c |
| 03:32:58 | rue | If you can concisely explain when a context is referenced, that would be great :) |
| 03:34:33 | jayWHY leaves the room. | |
| 03:40:11 | lstoll enters the room. | |
| 03:42:25 | obvio171 enters the room. | |
| 03:43:21 | nkpart leaves the room. | |
| 03:45:01 | macournoyer leaves the room. | |
| 03:51:21 | KirinDav enters the room. | |
| 03:52:42 | lopex leaves the room. | |
| 03:57:09 | obvio leaves the room. | |
| 03:59:57 | antares leaves the room. | |
| 04:02:42 | GMFlash enters the room. | |
| 04:05:04 | Fobax | How far along is Rubinius? |
| 04:05:21 | MenTaLguY | it is along |
| 04:05:27 | Fobax | Is it anywhere near usable as a real replacement for ruby? |
| 04:05:31 | dysinger leaves the room. | |
| 04:05:32 | wycats | MenTaLguY: what's your real name? |
| 04:05:40 | wycats | Fobax_: if you just want to do scripts, sure |
| 04:05:45 | wycats | not if you need rubygems/actual gems |
| 04:05:49 | wycats | not if you need Rails |
| 04:05:57 | Fobax | I don't need rails, but I do need gems |
| 04:06:10 | MenTaLguY | wycats: well, if you're going to ask like *that*, I don't need to tell you. :) |
| 04:06:28 | antares enters the room. | |
| 04:06:55 | Fobax | Ruby is just being a major memory hog |
| 04:07:36 | wycats | MenTaLguY.real_name |
| 04:07:40 | wycats | is that better? |
| 04:07:46 | Fobax | It'd be nice to try to get my site running under rubinius soon |
| 04:07:54 | wycats | how about MenTaLguY.real_name? |
| 04:08:00 | wycats | #=> false |
| 04:08:01 | wycats | ? |
| 04:08:22 | MenTaLguY | well, obviously #real_name? returns false; obviously it's not my real name :) |
| 04:08:56 | wycats | #real_name? would return whether you had a real name ;) |
| 04:09:07 | MenTaLguY | well, true then. |
| 04:09:16 | rue | Evening, MenTaLguY |
| 04:09:55 | djwhitt | MenTaLguY is actually _why |
| 04:10:01 | djwhitt | he has a split personality |
| 04:10:04 | djwhitt | hence the name |
| 04:10:07 | wycats | I was thinking that ;) |
| 04:10:19 | wycats | _why? Because he's a MenTaLguY |
| 04:10:38 | MenTaLguY | heh, _why and I are quite different people |
| 04:10:45 | wmoxam enters the room. | |
| 04:13:00 | lstoll leaves the room. | |
| 04:13:34 | halorgium | i was awfully concerned on fri night when someone was attempting to discover _why & MenTaLguY's names :P |
| 04:14:36 | MenTaLguY | I know MenTaLguY's name. |
| 04:15:03 | rue | I know that he knows |
| 04:15:25 | MenTaLguY | _why actually does know my name, we corresponded once |
| 04:15:33 | MenTaLguY | (offline) |
| 04:16:12 | djwhitt | ah, but do you know his? |
| 04:16:50 | djwhitt | I suppose some people must |
| 04:16:58 | djwhitt | he goes to conferences etc. doesn't he |
| 04:17:12 | MenTaLguY | yeah, but you can usually go to a conference with a crazy name |
| 04:17:16 | MenTaLguY | if you work it right |
| 04:17:28 | MenTaLguY | my official DDC and LGM badges said "MenTaLguY" |
| 04:17:54 | halorgium | and pay with cash :D |
| 04:17:56 | MenTaLguY | my friend Dormando actually used his real name at SXSW, but nobody knew who he was then |
| 04:17:57 | djwhitt | hehe |
| 04:17:58 | djwhitt | nice |
| 04:18:02 | MenTaLguY | no, I used a credit chard actually |
| 04:18:06 | MenTaLguY | s/chard/card/ |
| 04:18:10 | MenTaLguY | there are a couple ways to handle it |
| 04:18:23 | MenTaLguY | One is to simply call the organizers and make special arrangements |
| 04:18:47 | MenTaLguY | another one is to simply specify your real name with the billing information |
| 04:19:02 | MenTaLguY | or if the billing information is not separate, use your real name and then change it once the charge clears |
| 04:19:12 | MenTaLguY | so they have your pseudonym by the time they print badges |
| 04:19:15 | MenTaLguY | lots of ways to do it |
| 04:19:40 | djwhitt | ah, well, I don't really want to know. I figure if someone wants to keep such stuff private they should be able to. but it's fun to joke about it ;) |
| 04:20:44 | tobyo | MenTaLguY: does this anonymity buy you much? Keeps you safe from anti-threaders or something? |
| 04:21:10 | MenTaLguY | Honestly? It's a nice little bit of insulation as a (very minor) celebrity. |
| 04:21:27 | MenTaLguY | The other thing though is that I'm kind of stuck with the name now. |
| 04:21:32 | MenTaLguY | All my interesting accomplishments are under it. |
| 04:21:36 | tobyo | is glad to be a nobody |
| 04:21:51 | MenTaLguY | c.f. Dormando's problem |
| 04:23:07 | tobyo | You are certainly protected from issues like the Marc Andreessen porn incident |
| 04:24:08 | jrun leaves the room. | |
| 04:24:15 | MenTaLguY | Don't know about that, except by virtue of not getting involved with the porn business in the first place. |
| 04:26:28 | djwhitt | Foobax_: not sure anyone ever really answered your question |
| 04:26:44 | djwhitt | err... Fobax_ |
| 04:26:57 | djwhitt | Fobax_: what's your site written in? |
| 04:27:08 | djwhitt | Fobax_: as in one gems does it use |
| 04:27:12 | djwhitt | *what |
| 04:29:28 | webmat leaves the room. | |
| 04:51:36 | KirinDav leaves the room. | |
| 04:53:16 | wycats leaves the room. | |
| 05:04:28 | RyanTM leaves the room. | |
| 05:05:34 | obvio leaves the room. | |
| 05:12:42 | tony_ enters the room. | |
| 05:15:51 | srbaker leaves the room. | |
| 05:16:56 | srbaker enters the room. | |
| 05:17:26 | brixen | zenspider: ping |
| 05:19:38 | nkpart enters the room. | |
| 05:24:14 | tarcieri leaves the room. | |
| 05:43:07 | fbuilesv leaves the room. | |
| 05:51:38 | nicksieger leaves the room. | |
| 05:55:48 | lstoll enters the room. | |
| 05:57:02 | srbaker leaves the room. | |
| 06:08:30 | wycats enters the room. | |
| 06:17:34 | imajes enters the room. | |
| 06:20:10 | ezmobius enters the room. | |
| 06:27:00 | ezmobius_ enters the room. | |
| 06:28:33 | ezmobius leaves the room. | |
| 06:35:00 | antares leaves the room. | |
| 06:39:56 | antares enters the room. | |
| 06:40:05 | headius enters the room. | |
| 06:42:43 | aotearoa leaves the room. | |
| 06:50:03 | rue | Argh. This is the dumbest... I will never /ever/ work with Apache again. |
| 06:53:32 | ezmobius | lol |
| 06:53:57 | headius | evening |
| 06:54:49 | rue | Hey |
| 06:55:19 | ezmobius | heya headius |
| 06:55:22 | ezmobius | hows life? |
| 06:56:30 | headius | grrrreat...off to edinburgh for scotland on rails today |
| 06:56:39 | headius | gotta come up with 90 minutes of material |
| 06:57:19 | rue | You could announce that you have stopped JRuby development |
| 06:59:11 | rue | Became a monk or something |
| 06:59:23 | rue | Although you would have to shave your head for that I think |
| 06:59:43 | headius | ahh, but we've only just started |
| 06:59:46 | ezmobius_ enters the room. | |
| 07:00:09 | headius | now that 1.1 is released, we'll be turning the performance thumbscrews again |
| 07:00:36 | rue | But it is April Fools' |
| 07:00:47 | rue | Or Fool's, never bothered to find out which |
| 07:02:48 | headius | yes, I hate this day because of all the fake news stories |
| 07:05:26 | headius | we've started to look into multi-threaded performance more |
| 07:05:50 | be9 enters the room. | |
| 07:06:15 | headius | evan's in copenhagen now I suppose...how long will he be there? |
| 07:06:22 | ezmobius | 10 days last i heard |
| 07:06:26 | headius | I don't suppose he pushed his work anywhere...I was hoping to see it |
| 07:07:04 | imajes leaves the room. | |
| 07:08:04 | rue | Hahaa, I take great glee in this |
| 07:08:17 | rue | circumvents static for unit testing |
| 07:14:31 | rue | headius: No, and I forgot to ask. He should be around occasionally though |
| 07:16:19 | ezmobius leaves the room. | |
| 07:21:39 | headius | ok...hopefully it will get pushed sometime soon |
| 07:23:22 | rue | Mm, need to remind him to do it |
| 07:24:27 | headius | how's the rails push going? |
| 07:24:48 | headius | I got a number of questions about rubinius at euruko and realized I don't know the status anymore |
| 07:26:54 | perdix enters the room. | |
| 07:30:42 | wmoxam leaves the room. | |
| 07:31:55 | rue | headius: Fairly constant progress but it is little bits at a time |
| 07:33:57 | mutle enters the room. | |
| 07:34:20 | mutle leaves the room. | |
| 07:35:52 | brixen | I do hope the new cpu has a sane bootstrap process |
| 07:36:11 | brixen | the existing one is seemingly rather ad hoc and at time inscrutable |
| 07:37:00 | agardiner leaves the room. | |
| 07:41:35 | _ezmobius_ enters the room. | |
| 07:43:54 | be9 leaves the room. | |
| 07:45:11 | nkpart leaves the room. | |
| 07:53:25 | w1rele55 enters the room. | |
| 07:57:35 | ezmobius_ leaves the room. | |
| 07:58:01 | wycats leaves the room. | |
| 08:01:11 | headius leaves the room. | |
| 08:01:44 | antares leaves the room. | |
| 08:08:18 | Skip enters the room. | |
| 08:10:00 | AndrewO leaves the room. | |
| 08:11:30 | thehcdreamer enters the room. | |
| 08:13:30 | benburkert leaves the room. | |
| 08:14:06 | _ezmobius enters the room. | |
| 08:16:33 | aotearoa enters the room. | |
| 08:19:26 | rue | Break |
| 08:29:04 | be9 enters the room. | |
| 08:31:12 | aotearoa leaves the room. | |
| 08:42:57 | agile leaves the room. | |
| 08:43:19 | crossblaim enters the room. | |
| 08:44:06 | _ezmobius leaves the room. | |
| 08:44:07 | _ezmobius_ leaves the room. | |
| 08:46:36 | d2dchat leaves the room. | |
| 08:55:55 | crossblaim leaves the room. | |
| 08:56:56 | octopod enters the room. | |
| 08:57:14 | mutle enters the room. | |
| 09:01:11 | justinweiss_ enters the room. | |
| 09:01:11 | justinweiss leaves the room. | |
| 09:04:34 | hoopy_ enters the room. | |
| 09:05:53 | hoopy leaves the room. | |
| 09:09:10 | Arjen_ enters the room. | |
| 09:12:58 | VVSiz | interesting, while Evan on rubyconf'2008 talks about how projects should be more open, rails gets even more strict about core contributors, removing less-active members from core team :) |
| 09:15:44 | be9 | Evan != David, Rubinius != Rails |
| 09:15:54 | rue | Future != Rails ? :) |
| 09:16:15 | VVSiz | sure, just very opposite views on project "management" :) |
| 09:16:26 | olabini leaves the room. | |
| 09:17:46 | boyscout | 2 commits by Brian Ford |
| 09:17:47 | boyscout | * Fix up language symbol specs.; 8dfece3 |
| 09:17:48 | boyscout | * Constant lookup only searches class or module (#457).; 29cc22f |
| 09:18:36 | be9 | "project management", huh? basecamp sucks :) |
| 09:19:48 | rue | brixen: Hey, I was going to do quick PoCs: a force-compile load and add a conditional that allows omitting sections of code by the compiler |
| 09:20:25 | rue | Unless you have already worked around the former |
| 09:21:22 | brixen | rue: nope, we still need a force compile |
| 09:21:39 | brixen | rue: what's the conditional syntax look like? |
| 09:22:17 | rue | I figured something like Rubinius.conditional(variable) do ... end |
| 09:22:38 | brixen | ahh, sure |
| 09:22:40 | rue | Well, s/variable/global/ or so |
| 09:23:09 | brixen | not Compiler.omit(condition) do ... end ? |
| 09:24:01 | brixen | Compiler.just_kidding(:here) do ... end :) |
| 09:24:33 | rue | I think we want to keep Rubinius the only magical constant |
| 09:25:18 | rubuildius_amd64 | Brian Ford: 8dfece35e; 1844 files, 6261 examples, 22339 expectations, 0 failures, 0 errors; http://rafb.net/p/aEUQy592.html |
| 09:25:38 | brixen | ok, sleep-time |
| 09:27:24 | rue | *wave |
| 09:28:15 | mutle leaves the room. | |
| 09:28:49 | VVSiz | brixen: heh, the new spec finds a bug in JRuby too... :File::TEST --> NoMethodError instead of TypeErorr :) |
| 09:30:45 | rubuildius_ppc | Brian Ford: 8dfece35e; 1844 files, 6264 examples, 22368 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/173656 |
| 09:34:49 | mutle enters the room. | |
| 09:49:47 | cypher23 enters the room. | |
| 10:09:31 | hoopy enters the room. | |
| 10:13:46 | crossblaim enters the room. | |
| 10:17:02 | hoopy_ leaves the room. | |
| 10:26:21 | cris_kiev enters the room. | |
| 10:28:50 | cris_kiev enters the room. | |
| 10:29:41 | cris_kiev | hi all, is this true that rubinius core will be overwritten from c to c++? |
| 10:35:30 | BlackEdder enters the room. | |
| 10:37:29 | womble | cris_kiev: I suspect that it might be an April Fools' thing. |
| 10:42:02 | qwert666_ enters the room. | |
| 10:46:31 | cris_kiev | womble: http://novemberain.com/2008/3/28/rubinius-the-crazy-mixture - dated at march 28, but i'm hope you are right :) |
| 10:47:54 | womble | cris_kiev: How odd. I haven't noticed big chunks of C++, but then again I don't tend to range around in shotgun unless I really have to. <grin> |
| 10:52:03 | aotearoa enters the room. | |
| 10:52:11 | EugZol enters the room. | |
| 10:52:13 | octopod | it's true, evan was discussing it here, have a look at the channel logs |
| 10:53:25 | octopod | http://donttreadonme.co.uk/rubinius-irc/rubinius.log.20080327.html from ~18:12 |
| 11:08:50 | jtoy leaves the room. | |
| 11:13:12 | rue | I guess he was really crushed |
| 11:36:48 | radarek enters the room. | |
| 11:37:03 | webmat enters the room. | |
| 11:40:21 | antares enters the room. | |
| 11:40:55 | antares leaves the room. | |
| 11:44:51 | ragnard enters the room. | |
| 11:51:37 | cypher23 leaves the room. | |
| 11:54:45 | cypher23 enters the room. | |
| 12:17:18 | perdiy enters the room. | |
| 12:17:18 | perdix leaves the room. | |
| 12:21:33 | ctennis leaves the room. | |
| 12:29:49 | NoKarma enters the room. | |
| 12:29:54 | NoKarma | heya |
| 12:32:51 | rue | Morning |
| 12:33:34 | NoKarma | rue: What's your sleep/work rhythm? |
| 12:34:54 | NoKarma | rue: You seem to be always around :) |
| 12:36:18 | ctennis enters the room. | |
| 12:40:21 | wdperson enters the room. | |
| 12:44:28 | be9 | heh. it's mod_rubinius that should be up & running all the time, not rue :) |
| 12:53:23 | NoKarma | haha |
| 13:03:20 | lchin leaves the room. | |
| 13:06:09 | ttmrichter leaves the room. | |
| 13:07:18 | Fullmoon leaves the room. | |
| 13:07:24 | Fullmoon enters the room. | |
| 13:27:25 | rue | Well, I have to keep the internet rolling by hand until that |
| 13:33:01 | Skip leaves the room. | |
| 13:34:45 | scoopr | rolling? rick rolling? |
| 13:35:46 | rue | Wtf is with the "rickrolling" in the last two days? |
| 13:37:09 | BlackEdder leaves the room. | |
| 13:44:02 | RyanTM enters the room. | |
| 13:45:34 | jacen | rickrolling == make them watch rick astley videos |
| 13:46:00 | jacen | some more-weirdo-than-usual-nerd-gag |
| 13:50:32 | NoKarma | uk.youtube.com redirects all clicks to featured videos to a rick roll |
| 13:51:07 | jacen | so funny. |
| 13:59:57 | rue | Urghh- |
| 14:12:18 | wmoxam enters the room. | |
| 14:15:16 | VVSiz | so what's up with all the the rick astley affection? :) the joke seems to be very deep and non-trivial! |
| 14:17:53 | rype enters the room. | |
| 14:19:41 | rue | Or extremely shallow and trivial |
| 14:23:21 | jtoy enters the room. | |
| 14:26:46 | macournoyer enters the room. | |
| 14:27:30 | rue | Hm, interesting |
| 14:27:39 | rue | I think this may have worked. |
| 14:30:19 | rue | Dunno if it is useful in any way but just the same |
| 14:31:38 | NoKarma | rue: what |
| 14:33:15 | webmat | There's even a link to a Rick video on the page for the brand new revolutionary service http://svnhub.com/, |
| 14:34:04 | rue | NoKarma: I was tinkering with conditional compilation |
| 14:35:11 | be9 | omg svnhub.com! rotfl |
| 14:35:15 | NoKarma | lol |
| 14:35:18 | NoKarma | nice one |
| 14:38:07 | webmat | hilarious comments to the blog post announcing it, too: http://github.com/blog/31-back-to-subversion :-) |
| 14:40:13 | aotearoa leaves the room. | |
| 14:41:44 | probablycorey enters the room. | |
| 14:42:12 | perdiy leaves the room. | |
| 14:46:20 | perdix enters the room. | |
| 14:51:54 | nemerle leaves the room. | |
| 14:52:22 | AndrewO enters the room. | |
| 14:54:47 | chris2 enters the room. | |
| 14:56:07 | nemerle enters the room. | |
| 15:03:03 | JimMc enters the room. | |
| 15:03:22 | JimM1 enters the room. | |
| 15:04:32 | nicksieger enters the room. | |
| 15:05:34 | JimM1 enters the room. | |
| 15:07:43 | benburkert enters the room. | |
| 15:07:54 | nicksieger leaves the room. | |
| 15:08:39 | JimMc enters the room. | |
| 15:11:31 | d2dchat enters the room. | |
| 15:11:53 | nemerle_afk enters the room. | |
| 15:13:42 | qwert666__ enters the room. | |
| 15:13:55 | moofbong enters the room. | |
| 15:16:54 | boyscout | 2 commits by Eero Saynatkari |
| 15:16:55 | boyscout | * Conditional compilation. Rubinius.compile_if($DEBUG) { p somevariable }.; f58c67e |
| 15:16:56 | boyscout | * Specs to verify conditional compilation in the compiler.; 4f78ee2 |
| 15:18:24 | rue | Let me know if it breaks/causes problems. Everything seemed OK here. |
| 15:19:13 | nemerle leaves the room. | |
| 15:20:20 | agile enters the room. | |
| 15:20:28 | nemerle enters the room. | |
| 15:25:35 | rubuildius_amd64 | Eero Saynatkari: f58c67e33; 1845 files, 6263 examples, 22348 expectations, 0 failures, 0 errors; http://rafb.net/p/P4RKC966.html |
| 15:28:13 | Skip enters the room. | |
| 15:30:20 | qwert666_ leaves the room. | |
| 15:31:11 | rubuildius_ppc | Eero Saynatkari: f58c67e33; 1845 files, 6266 examples, 22377 expectations, 0 failures, 0 errors; |
| 15:31:22 | skaar enters the room. | |
| 15:36:08 | nemerle_afk leaves the room. | |
| 15:37:42 | BlackEdder enters the room. | |
| 15:41:31 | binary42 leaves the room. | |
| 15:48:03 | srbaker enters the room. | |
| 15:54:54 | benburkert leaves the room. | |
| 15:59:44 | justinweiss leaves the room. | |
| 16:02:39 | GMFlash leaves the room. | |
| 16:02:45 | GMFlash enters the room. | |
| 16:08:11 | KirinDav enters the room. | |
| 16:21:48 | nicksieger enters the room. | |
| 16:23:55 | chris2 leaves the room. | |
| 16:24:02 | benburkert enters the room. | |
| 16:36:35 | d2dchat leaves the room. | |
| 16:36:50 | d2dchat enters the room. | |
| 16:42:26 | tarcieri enters the room. | |
| 16:44:40 | ttmrichter enters the room. | |
| 16:45:21 | jtoy leaves the room. | |
| 16:48:15 | wycats enters the room. | |
| 16:49:06 | srbaker leaves the room. | |
| 16:54:41 | KirinDave leaves the room. | |
| 16:55:45 | srbaker enters the room. | |
| 16:56:39 | srbaker leaves the room. | |
| 16:57:00 | KirinDave enters the room. | |
| 17:04:53 | d2dchat leaves the room. | |
| 17:12:40 | arjen__ enters the room. | |
| 17:13:01 | RyanTM leaves the room. | |
| 17:14:18 | Arjen_ leaves the room. | |
| 17:14:23 | RyanTM enters the room. | |
| 17:20:30 | mutle leaves the room. | |
| 17:21:31 | srbaker enters the room. | |
| 17:21:38 | KirinDave leaves the room. | |
| 17:25:35 | lopex enters the room. | |
| 17:28:05 | ciscbrain enters the room. | |
| 17:28:24 | thehcdreamer leaves the room. | |
| 17:29:41 | headius enters the room. | |
| 17:30:52 | headius | howdy! |
| 17:31:08 | djwhitt | hola |
| 17:33:03 | BlackEdder enters the room. | |
| 17:42:34 | dysinger enters the room. | |
| 17:46:54 | srbaker leaves the room. | |
| 17:51:19 | justinweiss enters the room. | |
| 17:51:35 | loincloth enters the room. | |
| 17:52:39 | justinweiss_ enters the room. | |
| 17:52:39 | justinweiss leaves the room. | |
| 17:52:47 | dbussink | evening! |
| 17:53:00 | Defiler | afternoon! |
| 17:53:11 | arjen | Evening! |
| 17:57:29 | nemerle leaves the room. | |
| 18:00:21 | rue | Thingy |
| 18:00:39 | d2dchat enters the room. | |
| 18:01:49 | srbaker enters the room. | |
| 18:12:02 | djwhitt | here's a nice test case: a=0;10.times{|i|;a+=i;class Fixnum;private :+;end};p |
| 18:12:08 | djwhitt | (from the JRuby channel) |
| 18:12:18 | rue | Test case for what, pingpong? |
| 18:12:38 | djwhitt | changing method visibility |
| 18:12:40 | rue | (Not sure why it reminded me of pingpong) |
| 18:13:33 | djwhitt | should be 'p a' at the end |
| 18:14:13 | djwhitt | that prints 45 on Rubinius |
| 18:14:20 | djwhitt | throughs an exception on MRI |
| 18:14:26 | djwhitt | *throws |
| 18:16:28 | justinweiss_ leaves the room. | |
| 18:18:03 | KirinDav enters the room. | |
| 18:19:03 | djwhitt | where would a spec for that go? |
| 18:19:35 | djwhitt | in private_spec.rb in the language directory? |
| 18:22:52 | rue | Hm, this change costs ~2-3 seconds in CI |
| 18:25:15 | djwhitt | what change is that? |
| 18:27:22 | ctennis leaves the room. | |
| 18:27:22 | dgtized leaves the room. | |
| 18:27:22 | dbussink leaves the room. | |
| 18:27:22 | jammi leaves the room. | |
| 18:27:22 | rue leaves the room. | |
| 18:27:32 | ctennis enters the room. | |
| 18:27:32 | rue enters the room. | |
| 18:27:32 | dgtized enters the room. | |
| 18:27:32 | jammi enters the room. | |
| 18:27:32 | dbussink enters the room. | |
| 18:28:18 | Defiler | Ugh. That is a nasty visibility test |
| 18:28:37 | rue | Yeah, made everyone drop |
| 18:28:48 | Defiler | hah |
| 18:29:26 | rue | dbussink: Force recompile |
| 18:30:42 | peeja | are there docs for using subtend? |
| 18:31:05 | rue | spec/subtend/ is probably as closes as we get |
| 18:31:30 | rue | From a user's point of view it should (eventually) be the same as a MatzRuby extension |
| 18:32:38 | peeja | what do I have to do to compile against it instead of MRI? |
| 18:33:03 | djwhitt | this seems to be the simplest case for that visibility test: http://rafb.net/p/KWG7hW11.html |
| 18:33:30 | djwhitt | if you remove that first call to a.foo it'll throw an exception on the second one |
| 18:34:03 | antares enters the room. | |
| 18:34:06 | Defiler | peeja: Just make sure you pick up Rubinius's ruby.h instead of MRI's |
| 18:36:56 | peeja | ok. I'll need to link against Rubinius too, right? |
| 18:37:42 | Defiler | That's what you are doing by saying 'include ruby.h' generally |
| 18:37:52 | Defiler | Assuming you use Rubinius's version |
| 18:38:07 | Defiler | but yeah, the include path is all that should need to change |
| 18:38:13 | peeja | don't I need to tell the compiler where to find the library? |
| 18:39:13 | Defiler | Theoretically, but the defaults have always worked fine for me |
| 18:39:21 | rue | Should be `shotgun/rubinius compile <extfile> -g` |
| 18:39:31 | Defiler | Oh yeah, or that |
| 18:39:35 | Defiler | I've just been doing it with gcc |
| 18:39:37 | rue | Wtf lag |
| 18:40:26 | thewoolleyman enters the room. | |
| 18:41:58 | thehcdreamer enters the room. | |
| 18:45:21 | antares | Hi everyone! |
| 18:45:30 | rue | Evening, slacker |
| 18:46:09 | dbussink | rue: i see you closed #434, did you look into it any further? |
| 18:46:37 | dbussink | rue: or was it not reproducible anymore? |
| 18:48:02 | rue | The slowness in CI was gone; if there is still a problem with Generator on 64 should set up a separate ticket |
| 18:48:18 | rue | Not sure if djwhitt had had the chance to look at it |
| 18:50:56 | dbussink | ah ok, well the slowness was fixed by an exclusion, dunno if anyone looked into it any further |
| 18:52:01 | rue | That I dunno |
| 18:52:16 | headius | Defiler: the test is written like that to test whether inline caching gets flushed after a visibility change |
| 18:52:34 | headius | or whether it otherwise sees the change, anyway |
| 18:56:02 | djwhitt | rue: there is already a ticket about the Generator specs consuming lots of memory. I'll add some more details to it in a bit |
| 18:56:26 | Defiler | headius: Oh yeah, I understood |
| 18:56:31 | Defiler | headius: It's just clever/brutal |
| 18:56:34 | rue | Coolz0r |
| 18:57:45 | thehcdreamer leaves the room. | |
| 18:58:11 | dbussink | djwhitt: any idea what the cause is? |
| 18:59:14 | djwhitt | dbussink: several people mentioned that Generator uses continuations |
| 18:59:50 | djwhitt | so I guess I know the general area something might be going wrong, but I don't know why |
| 19:00:27 | benburkert leaves the room. | |
| 19:00:27 | djwhitt | also, if I remember correctly Generator consumes tons of memory on both 32bit and 64bit but only causes slowdowns on 64bit |
| 19:00:59 | dbussink | djwhitt: ah ok, so no general 64 bit problem actually |
| 19:01:09 | dbussink | slowdown might be caused by swapping or something like that |
| 19:01:25 | benburkert enters the room. | |
| 19:02:06 | benburkert leaves the room. | |
| 19:02:06 | djwhitt | dbussink: yeah, that's what I thought too, but I looked at memory usage and there was still close to 1GB free |
| 19:02:54 | rue | Oh--test out the conditional compilation |
| 19:03:15 | rue | If it does not break stuff, I want to start adding copious amounts of debug information |
| 19:04:01 | djwhitt | dbussing: I'll try experimenting with it some more though and see if I can come up with some more definitive info |
| 19:04:33 | rue | antares: I did not get around to looking at contexts any further |
| 19:06:29 | antares | rue: no problem, I keep moving. Documenting things here-n-there as I understand them. |
| 19:10:44 | peeja | rue: in `rubinius compile <extfile> -g`, is <extfile> the .c or the extconf.rb? |
| 19:11:36 | rue | The C file, I do not think we support extconf at all |
| 19:11:52 | Defiler | Yeah, we don't have enough rbconfig.rb support yet to run extconf |
| 19:11:52 | w1rele55 leaves the room. | |
| 19:12:02 | Defiler | Though I fixed one thing that was preventing it from even loading |
| 19:12:02 | peeja | ok, when I do that it says it can't find ruby.h... :/ |
| 19:12:22 | peeja | (yeah, that explains the missing MAKEFILE_CONFIG) |
| 19:13:38 | jayWHY enters the room. | |
| 19:13:54 | peeja | also, what does -g do? I don't see that option |
| 19:15:12 | ciscbrain leaves the room. | |
| 19:16:22 | rue | Sorry, automatic pilot: -g is debug info, not strictly necessary |
| 19:17:45 | rue | It should be taken care of by the compiler; are you building outside the Rubinius tree? |
| 19:19:25 | Arjen_ leaves the room. | |
| 19:19:33 | peeja | ah, yes I am |
| 19:19:41 | peeja | where should i be in the tree? |
| 19:20:14 | peeja | or can I do it outside? |
| 19:20:25 | rue | Anywhere beyond the root should be fine. Can you build and run the subtend specs? |
| 19:20:51 | peeja | running builds them, right? |
| 19:22:01 | peeja | `spec spec/subtend/array_spec.rb` fails; is that the right way to run specs here? |
| 19:22:55 | rue | That should be OK, it might still fail though :) |
| 19:23:16 | peeja | er, sorry, didn't mean fail :) |
| 19:23:21 | peeja | it fails to run |
| 19:23:33 | peeja | "uninitialized constant Rubinius" |
| 19:23:41 | peeja | in compile_extension |
| 19:25:29 | dbussink | ./bin/mspec spec/file/to/run.rb |
| 19:25:36 | dbussink | in the rubinius directory |
| 19:26:01 | w1rele55 enters the room. | |
| 19:26:28 | rue | Oh, yeah--dangers of aliasing out the real RSpec :D |
| 19:26:40 | peeja | Heh :) |
| 19:27:02 | peeja | Well, now I've got another missing constant: Config::Rubinius |
| 19:27:14 | peeja | from rbconfig.rb |
| 19:28:19 | peeja | Oh, i see |
| 19:28:43 | peeja | It means Rubinius, we're just in module Config there |
| 19:29:06 | dbussink | peeja: what command are you running? |
| 19:29:10 | nemerle enters the room. | |
| 19:29:12 | dbussink | peeja: and rake build was succesful? |
| 19:29:37 | peeja | as far as I remember, but I can try again |
| 19:30:02 | peeja | `./bin/mspec spec/subtend/array_spec.rb` was the command |
| 19:30:39 | dbussink | strange, it works ok here |
| 19:31:35 | djwhitt | spec for visiblity test: http://rafb.net/p/Lom9PB85.html |
| 19:31:42 | djwhitt | what on earth would you call that though |
| 19:36:12 | dbussink | well, could be if you want to hide stuff from a class for some obscure reason |
| 19:36:19 | dbussink | and that class is already used during bootstrap |
| 19:36:30 | dbussink | still far fetched though |
| 19:36:46 | dbussink | but from the code i would also expect the behavior that mri exposes |
| 19:44:36 | dodecaphonic enters the room. | |
| 19:46:21 | _ezmobius enters the room. | |
| 19:50:41 | anonuser enters the room. | |
| 19:54:00 | peeja | uh oh |
| 19:54:07 | peeja | my ci fails too |
| 19:54:23 | justinweiss enters the room. | |
| 19:54:25 | peeja | that's weird, this is a virgin build |
| 19:55:19 | peeja | wait, the *only* trouble I get is Rubinius being uninitialized. |
| 20:04:12 | dbussink | what happens if you run ./shotgun/rubinius ? |
| 20:10:03 | peeja | I get an irb, no errors |
| 20:10:47 | dbussink | could you pastie the ./bin/mspec ci output? |
| 20:10:59 | radarek leaves the room. | |
| 20:12:13 | peeja | pasted http://rafb.net/p/o2WSuM34.html |
| 20:12:37 | peeja | over and over, for each ext/ spec |
| 20:12:57 | dbussink | hmm, is this a daily tarball or a git clone? |
| 20:13:34 | peeja | daily |
| 20:13:44 | dbussink | maybe that's broken |
| 20:13:51 | dbussink | try a git clone :) |
| 20:14:05 | peeja | ok :) |
| 20:14:56 | boyscout | 2 commits by David Whittington |
| 20:14:57 | boyscout | * Add tags for failing private keyword specs; 5d7a73a |
| 20:14:59 | boyscout | * Added a couple evil private keyword tests; 1b2f118 |
| 20:15:39 | djwhitt | ok, back to "real" work now :) |
| 20:16:18 | dbussink | djwhitt: real, real, what's real? :P |
| 20:16:47 | djwhitt | the stuff I get paid for ;) |
| 20:16:47 | peeja | er, that's weird... |
| 20:17:21 | peeja | bin/mspec ci gives me "shotgun/rubinius:100:in `exec': No such file or directory - rubinius (Errno::ENOENT)" |
| 20:18:25 | dbussink | try rake build first |
| 20:18:25 | brixen | peeja: did you clone and build? |
| 20:19:11 | brixen | dbussink: any more nasty tickets for me today? |
| 20:19:29 | dbussink | brixen: i can try to find something :P |
| 20:19:29 | peeja | ahehe. aheh. sorry. |
| 20:19:53 | brixen | dbussink: I certainly hope the new vm has much more uniform handling of the existing obj->obj_type and obj->klass |
| 20:20:12 | dbussink | it's a bit messy? |
| 20:20:19 | brixen | dbussink: that ticket I estimated 1hr, took me like 4 and the solution is rather hacky I think |
| 20:20:33 | brixen | dbussink: yeah, look at boostrap.c |
| 20:20:39 | benburkert enters the room. | |
| 20:21:34 | brixen | dbussink: we don't uniformly set obj->obj_type, so there are at least RTYPE and ISA means to check an object's actual type |
| 20:21:43 | brixen | and those are littered over everything |
| 20:21:50 | dbussink | brixen: well, your commit doesn't look too hacky |
| 20:22:11 | dbussink | brixen: is there any semantic difference between them then? |
| 20:22:18 | brixen | yeah |
| 20:22:19 | hipertracker enters the room. | |
| 20:22:51 | brixen | RTYPE looks at obj->obj_type |
| 20:23:22 | brixen | which, e.g. is set on bootstrap.c:34 for BASIC_CLASS(class), but never set for BASIC_CLASS(module) |
| 20:24:04 | Arjen_ enters the room. | |
| 20:24:51 | brixen | ISA uses object_kind_of_p which will look at obj->klass |
| 20:25:08 | dbussink | yeah, well, dunno how much evan changed here |
| 20:25:27 | dbussink | it's a bit "let's wait first", so we know what still needs to be fixed |
| 20:25:32 | brixen | heh, yeah |
| 20:25:37 | dgtized | does anyone else have problems with spec/ruby/1.8/library/drb/start_service sometimes failing on the second spec because the server is still running from the first? |
| 20:25:48 | rubuildius_ppc | David Whittington: 5d7a73ae1; 1845 files, 6266 examples, 22377 expectations, 0 failures, 0 errors; |
| 20:26:12 | brixen | well, the obj_type field is essentially an optimization |
| 20:26:42 | brixen | dgtized: what does "failing" look like? |
| 20:27:07 | brixen | dgtized: can't bind or something? |
| 20:27:25 | rubuildius_amd64 | David Whittington: 5d7a73ae1; 1845 files, 6263 examples, 22348 expectations, 0 failures, 0 errors; http://rafb.net/p/oIKFVW48.html |
| 20:27:33 | dbussink | brixen: for what exactly? |
| 20:28:07 | dgtized | brixen: yes |
| 20:28:13 | brixen | dbussink: quickly determining the type, obj->obj_type == ClassType for example |
| 20:28:13 | dgtized | brixen: unable to bind |
| 20:28:38 | dgtized | brixen: or, sometimes it messes with untaint, but I think that's a seperate bug |
| 20:28:44 | brixen | dgtized: could we just use a different port? |
| 20:28:46 | dbussink | brixen: but is that so much faster then using ->klass? |
| 20:28:58 | rue | brixen: Got both done, loading side is quite tentative though |
| 20:29:07 | brixen | dbussink: object.h:31 |
| 20:29:13 | dgtized | brixen: no, because the point of the spec is to see if we can bring up/ bring down that server |
| 20:29:42 | dgtized | brixen: so the fact that it is failing is that the spec is failing |
| 20:29:46 | rue | peeja: Make sure you clean out any installed rubiniuses and librubiniuses |
| 20:29:56 | dbussink | brixen: ah, shortcutting for inheritance chains? |
| 20:29:59 | brixen | dgtized: I'm not seeing that in the spec. where's the "bring down" part spec'd? |
| 20:30:03 | brixen | dbussink: exactly |
| 20:30:11 | dgtized | brixen: after :each |
| 20:30:30 | brixen | blast! |
| 20:30:38 | brixen | such things do not go in after/before |
| 20:30:45 | brixen | why do they keep finding their way there |
| 20:31:00 | brixen | if you have an expectation on it, it needs to be in a spec |
| 20:31:05 | dgtized | brixen: actually I think when I first wrote the spec it wasn't but someone moved it there |
| 20:31:12 | brixen | if it's in before/after, it's not an expectation |
| 20:31:19 | dgtized | brixen: but I didn't include an expectation that it be done I guess |
| 20:31:35 | brixen | yeah, over zealous DRY'ing up specs drives me batty |
| 20:32:09 | brixen | rue: saw the conditional compilation: cool :) |
| 20:32:31 | brixen | rue: although, I'm leery of debug code all over :/ |
| 20:32:43 | wycats leaves the room. | |
| 20:33:58 | brixen | dgtized: the stop_service_spec has nothing in it atm. I'd suggest we put the actual spec there, and not depend on .stop_service in the .start_service spec |
| 20:34:07 | rue | brixen: Well, all over maybe not.. but there are quite a few if $DEBUGs in there already |
| 20:34:14 | brixen | e.g. stop_service shouldn't matter in .start_service |
| 20:34:26 | brixen | rue: really? |
| 20:34:32 | brixen | searches |
| 20:34:51 | rue | Plus the various loading debugs and whatnot |
| 20:35:33 | brixen | well, some behavior depends on $DEBUG being set (e.g. #warn iirc), but that's not suitable for cond comp |
| 20:36:25 | brixen | am I confusing cond execution with cond comp? |
| 20:36:25 | rue | If someone cares about that, sure ;) |
| 20:36:34 | brixen | cond comp means no bytecode is emitted, right? |
| 20:36:40 | rue | Correct |
| 20:36:56 | brixen | ok, well there are definitely 2 cases then for when $DEBUG is used |
| 20:38:01 | brixen | I'd rather have pragmas to the parser actually, but alas, that awaits a "useful" parser |
| 20:38:39 | dgtized | ok is there a nice quick reference chart on all the should expectations that we use? |
| 20:38:43 | dgtized | should_raise, etc? |
| 20:38:50 | dgtized | or rather there isn't a should_raise |
| 20:39:06 | brixen | should/should_not |
| 20:39:09 | dgtized | but anyway, I keep using the wrong ones because it's too close to english, but we only allow certain phrases |
| 20:39:09 | brixen | the rest are matchers |
| 20:39:18 | brixen | mspec/matchers |
| 20:39:47 | dgtized | I've looked there, and everytime I do it it's not at all obvious what we accept and what we don't |
| 20:39:58 | dgtized | this is not the sort of thing we should look at code to see |
| 20:40:16 | dgtized | but it's should raise(blah) you say? |
| 20:40:19 | brixen | mspec/matchers/base.rb has all the operators |
| 20:40:37 | brixen | should raise_error(Exception, "message") |
| 20:40:46 | brixen | although, we do not spec the message |
| 20:41:37 | brixen | except for base, the matchers are named like the files |
| 20:41:45 | rue | Could jot down a quick note in the README, sec |
| 20:41:47 | brixen | raise_error.rb -> should raise_error |
| 20:42:04 | brixen | need to add RDoc actually |
| 20:42:11 | brixen | that's on the list with making it a gem |
| 20:43:22 | brixen | there's any number of rspec cheat sheets around |
| 20:43:36 | brixen | even a gem iirc |
| 20:43:46 | brixen | if we need to add other matchers, we can |
| 20:43:49 | boyscout | 3 commits by Eero Saynatkari |
| 20:43:50 | boyscout | * Force recompiling .rb files with `load "lib.rb", :recompile => true`; ff21034 |
| 20:43:51 | boyscout | * Sanity changes to #load specs to bring them up to date.; 4119fe8 |
| 20:43:52 | boyscout | * Spec for forced recompiling through second parameter of Kernel#load.; 3b58cb3 |
| 20:44:04 | rue | This is the more experimental approach |
| 20:44:53 | brixen | ahh, very interesting |
| 20:45:39 | brixen | so, MRI has wrap=false arg, so :recompile => true doesn't make it choke |
| 20:45:51 | brixen | heh, but what does MRI do then |
| 20:46:23 | rue | MatzRuby can go suck rocks ;) |
| 20:46:57 | brixen | well, I did not know about the wrap options |
| 20:47:03 | brixen | do we support that? |
| 20:47:05 | rue | This version works 100% this way. If someone tries to run our code on MatzRuby, it could break. Not that I know why they want to do that anyway |
| 20:47:23 | rue | Nope; it should not be too hard to do but I am delaying those parts for now |
| 20:47:39 | brixen | well, I use #load in mspec, so I could be using wrap=true to isolate the specs a bit |
| 20:47:55 | VVSiz | btw, there is a race condition in DRb.start_service/DRb.stop_service, visible in JRuby at least |
| 20:48:26 | rue | brixen: That would work fine still. If you wanted both wrappers and reload, then :wrap => true, :recompile => true |
| 20:48:47 | VVSiz | http://jira.codehaus.org/browse/JRUBY-2347 , so that the specs where DRb is started/stopped quickly might not close the socket... |
| 20:48:47 | brainopia enters the room. | |
| 20:48:51 | rue | brixen: And that is still true-ish in MatzRuby so it will just wrap it since it cannot recompile. In case we care |
| 20:49:37 | rue | Think that may have come up before |
| 20:49:37 | brixen | rue: well, I'd say we care. I'd prefer something that impacts only the compiler rather than changing the sig of #load |
| 20:50:18 | rue | It actually does not affect the compiler at all; the decision is made in Kernel |
| 20:50:26 | brixen | besides, it seems odd for the *code* to care about recompiling |
| 20:50:26 | rue | To be precise |
| 20:50:32 | rubuildius_amd64 | Eero Saynatkari: ff21034f2; 1845 files, 6267 examples, 22357 expectations, 1 failure, 0 errors; http://rafb.net/p/eQUior24.html |
| 20:51:57 | rue | Hm, I do not think that one is my fault.. |
| 20:52:14 | djwhitt | checking... |
| 20:52:45 | rue | I am actually just downloading some distros to try out on VMWare. Should make this a bit easier |
| 20:53:11 | dgtized | bah, there is definitely something weird going on in the way DRb cleans up it's servers |
| 20:55:06 | peeja | grr. same error on up-to-the-minute source, no (lib)rubiniuses installed |
| 20:55:35 | peeja | oh wait, I see a "looks like you loaded rubinius' rbconfig from ruby" |
| 20:55:48 | peeja | how do i stop that from happenning? |
| 20:55:58 | dbussink | peeja: what ruby version do you have/ |
| 20:56:04 | peeja | oh, I see, that's the new name for the error... :) |
| 20:56:34 | peeja | Ruby v1.8.6 |
| 20:56:39 | rubuildius_ppc | Eero Saynatkari: ff21034f2; 1845 files, 6270 examples, 22386 expectations, 0 failures, 0 errors; |
| 20:58:38 | dbussink | peeja: strange then |
| 20:59:19 | brainopia leaves the room. | |
| 20:59:46 | djwhitt | rue: I just did a manual spec run and it looks clean |
| 21:00:57 | djwhitt | figures that stuff like this starts happenning as soon as I emails to the list setup |
| 21:02:03 | peeja | dbussink: what does it mean that the backtrace ends at (r)ubygems.rb? |
| 21:02:14 | dbussink | peeja: what are you trying to run now? what's the exact command? |
| 21:02:33 | peeja | bin/mspec ci |
| 21:02:54 | djwhitt | peeja: which rubygems file? |
| 21:03:09 | djwhitt | the one in the rubinius dir? or elsewhere? |
| 21:03:23 | rue | djwhitt: Hehe, I will take a look at it. Should not be a big deal |
| 21:03:24 | peeja | rubinius's lib/rubygems |
| 21:04:28 | boyscout | 1 commit by Charles Comstock |
| 21:04:29 | boyscout | * DRb specs now attempt to check if server is up/down prior to each call to start_server; d6dfbd3 |
| 21:04:35 | djwhitt | peeja: ah, nevermind I thought you might need to unset RUBYOPT or something |
| 21:04:53 | djwhitt | peeja: acutally you might still want to try that |
| 21:04:59 | dbussink | peeja: do you have anything configured for rubygems or whatever |
| 21:05:00 | dbussink | > |
| 21:05:02 | dbussink | ? |
| 21:05:25 | djwhitt | peeja: try putting a RUBYOPT= in front of whatever command you're running |
| 21:05:32 | peeja | aha! yeah, hang on |
| 21:05:50 | Fobax | djwhitt: No, my question wasn't really answered yesterday. |
| 21:05:56 | Fobax | We use quite a few gems, including a couple we wrote |
| 21:06:26 | djwhitt | Fobax_: I wouldn't recommend rubinius for production yet, but the rubygems system should work |
| 21:06:38 | djwhitt | Fobax_: whether or not the gems you're using work... |
| 21:07:01 | Fobax | Is it slow? unstable? incomplete? or just not proven? |
| 21:07:48 | djwhitt | Fobax_: incomplete mostly |
| 21:08:08 | djwhitt | Fobax_: slowness depends on what you're doing with it |
| 21:08:12 | Fobax | What all is missing? |
| 21:09:01 | djwhitt | subtend (MRI C API interface) isn't fully functional yet, so C based extensions may have trouble |
| 21:09:05 | imajes enters the room. | |
| 21:09:14 | peeja | djwhitt: it works! should have thought of that. |
| 21:09:15 | dbussink | may have? they will have problems ;) |
| 21:09:19 | wycats enters the room. | |
| 21:09:31 | dbussink | stuff in IO and File is still missing |
| 21:09:33 | djwhitt | dbussink: heh, well, I haven't really tried it |
| 21:09:39 | peeja | er, what kind of problems? |
| 21:09:47 | djwhitt | like not working |
| 21:09:48 | djwhitt | at all |
| 21:09:49 | djwhitt | hehe |
| 21:09:55 | peeja | that bad? |
| 21:09:59 | dbussink | assigning values to arrays and strings etc. |
| 21:10:25 | dbussink | it's on brixen's list, but i don't know whether he's working on it now |
| 21:11:04 | peeja | will really simple stuff (providing an interface to c functions) work? |
| 21:11:14 | djwhitt | Fobax_: if you have some time I recommend you just download it and try it. it's not hard to get it running |
| 21:11:24 | Fobax | I may just do that |
| 21:11:46 | peeja | Fobax_: mak sure you don't set RUBYOPT=rubygems :) |
| 21:12:11 | Fobax | MRI just uses stupid amounts of memory. I tried a couple different garbage collector patches, and they slow it down a bit, while dropping memory usage by ~30% |
| 21:12:18 | Fobax | but that's still not as much as I was expecting |
| 21:12:40 | dbussink | brixen: i have a nice one again ;) |
| 21:12:46 | Fobax | We've considered pulling Rubinius' garbage collector into MRI |
| 21:13:05 | drbrain | Fobax_: good luck with that |
| 21:13:08 | dbussink | Fobax_: then you can better wait for rubinius to finish |
| 21:13:25 | dbussink | Fobax_: the funny thing is that evan has gone this entire road too |
| 21:13:30 | Fobax | Are they completely incompatible? |
| 21:13:33 | dbussink | Fobax_: and that's why he started rubinius |
| 21:13:38 | Fobax | ah |
| 21:13:50 | djwhitt | Fobax_: you could just contribute to Rubinius instead :) |
| 21:13:53 | dgtized | brixen: look at /spec/ruby/1.8/library/socket/tcpserver/accept_spec.rb -- speaking of DRY refactoring |
| 21:14:26 | Fobax | We have considered hiring a rubinius programmer to try to get it to the point of being able to run our stuff... |
| 21:14:43 | dodecaphonic leaves the room. | |
| 21:15:23 | dbussink | Fobax_: well, i don't know how far it's from your expectations |
| 21:15:33 | rubuildius_amd64 | Charles Comstock: d6dfbd3b0; 1845 files, 6266 examples, 22358 expectations, 0 failures, 0 errors; http://rafb.net/p/LfPqYl57.html |
| 21:15:43 | Fobax | I guess I'll give it a try |
| 21:15:44 | rubuildius_ppc | Charles Comstock: d6dfbd3b0; 1845 files, 6269 examples, 22387 expectations, 0 failures, 0 errors; |
| 21:15:46 | rue | Oh man, an IRIX 6.5 distro.. sooooo tempted |
| 21:15:54 | dbussink | Fobax_: we're not in the phase where production use is the first goal, still experimenting going on |
| 21:15:55 | be9 leaves the room. | |
| 21:16:00 | djwhitt | Fobax_: here's a decent little write-up I saw today that has some benchmarks: http://programblings.com/2008/04/01/rubinius-for-the-layman-part-1-rubies-all-the-way-down/ |
| 21:16:15 | dbussink | rue: hehe, maybe we should try solaris first :) |
| 21:16:44 | dbussink | rue: i have a vm with that but haven't touched it in a while |
| 21:17:11 | VVSiz | hey folks. Has just executed rubyspecs aganist JRuby on Windows. It kind of works! :) there are 400 failures so far, and 2-3 hangups, but nothing major :) |
| 21:17:27 | djwhitt | Fobax_: I imagine real life performance will be a little worse than those benchmarks might lead you to believe, but you can see the core is pretty speedy now |
| 21:18:05 | Fobax | I'll give it a try. Do you know how its memory usage compares to MRI? |
| 21:18:18 | Fobax | I'm especially curious about the case of Forking |
| 21:18:31 | dbussink | Fobax_: well, one of the design principles is that it's copy on write friendly |
| 21:18:31 | Defiler | We use a lot more memory than MRI right now |
| 21:18:42 | Defiler | Usually not more than 5x though |
| 21:18:47 | Fobax | oh... |
| 21:18:57 | dbussink | it all still needs work |
| 21:19:04 | djwhitt | Fobax_: so just make sure you fork at least 5 times and you should be fine ;) |
| 21:19:07 | Fobax | Right now Ruby uses 2-5x more than the equivalent php |
| 21:19:10 | Defiler | I doubt we will ever use less than 1.8 |
| 21:19:22 | Defiler | Since many more things are instantiated |
| 21:19:28 | Defiler | (at startup) |
| 21:19:32 | ezmobius | yeah the overhead of all the extra ruby object in the system will probably mean never less mem consumption then mri |
| 21:19:35 | dbussink | a lot more objects in ruby space |
| 21:19:37 | Defiler | I expect us to beat it handily running Rails apps |
| 21:19:40 | ezmobius | but cow forking and MVM shoudl help mitigate |
| 21:19:47 | Fobax | I'm testing MRI against the Fork friendly GC patch, and the GC patch only saves ~30% for us |
| 21:20:08 | dbussink | even if it's 3 times more in the end, it will beat mri with a couple of mongrels |
| 21:20:12 | djwhitt | just how "fork friendly" is that patch I would think it would save a lot more than that |
| 21:20:24 | Fobax | http://izumi.plan99.net/blog/index.php/2008/01/14/making-ruby%E2%80%99s-garbage-collector-copy-on- write-friendly-part-7/ |
| 21:20:38 | Fobax | It changes to use a mark table instead of mark on the object |
| 21:20:52 |