Show enters and exits. Hide enters and exits.
| 00:01:11 | d2dchat leaves the room. | |
| 00:01:30 | dgtized | hmm, has anyone tried running bin/ci -tr lately? |
| 00:02:07 | RyanTM enters the room. | |
| 00:02:10 | dgtized | perhaps it's the particular build of ruby I am running (1.8.6 patchlevel 36) but I get 17 failures on bin/ci -tr |
| 00:02:33 | rue | I see a few too, sec |
| 00:02:47 | brixen | dgtized: you need to use the most recent patch of ruby |
| 00:02:56 | brixen | dgtized: we're not supporting specs on earlier patch levels |
| 00:04:00 | rue | I have the same on 111 |
| 00:04:09 | rue | Time, #pack and #% mostly, some others |
| 00:04:29 | brixen | rue: yeah, there are a few, but there were more for me on 36 |
| 00:04:55 | brixen | anyway, the ones on p111 need to be fixed |
| 00:05:08 | dgtized | what is the latest patchlevel? |
| 00:05:15 | brixen | p111 |
| 00:05:20 | brixen | http://www.ruby-lang.org/en/downloads/ |
| 00:05:34 | kAworu | got 25 failure with 113. also pack, bignum (maybe 64b related?), Time,... |
| 00:05:55 | rue | What is this 113? |
| 00:05:57 | dgtized | yea I know where to get it, I just have been keeping track of 1.9 head, and just leave the ubuntu 7.10 version for ruby |
| 00:06:28 | kAworu | rue> ruby 1.8.6 (2007-12-03 patchlevel 113) [x86_64-linux] |
| 00:06:42 | kAworu | rue> (~)1.8.6_p111-r1 |
| 00:07:01 | kAworu | rue> i don't understand :( |
| 00:07:09 | d2dchat enters the room. | |
| 00:07:15 | rue | Has to be an OS patchlevel |
| 00:07:38 | kAworu | rue> yes. not the stable version. |
| 00:08:25 | mtodd enters the room. | |
| 00:08:49 | crazeinc enters the room. | |
| 00:13:30 | mtodd_ leaves the room. | |
| 00:16:08 | lstoll enters the room. | |
| 00:16:57 | drbrain | no, 113 is an official tag |
| 00:17:17 | drbrain | see tags/v1_8_6_113 |
| 00:17:19 | kAworu | drbrain> yes but it's not the stable version. |
| 00:17:33 | drbrain | yes |
| 00:17:51 | drbrain | but, it is not an OS-specific release |
| 00:17:58 | kAworu | i downgraded to 111 but still 25 erors. |
| 00:18:16 | kAworu | drbrain> yes you right. |
| 00:18:44 | brixen | kAworu: yeah, they need to be fixed |
| 00:19:18 | brixen | specs should pass latest stable release on any platform with no errors |
| 00:19:34 | brixen | there, no ambiguity |
| 00:19:53 | brixen | just redundancy :P |
| 00:20:14 | brixen | all specs should pass on the latest stable release on any platform |
| 00:20:59 | rue | drbrain: Ah, that is where it comes from |
| 00:21:39 | drbrain | rue: yeah, they make official patchlevel changes periodically, and tag them in SVN |
| 00:21:57 | drbrain | currently, the ruby_1_8 branch and trunk are at patchlevel 5000 |
| 00:24:38 | benburkert enters the room. | |
| 00:24:52 | kAworu | "blablabla".rindex(/\Z/, 5) |
| 00:25:21 | kAworu | should return nil right ? (second arg is the limit, rindex should not search after the 5th char) |
| 00:26:24 | kAworu | it returns 9 under MRI. it's strange, it doesn't take the second argument. if it's 5, 1 or 0 it always returns 9 |
| 00:27:11 | kAworu | "blablabla".rindex(/$/, 8) returns nil (if second arg is 9, it returns 9) |
| 00:27:21 | kAworu | MRI bug ? |
| 00:31:42 | rue | This is crazy. |
| 00:31:49 | kAworu | http://www.regular-expressions.info/anchors.html |
| 00:32:24 | kAworu | after reading this, $ and \Z should have the same behavious if there isn't line-break in the string (this is the case with "blablabla") |
| 00:34:21 | rue | kAworu: It is possible that we have rindex implemented as 'first going backwards' instead of 'last going forward' |
| 00:34:46 | rue | Which makes sense implementation-wise, just need to substring first, I think |
| 00:38:34 | wvl enters the room. | |
| 00:39:54 | crazeinc leaves the room. | |
| 00:40:37 | radarek leaves the room. | |
| 00:40:45 | rue | evan: The new #module_method specs expose an interesting problem, if you run bin/mspec spec/ruby/1.8/core/module/module_function_spec.rb |
| 00:40:51 | rue | Well, once I push them |
| 00:42:18 | kAworu | rue> you're right. in String#rindex we're calling Regexp#match_region("blablabla", 0, 9, false) and false is the forward argument |
| 00:42:47 | agile enters the room. | |
| 00:43:03 | boyscout | 5 commits by Eero Saynatkari |
| 00:43:04 | boyscout | * Updated Module excludes.; a32f16d |
| 00:43:05 | boyscout | * More Module#module_function specs in #eval and #module_eval.; df731f3 |
| 00:43:06 | boyscout | * Fixed Module#module_function.; a0b1b59 |
| 00:43:06 | kAworu | rue> but rubinius successfully pass this test. it's MRI that have a really strange return value since it's greater than the max. |
| 00:43:07 | boyscout | * Better Module#module_function specs.; 6358e58 |
| 00:43:08 | boyscout | * Various whitespace removal in preparation to fix #module_function.; 1646bb6 |
| 00:43:37 | rue | kAworu: Ah, I misunderstood |
| 00:43:57 | smartocci leaves the room. | |
| 00:43:58 | kAworu | rue> you though it was rubinius that return 9 ? |
| 00:45:18 | rue | Right |
| 00:45:34 | jessop leaves the room. | |
| 00:46:04 | drbrain | eww, more null byte truncation issues |
| 00:46:54 | rue | Alright, people, TWO patches left to review and commit. |
| 00:47:20 | rue | I will not be able to do the SHA2 until I get SHA1 resolved, so feel free to check it. |
| 00:48:05 | rue | Be back after the debate. |
| 00:48:21 | drbrain | rue: ?? |
| 00:48:52 | turtletime enters the room. | |
| 00:49:15 | rue | drbrain: Go forth and review+apply patches from LH |
| 00:49:55 | drbrain | rue: I mean, SHA1/2 |
| 00:50:14 | rue | SHA1 fails in FFI somewhere |
| 00:50:21 | rue | All Digests do I think |
| 00:50:32 | drbrain | ah, ok |
| 00:51:10 | smartocci enters the room. | |
| 00:53:31 | drbrain | is compress_inflate or compress_deflate actually used anywhere? |
| 00:54:05 | drbrain | (also, compress_inflate() has a bug where it uses bfromcstralloc(), which reads \0 terminated strings) |
| 00:54:06 | rubuildius | Eero Saynatkari: a32f16d92; 4661 examples, 17063 expectations, 1 failure, 0 errors; http://rafb.net/p/6amqms52.html |
| 01:00:03 | tongueroo leaves the room. | |
| 01:00:22 | tongueroo enters the room. | |
| 01:01:28 | mtodd_ enters the room. | |
| 01:06:38 | mtodd leaves the room. | |
| 01:07:51 | geekounet leaves the room. | |
| 01:07:57 | geekounet enters the room. | |
| 01:08:06 | lopex leaves the room. | |
| 01:16:47 | imajes enters the room. | |
| 01:17:18 | smtlaissezfaire enters the room. | |
| 01:19:15 | lorenzod8n leaves the room. | |
| 01:21:34 | skaar leaves the room. | |
| 01:24:41 | djwhitt enters the room. | |
| 01:24:49 | scoundrel leaves the room. | |
| 01:31:57 | eventualbuddha enters the room. | |
| 01:41:51 | rue | Hm, I think that unexcluded incorrectly |
| 01:45:27 | technomancy leaves the room. | |
| 01:50:26 | obvio_ enters the room. | |
| 01:55:33 | smartocci leaves the room. | |
| 01:55:58 | headius enters the room. | |
| 01:57:09 | twbray leaves the room. | |
| 01:59:45 | kofno leaves the room. | |
| 02:03:24 | rue | Well that is indeed broken.. will fix |
| 02:05:39 | obvio171 leaves the room. | |
| 02:07:23 | eventualbuddha leaves the room. | |
| 02:10:16 | kofno enters the room. | |
| 02:19:41 | drbrain | found a bug in Marshal |
| 02:21:08 | drbrain | something is not getting added to @objects |
| 02:28:41 | headius | is ^C busted still? |
| 02:28:58 | drbrain | busted how? |
| 02:29:13 | headius | when I run long scripts I usually can't C-c to kill them |
| 02:29:39 | drbrain | not sure |
| 02:30:13 | headius | sometimes it works, sometimes not |
| 02:30:13 | drbrain | hrm, it's probably dumping that's busted |
| 02:30:36 | drbrain | since the @ value is 5 too high |
| 02:30:42 | drbrain | err, low |
| 02:31:18 | obvio171 enters the room. | |
| 02:33:54 | smartocci enters the room. | |
| 02:35:37 | mtodd enters the room. | |
| 02:36:24 | obvio leaves the room. | |
| 02:41:25 | mtodd_ leaves the room. | |
| 02:45:56 | _mutle enters the room. | |
| 02:46:24 | VVSiz_ enters the room. | |
| 02:46:37 | tongueroo leaves the room. | |
| 02:47:07 | technomancy enters the room. | |
| 02:48:26 | MenTaLguY enters the room. | |
| 02:48:54 | technomancy | so i think i've determined a bug being caused by something very low-level calling Hash#initialize without Hash.new |
| 02:50:13 | technomancy | it's pretty clear that Hash#initialize and Hash#setup have to be two separate methods |
| 02:50:54 | technomancy | but that only works if you can guarantee that Hash.new (or #setup) is the only caller of Hash#initialize |
| 02:53:00 | twbray enters the room. | |
| 02:53:43 | dodecaphonic leaves the room. | |
| 02:54:16 | VVSiz leaves the room. | |
| 02:59:45 | twbray leaves the room. | |
| 03:00:15 | turtletime leaves the room. | |
| 03:00:42 | be9 enters the room. | |
| 03:01:02 | tarcieri | evan? |
| 03:01:28 | tarcieri | http://nondot.org/sabre/LLVMNotes/ExplicitlyManagedStackFrames.txt <--- if you're interested |
| 03:02:13 | rue | technomancy: Well, .allocate might be a valid case but I am a bit iffy on that |
| 03:02:25 | mutle leaves the room. | |
| 03:02:28 | rue | technomancy: At some point, it always becomes an issue of "well, what did you THINK would happen?" |
| 03:02:47 | rue | The user bears a lot of the responsibility |
| 03:03:04 | technomancy | rue: in this case i think "the user" is something from bootstrap |
| 03:04:24 | rue | technomancy: Grepping does not show much.. do you have the code? Or are you seeing this from the patch? |
| 03:04:31 | rue | Be back in a moment |
| 03:04:31 | technomancy | the caller of #initialize that doesn't go through setup is somehow coming from a Rubinius.asm call |
| 03:05:06 | technomancy | rue: here's the code that's causing it: http://pastie.caboo.se/146053 |
| 03:05:31 | technomancy | since I'm not sure what patches you've already applied i just included the first page of Hash.rb |
| 03:15:28 | turtletime enters the room. | |
| 03:17:11 | rue | Looking |
| 03:18:07 | technomancy | I get: Hash hasn't been set up! kernel/bootstrap/class.rb:13:in `new'kernel/core/module.rb:40:in `initialize'kernel/core/class.rb:20:in `initialize' |
| 03:19:08 | technomancy | i'm pretty sure the setup/initialize distinction in that paste is what's needed to match MRI |
| 03:20:10 | drbrain | yay! the marshal_dump'd object wasn't getting added to the list |
| 03:21:24 | rue | technomancy: I see something different, actually |
| 03:21:33 | nicksieger leaves the room. | |
| 03:21:37 | technomancy | oh? |
| 03:21:42 | Defiler | Why would you want to & a number that had all zeroes except the last four bits with 15? |
| 03:21:54 | Defiler | e.g. 00001100 & 15 |
| 03:21:57 | enebo leaves the room. | |
| 03:22:01 | Defiler | It seems like a no-op to me, right? |
| 03:22:21 | Defiler | or am I being stupid again? |
| 03:22:29 | Smirnov | its not |
| 03:22:44 | rue | 15 is 0b1111 |
| 03:22:49 | Smirnov | yep |
| 03:22:50 | technomancy | that sounds right |
| 03:22:53 | Smirnov | not 0b1100 |
| 03:22:57 | Defiler | I know |
| 03:23:04 | Defiler | 00001100 & 15 |
| 03:23:05 | Smirnov | you asked about 0b1100 though |
| 03:23:07 | Defiler | Not == 15 |
| 03:23:12 | rue | So 1100 & 15 => 1100; 1110 & 15 => 1110 |
| 03:23:20 | Defiler | precisely |
| 03:23:27 | rue | Typically this would be a flag check |
| 03:23:32 | Defiler | It seems like it is always a no-op with a number that has only the last four bits nonzero |
| 03:23:47 | Smirnov | its only a noop if the 2 operands are constant |
| 03:24:11 | technomancy | rue: what do you think is causing the hash craziness? |
| 03:24:12 | Defiler | The actual code does this.. it asserts that the number is 32 bits wide.. then it shifts right by 28 bits, and ands it with 15 |
| 03:24:25 | Smirnov | ah |
| 03:24:39 | Defiler | am I missing something, or is that pretty no-oppy? Heh |
| 03:24:40 | Smirnov | sign bit |
| 03:24:49 | Defiler | aaaaah nice |
| 03:24:49 | Defiler | thanks |
| 03:25:53 | nicksieger enters the room. | |
| 03:26:05 | Defiler | hrm.. would that only work if it and-ed it before shifting, though? |
| 03:26:42 | Defiler | Also, the function takes an unsigned integer wtf |
| 03:27:56 | technomancy | are there plans to add #tap or #affect or #returning or something? |
| 03:28:29 | zenspider | I sure hope not |
| 03:28:55 | technomancy | but you can save like two lines of code per invocation... |
| 03:29:01 | Smirnov | Defiler: hrmm.. and this is C code? then it should be noop |
| 03:29:24 | Smirnov | Defiler: dont worry about it the compiler will fix it after a strength reduction optimization |
| 03:29:49 | technomancy | isn't 1.9 getting #tap anyway? |
| 03:30:14 | headius | it's not a noop if you're trying to mask out the high nibble |
| 03:30:36 | headius | I just wanted to say nibble |
| 03:30:47 | technomancy | thought it was spelled nybble |
| 03:30:55 | twbray enters the room. | |
| 03:31:24 | Defiler | Smirnov: I can point you at the line in question if you want to take a look |
| 03:31:30 | Smirnov | Defiler: paste bin it? |
| 03:31:31 | rue | technomancy: It is the globals hash |
| 03:31:33 | Defiler | k |
| 03:32:10 | Defiler | http://rafb.net/p/empPsa47.html |
| 03:32:12 | zenspider | technomancy: returning never saves you anything, and runs slower... Haven't compared tap. |
| 03:33:00 | middayc_ leaves the room. | |
| 03:33:45 | technomancy | rue: should it be fixed to use Hash.new, or is it appropriate for it to allocate and initialize directly? |
| 03:34:14 | technomancy | zenspider: i thought returning was an alternate proposed name for tap/affect... |
| 03:34:31 | rue | technomancy: I think it might be the compiler side, sec |
| 03:34:55 | technomancy | oy, dinner time... bbiab |
| 03:34:58 | technomancy | & |
| 03:35:03 | zenspider | *shrug* I dunno... I just know I looked at it, measured it, and found it severely lacking on all fronts |
| 03:35:09 | MenTaLguY | I really just invented tap as a debugging tool |
| 03:35:13 | MenTaLguY | it's great for that |
| 03:35:21 | MenTaLguY | there aren't many instances when I would want to see it in production code |
| 03:35:44 | zenspider | and for that it is fine... |
| 03:35:50 | zenspider | but the railz0rs... |
| 03:36:09 | MenTaLguY | well, I say "invented" loosely. I'm sure a lot of other people came up with the same thing, they just didn't publish |
| 03:37:01 | MenTaLguY | well, honestly I don't know what to do about Rails in general |
| 03:37:24 | jeremydurham enters the room. | |
| 03:37:27 | MenTaLguY | the low end of Rails is going to take whatever sharp implements we give them and stab themselves in the eyeballs repeatedly no matter what |
| 03:37:28 | Smirnov | hmm does rubinius run rails yet |
| 03:37:29 | zenspider | light it on fire? |
| 03:37:34 | zenspider | including DHH? |
| 03:37:39 | zenspider | Smirnov: oh hell no |
| 03:37:52 | zenspider | MenTaLguY: heh. true |
| 03:38:01 | zenspider | also, http://www.youtube.com/watch?v=hkqqMPPg2VI |
| 03:39:51 | tarcieri | hey MenTaLguY, what were you thinking as far as a distributed actor protocol went? |
| 03:40:16 | tarcieri | I think DRb's the place to start, but... I just read about Scala implementing the Erlang wire protocol |
| 03:40:17 | zenspider | MenTaLguY: liked the interview btw |
| 03:40:24 | zenspider | I need to read up on that stuff more |
| 03:40:45 | zenspider | I'm a thread-y simpleton these days... |
| 03:40:53 | MenTaLguY | zenspider: thanks |
| 03:40:53 | tarcieri | heh |
| 03:41:03 | tarcieri | is actually starting to use Ruby Actors at work |
| 03:41:07 | MenTaLguY | tony: the Erlang wire protocol is a little hairy, I'm not sure how well it maps to Ruby also |
| 03:41:22 | MenTaLguY | tony: have you talked to Scott Fleckenstein (Erlectricity) at all yet? |
| 03:41:34 | tarcieri | MenTaLguY: no, but I've been talking to the guy who did RBridge |
| 03:41:37 | tarcieri | Chuck Vose, I guess? |
| 03:41:56 | MenTaLguY | ah, k |
| 03:42:05 | MenTaLguY | yeah, talk with one of those guys who's done it anyway |
| 03:42:23 | MenTaLguY | I think I've kind of decided that I don't want to worry about the wire protocol too much |
| 03:42:31 | MenTaLguY | I mainly just care about the object protocols for now |
| 03:42:34 | tarcieri | I thought Erlectricity just used Erlang terms as text and parsed them on the Erlang side |
| 03:42:43 | MenTaLguY | it very well might |
| 03:42:50 | MenTaLguY | I didn't look closely at how it worked |
| 03:42:59 | tarcieri | I'm pretty sure it's not using the distributed Erlang wire protocol |
| 03:44:08 | rue | technomancy: Eugh, I think it was simple |
| 03:46:49 | MenTaLguY | anyway, the main thing is not to do anything that requires the protocol to be synchronous |
| 03:46:59 | MenTaLguY | I think that mostly rules out DRb |
| 03:46:59 | knowtheory | I think this is my favorite quote for the week: Is this really putting the cart before the horse? How do you know rubinius will even be stable/performant enough to handle this? MenTaLguY: No. It's always time for Lisp. |
| 03:47:12 | knowtheory | It is in fact, always time for Lisp. |
| 03:47:24 | tarcieri | MenTaLguY: hmm, true enough |
| 03:47:55 | RyanTM leaves the room. | |
| 03:48:10 | MenTaLguY | I think for a first cut it would be fine if you sent a stream of Marshalled [type, actor, payload] tuples |
| 03:48:19 | MenTaLguY | type being link, unlink, exited, message |
| 03:48:22 | MenTaLguY | or something like that |
| 03:48:31 | tarcieri | yeah |
| 03:48:35 | MenTaLguY | payload would itself have to be marshalled |
| 03:48:41 | MenTaLguY | so that you could always unmarshal the envelope |
| 03:48:41 | tarcieri | yeah |
| 03:48:47 | MenTaLguY | or perhaps it should alternate header/payload |
| 03:48:51 | MenTaLguY | so you aren't double-marshalling |
| 03:49:01 | MenTaLguY | though I guess there's not appreciable overhead for marshalling a string twice |
| 03:49:01 | tarcieri | I already have a filter for Revactor::TCP to do length prefix framing |
| 03:51:04 | MenTaLguY | yeah, I'd say just do a simple duplex streaming protocol based on Marshal |
| 03:51:06 | MenTaLguY | to start |
| 03:51:35 | tarcieri | It's not something I need now so I probably won't work on it for awhile |
| 03:51:36 | MenTaLguY | and maybe add just enough so that protocol versions can be negotiated |
| 03:51:39 | MenTaLguY | nods |
| 03:51:51 | RyanTM enters the room. | |
| 03:52:01 | tarcieri | I'm doing something to the effect of the Erlang http module now |
| 03:52:30 | twbray leaves the room. | |
| 03:52:40 | MenTaLguY | that's the great thing about asynchronous messaging |
| 03:52:47 | drbrain | stabs Marshal |
| 03:52:48 | MenTaLguY | you can really just throw messages around over whatever |
| 03:52:53 | tarcieri | yeah |
| 03:53:08 | tarcieri | DistribuStream (my peer-to-peer thingy) uses length-prefix framed JSON |
| 03:53:17 | MenTaLguY | nods |
| 03:53:37 | tarcieri | in the form: ['command', {'operand1': 'value1', 'operand2': 'value2', ... }] |
| 03:53:49 | tarcieri | well, s/command/messagid/ |
| 03:53:52 | tarcieri | bleg |
| 03:54:03 | tarcieri | I need to set one of these two laptops down |
| 03:54:16 | headius | drbrain: when we were trying to get marshal working I spent many hours staring at hex dumps |
| 03:54:21 | headius | I think I saw the mind of god in there somewhere |
| 03:54:40 | drbrain | headius: I fixed half of my problem |
| 03:54:47 | drbrain | now I'm trying to find the other half |
| 03:55:00 | Defiler | Anyone know if Tom (of libtom* fame) responds to emails? |
| 03:55:23 | headius | we still run into little issues, especially with unusual subtyping relationships |
| 03:55:35 | tarcieri | MenTaLguY: I really need to get those interthread message notifiers in place... they solve a lot of problems :/ |
| 03:56:34 | tarcieri | MenTaLguY: I noticed if the root Actor calls receive the scheduler just spins now :/ |
| 03:56:58 | tarcieri | urgh |
| 03:57:23 | tarcieri | as opposed to Erlang, where it blocks, because it can potentially get events in the future |
| 03:58:12 | rue | technomancy: The setup is the problem, the instance variables are not getting set |
| 03:58:44 | technomancy | rue: you mean setup is not getting called, or it's getting called and not doing what it should? |
| 04:00:25 | rue | The latter. If you add the ivars to #initialize, it works fine. |
| 04:00:39 | headius | drbrain: what was the first half |
| 04:01:22 | drbrain | headius: the marshal_dump'd object wasn't added to the links table |
| 04:01:28 | technomancy | rue: i know it works with the ivars getting set in initialize, but I suspect that's because someone's calling initialize directly instead of going through Hash.new |
| 04:01:33 | technomancy | which calls setup, then initialize |
| 04:01:44 | headius | drbrain: damn link tables are a constant source of sneaky bugs |
| 04:02:01 | technomancy | adding the ivar setup to init breaks because you should be able to override init in a subclass and still have a working hash |
| 04:02:16 | technomancy | does that make sense? |
| 04:04:04 | technomancy | rue: can you point me to where the globals hash is interfering? |
| 04:04:28 | rue | Nm that |
| 04:05:47 | technomancy | you would think declaring initialize as private would help. =) |
| 04:06:21 | technomancy | it works if you add to #initialize: setup if [@bins, @keys, @values, @entries].any?{|i| i.nil? } |
| 04:06:27 | technomancy | but that's six kinds of ugly |
| 04:10:52 | MenTaLguY | returns |
| 04:11:45 | MenTaLguY | tarcieri: well, maybe I can look at the notifiers over the weekend |
| 04:13:11 | mnaberez leaves the room. | |
| 04:14:56 | technomancy | hmmm... kernel/bootstrap/class.rb:13 calls Hash#initialize directly like 20 times just to get to the repl |
| 04:16:50 | technomancy | oh duh i'm retarded... somehow a hash is getting created before Hash.new is defined, and so Class.new is calling initialize |
| 04:16:59 | technomancy | i was thrown off by the whole Rubinius.asm thing |
| 04:17:21 | evan | course |
| 04:17:45 | evan | Hash.new calls to Class.new, since it's a subclass |
| 04:17:46 | technomancy | but how you could have an invocation of Hash#initialize before .new is defined is beyond me |
| 04:17:58 | evan | you should define Hash.new directly |
| 04:18:02 | evan | class Hash |
| 04:18:06 | evan | def self.new(...) |
| 04:18:08 | evan | ... |
| 04:18:08 | evan | end |
| 04:18:09 | evan | end |
| 04:18:32 | technomancy | evan: yeah, i'm doing that |
| 04:18:35 | technomancy | I may be dumb, but i'm not that dumb. =) |
| 04:19:17 | technomancy | pastie is slow, sheesh |
| 04:19:29 | twbray enters the room. | |
| 04:20:05 | technomancy | http://rafb.net/p/fsDLNh81.html |
| 04:21:42 | rue | Looking at Struct now |
| 04:25:25 | be9 | Guys, I've noticed that Marshal.dump in primitives (cpu_marshal.c) and in Ruby are incompatible in storage formats for Bignums. Was it done intentionally? |
| 04:26:13 | rue | cpu_marshal is not Marshal, it is used for .rbc |
| 04:26:57 | be9 | Well, it is, via kernel/bootstrap/marshal.rb |
| 04:29:36 | technomancy | so the real question is why Hash.new is getting skipped in favour of Class.new |
| 04:32:30 | evan | technomancy: why do you think it's being skipped? |
| 04:32:46 | technomancy | evan: because of deep magic that is beyond my ken. |
| 04:32:53 | evan | it's not. |
| 04:33:02 | evan | do you have an example that shows it being skipped? |
| 04:33:26 | drbrain | be9: see kernel/core/marshal.rb |
| 04:33:38 | technomancy | clearly the hash.rb file is being loaded since the initialize definition is getting picked up |
| 04:34:12 | evan | technomancy: so, why do you think it's being skipped? |
| 04:35:17 | drbrain | I think I've almost got the user marshal formats doing things right |
| 04:35:31 | turtletime leaves the room. | |
| 04:35:51 | technomancy | evan: with my changes (in the rafb paste above) #initialize prints a stack trace if it gets called without certain ivars being set |
| 04:36:16 | technomancy | Hash.new calls #setup (which sets the ivars) followed by #initialize |
| 04:36:21 | evan | technomancy: there is no deep magic. |
| 04:36:29 | rue | evan: It is getting pretty deep :P |
| 04:36:31 | be9 | drbrain, kernel/core/marshal.rb is fairly ok. it's the primitive thing that diverts from Bignum marshal implementation coming from MRI |
| 04:36:37 | rue | It looks like the method table is not being set up correctly |
| 04:36:45 | drbrain | be9: I don't see that |
| 04:37:17 | be9 | drbrain, look at marshal_bignum() in cpu_marshal.c |
| 04:37:39 | drbrain | be9: that has nothing to do with Marshal |
| 04:37:43 | evan | be9: that is NOT the Marshal code. |
| 04:37:45 | drbrain | be9: see kernel/core/marshal.rb |
| 04:37:57 | technomancy | bbiab, sorry. =\ |
| 04:38:11 | rue | Lessee if this works |
| 04:38:24 | drbrain | be9: I just dumped 10**100 on MRI and loaded it in rubinius, and vice versa |
| 04:38:46 | turtletime enters the room. | |
| 04:39:01 | be9 | drbrain, sure you've done it. |
| 04:39:14 | be9 | drbrain, what is then kernel/bootstrap/marshal.rb for? |
| 04:39:24 | drbrain | bytecode |
| 04:40:44 | drbrain | be9: line 65 of kernel/core/marshal.rb |
| 04:40:53 | drbrain | give or take a few lines |
| 04:41:08 | be9 | Okay, names are the same, implementation are close, but different. |
| 04:41:39 | evan | they're completely unrelated |
| 04:41:53 | evan | it's a mistake that kernel/bootstrap/marshal.rb is there |
| 04:41:56 | evan | i need to rename it. |
| 04:42:06 | be9 | evan, well, that's my point :) |
| 04:42:40 | drbrain | be9: it's not confusing when you run the Marshal specs |
| 04:43:08 | be9 | drbrain, it's confusing if you look into the code |
| 04:43:35 | drbrain | be9: do you have tags in your editor? |
| 04:43:45 | drbrain | tags support? |
| 04:44:49 | be9 | drbrain, I have everything in my vim. Now when I know these are different things, it's no more confusing. But it was yesterday when I played with #291 |
| 04:45:08 | drbrain | be9: do you use tags support in vim? |
| 04:45:19 | aotearoa enters the room. | |
| 04:45:31 | drbrain | it prevents lots of confusion, as :ts dump makes it clear where Marshal is really defined |
| 04:46:04 | evan | i'll rename them. |
| 04:46:04 | drbrain | URG! so close! |
| 04:46:38 | drbrain | I think I've got all the right stuff in all the right places, but Gem::Specification#full_name is still wrong :( |
| 04:47:02 | drbrain | maybe it's still doing stuff in the wrong order |
| 04:47:14 | evan | totally wrong? |
| 04:47:31 | d2dchat leaves the room. | |
| 04:47:41 | drbrain | slightly wrong |
| 04:47:55 | drbrain | it's the custom Marshal formats that aren't quite right yet |
| 04:48:14 | solarce | brixen: ? |
| 04:48:33 | drbrain | I'm getting "0" as the platform, instead of "ruby" |
| 04:48:44 | be9 | BTW, how 64-bit specs are to be done? MRI is different in some things for 32 and 64-bit, how that should be specced? |
| 04:49:10 | evan | be9: there is a lot of ongonig work for 64bit |
| 04:49:14 | evan | so i wouldn't spec yet. |
| 04:51:06 | drbrain | evan: it's an off-by-one error |
| 04:51:33 | evan | i hate those. |
| 04:51:55 | drbrain | yeah, I can't quite figure out which 1 it is, though |
| 04:51:59 | be9 | evan, I would like to contribute somehow. Now I just report how specifically it fails on my box (as in #295). |
| 04:52:44 | evan | be9: you should talk with Defiler |
| 04:52:51 | evan | he's deep into getting 64bit working |
| 04:54:07 | drbrain | ha, I deleted a -1 that was highly, highly suspicious earlier |
| 04:54:13 | drbrain | and now it works! |
| 04:54:18 | drbrain | was @objects[num-1] |
| 04:54:26 | jtoy enters the room. | |
| 04:55:00 | evan | ahh |
| 04:55:04 | evan | the links stuff was wierd |
| 04:55:07 | evan | not surprising |
| 04:55:12 | technomancy | rue: is the method table not being set up correctly causing Tuple#initialize to get confused with Hash#initialize or something? |
| 04:55:25 | drbrain | well, it wasn't adding stuff to @objects properly |
| 04:55:28 | technomancy | the stack trace i'm getting doesn't involve a hash getting created, just a Struct and a Tuple. |
| 04:55:29 | evan | technomancy: i highly doubt it. |
| 04:55:45 | drbrain | for example, the order was wrong, or some things (user defined classes) weren't added at all |
| 04:55:59 | drbrain | once I got everything in the right place, it worked |
| 04:56:04 | evan | yay! |
| 04:56:24 | technomancy | evan: I'm getting a stack trace from Hash#initialize that doesn't involve the creation of any hashes, just tuples and structs. |
| 04:56:29 | drbrain | do you know what this @nested stuff is about? |
| 04:56:34 | drbrain | it looks bogus compared to MRI |
| 04:56:37 | evan | technomancy: paste? |
| 04:57:03 | evan | no, i don't. |
| 04:57:20 | technomancy | evan: http://rafb.net/p/c1DfAI55.html |
| 04:57:42 | evan | what is that backtrace from? |
| 04:57:46 | evan | you doing caller() |
| 04:57:47 | evan | ? |
| 04:57:47 | technomancy | this is given a Hash#initialize that prints a stack trace if it was called without #setup getting called first |
| 04:57:56 | drbrain | MRI calls r_entry (our store_unique_object) unconditionally, so I'm going to take them all out |
| 04:58:06 | technomancy | yeah, caller |
| 04:58:11 | evan | oh |
| 04:58:14 | evan | ok |
| 04:58:15 | evan | stop now. |
| 04:58:19 | technomancy | stops |
| 04:58:52 | evan | where are you editing Hash#initialize? |
| 04:58:54 | evan | what file. |
| 05:01:38 | drbrain | this dump(load(dump)) stuff needs to go |
| 05:01:48 | evan | where is that? |
| 05:01:57 | drbrain | all over the Marshal specs |
| 05:02:02 | evan | oh |
| 05:02:03 | evan | ick. |
| 05:02:18 | rue | evan: The method table situation is very strange. |
| 05:02:20 | drbrain | yeah, since Marshal is deterministic in it's output |
| 05:02:30 | evan | what method table situation? |
| 05:02:31 | technomancy | evan: kernel/core/hash.rb |
| 05:02:48 | technomancy | should i be elsewhere? |
| 05:02:54 | evan | no, thats the correct place. |
| 05:03:21 | evan | at this point, unless I see a full diff of what you're working on, i can't help |
| 05:03:30 | evan | because i'm lost in what you're trying to do |
| 05:03:47 | technomancy | fair enough |
| 05:03:55 | evan | i can tell you though, there is no deep magic. |
| 05:04:07 | evan | there is nothing that automatically skips methods or anything like that |
| 05:04:11 | rue | Alright, I was looking at technomancy's problem and I have tracked one issue to Struct.new which uses Class.new block form |
| 05:04:34 | technomancy | evan: not on purpose, anyway. =) |
| 05:04:39 | rue | Then uses attr_* methods |
| 05:05:26 | rue | But @method_table is not getting properly initialized. In current form, it does seem to be a Hash of some kind because attr_reader does end up in Hash#set_key_cv |
| 05:05:33 | rue | But all the ivars there are empty |
| 05:05:54 | drbrain | damnit there's 58 of these |
| 05:05:58 | drbrain | cries |
| 05:06:48 | rue | Adding @method_table = Hash.new in Module#initialize actually allows the code to run but it breaks some specs that depend on a MethodTable object |
| 05:07:12 | evan | @method_table MUST be a MethodTable object. |
| 05:07:25 | rue | Good, but it is getting set to be a Hash somewhere |
| 05:07:27 | evan | rue: wait |
| 05:07:28 | evan | step |
| 05:07:29 | evan | stop |
| 05:07:35 | evan | there is no @method_table ivar |
| 05:07:37 | evan | it's @methods |
| 05:07:40 | evan | thats the var |
| 05:07:44 | evan | and it's an ivar_as_index |
| 05:07:49 | rue | No, it is not |
| 05:07:57 | evan | want to make a bet? |
| 05:08:01 | rue | Sure :) |
| 05:08:05 | technomancy | here's the diff: http://rafb.net/p/tlsuPd67.html |
| 05:08:08 | evan | oh come on! |
| 05:08:11 | evan | who the fuck changed it!? |
| 05:08:22 | evan | someone changed it in module.rb |
| 05:08:26 | technomancy | the issue is that Hash#initialize can't get redefined in a subclass if crucial ivars are getting setup in it |
| 05:08:32 | technomancy | so that has to be done by Hash.new |
| 05:09:46 | evan | technomancy: and whats in the output? |
| 05:09:48 | rue | evan: However, when I remove @methods for @method_table (which is the ivar_as_index), things go back to hell |
| 05:09:52 | evan | show me the output when that raise is hit. |
| 05:10:01 | agardiner | technomancy: shouldn't a Hash subclass call super to initialize these things? |
| 05:10:28 | technomancy | evan: raise output: http://rafb.net/p/sxKe8D14.html |
| 05:10:33 | evan | rue: YOU! |
| 05:10:36 | evan | YOU CHANGED THE IVAR NAMES. |
| 05:10:37 | technomancy | agardiner: in theory, yes. in MRI, no. |
| 05:10:40 | technomancy | hehe |
| 05:10:48 | evan | 2 days ago. |
| 05:10:50 | agardiner | ah, ok... figures! :-( |
| 05:11:09 | technomancy | evan: explains why he was awful cavalier about making the bet... |
| 05:11:13 | rue | I changed something, yeah.. |
| 05:11:20 | evan | change it back. |
| 05:11:21 | evan | no. |
| 05:11:59 | evan | wait |
| 05:12:02 | evan | what the fucking hell. |
| 05:12:04 | evan | gives up |
| 05:12:07 | dewd leaves the room. | |
| 05:12:08 | evan | nevermind. |
| 05:12:16 | evan | i wont be around for a few hours. |
| 05:13:52 | be9 | who can comment on that? http://rafb.net/p/lCtD1350.html |
| 05:14:47 | rue | evan: But I did not change the ivar_as_index :) |
| 05:15:07 | rue | I am quite amazed it has held up this far. Lessee if we can fixeroo |
| 05:15:08 | evan | from here on out. |
| 05:15:18 | evan | no one is authorized to change any ivar_as_index line |
| 05:15:25 | evan | unless they also change the system_hints.rb file. |
| 05:15:46 | evan | anyone found changing one but not the other will receive something bad. |
| 05:16:18 | be9 | seems like a (0...k).map { |i| i+1 } is translated as (a (0...k)).map { |i| i+1 }, should be a ((0...k).map { |i| i+1 }) |
| 05:16:27 | drbrain | be9: map.rb:6: warning: (...) interpreted as grouped expression |
| 05:16:35 | drbrain | be9: so, obey your 1.8 warnings |
| 05:17:08 | drbrain | be9: does it work in ruby 1.8.2? |
| 05:17:52 | be9 | drbrain, have only 1.8.6 here :) |
| 05:18:10 | drbrain | be9: I think the rubinius parser is from 1.8.2ish |
| 05:18:23 | evan | that didn't change between 1.8.2 and 1.8.6 |
| 05:18:26 | evan | it can't have. |
| 05:18:37 | evan | thats a fundemental parser rule. |
| 05:18:46 | evan | be9: what does it do on 1.8.6? |
| 05:18:57 | be9 | evan, "works" |
| 05:19:14 | evan | does |
| 05:19:21 | smartocci leaves the room. | |
| 05:19:21 | be9 | a is caled on Array resulting from map |
| 05:19:25 | rue | Huh, looks like it has been @method_table at least since November |
| 05:20:05 | evan | ok, good bye. |
| 05:20:07 | evan | i'm going to watch Lost. |
| 05:20:14 | rue | *wave |
| 05:23:28 | rue | evan: Haha! It was YOU :D |
| 05:23:32 | headius | oif, finally all IO specs passing again |
| 05:24:21 | be9 | actually, there's more to that, see http://rafb.net/p/MwZ54T91.html |
| 05:24:44 | be9 | the same line outside of the functions works as in MRI |
| 05:25:07 | tongueroo enters the room. | |
| 05:25:08 | rue | technomancy: Just another day at the factory :) |
| 05:25:14 | technomancy | rue: crazy stuff |
| 05:25:28 | drbrain | be9: the bug is in the parser |
| 05:25:29 | technomancy | but it sounds like my patch will actually work once this is cleared up |
| 05:25:43 | drbrain | as parse_tree_show and shotgun/rubinius describe don't match |
| 05:26:15 | technomancy | rue: is it something that can be fixed soon, or should i just submit the patch with a workaround labelled "remove this when possible"? |
| 05:26:35 | be9 | drbrain, should it get specced? |
| 05:26:49 | wifelette enters the room. | |
| 05:27:02 | twbray leaves the room. | |
| 05:27:04 | drbrain | be9: somewhere in spec/ruby/1.8/language |
| 05:28:54 | rue | technomancy: I should be able to resolve this particular problem fairly quick |
| 05:29:07 | rue | Whether this actually resolves the Hash.new issue remains to be seen :) |
| 05:31:11 | drbrain | hates the Marshal specs |
| 05:31:21 | rue | Better you than me, drbrain |
| 05:31:56 | technomancy | rue: ok, well i need to head off; got a screaming baby |
| 05:32:11 | rue | Alrighty, hopefully fixed when you get around |
| 05:32:19 | drbrain | rue: well, they should all be just autogenerated |
| 05:32:22 | technomancy | i'll attach my patch to the ticket; can you remove the workaround before applying it if it gets fixed? |
| 05:32:40 | drbrain | have an Hash, description => [marshal_string, object] |
| 05:33:38 | technomancy | or would you rather just have me submit the patch that relies on your fix? |
| 05:33:44 | technomancy | (without the workaround) |
| 05:35:54 | drbrain | UUUURG |
| 05:39:48 | technomancy | there we go. |
| 05:39:59 | technomancy | still one more bus-scheme related bug to go; will have to tackle that tomorrow |
| 05:40:06 | rue | Heh |
| 05:40:10 | technomancy | it's amazing how fixing one bug uncovers two more |
| 05:40:11 | rue | technomancy: Either is fine |
| 05:40:21 | technomancy | ok, submitted with the workaround |
| 05:40:58 | technomancy | rue: thanks for your help |
| 05:41:03 | technomancy | heads off |
| 05:41:28 | technomancy leaves the room. | |
| 05:41:55 | be9 | how funny there are no specs for function calls in .../language |
| 05:46:01 | rue | be9: Hm, so the problem is that method call is binding tighter than the block? |
| 05:46:09 | headius | ugh |
| 05:46:16 | headius | MRI implements IO#gets by hand using fread |
| 05:46:41 | drbrain | doesn't $/ affect gets? |
| 05:46:57 | rue | $\, $/ one of them |
| 05:47:04 | headius | sure, what I'm saying is that it doesn't use fgets |
| 05:47:06 | dbussink enters the room. | |
| 05:47:13 | headius | it does it all by hand with fread and getc |
| 05:47:13 | dbussink leaves the room. | |
| 05:47:21 | drbrain | I didn't know about fgets |
| 05:47:34 | headius | gets/fgets, same thing |
| 05:47:41 | dbussink enters the room. | |
| 05:48:17 | drbrain | no, you can't use fgets/gets to implement IO#gets |
| 05:48:30 | drbrain | $/ = "funky chinken"; stdin.gets |
| 05:48:41 | drbrain | err $stdin |
| 05:49:05 | be9 | rue, it binds differently in different contexts, that's the problem |
| 05:49:13 | headius | drbrain: I know that |
| 05:49:30 | headius | I'd hoped that for $/ = \n it would just use gets |
| 05:49:44 | drbrain | ah |
| 05:50:30 | be9 | rue, e.g: http://rafb.net/p/lCtD1350.html and http://rafb.net/p/MwZ54T91.html |
| 05:54:02 | antares enters the room. | |
| 05:56:46 | smtlaissezfaire leaves the room. | |
| 05:57:23 | smtlaissezfaire enters the room. | |
| 06:00:24 | rue | Aha |
| 06:02:15 | dysinger leaves the room. | |
| 06:03:25 | drbrain | wow |
| 06:03:40 | drbrain | nan = 0.0 / 0.0; nan == nan # => false |
| 06:03:48 | drbrain | but, I guess that makes sense |
| 06:05:52 | drbrain | oh, this spec fails because it is sereverly lame |
| 06:06:14 | be9 | nan is the only number that is not equal to itself |
| 06:06:41 | mtodd_ enters the room. | |
| 06:10:31 | twbray enters the room. | |
| 06:10:59 | turtletime leaves the room. | |
| 06:12:37 | mtodd leaves the room. | |
| 06:14:09 | d2dchat enters the room. | |
| 06:15:24 | rue | Oh boy, this is all kinds of fucked up |
| 06:15:33 | smtlaissezfaire leaves the room. | |
| 06:17:33 | drbrain | so is Marshal |
| 06:17:59 | drbrain | all the proc calls are in the wrong spot |
| 06:18:31 | be9 | seems kinda SNAFU |
| 06:31:17 | tongueroo leaves the room. | |
| 06:33:34 | be9 | waaay strange. Given that ** has a higher precedence than !, what should !a**b mean? |
| 06:34:30 | agardiner leaves the room. | |
| 06:34:50 | mtodd enters the room. | |
| 06:35:59 | be9 | ! and - (unary one) have the same priority, but !a**b means (!a)**b, while -a**b means -(a**b) |
| 06:37:10 | headius leaves the room. | |
| 06:40:07 | mtodd_ leaves the room. | |
| 06:40:09 | dysinger enters the room. | |
| 06:48:50 | dbussink leaves the room. | |
| 06:52:24 | knowtheory leaves the room. | |
| 06:52:31 | jtoy leaves the room. | |
| 06:54:33 | wifelette_ enters the room. | |
| 06:54:53 | knowtheory enters the room. | |
| 06:55:55 | wifelette leaves the room. | |
| 07:03:23 | wifelette_ enters the room. | |
| 07:14:14 | wifelette_ leaves the room. | |
| 07:16:13 | smtlaissezfaire enters the room. | |
| 07:16:16 | lstoll leaves the room. | |
| 07:19:35 | rue | Hm, think this solves it |
| 07:20:48 | wifelette leaves the room. | |
| 07:24:31 | geekounet leaves the room. | |
| 07:24:40 | geekounet enters the room. | |
| 07:26:39 | jeremydurham leaves the room. | |
| 07:35:15 | geekounet leaves the room. | |
| 07:35:45 | drbrain | at least the Marshal load specs are useful now |
| 07:36:23 | drbrain | ((1 + 1) - 1).should == 1 is not very useful |
| 07:36:43 | drbrain | and that's how all these Marshal specs are written :( |
| 07:36:57 | rue | Haha |
| 07:38:15 | drbrain | for example a Range couldn't be loaded, because the ivars in Rubinius were @first, @last and @exclude_end |
| 07:38:23 | drbrain | in MRI, they're @begin, @end, and @excl |
| 07:48:02 | smtlaissezfaire leaves the room. | |
| 07:50:21 | be9 | more fun stuff. Expression (~0**2) in rubinius irb tells NoMethodError: No method '%' on an instance of NilClass. |
| 07:50:30 | be9 | (~1**2) works |
| 07:58:35 | jessop enters the room. | |
| 08:01:21 | d2dchat leaves the room. | |
| 08:25:00 | rue | Damn it, still not sure if it is right but it is good enough |
| 08:29:02 | ezmobius leaves the room. | |
| 08:29:58 | smtlaissezfaire enters the room. | |
| 08:31:30 | rue | Morning |
| 08:31:34 | zimbatm_ enters the room. | |
| 08:32:15 | thehcdreamer enters the room. | |
| 08:36:00 | imajes leaves the room. | |
| 08:37:54 | jessop leaves the room. | |
| 08:37:56 | jtoy enters the room. | |
| 08:43:25 | VVSiz | morning! |
| 08:47:03 | Arjen_ enters the room. | |
| 08:53:25 | boyscout | 2 commits by Eero Saynatkari |
| 08:53:25 | boyscout | * Hash.new patch from Phil Hagelberg + MethodTable workaround.; e0c3aa0 |
| 08:53:26 | boyscout | * Fixed method tables not being initialized correctly.; 3b2f4ce |
| 08:54:33 | twbray leaves the room. | |
| 09:00:48 | drbrain | yay! |
| 09:00:56 | drbrain | that should take care of half of Marshal |
| 09:04:02 | rubuildius | Eero Saynatkari: e0c3aa074; 4662 examples, 17065 expectations, 1 failure, 0 errors; http://rafb.net/p/Hmasuj71.html |
| 09:10:14 | antares leaves the room. | |
| 09:10:40 | obvio_ leaves the room. | |
| 09:13:31 | Defiler leaves the room. | |
| 09:17:40 | smtlaissezfaire leaves the room. | |
| 09:17:56 | pkondzior enters the room. | |
| 09:18:12 | smtlaissezfaire enters the room. | |
| 09:18:27 | yaroslav enters the room. | |
| 09:18:40 | Defiler enters the room. | |
| 09:27:44 | octopod enters the room. | |
| 09:37:08 | UncleD leaves the room. | |
| 09:41:04 | yaroslav leaves the room. | |
| 09:47:05 | imajes enters the room. | |
| 10:01:40 | Fullmoon enters the room. | |
| 10:28:40 | rue | Alright, enough for one day |
| 10:34:18 | smtlaissezfaire leaves the room. | |
| 10:34:46 | smtlaissezfaire enters the room. | |
| 10:43:06 | smtlaissezfaire leaves the room. | |
| 10:43:46 | smtlaissezfaire enters the room. | |
| 10:49:57 | ruivaldo enters the room. | |
| 10:50:09 | dodecaphonic enters the room. | |
| 10:53:51 | pkondzior leaves the room. | |
| 10:53:53 | dodecaphonic leaves the room. | |
| 10:54:05 | pkondzior enters the room. | |
| 10:56:13 | _mutle leaves the room. | |
| 10:56:36 | jtoy leaves the room. | |
| 11:00:33 | mutle enters the room. | |
| 11:11:21 | ctennis leaves the room. | |
| 11:17:05 | TheVoice leaves the room. | |
| 11:23:59 | boyscout | 7 commits by Eric Hodel |
| 11:24:00 | boyscout | * Describe an unambiguous method.; 7041b2a |
| 11:24:01 | boyscout | * Fix bugs in Marshal exposed by Marshal::load spec changes.; 7a8361c |
| 11:24:02 | boyscout | * Fix Range ivar names for Marshal.; 0014d0c |
| 11:24:03 | boyscout | * Use fixed Marshal data for all specs and fix many broken or useless specs.; 84edf54 |
| 11:24:04 | boyscout | * Implement Zlib::Inflate and Zlib::Deflate and have Gzip* use them.; ecc47fc |
| 11:24:05 | boyscout | ... |
| 11:25:00 | smtlaissezfaire leaves the room. | |
| 11:30:29 | rubuildius | Eric Hodel: 7041b2aef; build failed! http://rafb.net/p/nH40DA34.html |
| 11:32:20 | ctennis enters the room. | |
| 11:36:30 | GMFlash leaves the room. | |
| 11:36:36 | GMFlash enters the room. | |
| 11:58:58 | drbrain | benny: no more disk space for rubuildius again |
| 11:59:42 | boyscout | 1 commit by Caleb Tennis |
| 11:59:43 | boyscout | * Comment out an endless loop.; 5ebf2ec |
| 12:00:05 | rubuildius | Caleb Tennis: 5ebf2ec0d; build failed! nopaste error: something bad happened, stack trace follows |
| 12:02:20 | boyscout | 3 commits by Eric Hodel |
| 12:02:21 | boyscout | * Remove -ffast-math per IRC discussion; a3f78ee |
| 12:02:22 | boyscout | * Manipulate @consumed and @stream in one place.; 8190462 |
| 12:02:23 | boyscout | * Don't pass str around in Marshal::State; 49e1962 |
| 12:05:05 | rubuildius | Eric Hodel: a3f78eed1; build failed! nopaste error: something bad happened, stack trace follows |
| 12:08:29 | ruivaldo leaves the room. | |
| 12:12:07 | dysinger leaves the room. | |
| 12:15:39 | boyscout | 1 commit by Vladimir Sizikov |
| 12:15:40 | boyscout | * Added more test cases for File::join with recursive arrays.; bb15b72 |
| 12:20:05 | rubuildius | Vladimir Sizikov: bb15b7239; build failed! nopaste error: something bad happened, stack trace follows |
| 12:28:30 | chris2 enters the room. | |
| 12:38:36 | boyscout | 1 commit by Vladimir Sizikov |
| 12:38:37 | boyscout | * Added more test cases for Array#join on recursive arrays.; af76ada |
| 12:40:05 | rubuildius | Vladimir Sizikov: af76adac2; build failed! nopaste error: something bad happened, stack trace follows |
| 12:58:12 | smartocci enters the room. | |
| 13:03:42 | dewd enters the room. | |
| 13:09:26 | boyscout | 1 commit by Vladimir Sizikov |
| 13:09:27 | boyscout | * Added more specs to Time#+ and Time#-.; 765ef93 |
| 13:10:06 | rubuildius | Vladimir Sizikov: 765ef93ac; build failed! nopaste error: something bad happened, stack trace follows |
| 13:11:13 | schleyfox enters the room. | |
| 13:21:02 | comboy leaves the room. | |
| 13:37:46 | dysinger enters the room. | |
| 13:38:40 | jeremydurham enters the room. | |
| 13:53:39 | turtletime enters the room. | |
| 13:53:54 | Fullmoon_ enters the room. | |
| 14:01:09 | benny | shit |
| 14:02:58 | benny | I guess that was after moving him to a dedicated account... I didn't enable the cronjob for that account. |
| 14:33:54 | boyscout | 1 commit by Vladimir Sizikov |
| 14:33:55 | boyscout | * Few specs for Time#<=> with non-Time arguments.; 86c372d |
| 14:36:00 | Fullmoon_ leaves the room. | |
| 14:40:15 | pkondzior leaves the room. | |
| 14:44:07 | rubuildius | Vladimir Sizikov: 86c372d0f; 4674 examples, 17084 expectations, 1 failure, 0 errors; http://rafb.net/p/ouBfP133.html |
| 14:49:02 | pkondzior enters the room. | |
| 14:50:28 | enebo enters the room. | |
| 14:54:04 | djwhitt enters the room. | |
| 14:55:10 | moofbong enters the room. | |
| 14:59:38 | Fullmoon_ enters the room. | |
| 15:06:59 | pauldix enters the room. | |
| 15:08:09 | pauldix_ enters the room. | |
| 15:15:10 | ruivaldo enters the room. | |
| 15:17:15 | boyscout | 1 commit by Vladimir Sizikov |
| 15:17:16 | boyscout | * Fixed 2 Date#strptime specs that otherwise would pass only in January.; dc55c88 |
| 15:24:28 | pauldix leaves the room. | |
| 15:24:51 | pauldix_ leaves the room. | |
| 15:26:58 | ruivaldo leaves the room. | |
| 15:28:46 | knowtheory leaves the room. | |
| 15:29:18 | rubuildius | Vladimir Sizikov: dc55c88be; 4674 examples, 17084 expectations, 1 failure, 0 errors; http://rafb.net/p/R23z7g81.html |
| 15:30:14 | knowtheory enters the room. | |
| 15:35:18 | ctennis leaves the room. | |
| 15:39:14 | wmoxam enters the room. | |
| 15:40:04 | ctennis enters the room. | |
| 15:45:44 | benburkert enters the room. | |
| 15:59:02 | pauldix enters the room. | |
| 15:59:57 | d2dchat enters the room. | |
| 16:04:06 | Arjen_ leaves the room. | |
| 16:05:29 | __johan__ enters the room. | |
| 16:06:10 | pkondzior leaves the room. | |
| 16:15:56 | pate enters the room. | |
| 16:16:52 | tmornini enters the room. | |
| 16:20:10 | skaar enters the room. | |
| 16:33:40 | twbray enters the room. | |
| 16:37:03 | ttmrichter leaves the room. | |
| 16:40:14 | mad_phoenix enters the room. | |
| 16:40:29 | be9 leaves the room. | |
| 16:42:49 | twbray leaves the room. | |
| 16:52:54 | agile leaves the room. | |
| 16:56:10 | Fullmoon_ leaves the room. | |
| 17:03:32 | Smirnov | hmm is Lost back? |
| 17:06:23 | scoopr | so I've heard |
| 17:07:33 | Smirnov | awesome |
| 17:08:08 | tmornini leaves the room. | |
| 17:08:48 | Smirnov | weird. i distincly remember someone here asking about noops & 15 but now i cant find that |
| 17:11:24 | RyanTM leaves the room. | |
| 17:14:26 | twbray enters the room. | |
| 17:15:31 | binary42 leaves the room. | |
| 17:15:41 | RyanTM enters the room. | |
| 17:16:47 | zimbatm_ leaves the room. | |
| 17:18:36 | tongueroo enters the room. | |
| 17:20:03 | turtletime leaves the room. | |
| 17:22:12 | dodecaphonic enters the room. | |
| 17:26:04 | pauldix leaves the room. | |
| 17:30:20 | enebo leaves the room. | |
| 17:30:47 | enebo enters the room. | |
| 17:37:16 | lopex enters the room. | |
| 17:39:46 | wifelette enters the room. | |
| 17:41:08 | radarek enters the room. | |
| 17:42:53 | agile enters the room. | |
| 17:43:13 | thehcdreamer leaves the room. | |
| 17:48:23 | headius enters the room. | |
| 17:56:40 | Phoop enters the room. | |
| 17:59:59 | mad_phoenix leaves the room. | |
| 18:00:43 | headius leaves the room. | |
| 18:01:07 | octopod leaves the room. | |
| 18:04:30 | turtletime enters the room. | |
| 18:17:26 | rue | Smirnov: Defiler did |
| 18:17:32 | rue | And morning |
| 18:19:59 | brixen | morning |
| 18:20:14 | KirinDave enters the room. | |
| 18:20:15 | brixen | sweet, spec tags, tag files, tag actions, tag filters oh my |
| 18:23:02 | rue | Be back in a bit |
| 18:24:26 | rue leaves the room. | |
| 18:28:41 | wifelette leaves the room. | |
| 18:36:12 | radarek leaves the room. | |
| 18:38:05 | evan | morning. |
| 18:38:37 | tarcieri | hey evan |
| 18:38:40 | tarcieri | http://nondot.org/sabre/LLVMNotes/ExplicitlyManagedStackFrames.txt |
| 18:38:43 | tarcieri | ^^^ did you see that? |
| 18:38:48 | evan | yep |
| 18:38:51 | tarcieri | crazy hack for explicitly managed stack frames on llvm |
| 18:38:51 | tarcieri | heh |
| 18:38:53 | evan | I asked saber about it |
| 18:39:20 | evan | it requires guaranteed tail call support |
| 18:39:23 | evan | which llvm doesn't have. |
| 18:39:26 | evan | :/ |
| 18:39:37 | tarcieri | oh yeah? |
| 18:39:45 | evan | nope. |
| 18:39:53 | evan | because they haven't implemented it on all platforms |
| 18:40:08 | evan | and there is no way to assert that it must happen |
| 18:40:12 | tarcieri | hmm, oh well |
| 18:40:15 | evan | so the generated code could just be plain old wrong |
| 18:40:44 | evan | and llvm doesn't expose jmp <indirect> |
| 18:42:10 | wifelette enters the room. | |
| 18:42:42 | yipstar enters the room. | |
| 18:42:42 | __johan__ leaves the room. | |
| 18:44:41 | rue enters the room. | |
| 18:46:47 | headius enters the room. | |
| 18:50:33 | evan | ctennis: you around? |
| 18:55:19 | kAworu | hi |
| 18:55:54 | rue | evan: The method/method_table situation look sane to you now? |
| 18:55:58 | evan | yeah |
| 18:56:00 | evan | looks good. |
| 18:56:05 | evan | i was being pissy last night. |
| 18:56:10 | evan | thanks for cleaning it up |
| 18:56:17 | rue | Heh, no problem |
| 18:57:08 | rue | evan: kAworu has a patch in unless you guys did that part already |
| 18:57:31 | evan | nope. |
| 18:58:28 | rue | kAworu: Dig up your public key again |
| 18:58:41 | kAworu | rue> pastebin ? |
| 18:59:06 | __johan__ enters the room. | |
| 18:59:14 | rue | You two figure it out :) Pastie should be fine |
| 18:59:38 | rue | Hopping out for a moment |
| 18:59:57 | kAworu | evan> http://rafb.net/p/Ie2gb727.html |
| 19:01:43 | brixen | rue < kangaroo |
| 19:01:56 | ctennis | evan: ya |
| 19:03:24 | evan | ctennis: could you paste a script that used subtend that caused the looping problem? |
| 19:03:34 | dysinger leaves the room. | |
| 19:03:34 | evan | that was the reason you commented out that section of code |
| 19:03:35 | ctennis | evan: better yet, I can give you a failing spec |
| 19:03:40 | ctennis | evan: just a sec |
| 19:03:41 | evan | thats even better |
| 19:03:42 | evan | k |
| 19:04:16 | pkondzior enters the room. | |
| 19:04:27 | ctennis | evan: spec/subtend/object_spec.rb, specifically the ones that does "rb_require" |
| 19:05:25 | ctennis | evan: in this case, I think the spec fails because it can't do a Kernel require (NoMethodException) I believe |
| 19:05:42 | ctennis | evan: but it doesn't fail gracefully unfortuntately |
| 19:07:20 | rue | brixen: class KangaRue < Rue; include Rodent; end |
| 19:08:31 | pkondzior leaves the room. | |
| 19:08:35 | pauldix enters the room. | |
| 19:09:01 | evan | ctennis: hm. ok. |
| 19:11:10 | Defiler | Does anyone know how to contribute a libtommath path? |
| 19:11:11 | imajes leaves the room. | |
| 19:11:26 | Defiler | I don't see a tracker anywhere, the mailing list gets one post a month, and Tom himself has gotten rid of his email address |
| 19:12:33 | evan | do we have the latest released version? |
| 19:13:06 | evan | here's what we should do |
| 19:13:28 | evan | take the current ltm we have, put it in a git repo |
| 19:13:32 | evan | then apply our patches to it |
| 19:13:42 | evan | and just post the url to the repo |
| 19:13:50 | evan | ala the linux side-patch branches |
| 19:13:58 | evan | ltm-rbx could be the name of it |
| 19:14:15 | evan | tom can pull them out of git if we wants to integrate them |
| 19:14:35 | Defiler | What does this guy do for a living now that doesn't require an email address? I am impressed |
| 19:14:49 | evan | live in canada |
| 19:14:51 | evan | ZING! |
| 19:15:17 | evan | i thought he was doing programming |
| 19:16:29 | Defiler | I like this link about Rails and GC because it shows what will hopefully be possible with Rubinius running real code |
| 19:16:48 | evan | yeah |
| 19:17:00 | Defiler | MRI optimized the wrong thing. Heh |
| 19:17:19 | brixen | Defiler: tom has an email address, it's just *encrypted* :P |
| 19:17:24 | loincloth enters the room. | |
| 19:17:32 | brixen | Defiler: and top secret, he'd have to kill you |
| 19:17:34 | ctennis | evan: if you fix the unrecognized block issue via subtend too I'll fax you a chocolate chip cookie via the intertubes |
| 19:17:43 | evan | ctennis: ooooh |
| 19:17:47 | evan | fixes now. |
| 19:18:03 | evan | actually, i'll fix it shortly. |
| 19:18:03 | Defiler | brixen: That's probably about right, yeah |
| 19:18:06 | brixen | ctennis: do those have to be made from scratch? I've got some ccc :) |
| 19:18:07 | ctennis | heh |
| 19:18:21 | brixen | makes a wishlist of fixes |
| 19:18:28 | smtlaissezfaire enters the room. | |
| 19:18:46 | ctennis | in fact ,if you could just fix everything and have this rubinius project wrapped up tomorrow, that would be great |
| 19:19:59 | evan | will do. |
| 19:20:08 | evan | do you want a lap dance too? |
| 19:20:25 | ctennis | yes, but you're too skinny for my likes. |
| 19:20:29 | evan | maybe a pony on top of a giant ice cream cone |
| 19:20:48 | evan | lets get a portal to the land of unicorns while we're add it. |
| 19:21:07 | Defiler | Perhaps... Planet Unicorn? |
| 19:21:14 | evan | Heeey |
| 19:21:26 | evan | you've heard drbrain's story about Planet Unicorn, right? |
| 19:21:53 | Defiler | Yep |
| 19:22:50 | Defiler | "Hey unicorns it's Shannon, the boy who wished you into existence" |
| 19:22:57 | evan | and Dick Gabriel's beaver. |
| 19:24:07 | pkondzior enters the room. | |
| 19:24:46 | lopex leaves the room. | |
| 19:26:07 | pkondzior leaves the room. | |
| 19:27:02 | geekounet leaves the room. | |
| 19:27:32 | geekounet enters the room. | |
| 19:29:25 | chris2 leaves the room. | |
| 19:30:41 | pauldix leaves the room. | |
| 19:30:50 | pauldix enters the room. | |
| 19:31:00 | evan | i'm getting ci failures. |
| 19:31:01 | evan | anyone else? |
| 19:32:57 | Fullmoon leaves the room. | |
| 19:33:22 | ctennis | evan: yeah, getting quite a few |
| 19:34:00 | Defiler | yep |
| 19:34:13 | evan | arg. |
| 19:34:13 | evan | ok. |
| 19:41:18 | Fullmoon enters the room. | |
| 19:44:38 | ezmobius enters the room. | |
| 19:45:54 | mtodd_ enters the room. | |
| 19:46:44 | fizx enters the room. | |
| 19:47:08 | fizx leaves the room. | |
| 19:49:15 | jessop enters the room. | |
| 19:49:46 | rue | ezmobius: Got just a second? |
| 19:50:07 | ezmobius | sure whats up? |
| 19:51:07 | RyanTM leaves the room. | |
| 19:51:22 | drbrain | I was getting one failure last night |
| 19:51:25 | rue | ezmobius: PM |
| 19:51:27 | drbrain | in private_class_method |
| 19:51:40 | rue | Yeah, I removed that exclude by accident |
| 19:51:48 | rue | I was going to see if I can fix it today |
| 19:52:09 | mtodd leaves the room. | |
| 19:52:30 | RyanTM enters the room. | |
| 19:52:36 | Defiler | So, these failures look like missing excludes, rather than old specs that are suddenly failing |
| 19:52:40 | Defiler | right? |
| 19:52:58 | drbrain | It looks like I've got Marshal.load fully compatible with MRI now |
| 19:53:09 | evan | ^5s drbrain |
| 19:53:25 | evan | drbrain: so, here's something to consider |
| 19:53:29 | rue | Nice, drbrain |
| 19:53:35 | evan | drbrain: we dump all the VM marshal code (the bytecode marshal) |
| 19:53:40 | evan | and switch it to be Marshal format |
| 19:53:55 | evan | we'd have to write enough C to load in a simple dump though |
| 19:54:11 | drbrain | we don't have to write any C |
| 19:54:12 | evan | but we could ditch the dump code |
| 19:54:16 | drbrain | we just take MRIs |
| 19:54:20 | evan | oh |
| 19:54:22 | evan | hm... |
| 19:54:27 | evan | we'd have to retrofit it a little |
| 19:54:37 | evan | but that could work! |
| 19:55:16 | drbrain | it shouldn't be hard, marshal.c is pretty clean |
| 19:55:21 | rue | We could just keep the two separate, too |
| 19:55:34 | evan | we could, yes. |
| 19:55:39 | rue | Provided there is a tangible benefit for customizing it exactly to our needs |
| 19:55:41 | evan | but i'd rather not have the seperate format |
| 19:55:56 | evan | using one format just makes it simpler |
| 19:56:19 | rue | Sure, so long as there is no compromising. I think it should be OK though |
| 19:56:24 | rue | Be back in a while, meeting |
| 19:56:27 | evan | laters. |
| 19:56:28 | drbrain | I'm going to refactor the load/dump specs today to use a common data set |
| 19:56:32 | evan | k |
| 19:56:34 | drbrain | so that everything is independently verifiable |
| 19:58:10 | Defiler | Also, Marshal handles the big-ass fixnums :) |
| 19:58:34 | evan | right, that code has been vetted more than my bytecode marshal code |
| 20:05:52 | headius_ enters the room. | |
| 20:06:17 | VVSiz | drbrain: too bad that direct string comparison of marshalled results is not very robust, since MRI and JRuby produce different outputs (which then can be loaded back to same values!) |
| 20:06:44 | drbrain | VVSiz: I'm doing direct string comparison |
| 20:07:02 | drbrain | that's the only robust way to do it |
| 20:07:13 | drbrain | otherwise, you can't load MRI objects on Rubinius |
| 20:07:36 | drbra |