Show enters and exits. Hide enters and exits.
| 00:00:02 | Defiler | Is an unusually easy-to-understand line of code in it |
| 00:00:11 | Packet_Monkey leaves the room. | |
| 00:00:16 | tarcieri | heh |
| 00:00:17 | evan | ok, so what do you want to do? |
| 00:00:39 | Defiler | I see two options.. get subtend compatible enough to run syck, or run syck with minor mods.. |
| 00:00:43 | Defiler | or write something new |
| 00:00:57 | evan | we were doing the later before RbYAML |
| 00:01:10 | tarcieri | You don't have to write something completely new |
| 00:01:13 | Defiler | Yeah, I believe we made a mistake by assuming RbYAML was functional |
| 00:01:16 | evan | not with the the complete Yaml API |
| 00:01:23 | evan | quick_emit was missing |
| 00:01:29 | Defiler | Because it isn't. It is full of broken code-paths, and just doesn't return what syck returns |
| 00:01:29 | evan | and thus we switched to RbYAML |
| 00:01:33 | tarcieri | You should be able to use Syck's Ragel file to generate the parser |
| 00:01:40 | tarcieri | in Ruby |
| 00:01:48 | Defiler | I think I hear a volunteer |
| 00:01:55 | tarcieri | Heh |
| 00:01:59 | tarcieri | Maybe, sounds like fun |
| 00:02:08 | Defiler | I am working on ticket 322, and it is super super super crazy |
| 00:02:12 | tarcieri | Or ask _why :) |
| 00:03:10 | Defiler | I'm not sure I can fix this, unless someone can explain to me why node#value isn't the thing to_yaml was called on |
| 00:03:23 | evan | Defiler: what is blocked on yaml right now? |
| 00:03:33 | Defiler | Or why there is code that expects FalseClass#[] to exist |
| 00:04:13 | Defiler | yaml, or syck? |
| 00:04:27 | evan | i assume you're working on this because something needs yaml |
| 00:04:31 | evan | what is that thing? |
| 00:04:58 | evan | i guess lots needs it these days |
| 00:04:59 | Defiler | I am working on it because I have a ticket assigned to me about it that is marked 1.0 previerw |
| 00:05:03 | Defiler | preview, that is |
| 00:05:09 | Defiler | I guess I can just leave it |
| 00:07:49 | tarcieri | weird, perhaps I'm mistaken... I don't see a Ragel file in the Syck distribution, or code that looks like it was produced by Ragel :/ |
| 00:08:28 | Defiler | Yeah, I believe _why was saying he WANTED to do that, but wrote Hpricot instead |
| 00:08:34 | tarcieri | oh |
| 00:08:44 | tarcieri | I thought it might be an easy conversion like Mongrel's parser... guess not :( |
| 00:08:54 | boyscout | 2 commits by Wilson Bilkovich |
| 00:08:55 | boyscout | * Add (failing) Symbol#to_yaml spec based on ticket 322; b40c1cf |
| 00:08:56 | boyscout | * Apply ticket 351 and resolve ticket 350 (RbYAML bugs); c0bcb01 |
| 00:09:03 | evan | if it's decided that we need something else for Yaml, i'm eager for us to have positive movement on that |
| 00:13:59 | crafterm leaves the room. | |
| 00:15:26 | brixen | well, I'm almost done with libgdtoa, and String was high on my list. we absolutely need RSTRING for openssl at least, so I can work on that next |
| 00:15:36 | evan | k |
| 00:15:50 | webmat enters the room. | |
| 00:16:10 | brixen | off to dinner with jenny and the cousins for now |
| 00:16:26 | evan | enjoy |
| 00:16:32 | brixen | thanks :) |
| 00:17:37 | enebo enters the room. | |
| 00:18:08 | brixen | Defiler: btw, if you wanted to resurrect syck, somewhere around here: cc28068, that would be helpful :) |
| 00:19:04 | brixen | actually, put to pasture here: 36345996 |
| 00:19:29 | rubuildius_ppc | Wilson Bilkovich: b40c1cf43; 1756 files, 6037 examples, 20249 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/165477 |
| 00:20:21 | enebo leaves the room. | |
| 00:24:22 | boyscout | 1 commit by Alister Lee |
| 00:24:23 | boyscout | * Rake task 'spec:mspec' for running mspec specs using RSpec; 4996e66 |
| 00:26:50 | Defiler | Who is our debugger guy again? agardiner? |
| 00:26:54 | evan | yep |
| 00:26:56 | agardiner | yep |
| 00:27:00 | agardiner | what's up? |
| 00:27:06 | Defiler | 'n' is skipping multiple lines for me |
| 00:27:30 | agardiner | hmm... what's the source on the line look like? |
| 00:27:37 | boyscout | 4 commits by Matt Palmer |
| 00:27:38 | boyscout | * Put in an explicit IO.new test for single-argument; 2601900 |
| 00:27:39 | boyscout | * Mark changing failures in the CI test suite; 58216e0 |
| 00:27:40 | boyscout | * Allow IO.new to take only one argument; 4603ee2 |
| 00:27:41 | boyscout | * Rearrange the UDPSocket test cases for better separation; 36f91c5 |
| 00:28:01 | radarek enters the room. | |
| 00:29:55 | Defiler | So, here is the code.. |
| 00:30:04 | Defiler | http://rafb.net/p/dnYxog78.html |
| 00:30:16 | wmoxam leaves the room. | |
| 00:30:40 | Defiler | ..and this is the debug session |
| 00:30:41 | Defiler | http://rafb.net/p/mAR8Kk70.html |
| 00:31:52 | agardiner | and which n is the one you think is wrong? |
| 00:31:54 | Defiler | dummy, @salt2 = a.unpack("a13a12") |
| 00:32:04 | Defiler | never appears as the current line in the debugger session |
| 00:32:43 | agardiner | can you hit d and get a decode listing at that point? |
| 00:32:56 | agardiner | it could be the line numbers are not correct in the CompiledMethod |
| 00:33:38 | obvio171 enters the room. | |
| 00:33:47 | agardiner | if that is the case, you can use ni and step by instructions instead |
| 00:34:33 | obvio leaves the room. | |
| 00:35:59 | random8r enters the room. | |
| 00:36:00 | radarek leaves the room. | |
| 00:36:37 | nicksieger leaves the room. | |
| 00:37:51 | random8r | DAMN I missed the sydney sprint :( |
| 00:37:58 | Defiler | line numbers appear correct in the 'd' output |
| 00:38:04 | random8r | I think I'm gonna cry. |
| 00:38:18 | radarek enters the room. | |
| 00:38:23 | agardiner | ok, then it may be a bug in the step logic |
| 00:38:25 | Defiler | http://rafb.net/p/RBbxEg97.html |
| 00:38:38 | Defiler | Not a big deal, just thought I would let you know |
| 00:38:59 | agardiner | yep, i think i know what the problem is... |
| 00:39:04 | agardiner | i'll look into it |
| 00:40:14 | agardiner | it will be related to the branch handling logic not detecting a line change following the gif |
| 00:41:02 | rubuildius_ppc | Matt Palmer: 260190092; 1756 files, 6039 examples, 20250 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165482 |
| 00:41:03 | rubuildius_ppc | Alister Lee: 4996e6633; 1756 files, 6037 examples, 20249 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/165480 |
| 00:44:20 | lachie leaves the room. | |
| 00:44:31 | lachie enters the room. | |
| 00:44:49 | random8r leaves the room. | |
| 00:48:03 | evan | Defiler: you still around? |
| 00:49:25 | Defiler | Yeah |
| 00:49:44 | Defiler | I am seeing some pretty weird stuff in IO, as well |
| 00:49:57 | crafterm enters the room. | |
| 00:50:07 | evan | yaml wise, something to consider would be to just reuse the RbYAML parser and scanner |
| 00:50:18 | evan | and redo the rest |
| 00:50:30 | evan | i just looked through the parser |
| 00:50:32 | evan | it's not too bad |
| 00:50:48 | Defiler | Yeah. That sounds sane |
| 00:50:55 | evan | it's directly ported from the reference yaml specification |
| 00:51:10 | Defiler | It's not really a good way to scan or parse yaml, but it probably at least works |
| 00:51:29 | evan | thats a small enough piece that it could be speced and found to be working nicely |
| 00:51:35 | evan | then just build out the rest from there |
| 00:52:09 | evan | hell, maybe even just write a shim between syck's yaml.rb files and the rbyaml parser/scanner |
| 00:52:36 | Defiler | Got a sec to look at lib/socket.rb with me? |
| 00:52:40 | evan | sure |
| 00:53:17 | Defiler | OK.. around line 464 |
| 00:53:29 | Defiler | after the call to the 'setup' method in the superclass |
| 00:53:36 | evan | yep |
| 00:53:56 | miamoto_musashi enters the room. | |
| 00:54:30 | Defiler | So.. what I am seeing is that 'descriptor' is some valid fd (e.g. 8) |
| 00:54:33 | Defiler | ..but @descriptor is nil |
| 00:54:39 | Defiler | That sounds super wrong to me |
| 00:54:45 | evan | full stop |
| 00:54:56 | evan | you can't read @descriptor like that in this file |
| 00:54:59 | evan | it's a slot in IO. |
| 00:55:03 | evan | use self.descriptor |
| 00:55:26 | Defiler | aah, ok |
| 00:55:47 | evan | there is a warning to that effect in README-DEVELOPER |
| 00:55:56 | evan | it's a human side-effect of making the slots look like ivars |
| 00:56:26 | evan | maybe i should have used something other than ivars |
| 00:56:37 | evan | $__descriptor__ |
| 00:56:38 | evan | or something |
| 00:56:44 | Defiler | It's fine, I just forgot that subclasses needed to declare them if they wanted to access them |
| 00:56:51 | evan | yeah |
| 00:56:53 | Defiler | Since the 'annotation' mechanism has changed so many times |
| 00:57:00 | evan | you should't declare them outside the kernel either. |
| 00:57:10 | Defiler | So, anyway.. let's go look at kernel/core/io.rb line 490 |
| 00:57:18 | evan | outside the kernel, they should be seen as hidden values |
| 00:57:18 | evan | ok |
| 00:57:32 | evan | in seek? |
| 00:57:43 | Defiler | actually, the call to @buffer.empty? |
| 00:57:50 | evan | in seek or write? |
| 00:57:54 | Defiler | write |
| 00:57:59 | evan | ok |
| 00:58:15 | Defiler | ..and maybe this is a debugger problem.. but inside 'def empty?' on Buffer.. |
| 00:58:20 | Defiler | (when called from here) |
| 00:58:21 | imajes_ enters the room. | |
| 00:58:27 | Defiler | @bytes is nil |
| 00:58:39 | Defiler | (I know @bytes is a slot) |
| 00:58:40 | evan | not 0 eh... |
| 00:58:51 | evan | you sure it's nil? |
| 00:59:18 | Defiler | Let me check it another way to make sure it isn't a debugger quirk |
| 00:59:24 | evan | k |
| 00:59:47 | imajes leaves the room. | |
| 00:59:58 | Defiler | Hrm |
| 01:00:06 | Defiler | Actually.. HOW can I check this |
| 01:00:11 | Defiler | I can't just do p @bytes |
| 01:00:16 | evan | why? |
| 01:00:26 | evan | oh, because it calls write |
| 01:00:27 | evan | use |
| 01:00:37 | evan | STDOUT.prim_write @bytes.inspect + "\n" |
| 01:01:04 | Defiler | OK, it's actually zero |
| 01:01:09 | Defiler | The debugger just can't see fields |
| 01:01:43 | wdperson enters the room. | |
| 01:01:50 | evan | thats what i suspected. |
| 01:01:54 | Defiler | God damnit.. this problem is kicking mey ass |
| 01:02:08 | Defiler | I am working on the MySQL client.. |
| 01:02:24 | Defiler | ..and I have it to the point where I can show that it attempts to write the exact same bytes to the socket as MRI does |
| 01:02:32 | Defiler | ..but when rbx writes it, I get SIGPIPE |
| 01:02:50 | Defiler | When I just create a server in MRI and write to it from rbx, it works fine |
| 01:03:02 | evan | SIGPIPE? thats odd. |
| 01:03:07 | evan | that means it's reading from a pipe() |
| 01:03:27 | mernen enters the room. | |
| 01:03:28 | Defiler | SIGPIPE is also raised when you write to a unix socket that isn't connect(2)ed |
| 01:03:33 | evan | ah |
| 01:03:35 | evan | tricky. |
| 01:03:36 | tarcieri | yeah |
| 01:03:40 | tarcieri | for any socket that closes |
| 01:03:49 | tarcieri | aren't you swallowing SIGPIPE? |
| 01:04:03 | Defiler | No. We just exit |
| 01:04:06 | tarcieri | why? |
| 01:04:07 | evan | i thought Defiler was going to change it so we did |
| 01:04:11 | evan | we should be |
| 01:04:13 | evan | everyone else does. |
| 01:04:23 | Defiler | Yeah, I know.. but it isn't relevant to this fix, and I didn't want to get derailed |
| 01:04:34 | evan | but doing so might give you some insight |
| 01:04:51 | evan | just trap it in rubyland as a test |
| 01:05:07 | evan | Signal.trap("PIPE") { puts "you're a sucker." } |
| 01:05:46 | tarcieri | it's a single line of code in C as well, except I think libev demands a function stub to call :/ |
| 01:06:22 | agardiner | Defiler: how were you trying to view the contents of @bytes in the debugger? |
| 01:06:28 | Defiler | I have a giant headache, and they have started to make Obama buttons in this room, so I'm going to take a break |
| 01:06:40 | Defiler | agardiner: p @bytes when in def empty?. |
| 01:07:03 | agardiner | ok, so its not really a debugger problem, right? |
| 01:07:23 | evan | agardiner: no, it's a visual likeness problem |
| 01:07:24 | Defiler | How should I have accessed it? |
| 01:07:39 | evan | there is no simple way anymore |
| 01:07:49 | evan | you could have done at(3) or whatever the slot number is |
| 01:07:52 | evan | but Object#at is done |
| 01:07:54 | evan | er. gone. |
| 01:08:09 | Defiler | Gotcha |
| 01:08:15 | agardiner | don't know, but i do intend to add a command to see ivars... and that will have to handle this |
| 01:08:33 | evan | agardiner: sorta |
| 01:08:35 | evan | it doesn't have to |
| 01:08:50 | evan | probably should have another command to show slots |
| 01:08:51 | Defiler | Having them be ivars is a little tricky because ivars are auto-vivifying |
| 01:09:02 | Defiler | So you see nil instead of 'wtf are you asking??' |
| 01:09:11 | evan | yeah |
| 01:09:12 | agardiner | hehe |
| 01:09:15 | Defiler | p @bytes creates a shadow ivar |
| 01:09:34 | agardiner | well, if you had a command to show ivars, it would only show you what existed |
| 01:09:45 | agardiner | which would help |
| 01:09:46 | evan | like I said, the visual similarity is starting to feel like a mistake |
| 01:10:19 | Defiler | agardiner: Oh, right. |
| 01:10:29 | Defiler | OK. Back online a bit later. Going to get out of here. |
| 01:10:31 | agardiner | the (imaginary) debugger ivars command could show both ivars and slots, but have a type field to distinguish them |
| 01:10:33 | evan | Defiler: k |
| 01:10:34 | elight leaves the room. | |
| 01:10:51 | Defiler | People are talking in 'outdoor voices' in the cozy nook I am using |
| 01:11:04 | Defiler | Unlike Ryan, I don't plan to berate them at length for their sins :) |
| 01:13:01 | evan | heh |
| 01:13:23 | eventualbuddha leaves the room. | |
| 01:15:22 | crafterm leaves the room. | |
| 01:15:24 | agile enters the room. | |
| 01:16:03 | skaar leaves the room. | |
| 01:28:11 | cored enters the room. | |
| 01:31:18 | random8r enters the room. | |
| 01:36:19 | lopex leaves the room. | |
| 01:37:58 | imajes_ leaves the room. | |
| 01:41:26 | boyscout | 1 commit by David Whittington |
| 01:41:27 | boyscout | * Fixed typos in rubuildius README; 4e3a795 |
| 01:41:47 | evan | any song that references sodium flares rocks. |
| 01:42:41 | lachie leaves the room. | |
| 01:42:41 | benburkert leaves the room. | |
| 01:42:41 | ijcd leaves the room. | |
| 01:42:41 | cyndis__ leaves the room. | |
| 01:42:41 | rphillips leaves the room. | |
| 01:42:41 | Chrononaut leaves the room. | |
| 01:42:41 | mojombo leaves the room. | |
| 01:42:41 | Silex leaves the room. | |
| 01:42:44 | wdperson leaves the room. | |
| 01:43:02 | wdperson enters the room. | |
| 01:43:03 | rphillips enters the room. | |
| 01:43:30 | Chrononaut enters the room. | |
| 01:43:38 | rubuildius_amd64 enters the room. | |
| 01:44:03 | mojombo enters the room. | |
| 01:44:08 | jtoy enters the room. | |
| 01:44:08 | cored leaves the room. | |
| 01:44:26 | rubuildius_amd64 leaves the room. | |
| 01:47:33 | lachie enters the room. | |
| 01:48:23 | benburkert enters the room. | |
| 01:49:41 | yipstar leaves the room. | |
| 01:54:17 | rubuildius_ppc | David Whittington: 4e3a795d3; 1756 files, 6039 examples, 20250 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165504 |
| 01:56:25 | roo enters the room. | |
| 01:56:44 | wdperson leaves the room. | |
| 01:57:17 | webmat leaves the room. | |
| 01:58:32 | Silex enters the room. | |
| 02:00:58 | josb leaves the room. | |
| 02:01:19 | webmat enters the room. | |
| 02:02:54 | rubuildius_amd64 enters the room. | |
| 02:03:32 | cyndis__ enters the room. | |
| 02:03:56 | womble | What sort of situations could trigger an "Unknown travel plans" error? |
| 02:04:17 | cavalle leaves the room. | |
| 02:04:44 | boyscout | 1 commit by Adam Gardiner |
| 02:04:45 | boyscout | * Fix bug where stepping by line would sometimes skip a line; 4bdd3df |
| 02:05:01 | cavalle enters the room. | |
| 02:05:55 | Defiler | womble: Something terrible and unexpected involving the invocation of a C function |
| 02:06:30 | womble | Defiler: I figured as much... what's the best way to track that sort of thing down? |
| 02:07:20 | Defiler | First step should be to use gdb to figure out what the 'travel' value was |
| 02:07:31 | Defiler | see around 330-something in shotgun/lib/subtend/nmc.c |
| 02:07:35 | bremac enters the room. | |
| 02:07:44 | elight enters the room. | |
| 02:07:48 | womble | The travel value is printed in the error, but it changes on each run. |
| 02:08:24 | Defiler | Set a watch point in gdb on 'travel' then, perhaps |
| 02:08:31 | crafterm enters the room. | |
| 02:09:09 | agardiner | Defiler: that last commit ought to fix the step problem |
| 02:09:19 | womble | Oh man, I just ran it again and it segfaulted this time. That's weird, I ran the exact same ruby code as last time. At least I've got it in GDB... |
| 02:09:24 | Defiler | agardiner: Cool |
| 02:09:26 | elight leaves the room. | |
| 02:09:27 | agardiner | and i'm working on adding an ivars command now |
| 02:09:31 | womble | Does shotgun run OK in efence? |
| 02:11:42 | Defiler | Never tried it |
| 02:12:09 | Defiler | Anyone feel like adding a lock to rubuildius so that it doesn't try to do multiple builds at once? |
| 02:12:22 | Defiler | That failure we are seeing in the UDPSocket specs looks like a race |
| 02:14:03 | womble | Defiler: Yeah, there's a couple of icky problems in the UDPSocket specs... I'm actually faffing around in there at the moment, and I've gotten sidetracked by this travel issue. |
| 02:14:26 | rubuildius_ppc | Adam Gardiner: 4bdd3df09; 1756 files, 6039 examples, 20259 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165510 |
| 02:14:45 | rubuildius_amd64 | Adam Gardiner: 4bdd3df09; 1756 files, 6036 examples, 20232 expectations, 1 failure, 1 error; http://rafb.net/p/53j0hD59.html |
| 02:15:20 | djwhitt | rubuildius_amd64 lives! |
| 02:15:26 | Defiler | OK, I'll leave it to you, then. Heh |
| 02:16:05 | djwhitt | it's running Gentoo in case anyone is curious |
| 02:17:13 | ezmobius | gentoo ftw |
| 02:18:23 | womble | Does anyone ever go through the output of ./bin/rspec tag -g fails <dir> and untag specs that are passing? |
| 02:18:33 | womble | Just curious... |
| 02:19:11 | Defiler | You mean for specs that start passing by 'accident'? |
| 02:19:24 | Defiler | (as a side-effect of another fix) |
| 02:19:47 | Defiler | Presumably, though we should probably make that be somebody's job |
| 02:21:59 | womble | Defiler: Yeah, that's the one. I've noticed that when I'm fixing some high-level spec, I sometimes fix something lower-level that's probably specced somewhere. I wondered if it'd be worth my time to do that now and then when I'm feeling "low energy" |
| 02:22:37 | UncleD enters the room. | |
| 02:23:24 | boyscout | 1 commit by Adam Gardiner |
| 02:23:25 | boyscout | * Add ivars command to Debugger; shows current instance variables; 4d427ae |
| 02:25:07 | jtoy leaves the room. | |
| 02:26:25 | bremac leaves the room. | |
| 02:26:55 | radarek leaves the room. | |
| 02:27:09 | kamal_fariz | womble: you gotta be extra careful with those. I cleared the tags once before, everything was alright on my machine. some of the bots went nuts though. |
| 02:29:17 | womble | kamal_fariz: Yeah, I know that the fix might be platform-specific, but you're always going to have that problem, even for fixes you've explicitly made. Cross-platform compatibility sucks. <grin> |
| 02:29:44 | rubuildius_amd64 | Adam Gardiner: 4d427ae17; 1756 files, 6036 examples, 20232 expectations, 1 failure, 1 error; http://rafb.net/p/BG26QB73.html |
| 02:34:09 | rubuildius_ppc | Adam Gardiner: 4d427ae17; 1756 files, 6039 examples, 20259 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165512 |
| 02:34:49 | dkubb enters the room. | |
| 02:44:14 | Defiler | We should probably make the build bots fancy enough to keep track of that for us |
| 02:44:37 | Defiler | Like, having a command we could send them to run all the specs and tell us which were excluded but passed anyway |
| 02:48:49 | RyanTM leaves the room. | |
| 02:49:36 | RyanTM enters the room. | |
| 02:52:46 | boyscout | 1 commit by Matt Palmer |
| 02:52:47 | boyscout | * Don't assume that the rbx command is in the root of the tree; a2e8e62 |
| 02:53:31 | roo leaves the room. | |
| 02:57:45 | jinjing enters the room. | |
| 02:59:46 | rubuildius_amd64 | Matt Palmer: a2e8e6294; 1756 files, 6036 examples, 20232 expectations, 1 failure, 1 error; http://rafb.net/p/21otjX31.html |
| 03:00:27 | ezmobius leaves the room. | |
| 03:03:53 | jtoy enters the room. | |
| 03:04:16 | rubuildius_ppc | Matt Palmer: a2e8e6294; 1756 files, 6039 examples, 20259 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165523 |
| 03:11:08 | wmoxam enters the room. | |
| 03:12:11 | dewd leaves the room. | |
| 03:14:24 | binary42 leaves the room. | |
| 03:16:07 | brother_rspec enters the room. | |
| 03:16:24 | mernen leaves the room. | |
| 03:21:05 | KirinDave enters the room. | |
| 03:22:56 | cavalle leaves the room. | |
| 03:23:25 | cavalle enters the room. | |
| 03:31:43 | lachie leaves the room. | |
| 03:34:58 | cavalle_ enters the room. | |
| 03:36:30 | KirinDave leaves the room. | |
| 03:38:35 | srbaker enters the room. | |
| 03:42:26 | wmoxam leaves the room. | |
| 03:44:21 | perplexes leaves the room. | |
| 03:44:37 | perplexes enters the room. | |
| 03:47:58 | crafterm leaves the room. | |
| 03:50:48 | cavalle leaves the room. | |
| 03:55:09 | webmat leaves the room. | |
| 04:00:30 | AndrewO enters the room. | |
| 04:01:13 | mediogre enters the room. | |
| 04:08:01 | jtoy leaves the room. | |
| 04:11:43 | GMFlash leaves the room. | |
| 04:14:13 | jtoy enters the room. | |
| 04:19:28 | therealadam leaves the room. | |
| 04:25:41 | cavalle enters the room. | |
| 04:25:41 | cavalle_ leaves the room. | |
| 04:28:42 | mutle leaves the room. | |
| 04:30:58 | mutle enters the room. | |
| 04:37:54 | benburkert leaves the room. | |
| 04:40:37 | AndrewO leaves the room. | |
| 04:41:42 | cavalle leaves the room. | |
| 04:43:20 | cavalle enters the room. | |
| 04:44:19 | cavalle leaves the room. | |
| 04:44:40 | cavalle enters the room. | |
| 04:45:33 | cavalle_ enters the room. | |
| 04:45:46 | cavalle leaves the room. | |
| 04:48:14 | benburkert enters the room. | |
| 04:50:28 | tlockney enters the room. | |
| 04:53:26 | miamoto_musashi leaves the room. | |
| 04:57:04 | gnufied enters the room. | |
| 04:59:53 | KirinDave enters the room. | |
| 05:02:00 | jinjing leaves the room. | |
| 05:04:45 | jtoy leaves the room. | |
| 05:09:36 | agardiner leaves the room. | |
| 05:10:40 | srbaker leaves the room. | |
| 05:11:24 | jtoy enters the room. | |
| 05:19:23 | random8r leaves the room. | |
| 05:19:26 | jinjing enters the room. | |
| 05:19:58 | bitbang enters the room. | |
| 05:22:05 | kamal_fariz | i'm tempted to commit the result of ./bin/mspec tag -g fails -R fails spec/ruby/1.8/core/ -fa |
| 05:22:31 | kamal_fariz | green in rbx, mri .. just waiting for jruby to finish checkout and build |
| 05:22:38 | bitbang leaves the room. | |
| 05:22:53 | bitbang enters the room. | |
| 05:28:23 | KirinDave leaves the room. | |
| 05:35:48 | boyscout | 1 commit by MenTaLguY |
| 05:35:49 | boyscout | * still not entirely right, but better; I should not be trying to do this; 0125cfd |
| 05:36:40 | brixen | kamal_fariz: how many tags were deleted? |
| 05:38:36 | brixen | kamal_fariz: also, jruby uses a separate set of tag files, afaik |
| 05:42:14 | mediogre leaves the room. | |
| 05:44:50 | rubuildius_amd64 | MenTaLguY: 0125cfdb9; 1756 files, 6036 examples, 20232 expectations, 1 failure, 1 error; http://rafb.net/p/gZkeV072.html |
| 05:46:09 | headius enters the room. | |
| 05:49:03 | RyanTM leaves the room. | |
| 05:49:42 | rubuildius_ppc | MenTaLguY: 0125cfdb9; 1756 files, 6039 examples, 20259 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165565 |
| 05:55:39 | headius leaves the room. | |
| 05:56:04 | headius enters the room. | |
| 06:08:36 | rby enters the room. | |
| 06:14:22 | _martinS_ leaves the room. | |
| 06:17:19 | cavalle enters the room. | |
| 06:17:19 | cavalle_ leaves the room. | |
| 06:20:04 | rue | Damnit, I forgot again. Which is better, VMWare or Parallels? |
| 06:21:49 | evan | there about the same |
| 06:21:58 | evan | i guess VMWare has a little better arch these days |
| 06:22:08 | evan | same for what I typically do though |
| 06:22:27 | tmornini enters the room. | |
| 06:22:55 | jtoy leaves the room. | |
| 06:22:55 | ctennis leaves the room. | |
| 06:23:08 | GMFlash enters the room. | |
| 06:23:21 | jtoy enters the room. | |
| 06:23:21 | ctennis enters the room. | |
| 06:23:38 | jtoy leaves the room. | |
| 06:25:03 | jtoy enters the room. | |
| 06:26:51 | headius leaves the room. | |
| 06:37:55 | perplexes leaves the room. | |
| 06:39:52 | kamal_fariz | brixen: 45 tags deleted |
| 06:40:23 | lachie leaves the room. | |
| 06:40:38 | lachie enters the room. | |
| 06:41:40 | brixen | kamal_fariz: nice :) |
| 06:41:54 | kamal_fariz | so i'll commit it then |
| 06:42:11 | kamal_fariz | hope it won't screw up on other platforms |
| 06:42:22 | lachie leaves the room. | |
| 06:43:22 | mediogre enters the room. | |
| 06:43:54 | boyscout | 1 commit by Kamal Fariz Mahyuddin |
| 06:43:54 | boyscout | * Remove fail tags from passing ruby/1.8/core specs; 33890d9 |
| 06:50:39 | rubuildius_amd64 | Kamal Fariz Mahyuddin: 33890d9a7; 1756 files, 6075 examples, 20326 expectations, 1 failure, 1 error; http://rafb.net/p/lM18gI19.html |
| 06:50:57 | kamal_fariz | yay amd64 |
| 06:54:55 | rubuildius_ppc | Kamal Fariz Mahyuddin: 33890d9a7; 1756 files, 6078 examples, 20353 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165578 |
| 06:56:30 | kamal_fariz | awesome |
| 06:57:30 | KirinDave enters the room. | |
| 06:59:56 | dkubb leaves the room. | |
| 07:04:41 | benburkert enters the room. | |
| 07:05:00 | rby leaves the room. | |
| 07:06:53 | benburkert leaves the room. | |
| 07:11:22 | KirinDave leaves the room. | |
| 07:15:58 | jero5 leaves the room. | |
| 07:19:06 | radarek enters the room. | |
| 07:22:14 | cjheath_ enters the room. | |
| 07:22:22 | boyscout | 1 commit by Tom Mornini |
| 07:22:23 | boyscout | * Increase count to reduce effects of startup overhead, and close opened files; 6127888 |
| 07:24:38 | cjheath leaves the room. | |
| 07:30:42 | rubuildius_amd64 | Tom Mornini: 612788892; 1756 files, 6075 examples, 20326 expectations, 1 failure, 1 error; http://rafb.net/p/082jhA40.html |
| 07:30:54 | evan | hm. what should I talk about at my rubyfools keynote |
| 07:30:55 | evan | .... |
| 07:31:47 | imajes enters the room. | |
| 07:32:15 | womble | evan: Does it have to be fool-related? |
| 07:32:28 | evan | not as far as I know. |
| 07:32:34 | jammi | rails or something related, maybe? |
| 07:32:34 | KirinDave enters the room. | |
| 07:32:37 | evan | it has to be ruby related |
| 07:32:40 | evan | thats all |
| 07:32:48 | evan | code, community, anything |
| 07:33:00 | evan | it's before a social event |
| 07:33:10 | evan | what would you guys be interested in hearing, were you to be there |
| 07:33:21 | jammi | i'd suggest concentrating on the community part |
| 07:33:24 | evan | maybe i'll make up some bullshit graphs again |
| 07:33:28 | evan | people loved that |
| 07:33:40 | jammi | it's at least as important as technology in open-source projects. |
| 07:33:45 | dbussink | graph plotting world domination :) |
| 07:34:02 | evan | oh |
| 07:34:04 | evan | thats a good one |
| 07:34:23 | evan | i'll be java versus ruby on a bar chart, graphed against fun/nanosecond |
| 07:34:27 | womble | What about how the rubinius specs are giving the entire Ruby world some idea of what the language is supposed to look like? |
| 07:34:27 | rubuildius_ppc | Tom Mornini: 612788892; 1756 files, 6078 examples, 20353 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165582 |
| 07:34:38 | evan | i'll throw in a crap math equation to go with it |
| 07:34:57 | evan | womble: thats a good one |
| 07:35:13 | evan | yeah, i've been thinking about talking about how great it is that the whole community is moving forward now |
| 07:35:39 | brixen | evan: when is that conf again? |
| 07:36:03 | womble | That's it -- we've got specs that MRI, jruby, rubinius, can all use to define the language -- and hopefully avoid more API breaking in 1.8.x releases. <grin> |
| 07:36:08 | evan | brixen: april 1st |
| 07:36:14 | evan | hence the name |
| 07:36:15 | brixen | ahh ok |
| 07:36:16 | brixen | heh |
| 07:36:20 | dbussink | for who wants to know btw, i passed my thesis exam :) |
| 07:36:22 | womble | Hahah, cool naming convention. |
| 07:36:29 | dbussink | i can call myself master of science now |
| 07:36:30 | evan | dbussink: yay! congrats! |
| 07:36:31 | womble | dbussink: Always a good thing. Congrats. |
| 07:36:37 | evan | master bussink! |
| 07:36:40 | brixen | dbussink: woohoo, congrats! |
| 07:36:57 | dbussink | thnx :) |
| 07:37:10 | evan | when I see goodney, I call him master goodney sometimes |
| 07:37:23 | evan | dbussink: you going up to copenhagen at the end of the month? |
| 07:37:39 | dbussink | wasn't planning to |
| 07:37:59 | evan | ah, ok. |
| 07:38:00 | evan | just curious. |
| 07:38:13 | dbussink | well, it's a bit too far to just go |
| 07:38:29 | dbussink | and i'd probably have to pay for it myself :P |
| 07:38:40 | dbussink | new boss is already sponsoring my portland trip |
| 07:39:08 | evan | cool, I'll see ya then |
| 07:39:15 | evan | we can use the bosses expense card then :D |
| 07:39:22 | dbussink | hehe :) |
| 07:39:28 | antares_ enters the room. | |
| 07:39:34 | dbussink | going anywhere else except copenhagen then? |
| 07:39:43 | evan | oslo |
| 07:39:52 | evan | abby and I are staying pretty much in the city I think |
| 07:39:56 | evan | both cities |
| 07:39:58 | dbussink | ah, that's the wrong direction for me to pay a visit :P |
| 07:40:02 | evan | heh |
| 07:40:14 | evan | portland it is then |
| 07:40:17 | dbussink | yeah |
| 07:40:21 | evan | with fresh stroopwaffles! |
| 07:40:45 | dbussink | yeah, i still remember my promise |
| 07:40:49 | evan | :D |
| 07:41:04 | dbussink | although i'm not standing for the freshness after the 14 hour flight :p |
| 07:41:13 | evan | hehe |
| 07:41:16 | evan | freshish |
| 07:41:17 | evan | :) |
| 07:45:21 | dbussink | maybe i can take some extra and start a street selling business |
| 07:45:32 | dbussink | pssst, ssht, wanna buy stroopwafels? |
| 07:45:54 | evan | hah |
| 07:46:00 | evan | you could make a bundle doing that |
| 07:47:29 | dbussink | that's what i've been thinking |
| 07:48:25 | dbussink | brixen: any idea whether mspec is going to support pending stuff? |
| 07:49:21 | imajes leaves the room. | |
| 07:50:24 | brixen | dbussink: I'm not terribly inclined to |
| 07:50:31 | brixen | why not just write the spec? |
| 07:50:36 | brixen | we have tags for excluding stuff |
| 07:50:58 | dbussink | well, there are for example some tickets that partially spec stuff in stdlib |
| 07:51:29 | brixen | how do those need 'pending'? |
| 07:51:59 | dbussink | well, if those tickets are applied, it's bound to happen that the remaining part is forgotten and not specced |
| 07:53:01 | brixen | right, but pending doesn't solve that |
| 07:53:24 | dbussink | i know, but it could raise some concern for other people perhaps |
| 07:53:31 | KirinDave leaves the room. | |
| 07:53:31 | brixen | there are likely always a set of specs not yet written but technically should exist in the universe of discourse |
| 07:54:02 | dbussink | yeah, that's true, but i was thinking about how to not forget these kinds of things |
| 07:54:20 | brixen | we could use the 'incomplete' tag |
| 07:54:30 | brixen | it wouldn't be excluded but you could list them |
| 07:54:49 | brixen | or we could use more than 'fails' to exclude from ci |
| 07:55:02 | dbussink | something like that perhaps |
| 07:55:10 | evan | the big thing is knowing whats incomplete |
| 07:55:16 | brixen | if there is something that is a huge concern, just add a spec that flunks |
| 07:55:35 | brixen | incomplete or not is meta-data |
| 07:55:50 | brixen | and there is not a good way to know without an audit process |
| 07:55:59 | brixen | I'm not in favor of 'pending' being our audit process |
| 07:56:15 | dbussink | well, what i was mainly thinking of for example the spec file generation for a new class |
| 07:56:43 | dbussink | people put it specs for a few methods and then leave it |
| 07:56:51 | w1rele55 leaves the room. | |
| 07:56:58 | brixen | make mkspec add failing stubs if the file is empty |
| 07:57:14 | dbussink | maybe something like that |
| 07:57:17 | brixen | it "is not completely spec'd" do flunk end |
| 07:57:24 | brixen | and remove those in the audit process |
| 07:57:24 | geekounet leaves the room. | |
| 07:58:27 | evan | i like that |
| 07:58:32 | evan | because nothing is 'hidden' |
| 07:58:32 | dbussink | well, i got this from the ostruct ticket on lighthouse |
| 07:58:54 | brixen | I just don't think having 'pending' solves the problem of not knowing if something is reasonably spec'd |
| 07:59:06 | brixen | it's a false sense of security |
| 07:59:19 | w1rele55 enters the room. | |
| 07:59:19 | brixen | we seriously need an audit process |
| 07:59:23 | brixen | that is meta-data |
| 07:59:47 | evan | what's in the audit process? |
| 07:59:58 | brixen | needs to be defined |
| 08:00:20 | kamal_fariz | evan: a run down of the various CS papers you implemented and their impact on the VM would be cool |
| 08:00:28 | brixen | suppose we think we've spec'd IO since we're using libc |
| 08:00:38 | evan | i'm doing a rubinius technical intro that i'm going to go over that at |
| 08:00:42 | brixen | then jruby discovers that we've missed stuff because they are implementing from scratch |
| 08:00:50 | antares | kamal_fariz, where one can read those CS papers? :) |
| 08:00:53 | brixen | there needs to be a way to consolidate that information |
| 08:02:22 | kamal_fariz | antares_: i dunno .. get the list of must reads from evan |
| 08:03:15 | antares | evan, I already asked you but still :) what beside Baker's gc book and The Blue book is a good way to learn about ideas shotgun is built upon? |
| 08:04:24 | brixen | lordy, make has probably the most useless error messages ever |
| 08:04:35 | brixen | it might as well just say: broked |
| 08:04:48 | evan | antares_: i need to put together a list |
| 08:04:58 | antares | is it just me or rubini.us is out? I cannot pull from it, ping it or access it in the browser |
| 08:05:27 | tmornini | rubini.us works for me |
| 08:05:34 | antares | evan, may I ask you to really do it anytime soon? :) we all need it, man! |
| 08:05:36 | antares | tmornini, ok |
| 08:05:38 | evan | :D |
| 08:07:06 | antares | evan, start small, put 3 or 4 titles on a page at LH :) then move on when you come across it next time :) |
| 08:07:41 | evan | suer |
| 08:08:29 | kAworu leaves the room. | |
| 08:08:41 | kAworu enters the room. | |
| 08:13:38 | cavalle leaves the room. | |
| 08:16:52 | rudebwoy_ enters the room. | |
| 08:17:07 | geekounet enters the room. | |
| 08:17:19 | rudebwoy leaves the room. | |
| 08:17:23 | kamal_fariz | antares_: next time use this http://downforeveryoneorjustme.com/ |
| 08:17:53 | antares | kamal_fariz, thanks did not know about that |
| 08:18:06 | evan | but what if that site is down!?! |
| 08:18:07 | kamal_fariz | it's from alex payne |
| 08:18:24 | kamal_fariz | according to it, rubini.us is down |
| 08:18:46 | antares | and it says to me "it's just you" :) |
| 08:20:06 | GMFlash leaves the room. | |
| 08:24:38 | thehcdreamer enters the room. | |
| 08:26:35 | UncleD leaves the room. | |
| 08:26:39 | UncleD enters the room. | |
| 08:33:28 | tmornini leaves the room. | |
| 08:35:47 | motion | haha thats cool |
| 08:47:20 | cavalle enters the room. | |
| 08:51:24 | mutle leaves the room. | |
| 08:55:57 | wifelette leaves the room. | |
| 08:59:22 | mutle enters the room. | |
| 08:59:39 | d2dchat leaves the room. | |
| 08:59:59 | wycats leaves the room. | |
| 09:00:20 | jtoy leaves the room. | |
| 09:02:15 | mae leaves the room. | |
| 09:09:07 | cavalle_ enters the room. | |
| 09:09:52 | womble | So, I've got a spec that is failing under MRI. What's the procedure for that? |
| 09:11:04 | Arjen_ enters the room. | |
| 09:11:13 | dbussink | womble: what platform? |
| 09:11:47 | womble | dbussink: Debian Etch, Ruby 1.8.5. |
| 09:12:08 | dbussink | womble: make sure to test with 1.8.6-p111 |
| 09:12:11 | womble | dbussink: What's really odd is that it's a spec that's shared between two methods (IO#write and IO#write_nonblock) and it's only the IO#write version that's failing. |
| 09:12:16 | dbussink | because that's the reference implementation |
| 09:12:26 | dbussink | could be a bug in 1.8.5 |
| 09:12:27 | womble | dbussink: Ah, of course. I'll upgrade and give it all another go. |
| 09:12:31 | womble | thanks. |
| 09:13:21 | womble | dbussink: Does it have to be exactly 1.8.6-p111? Is 1.8.6-p114 also OK? |
| 09:13:39 | dbussink | that should probably work too yeah |
| 09:13:44 | dbussink | perhaps good to test with :0 |
| 09:13:45 | dbussink | :) |
| 09:14:18 | dbussink | ah, i see 114 is the version now that's on ruby-lang.org |
| 09:14:25 | dbussink | we should definitely test with that then :) |
| 09:17:46 | dbussink | womble: you're backporting the version from unstable? |
| 09:18:22 | womble | dbussink: Actually, I found a 1.8.6.111 version I had laying around from another machine, and I'm using that. The backport was going to be my next step. <grin> |
| 09:18:36 | dbussink | ah, cause i'm building one right now |
| 09:18:40 | womble | Speaking of backporting and packaging, has anyone considered .debs for rubinius? |
| 09:18:52 | dbussink | i thought about it |
| 09:18:59 | dbussink | but we're not really there yet |
| 09:19:07 | dbussink | but if you want, you could take a look |
| 09:19:10 | dbussink | at how hard it would be |
| 09:19:16 | dbussink | probably not that hard |
| 09:20:01 | womble | The packaging is simple, but the integration with MRI and the Debian packaging could be exciting. I might start a discussion on the debian-ruby list about it, in preparation for official package. |
| 09:20:42 | cavalle leaves the room. | |
| 09:24:55 | dbussink | yeah, i know about the differences in opinion wrt to for examle gem versioning |
| 09:25:06 | dbussink | so there probably will be discussion |
| 09:26:24 | womble | dbussink: For rubinius packaging, it's mostly about making sure no toes are stepped on when you've got ruby1.8 and rbx packages installed, but so they can both share (f.ex.) installed pure ruby libraries. It's a pity that the stdlib and "third-party" libraries are mixed in /usr/lib/ruby/1.8 |
| 09:26:32 | womble | Gems are a whole *other* kettle of poop |
| 09:26:51 | dbussink | you're part of the ruby debian team? |
| 09:27:30 | dbussink | the mixing of stdlib and 3rd party stuff is definitely a problem that needs to be handled |
| 09:28:38 | rue | Weell, it is 5:30 and I am wide awake *sigh |
| 09:29:20 | wycats enters the room. | |
| 09:29:29 | dbussink | rue: time to force yourself back into a regular rhythm then :P |
| 09:29:33 | nemerle_afk leaves the room. | |
| 09:29:50 | womble | dbussink: Not really a core member, but I am a DD, and I've never shrunk from a good argument. <grin> |
| 09:30:03 | womble | dbussink: Oh, on the original topic, that spec is still failing with 1.8.6p111. |
| 09:30:17 | womble | And it's still only the #write version, not the #write_nonblock. |
| 09:30:21 | rue | I think kamal_fariz made changes there |
| 09:30:30 | rue | Or combined the two, something |
| 09:30:49 | kamal_fariz | i aliased it |
| 09:30:55 | kamal_fariz | oh you mean specs |
| 09:31:08 | kamal_fariz | yeah, i used shared specs for both of them |
| 09:31:09 | rue | Could be a platform difference too, I suppose |
| 09:31:20 | dbussink | yeah, there are some more of thoe |
| 09:31:22 | dbussink | those |
| 09:31:36 | dbussink | the File#chmod always succeeds with any numeric values for example |
| 09:32:09 | dbussink | that fails on freebsd because there it doesn't succeed |
| 09:32:15 | dbussink | it's mapped directly to the platform functions |
| 09:32:32 | dbussink | do we mimic that or do we want to create some consistency |
| 09:32:33 | dbussink | ? |
| 09:33:12 | rue | I think it should be sane |
| 09:34:46 | wifelette enters the room. | |
| 09:34:57 | rue | Any numeric as in 9999 or in that it umask/perms do not matter? |
| 09:36:10 | dbussink | jah |
| 09:36:14 | dbussink | yeah |
| 09:37:03 | dbussink | i think we can't really determine whether it's sane before calling it i think |
| 09:37:42 | rue | Well, er 999 is not :P |
| 09:38:13 | rue | Oh, wait.. |
| 09:38:30 | rue | Is it automatically interpreted as octal? |
| 09:39:20 | womble | rue: I don't think so. |
| 09:39:41 | rue | I would *hope* not but that is the only way 999 would be sane (ish) |
| 09:41:52 | dbussink | well, i don't know if we can cover everything before calling the ffi function |
| 09:42:06 | dbussink | and apparently not every platform generates an error if the value was invalid |
| 09:43:20 | jinjing_ enters the room. | |
| 09:43:36 | jinjing leaves the room. | |
| 09:43:55 | shingara leaves the room. | |
| 09:46:39 | womble | Can someone run ./bin/mspec -t ruby spec/ruby/1.8/core/io/write_spec.rb on current head and tell me if they get a failure? |
| 09:48:22 | rue | Well damn |
| 09:49:04 | womble | Oh, and more interestingly, run ./bin/mspec -t ruby spec/ruby/1.8/core/io/write_nonblock_spec.rb and see if they *don't* get a failure. |
| 09:50:40 | rue | It IS being interpreted as octal on OSX at least |
| 09:51:00 | dbussink | womble: they're ok on os x |
| 09:51:02 | rue | File.chmod 999, '/tmp/blah' == File.chmod 01747, '/tmp/blah' |
| 09:51:28 | womble | rue: I think you might have your conclusion backwards. |
| 09:51:31 | dbussink | you mean intepreted as int, not octal? |
| 09:51:45 | womble | rue: 999b10 => 1747b8, I think. |
| 09:51:50 | womble | is too lazy to check |
| 09:52:14 | rue | I have confused myself too but |
| 09:52:45 | rue | 01747 == sticky + rwx r rwx |
| 09:53:04 | rue | 999 == sticky + rwx r rwx |
| 09:53:23 | dbussink | yeah, but the first one is the octal :) |
| 09:54:03 | dbussink | but the problem here is platform idiosyncrasies, and the question is how to handle that |
| 09:54:07 | dbussink | or just let them be |
| 09:54:29 | rue | Right, so the value contained by 999 is accepted as an integer but treated as if it had been an octal |
| 09:54:52 | dbussink | well, it just uses the bit pattern 999 represents |
| 09:54:54 | womble | rue: They're both numbers. The only difference is in the representation we give to the number when we write it. |
| 09:55:05 | rue | Right. |
| 09:55:14 | rue | Which is problematic. |
| 09:55:57 | rue | It also seems to happily ignore anything beyond its assigned bits |
| 09:56:44 | womble | rue: It's not problematic unless you muck up your program. <grin> |
| 09:59:25 | dbussink | womble: same problem for me on linux |
| 10:00:00 | womble | dbussink: So your IO#write fails the spec? How interesting. |
| 10:00:13 | dbussink | on linux that is yeah |
| 10:00:16 | dbussink | on os x it's fine |
| 10:01:31 | womble | Well, well, well. I might get a patch into two Ruby interpreters this month. |
| 10:03:39 | dbussink | looks like a bug on linux then? |
| 10:03:43 | dbussink | in mri? |
| 10:04:37 | womble | dbussink: It's the only thing that makes much sense. I'd certainly expect #write to work the way the spec says it should, and presumably it worked OK for someone. kamal_fariz, what's your platform? |
| 10:05:07 | kamal_fariz | womble: leopard x86 |
| 10:05:24 | womble | kamal_fariz: Cheers. |
| 10:06:35 | womble | dbussink: Definitely looks looks like it's a Linux-specific bug that's still present in the latest MRI release. |
| 10:06:50 | dbussink | well, good we have the specs :) |
| 10:06:59 | dbussink | but write doesn't seem like something very obscure |
| 10:07:04 | dbussink | that no one else ever found it... |
| 10:07:37 | dbussink | i've found some stuff in mri when writing specs too, but usually it was some nasty edge case that wasn't really used in any system out there |
| 10:09:46 | womble | dbussink: This is an edgecase too -- how many people would write to a part of an already-existing file using #write and then read from it using #sysread without seeking anywhere? That #write/#sysread pair is an important part of the bug -- #write/#read works fine. |
| 10:10:07 | dbussink | ah ok, well, didn't look in the spec in depth |
| 10:10:13 | womble | I reckon the Linux implementation of read/write in MRI is different to on OS X, and it's using different primitives for no adequately explained reason. |
| 10:11:46 | womble | Probably caching related. |
| 10:14:54 | boyscout | 1 commit by Matt Palmer |
| 10:14:55 | boyscout | * Fix up IO#write spec so it works cross-platform; c4a4dc1 |
| 10:17:28 | rue | Mm, mixing sys and non-sys is undefined, technically |
| 10:17:58 | womble | rue: Really? I didn't know that. |
| 10:18:44 | womble | rue: Would that mean that we need to detect whether write or syswrite is being called, and call the matching read method? |
| 10:18:57 | lachie enters the room. | |
| 10:20:07 | rue | In the specs? Actually probably that those should not be combined |
| 10:21:16 | womble | Yeah, in the specs. kamal_fariz, any opinion? |
| 10:24:26 | cjheath_ leaves the room. | |
| 10:24:59 | rubuildius_ppc | Matt Palmer: c4a4dc19a; 1756 files, 6078 examples, 20353 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/165609 |
| 10:25:18 | womble | Error? What error? There can be no ERROR! |
| 10:25:31 | _mutle enters the room. | |
| 10:25:43 | rubuildius_amd64 | Matt Palmer: c4a4dc19a; 1756 files, 6075 examples, 20326 expectations, 1 failure, 1 error; http://rafb.net/p/sr60fJ33.html |
| 10:25:51 | womble | Oh, that one. Bah, I'm fixing that elsewhere. Failure? What now? |
| 10:25:54 | rue | Looks like it is contagious |
| 10:26:27 | womble | That amd64 failure is... odd. |
| 10:33:30 | rue | Mm, both seem reasonable-ish |
| 10:41:50 | mutle leaves the room. | |
| 10:46:10 | boyscout | 1 commit by Matt Palmer |
| 10:46:11 | boyscout | * Don't assume that IO.new called without a mode means "readonly"; dfc4a25 |
| 10:46:27 | womble | C'mon, rubuildiusen |
| 10:51:45 | dbussink | that failure probably needs the nasty strtod that is going to be imported |
| 10:55:39 | rubuildius_amd64 | Matt Palmer: dfc4a2525; 1756 files, 6075 examples, 20326 expectations, 1 failure, 0 errors; http://rafb.net/p/WYHSgd87.html |
| 10:56:41 | webmat enters the room. | |
| 10:56:48 | webmat leaves the room. | |
| 10:56:54 | octopod enters the room. | |
| 10:57:53 | womble | Well, that's the best I was expecting. Off to bed for me. Bugger me, 4am. |
| 10:58:02 | womble | This stuff is addictive. |
| 10:58:17 | womble | It's like a huge choose-your-own-adventure. |
| 10:59:24 | webmat enters the room. | |
| 10:59:44 | rubuildius_ppc | Matt Palmer: dfc4a2525; 1756 files, 6078 examples, 20353 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/165623 |
| 11:08:51 | mediogre leaves the room. | |
| 11:16:52 | wifelette leaves the room. | |
| 11:17:11 | radarek leaves the room. | |
| 11:19:09 | wifelette enters the room. | |
| 11:37:56 | cjheath enters the room. | |
| 11:40:11 | octopod_ enters the room. | |
| 11:42:54 | octopod leaves the room. | |
| 11:46:21 | wdperson enters the room. | |
| 11:48:39 | ctennis leaves the room. | |
| 11:49:03 | lachie leaves the room. | |
| 11:49:43 | lachie enters the room. | |
| 11:53:28 | cjheath leaves the room. | |
| 12:12:09 | w1rele55 leaves the room. | |
| 12:18:45 | chris2 enters the room. | |
| 12:25:10 | jtoy enters the room. | |
| 12:33:35 | obvio171_ enters the room. | |
| 12:38:30 | w1rele55 enters the room. | |
| 12:48:33 | mediogre enters the room. | |
| 12:51:07 | obvio171 leaves the room. | |
| 12:52:20 | skaar enters the room. | |
| 12:52:26 | dewd enters the room. | |
| 12:55:29 | AndrewO enters the room. | |
| 13:04:15 | AndrewO leaves the room. | |
| 13:09:08 | mediogre leaves the room. | |
| 13:20:31 | RyanTM enters the room. | |
| 13:22:47 | GMFlash enters the room. | |
| 13:36:14 | binary42 enters the room. | |
| 13:36:14 | binary42 leaves the room. | |
| 13:36:55 | octopod leaves the room. | |
| 13:53:14 | AndrewO enters the room. | |
| 13:53:39 | moofbong enters the room. | |
| 13:54:18 | felix enters the room. | |
| 14:09:19 | RyanTM leaves the room. | |
| 14:10:28 | RyanTM enters the room. | |
| 14:17:58 | wmoxam enters the room. | |
| 14:18:15 | srbaker enters the room. | |
| 14:29:30 | jinjing_ leaves the room. | |
| 14:29:38 | Fullmoon enters the room. | |
| 14:30:54 | Fullmoon leaves the room. | |
| 14:32:52 | d2dchat enters the room. | |
| 14:43:59 | agile leaves the room. | |
| 14:46:33 | jinjing enters the room. | |
| 14:48:05 | therealadam enters the room. | |
| 14:50:49 | KirinDave enters the room. | |
| 15:02:36 | srbaker leaves the room. | |
| 15:03:34 | foysavas leaves the room. | |
| 15:11:16 | jinjing_ enters the room. | |
| 15:11:37 | wifelette_ enters the room. | |
| 15:15:23 | srbaker enters the room. | |
| 15:21:13 | foysavas enters the room. | |
| 15:27:00 | wifelette leaves the room. | |
| 15:28:19 | jinjing leaves the room. | |
| 15:46:18 | ttmrichter leaves the room. | |
| 15:46:35 | nicksieger enters the room. | |
| 15:52:45 | enebo enters the room. | |
| 15:57:19 | KirinDave leaves the room. | |
| 16:13:39 | jtoy leaves the room. | |
| 16:25:08 | agile enters the room. | |
| 16:28:20 | nicksieger leaves the room. | |
| 16:29:47 | enebo leaves the room. | |
| 16:30:01 | enebo enters the room. | |
| 16:35:43 | danm_ enters the room. | |
| 16:38:08 | srbaker leaves the room. | |
| 16:49:36 | moofbong leaves the room. | |
| 16:51:18 | antares_ leaves the room. | |
| 16:53:54 | srbaker enters the room. | |
| 16:58:49 | lopex enters the room. | |
| 17:00:07 | KirinDave enters the room. | |
| 17:00:30 | fizx enters the room. | |
| 17:01:09 | fizx leaves the room. | |
| 17:03:04 | chris2 leaves the room. | |
| 17:05:10 | enebo leaves the room. | |
| 17:05:29 | fizx enters the room. | |
| 17:06:44 | cavalle_ leaves the room. | |
| 17:11:16 | GMFlash leaves the room. | |
| 17:22:57 | mutle leaves the room. | |
| 17:30:49 | tizianobis enters the room. | |
| 17:41:44 | yaroslav enters the room. | |
| 17:42:04 | yaroslav leaves the room. | |
| 17:42:31 | thehcdreamer leaves the room. | |
| 17:42:52 | cavalle enters the room. | |
| 17:43:06 | fizx leaves the room. | |
| 17:43:23 | cavalle leaves the room. | |
| 17:57:22 | Arjen_ leaves the room. | |
| 18:03:25 | brixen | interesting, it would appear that compile opts makes strtod segfault on gentoo 64 |
| 18:03:56 | brixen | fortunately I only have 3 to test, since this system is so slow |
| 18:05:08 | benburkert enters the room. | |
| 18:05:59 | Defiler | Surprising to hear that |
| 18:08:39 | brixen | yeah |
| 18:08:51 | brixen | it's not -funroll-loops |
| 18:09:23 | lopex | re, intrinsics ? |
| 18:09:40 | brixen | otoh, perhaps not surprising, as the original makefile in the freebsd source did not have any opts |
| 18:10:03 | yipstar enters the room. | |
| 18:10:14 | brixen | I'm testing the -O2 and -finline-functions now |
| 18:11:05 | lopex | gcc 4.x supports vectorization |
| 18:11:41 | lopex | is strtod considered an intrinsic in gcc 4.x |
| 18:11:58 | lopex | ? |
| 18:12:07 | brixen | I don't know what that means |
| 18:12:13 | brixen | with is 'instrisic' ? |
| 18:12:23 | lopex | for example strcpm |
| 18:12:24 | brixen | or intrinsic :) |
| 18:12:39 | lopex | being used very frequent it can be inlined by the compiler |
| 18:12:49 | brixen | hmm, dunno |
| 18:12:51 | lopex | (the body) |
| 18:12:56 | wmoxam leaves the room. | |
| 18:12:59 | lopex | or even generated from a template |
| 18:13:07 | brixen | it works fine if I do not specify opts, looks like -O2 is the culprit |
| 18:13:39 | lopex | O2 does not use aggressive inlining, does it ? |
| 18:14:15 | perplexes enters the room. | |
| 18:14:19 | lopex | brixen: btw, http://en.wikipedia.org/wiki/Intrinsic_function |
| 18:14:31 | brixen | ah cool, thanks |
| 18:15:06 | lopex | hotspot uses few intrinsics (e.g. System.arraycopy) |
| 18:15:13 | lopex | it's inline even it's native |
| 18:15:16 | lopex | er, inlined |
| 18:17:42 | brixen | well, removing -O2 and leaving unroll-loops and inline-functions seems fine |
| 18:18:09 | lopex | so you'll need to look at -O2 enabled options |
| 18:18:11 | FoobarWidget enters the room. | |
| 18:18:22 | brixen | yeah |
| 18:18:56 | lopex | 1.9 suffers such problems as well btw |
| 18:18:59 | brixen | lopex: btw, this is not the standard libc strtod, I've grabbed the fbsd 7 gdtoa source to import, like 1.9 |
| 18:19:08 | lopex | ah |
| 18:19:09 | FoobarWidget | does rubinius's garbage collector scan the C stack for pointers, like MRI? |
| 18:19:19 | octopod enters the room. | |
| 18:19:20 | brixen | lopex: was there a bug ticket on that? |
| 18:20:06 | lopex | brixen: dunno, I heard from folks here and there |
| 18:20:22 | brixen | FoobarWidget: someone can correct me if I'm wrong, but rbx is stackless, there's no pointers on the stack for memory to collect |
| 18:20:38 | brixen | lopex: ok, good to know though, thanks |
| 18:20:49 | lopex | brixen: -O3 afair |
| 18:20:55 | brixen | hmm |
| 18:21:44 | brixen | lopex: I think I'll punt for now, binary search of the offending opts enabled by -O2 is a pita |
| 18:22:03 | brixen | if it ends up being a perf bottleneck, we can revisit |
| 18:22:06 | Defiler | FoobarWidget: Yeah, we are stackless.. code in C extensions works the way it works in 1.8 |
| 18:22:21 | lopex | brixen: oh, hmm |
| 18:22:42 | Defiler | check out shotgun/lib/baker.c 'baker_gc_collect' for the function that does the main work |
| 18:23:20 | brixen | FoobarWidget: but objects in C ext using subtend are indirectly accessed through handles on the C side, not the direct pointer to GC memory, iiuc |
| 18:23:32 | brixen | I shall be learning this in detail shortly :) |
| 18:23:44 | FoobarWidget | is rubinius's gc incremental and generational? |
| 18:23:52 | brixen | generational |
| 18:23:52 | FoobarWidget | and does it do compaction? |
| 18:23:58 | FoobarWidget | I said "and" :) |
| 18:24:09 | FoobarWidget | that is, I presume that a gc can be both |
| 18:24:21 | brixen | young is copying collector, so I guess you get compaction with that |
| 18:24:27 | brixen | old is not compacting that I know |
| 18:24:45 | brixen | you should probably ask evan this, I'm fuzzy myself |
| 18:24:50 | lopex | old is mark&sweep ? |
| 18:25:04 | brixen | yes, I believe |
| 18:25:48 | rmm5t enters the room. | |
| 18:25:59 | FoobarWidget | so you only have two generations |
| 18:26:06 | Defiler | FoobarWidget: You can google up baker two-space to see what we do |
| 18:26:14 | FoobarWidget | but is the gc incremental as well? |
| 18:26:17 | brixen | yeah, and a special part where contexts begin life |
| 18:26:22 | brixen | not incremental no |
| 18:26:30 | brixen | yes, you can have incremental + generational |
| 18:26:33 | brixen | we don't |
| 18:27:28 | Defiler | The GC system is extremely modular. It is relatively straight-forward to swap in another |
| 18:27:35 | tizianobis_ enters the room. | |
| 18:27:39 | brixen | incremental starts to become an issue if you're trying to do stuff near real time, and you need to prevent big stops |
| 18:27:43 | Defiler | baker is just what we are using for now, until a better idea comes along |
| 18:27:50 | brixen | incremental is just N segments of a gc run |
| 18:28:17 | brixen | concurrent or parallel would be interesting |
| 18:28:35 | lopex | low pause ? |
| 18:28:41 | lopex | for gamers! |
| 18:29:08 | Defiler | incremental relies on being able to jump back into the middle of the task, though |
| 18:29:11 | wmoxam enters the room. | |
| 18:29:22 | Defiler | Which implies certain things about what your pointers point to, etc |
| 18:29:35 | brixen | right |
| 18:29:50 | brixen | you need to have a read barrier, following forward pointers |
| 18:29:54 | lopex | jvm has concurrent mark&sweep as an option, though, there are still "stop the world" phases |
| 18:29:56 | FoobarWidget | or a write barrier |
| 18:30:09 | lopex | like updating the native references |
| 18:30:29 | FoobarWidget | but would implementing write barriers be possible without breaking compatibility with the MRI API? |
| 18:30:48 | brixen | what api is that? |
| 18:30:59 | FoobarWidget | the API that all the Ruby C extensions use |
| 18:31:22 | brixen | well, for us, RSTRING, RARRAY are quite problematic |
| 18:31:26 | brixen | I'm working on that shortly |
| 18:31:39 | brixen | most of the rest of the C api doesn't appear to be a problem |
| 18:31:40 | rmm5t leaves the room. | |
| 18:31:54 | brixen | we have a bunch implemented in our subtend system (the MRI C api compat layer) |
| 18:33:06 | dkubb enters the room. | |
| 18:34:02 | brixen | interestingly, parallelizing the gc appears to have benefits. a local company doing haskell dev is giving a talk on work on a parallel, generational gc for haskell and say the observe 2x wall clock speedup on commodity 4-core machines with that |
| 18:34:20 | brixen | 2x gc time that is |
| 18:34:27 | brixen | not overall program :) |
| 18:36:07 | brixen | also, folks working on this are working on incremental, concurrent, generational (I believe) gc: www.cse.ogi.edu/PacSoft/projects/Timber/Timber-2002-04.pdf |
| 18:36:17 | imajes enters the room. | |
| 18:36:47 | Arjen_ enters the room. | |
| 18:40:45 | Defiler | Fun |
| 18:41:45 | perplexes leaves the room. | |
| 18:43:29 | perplexes enters the room. | |
| 18:45:43 | tizianobis leaves the room. | |
| 18:45:59 | rue leaves the room. | |
| 18:49:06 | evan | FoobarWidget: we already have a write barrier |
| 18:49:14 | evan | and it doesn't break MRI compat |
| 18:49:29 | evan | mainly because all C extensions see objects indirectly |
| 18:50:44 | KirinDave | evan: http://pastie.caboo.se/165776 |
| 18:51:07 | KirinDave | evan: We're discussing how ruby behaves with this code, and Defiler seems to indicate this doesn't work the same way in rubinius. |
| 18:52:07 | evan | hm. whats it doing? |
| 18:52:21 | Defiler | stand by for paste with lots of details |
| 18:52:42 | Defiler | http://rafb.net/p/cHnJlp61.html |
| 18:53:44 | evan | is it that it things / 25 # / |
| 18:53:46 | evan | is a regex? |
| 18:53:48 | evan | is that the problem |
| 18:55:00 | enebo enters the room. | |
| 18:55:04 | Defiler | It treats 'whatever' as an fcall, rather than an lvar |
| 18:55:15 | evan | course it does |
| 18:55:17 | evan | you called it |
| 18:55:25 | evan | it will never treat it like an lvar |
| 18:55:35 | evan | it's an fcall, not a vcall |
| 18:55:41 | evan | fcall is unambigious |
| 18:56:07 | Defiler | This should be invoking Fixnum#/ on 50 |
| 18:56:11 | evan | but it did that because it didn't seet he binary message |
| 18:56:16 | evan | the parser didn't see thit |
| 18:56:17 | evan | that |
| 18:56:20 | evan | it saw a regex |
| 18:56:25 | evan | which makes whatever a method name |
| 18:56:29 | evan | thats the problem |
| 18:57:52 | evan | why the lexer isn't eating everything after the # is the big question |
| 18:58:21 | tarcieri | feedback from the parser? |
| 18:59:10 | evan | i doubt it |
| 18:59:26 | evan | the lexer is the one that sees the # and should be consuming it without regard |
| 18:59:33 | evan | the test case is easy |
| 18:59:41 | evan | whatever /25 # / |
| 18:59:49 | imajes leaves the room. | |
| 19:00:04 | imajes enters the room. | |
| 19:00:17 | De |