Show enters and exits. Hide enters and exits.
| 00:02:00 | zenspider | who did the regexp engine for rubinius? |
| 00:02:12 | jinjing enters the room. | |
| 00:02:15 | zenspider | is that pulled from C or a ruby port of oni? |
| 00:07:28 | zenspider | who was just working on the syslog ffi stuff? |
| 00:07:40 | drbrain | seydar |
| 00:07:50 | drbrain | ... Ary Brown |
| 00:09:30 | zenspider | any idea how far he god? |
| 00:09:33 | zenspider | got |
| 00:09:43 | drbrain | seems to work now |
| 00:10:04 | zenspider | oh. n/m. the bug is from him and it has a patch attached... he's got commit now right? |
| 00:10:09 | zenspider | I'll assign to him |
| 00:10:14 | drbrain | yep |
| 00:10:25 | brixen | zenspider: one problem is that not everyone can close tickets |
| 00:10:34 | brixen | and I don't know exactly what perms it takes |
| 00:10:43 | brixen | I guess if you're invited to the project |
| 00:11:25 | zenspider | yeah. I can't assign to him... I'll see about promoting him |
| 00:12:55 | drbrain | does anybody here have some familiarity with the compiler? |
| 00:13:33 | zenspider | a bit... what's up? |
| 00:14:01 | zenspider | I'm kinda a post-workout tard still |
| 00:14:04 | drbrain | I'm trying to get order-of-operation to be correct |
| 00:14:15 | drbrain | so I went to Call#emit_args |
| 00:14:27 | drbrain | and changed from reverse_each to each |
| 00:14:40 | drbrain | but then the args are backwards for calling |
| 00:15:19 | drbrain | I guess I've got to change the send_stack, etc opcodes too... |
| 00:15:25 | zenspider | is this the masgn bug? or something different? |
| 00:15:35 | radarek leaves the room. | |
| 00:15:40 | drbrain | similar to the masgn bug |
| 00:16:05 | drbrain | stuff = %w[a b]; p stuff.shift, stuff.first |
| 00:16:23 | drbrain | MRI reports a, b, rubinius a, a |
| 00:17:14 | GMFlash leaves the room. | |
| 00:17:29 | zenspider | YAY! no unassigned open tickets! |
| 00:18:06 | zenspider | oh. that. that bug is gonna suck ass. |
| 00:18:24 | Defiler | yes. yes it is. |
| 00:18:58 | zenspider | I think it is gonna bite us a lot more than we think... it might be worth it to do the arm wrestling now and match ruby. |
| 00:19:17 | drbrain | I refactored part of RubyGems and hit it |
| 00:20:02 | zenspider | I think evan did it reverse for efficiency reasons... I'd rather throw that out and be more compatible |
| 00:20:19 | zenspider | but.. I'm not gonna be able to help you today on that one... no freakin' way. :) |
| 00:21:14 | drbrain | I can't figure out how cpu_send_message works now |
| 00:23:52 | enebo_ leaves the room. | |
| 00:25:19 | GMFlash enters the room. | |
| 00:30:37 | wmoxam leaves the room. | |
| 00:31:08 | nicksieger leaves the room. | |
| 00:33:39 | cremes enters the room. | |
| 00:33:49 | rubuildius_ppc enters the room. | |
| 00:35:12 | ragnard leaves the room. | |
| 00:40:03 | Defiler | Can someone explain to me why we switch to RbYAML? |
| 00:40:08 | Defiler | switched, rather |
| 00:40:23 | Defiler | Because we spent a fair amount of brainpower going to syck, for good reasons |
| 00:41:00 | drbrain | Defiler: syck was 90% broken when I tried to use it |
| 00:41:18 | drbrain | as in, none of the fancy stuff that syck was supposed to provide worked |
| 00:41:58 | Defiler | OK |
| 00:42:34 | drbrain | #to_yaml_properties, in particular, IIRC |
| 00:42:50 | drbrain | #to_yaml/YAML.load worked, but not the custom serialization |
| 00:43:28 | drbrain | there are other problems with RbYAML, so if we could go back to syck, and have the fancy stuff work, I'd be happy |
| 00:44:45 | Defiler | OK. I ask, because RbYAML is pretty damn buggy |
| 00:44:53 | Defiler | ..and I was making sure it made sense to take the time to fix all that |
| 00:46:37 | Defiler | Also, as I recall, RbYAML is unbelievably slow |
| 00:47:36 | rubuildius_ppc | Brian Ford: ba1affdd5; 1723 files, 5813 examples, 19808 expectations, 0 failures, 2 errors; http://pastie.caboo.se/paste/159582 |
| 00:47:47 | drbrain | Defiler: well, it is pure-ruby |
| 00:47:52 | Defiler | I mean, beyond that |
| 00:47:52 | drbrain | rootprry |
| 00:47:56 | drbrain | gah |
| 00:48:02 | cremes | yay! looks like libffi did cure the ppc ills |
| 00:50:10 | drbrain | yay! I have a FreeBSD-7 paralells image |
| 00:50:10 | cavalle leaves the room. | |
| 00:51:25 | brixen | cremes: would you be able to investigate those 'characterSpecial' spec failures? perhaps we need a platform guard |
| 00:51:38 | brixen | cremes: unless we've messed up the st_mode flags |
| 00:51:50 | brixen | Defiler: yeah, we should get syck running properly |
| 00:51:50 | cremes | brixen: yessir; i will check into them later tonight |
| 00:52:01 | brixen | cremes: awesome, thanks! |
| 00:52:55 | brixen | I think I'll take a shot at integrating 1.9's strtod |
| 00:53:05 | Defiler | brixen: I agree. Want to help? |
| 00:53:06 | brixen | it's just such a huge mountain of ugly C code |
| 00:53:10 | brixen | Defiler: sure |
| 00:53:11 | Defiler | brixen: Or are you saying you are on it? |
| 00:53:20 | brixen | heh, I'll help ya |
| 00:53:28 | brixen | just saying, we should use syck imo |
| 00:54:51 | brixen | Defiler: the 'huge mountain..' comment was for 1.9's strtod, not sych |
| 00:54:55 | brixen | ack |
| 00:55:06 | brixen | anyway, in case that was confusing |
| 00:55:13 | brixen | break-time, I can't type |
| 00:56:09 | headius leaves the room. | |
| 00:58:36 | jinjing leaves the room. | |
| 01:04:49 | wifelette leaves the room. | |
| 01:06:37 | olabini leaves the room. | |
| 01:12:28 | agile enters the room. | |
| 01:13:56 | headius enters the room. | |
| 01:17:42 | ttmrichter_ enters the room. | |
| 01:24:43 | ttmrichter leaves the room. | |
| 01:28:19 | AndrewO enters the room. | |
| 01:29:37 | olabini enters the room. | |
| 01:41:00 | headius | evening |
| 01:51:58 | ezmobius | hola |
| 01:57:47 | imajes leaves the room. | |
| 01:59:01 | headius_ enters the room. | |
| 01:59:01 | headius leaves the room. | |
| 02:05:48 | evan | evening. |
| 02:07:03 | headius | hiya evan |
| 02:07:57 | evan | hey |
| 02:08:44 | headius | so why did you have to switch to libffi? |
| 02:09:22 | evan | lightning doesn't support long long at all |
| 02:09:37 | evan | so, i'd have to hobble getting that type working on whatever platforms we wanted |
| 02:09:55 | evan | i've used libffi in the past |
| 02:09:57 | evan | a few years ago |
| 02:10:25 | headius | ahh, I see |
| 02:10:29 | evan | i wanted to go the stub route from the beginning because, initially, the code was cleaner, and my thinking was it was more performant |
| 02:11:04 | evan | but with all the problems, I decided to just go the libffi route for now |
| 02:11:08 | evan | for all platforms |
| 02:11:19 | evan | we can reinvestigate the stub route later |
| 02:11:28 | evan | the stubs are, atm, a failed experiment. |
| 02:12:24 | headius | that's too bad |
| 02:12:35 | RyanTM leaves the room. | |
| 02:12:42 | evan | we learned quite a bit in the process of working on them |
| 02:12:43 | headius | what did you need long long for? |
| 02:12:47 | evan | so the knowledge is for not |
| 02:12:55 | evan | er. not for not. |
| 02:12:57 | evan | anyways. |
| 02:13:06 | RyanTM enters the room. | |
| 02:13:08 | evan | we needed long long because off_t on darwin (and linux) is uint64_t |
| 02:13:26 | evan | and most of the file APIs use off_t |
| 02:13:34 | brixen | evan: did you have any useful dtrace scripts you cooked up? |
| 02:13:40 | evan | no |
| 02:13:44 | brixen | ok |
| 02:13:47 | evan | my plan is to work on that at the sprint |
| 02:13:54 | brixen | but the probes we have work ok, yes? |
| 02:14:02 | evan | yep |
| 02:14:06 | brixen | ok cool |
| 02:14:42 | therealadam | evan: ping? |
| 02:15:18 | headius | wayne meissner from jna is toying around with jna improvements...he mentioned an interest in lightning, so I'll pass along the long long info to him |
| 02:15:24 | evan | therealadam: sup yo |
| 02:15:31 | therealadam | evan: pm you? |
| 02:15:31 | evan | therealadam: got your emizle |
| 02:15:35 | evan | go for pm |
| 02:15:37 | therealadam | ahh excellent |
| 02:17:12 | headius | hey, what do you guys use for live profiling |
| 02:17:28 | agile leaves the room. | |
| 02:18:04 | evan | headius: yeah, lightning has problems |
| 02:18:09 | evan | headius: also, it's GPL v3 now |
| 02:18:31 | tarcieri | wtf? |
| 02:18:39 | tarcieri | lightning was lgpl before, right? |
| 02:19:06 | agile enters the room. | |
| 02:19:40 | evan | yep |
| 02:20:20 | tarcieri | why would they do that? |
| 02:20:52 | evan | no clue |
| 02:21:17 | imajes enters the room. | |
| 02:23:15 | headius | anyone? live profiling? |
| 02:23:22 | headius | I don't know my C tools all that well |
| 02:23:30 | evan | i use shark to profile C |
| 02:23:33 | evan | it's the bomb. |
| 02:24:02 | VVSiz_ enters the room. | |
| 02:24:40 | brixen | evan: can I bump this up on your list? http://rubinius.lighthouseapp.com/projects/5089/tickets/354-bug-eval-instance_eval-fails-to-correc tly-modify-toplevel_binding |
| 02:25:07 | evan | you'd like me to reprioritize and make this my top action item? </fight club> |
| 02:25:13 | brixen | heh |
| 02:25:37 | evan | sure, i can look now. |
| 02:25:41 | evan | whats the issue? |
| 02:25:44 | brixen | cool, thanks |
| 02:26:15 | headius | does shark do live profiling? |
| 02:26:16 | brixen | evaling something like 'include Z' in the toplevel binding |
| 02:26:22 | headius | I thought it only did snapshots |
| 02:26:24 | evan | headius: oh, no. |
| 02:26:29 | evan | almost nothing does live profiling. |
| 02:26:36 | headius | oh, hmm |
| 02:26:50 | tarcieri | by "live profiling" do you mean something ala dtrace? |
| 02:26:52 | headius | ok...I've just gotten used to live profilers on the JVM |
| 02:27:17 | headius | I mean I can sit and watch invocation counts tick and see percentages change over the run of an app |
| 02:27:21 | brixen | headius: what do you use? a particular one or something in the jvm? |
| 02:27:22 | evan | C profilers are built with zero runtime in mind |
| 02:27:25 | headius | dtrace probably has a way |
| 02:27:26 | evan | you could do it with dtrace probably |
| 02:28:06 | headius | I've been using the live profiling tools for JRuby because I want to cut out the first 10 seconds of warmup and so on |
| 02:28:17 | brixen | headius: this was interesting: http://searchsecurity.techtarget.com/news/article/0,289142,sid14_gci1301804,00.html |
| 02:28:48 | headius | ahh, yes |
| 02:29:05 | brixen | headius: live profiling tools 'for' jruby on 'in' jruby, do you have tooling impl in jruby? |
| 02:29:18 | evan | headius: the jvm startup or the jit warmup? |
| 02:29:32 | headius | we don't have to have tooling support in jruby |
| 02:29:44 | headius | evan: bit of both |
| 02:30:15 | headius | as JRuby runs I can see ruby methods enter the profiling results |
| 02:30:27 | brixen | headius: do we have to play 20 questions or can you point me to docs on what you use? :P |
| 02:30:36 | headius | because they compile and become just another Java method |
| 02:30:50 | headius | I've been using NetBeans, YourKit, JProfiler at various times |
| 02:30:56 | brixen | headius: ah ok |
| 02:30:58 | headius | there's probably a dozen "good" tools |
| 02:31:08 | brixen | headius: my next question was animal or mineral :P |
| 02:31:23 | evan | bigger than a bread box? |
| 02:31:28 | headius | sampling, full timing, inclusive/exclusive filtering of code |
| 02:31:42 | imajes leaves the room. | |
| 02:31:45 | evan | headius: so, the live profilers use sampling? |
| 02:31:55 | headius | they can go either way |
| 02:32:07 | headius | I generally don't use sampling because it's usually wrong |
| 02:32:18 | evan | headius: oh, another question: the part that displays the data is running an a seperate jvm, using the jvm's C profiling hooks, yes? |
| 02:32:32 | headius | no, over a socket, using JVM tooling APIs |
| 02:32:44 | evan | 2 jvm's then |
| 02:32:47 | headius | yew |
| 02:32:48 | headius | yes |
| 02:32:59 | evan | whats the different between the C profiling hooks and the tooling API? |
| 02:33:04 | evan | urls are fine |
| 02:33:21 | headius | tooling API can connect across the network to a remote machine the same as to a local JVM |
| 02:33:43 | headius | the profiling hooks run in the target JVM...tooling API just feeds information across |
| 02:33:47 | evan | is the tooling API on top of the C hooks then? |
| 02:34:14 | headius | I'm not sure at what level it gets into C |
| 02:34:47 | evan | http://java.sun.com/javase/6/docs/technotes/guides/jvmti/ |
| 02:34:49 | evan | that? |
| 02:34:52 | headius | yes |
| 02:34:54 | evan | that looks to be at C level |
| 02:35:02 | evan | oh oh |
| 02:35:03 | evan | nm. |
| 02:35:06 | evan | by native, they mean java. |
| 02:35:31 | headius | well, there's a C side and a Java side |
| 02:35:35 | headius | you can access it from either |
| 02:35:47 | evan | gotcha |
| 02:35:51 | headius | it's an implementation detail whether the guts are java or C |
| 02:35:56 | evan | looks like a fun airplane project |
| 02:36:04 | evan | puts it on his list for the flight sunday night |
| 02:36:41 | headius | chad and rich implemented some other protocol in Ruby at one point |
| 02:36:48 | headius | the protocols are usually pretty straightforward |
| 02:37:09 | evan | yeah |
| 02:41:17 | VVSiz leaves the room. | |
| 02:41:45 | nicksieger enters the room. | |
| 02:55:49 | evan | ah bugger. |
| 03:00:28 | _mutle enters the room. | |
| 03:02:01 | jptix leaves the room. | |
| 03:08:09 | mutle leaves the room. | |
| 03:11:33 | benburkert enters the room. | |
| 03:24:26 | aotearoa enters the room. | |
| 03:24:35 | benburkert leaves the room. | |
| 03:24:41 | kevwil enters the room. | |
| 03:25:48 | benburkert enters the room. | |
| 03:26:40 | imajes enters the room. | |
| 03:33:15 | therealadam leaves the room. | |
| 03:36:30 | yipstar leaves the room. | |
| 03:41:04 | rue | |
| 03:41:12 | rue | Ops |
| 03:43:30 | VVSiz enters the room. | |
| 03:45:59 | rue | evan: When you have a moment, I want to see what if anything you have been plotting along the lines of `shotgun/rubinius --cluster 2x5 --require 'httpserver'` |
| 03:46:34 | rue | evan: Also, should I reserve days in mid/end March? |
| 03:46:41 | rue | Oh |
| 03:47:23 | rue | And if anyone has Mac Apps You Cannot Live Without, suggestions appreciated. I typically prefer keyboard/cli over GUI, also moonlit walks on the beach |
| 03:47:37 | rue | QuickSilver has been suggestimated |
| 03:48:59 | imajes leaves the room. | |
| 03:49:51 | Defiler | Quicksilver is great.. SteerMouse is required if you are picky about your mouse pointer movement |
| 03:49:55 | Defiler | (though it sounds like you are not) |
| 03:50:10 | Defiler | You will want to install Perian for video playback |
| 03:50:20 | kevwil leaves the room. | |
| 03:50:54 | Defiler | OnyX is a good adjust-weird-MacOS-setting tool |
| 03:51:16 | Defiler | Spirited Away is a must-have as well, if you have a laptop |
| 03:51:27 | Defiler | (hides unused windows automatically, based on your preferences) |
| 03:51:59 | imajes enters the room. | |
| 04:01:41 | VVSiz_ leaves the room. | |
| 04:14:27 | jinjing enters the room. | |
| 04:17:20 | MenTaLguY enters the room. | |
| 04:21:45 | headius_ enters the room. | |
| 04:21:45 | headius leaves the room. | |
| 04:32:35 | rue | Spaces works nicely enough |
| 04:57:16 | headius leaves the room. | |
| 04:59:41 | be9 enters the room. | |
| 05:06:55 | ezmobius leaves the room. | |
| 05:09:12 | imajes leaves the room. | |
| 05:13:35 | jinjing leaves the room. | |
| 05:21:49 | benburkert leaves the room. | |
| 05:27:32 | evan | rue: whats --cluster do? |
| 05:27:48 | evan | the answer is likely no, nothing plotted |
| 05:28:32 | rue | evan: I was thinking offering a builtin server/distributed/cluster processing mode |
| 05:29:58 | AndrewO leaves the room. | |
| 05:30:02 | rue | evan: Sorta musing, started with figuring that it seems wasteful to reimplement the daemon backend separately with libev since Rubinius itself is based on that model |
| 05:31:19 | GMFlash leaves the room. | |
| 05:31:19 | mernen leaves the room. | |
| 05:31:19 | srbaker leaves the room. | |
| 05:31:19 | gdagley leaves the room. | |
| 05:31:19 | d2dchat leaves the room. | |
| 05:31:19 | context leaves the room. | |
| 05:31:19 | zuwiki leaves the room. | |
| 05:31:19 | mass leaves the room. | |
| 05:31:19 | mojombo leaves the room. | |
| 05:35:36 | evan | i don't see a reason for it to be 'builtin' |
| 05:38:25 | GMFlash enters the room. | |
| 05:38:25 | mernen enters the room. | |
| 05:38:25 | srbaker enters the room. | |
| 05:38:25 | gdagley enters the room. | |
| 05:38:25 | d2dchat enters the room. | |
| 05:38:25 | context enters the room. | |
| 05:38:25 | zuwiki enters the room. | |
| 05:38:25 | mass enters the room. | |
| 05:38:25 | mojombo enters the room. | |
| 05:39:21 | mass leaves the room. | |
| 05:39:21 | zuwiki leaves the room. | |
| 05:39:21 | context leaves the room. | |
| 05:39:21 | gdagley leaves the room. | |
| 05:39:21 | srbaker leaves the room. | |
| 05:39:21 | GMFlash leaves the room. | |
| 05:39:21 | mernen leaves the room. | |
| 05:39:21 | mojombo leaves the room. | |
| 05:39:21 | d2dchat leaves the room. | |
| 05:39:24 | mojombo enters the room. | |
| 05:39:26 | GMFlash enters the room. | |
| 05:39:31 | context enters the room. | |
| 05:39:32 | mass enters the room. | |
| 05:39:32 | zuwiki enters the room. | |
| 05:39:35 | mernen enters the room. | |
| 05:41:49 | dewd enters the room. | |
| 05:46:22 | mae leaves the room. | |
| 05:56:09 | mernen leaves the room. | |
| 05:57:25 | srbaker enters the room. | |
| 06:05:05 | rue | evan: Mm, "builtin" meaning "ships with." I just hate to reproduce the arch if I can reuse/improve it in Rubinius instead. Maybe an extension? Do you know if anyone has tried to embed Rubinius or "drive" Rubinius through the C side? |
| 06:05:17 | rue | My machines are a mess except for the Apache work |
| 06:12:25 | ezmobius enters the room. | |
| 06:21:05 | jluxenberg enters the room. | |
| 06:46:21 | evan | rue: sure, reusing the infrastructure we already have is a big plus |
| 06:46:57 | ezmobius | hey evan how was the cruise? |
| 06:47:11 | evan | rue: no, no one has embedded rubinius yet (to my knowledge) |
| 06:47:12 | evan | ezmobius: fun! |
| 06:47:53 | evan | ezmobius: a little tedious at times, but great |
| 06:48:00 | ezmobius | cool |
| 06:48:53 | evan | hows things for you? |
| 06:49:05 | dkubb enters the room. | |
| 06:49:05 | ezmobius | good, crazy busy |
| 06:49:17 | ezmobius | just got a test cluster built here at the office |
| 06:50:14 | evan | oh nice. |
| 06:50:52 | ezmobius | now we can do TDD(test driven deployment) |
| 06:50:57 | ezmobius | :P |
| 06:52:27 | evan | heh |
| 06:54:47 | drbrain | evan: I'm trying to fix order-of-operations |
| 06:55:12 | drbrain | I've got the appropriate changes to the compiler, but can't figure out where args get turned into locals |
| 06:55:20 | drbrain | (specifically for calls) |
| 06:56:28 | evan | which order-of-operations? |
| 06:56:54 | drbrain | arr = %w[a b]; Array[arr.shift, arr.first] |
| 06:57:00 | evan | yikes |
| 06:57:03 | evan | it's not possible. |
| 06:57:07 | drbrain | should be %w[a b], is %w[a a] |
| 06:57:07 | evan | without adding new instructions. |
| 06:57:37 | drbrain | if we know the arg count, why can't we fill in the locals backwards? |
| 06:57:43 | drbrain | or does that not happen? |
| 06:57:45 | evan | fill in the locals where? |
| 06:57:50 | evan | in the VM? |
| 06:57:52 | drbrain | I don't know |
| 06:57:57 | drbrain | yeah |
| 06:58:02 | evan | it's not in the VM |
| 06:58:07 | evan | it happens in bytecode. |
| 06:58:14 | drbrain | at least, that's what I was expecting to find, but it got mysterious |
| 06:58:25 | evan | because it's not there. |
| 06:58:41 | evan | every method emits bytecode to pull args into locals itself |
| 06:58:52 | drbrain | ah, ok |
| 06:59:06 | evan | and it expects the args to be on the stack, top of the stack == 1st arg |
| 06:59:17 | drbrain | yeah |
| 06:59:26 | evan | so changing this is radical |
| 06:59:47 | drbrain | I think it's time |
| 07:00:26 | drbrain | I will go look at def next |
| 07:00:40 | evan | well, since it's radical, I think we need to fix the max arg count problem at the same time |
| 07:01:08 | wifelette enters the room. | |
| 07:03:03 | evan | it's not as easy as just running the code to assign locals from the stack in reverse order |
| 07:03:08 | evan | sadly |
| 07:03:21 | evan | because defaults have to be run left to right as well |
| 07:03:27 | drbrain | I didn't expect it to be easy |
| 07:03:37 | evan | and defaults have to be able to access lvars to their left |
| 07:03:53 | evan | well, whats your idea? |
| 07:04:21 | drbrain | I don't know enough about the compiler to have anything more than the most basic ideas |
| 07:05:41 | evan | so, the simplest that works, is to alter the compiler to emit code left to right for the args |
| 07:05:59 | evan | then rotate the values on the stack inside the check_args instruction |
| 07:06:27 | evan | so that the called method still sees the args in the top => 1 order |
| 07:06:59 | evan | drbrain: use ./shotgun/rubinius describe |
| 07:07:07 | evan | to get a feel for the bytecode output for handling args |
| 07:07:29 | drbrain | the call-side part was clear |
| 07:07:39 | drbrain | but the recieve-side part wasn't |
| 07:07:54 | evan | the receive side is actually easy |
| 07:08:06 | evan | it's just that the method expects the args are on the stack already |
| 07:08:09 | evan | thats all. |
| 07:08:23 | drbrain | for an Array, I just changed reverse_each to each |
| 07:08:39 | drbrain | I haven't tracked down the other things, though |
| 07:09:00 | evan | how do ya mean, for an Array? |
| 07:09:00 | drbrain | ConcatArgs and Splat |
| 07:09:33 | evan | those are a whole nother thing |
| 07:09:35 | drbrain | if @arguments.kind_of? Array then @arguments.each do |x| x.bytecode(g) end |
| 07:09:43 | drbrain | ~ line 1820 of bytecode.rb |
| 07:10:25 | evan | yeah, thats what I mean |
| 07:10:27 | drbrain | also, can we get some RDoc in the compiler? |
| 07:10:50 | drbrain | I'm groping in the dark alot |
| 07:11:00 | evan | ConcatArgs and Splat are going to be uggers. |
| 07:11:06 | evan | sure, add rdoc as much as ya want |
| 07:11:17 | evan | by adding, you mean me adding rdoc, yes? |
| 07:11:20 | drbrain | I'm not fully qualified yet |
| 07:11:53 | drbrain | well, you or whoever else that's qualified |
| 07:12:37 | evan | sure |
| 07:12:43 | drbrain | even something like "Call emits the arguments then the reciever then the send" would help some |
| 07:13:13 | evan | so mainly, you're looking for how they effect the stack |
| 07:13:20 | drbrain | actually, most helpful would be Generator |
| 07:13:23 | evan | you should be looking at the instruction docs |
| 07:13:42 | evan | because it's easy to work backwards from the instruction docs to the Generator |
| 07:13:57 | drbrain | they're not always 1:1 |
| 07:13:58 | evan | but no problem, i'll add rdoc to the Generator |
| 07:14:07 | evan | no, they're not, but largely they are |
| 07:14:30 | drbrain | for the 1:1 ones, See: Instructions#blah would be fine |
| 07:14:43 | drbrain | or whatever the class is, I forget |
| 07:14:56 | jtoy enters the room. | |
| 07:15:09 | evan | right |
| 07:16:24 | evan | well, take a crack at it |
| 07:16:27 | evan | if you want |
| 07:16:33 | evan | i've been mulling it over for a while now |
| 07:16:37 | drbrain | I do |
| 07:16:47 | evan | i'd planned on just doing it at the sprint |
| 07:16:52 | drbrain | the implementing |
| 07:16:55 | evan | since you'll be there, perhaps that would be a good place |
| 07:17:02 | drbrain | ok |
| 07:17:11 | drbrain | I'll wait, and unfactor RubyGems then |
| 07:17:20 | evan | unfactor? |
| 07:17:24 | drbrain | but, I suspect we'll not get enough time to work on it |
| 07:17:34 | GMFlash leaves the room. | |
| 07:17:49 | drbrain | yes, I refactored part of RubyGems tar stuff, since it's terrible and untested and causing problems with Rubinius |
| 07:17:50 | evan | well, just you and I will have some time outside the sprint |
| 07:17:53 | evan | to pair on it |
| 07:18:00 | drbrain | but, the nice, simple refactored code runs into the order-of-operations problem |
| 07:18:03 | evan | so bring code and ideas |
| 07:18:32 | drbrain | hell, the one-liner is a good enough bit of code to fix it |
| 07:18:46 | drbrain | I chose shift/first instead of shift/shift, so the problem is more-clear |
| 07:18:49 | evan | the reverse_each => each? |
| 07:18:59 | drbrain | no, |
| 07:19:12 | drbrain | arr = %w[a b]; Array[arr.shift, arr.first] |
| 07:19:18 | evan | oh, you mean thats a good enough case |
| 07:19:21 | evan | gotcha |
| 07:19:25 | drbrain | yeah |
| 07:19:51 | drbrain | that's the smallest test case I can think of |
| 07:20:17 | evan | arr = %w[a b]; p(arr.shift, arr.shift) |
| 07:20:22 | evan | is the testcase i've used before for this |
| 07:20:35 | drbrain | but, not good inside specs |
| 07:20:45 | evan | very true |
| 07:27:32 | drbrain | Monday I'll remove the zip code |
| 07:29:50 | evan | ok, sweet. |
| 07:29:56 | evan | i've got that on the todo list. |
| 07:30:02 | evan | i'm ripping out lightning atm. |
| 07:30:31 | drbrain | I decided to leave in a transition period, just in case |
| 07:30:47 | tarcieri | it sucks you can't use llvm |
| 07:38:50 | aotearoa leaves the room. | |
| 07:39:34 | boyscout | 2 commits by Eric Hodel |
| 07:39:35 | boyscout | * Fix some uninitialized ivar warnings; 934dfd4 |
| 07:39:36 | boyscout | * Trim trailing whitespace; 1c8080c |
| 07:45:32 | peglegrot enters the room. | |
| 07:46:06 | evan | drbrain: so, i've been reviewing how others handle call convention wrt to args |
| 07:46:34 | drbrain | yeah? |
| 07:47:15 | evan | seems like all VM based languages have the VM apply to the args into locals itself |
| 07:48:18 | drbrain | well, considering we're trying to get rid of a C-based VM, I prefer changing the bytecode |
| 07:48:20 | evan | none do it the way we do currently, ie, just have the args on the stack when the method is called |
| 07:48:42 | drbrain | yeah |
| 07:49:03 | evan | well, it's a trade off |
| 07:49:48 | evan | because if we do it in bytecode, then we might have to add more VM code to do it correctly |
| 07:49:57 | rubuildius_ppc | Eric Hodel: 934dfd43a; 1723 files, 5813 examples, 19808 expectations, 0 failures, 2 errors; http://pastie.caboo.se/paste/159697 |
| 07:50:24 | evan | where as putting the args directly into locals is probably a smaller amount of VM code |
| 07:50:34 | drbrain | ok |
| 07:51:35 | drbrain | crap |
| 07:51:40 | drbrain | ruby 1.9.0-1 |
| 07:51:56 | drbrain | had I known, I'd have imported my latest RubyGems changes |
| 07:51:59 | evan | we'll still have bytecode to process the defaults |
| 07:52:00 | drbrain | on Wed. |
| 07:52:07 | evan | what happened? |
| 07:52:21 | drbrain | bugfix release for 1.9.0 |
| 07:52:39 | evan | ah, ack. |
| 07:52:42 | drbrain | and, on Wed. I finished up a bunch of fixes for RubyGems |
| 07:56:50 | evan | hm, does 1.8 have a max number of args? |
| 07:57:39 | tarcieri | if it does I've never hit it... |
| 07:57:40 | tarcieri | cl |
| 07:57:42 | tarcieri | geh |
| 07:58:57 | tarcieri | >> foo(*(['X'] * 16777216)) |
| 07:58:57 | tarcieri | Illegal instruction |
| 07:59:00 | tarcieri | heh |
| 07:59:07 | TheVoice leaves the room. | |
| 08:03:56 | drbrain | I don't believe it does |
| 08:10:07 | evan | huh! |
| 08:10:14 | evan | i finally found out what the NODE_ALLOCA is for! |
| 08:11:00 | drbrain | oh? |
| 08:11:26 | evan | when you call a method, if the arguments were simple, ie: |
| 08:11:29 | evan | blah(1,2) |
| 08:11:48 | evan | it calls alloca() to create a buffer to hold 1 and 2 |
| 08:11:59 | evan | and, since 1 and 2 might be real objects, it has to be sure the GC sees them |
| 08:12:16 | evan | so it makes a new node, ie, NODE_ALLOCA |
| 08:12:29 | evan | and shoves the pointer it got from alloca() into it |
| 08:12:37 | drbrain | nice |
| 08:12:52 | drbrain | tomorrow I should have a FreeBSD 7.0 parallels image |
| 08:13:02 | evan | and, the a pointer to the new node is on the stack, so the ruby GC sees it |
| 08:13:05 | evan | and keeps the arguments alive. |
| 08:13:24 | evan | it's funny how much they've hacked around the GC architecture |
| 08:13:53 | drbrain | which is also why it hasn't been changed |
| 08:14:26 | evan | yep |
| 08:15:08 | drbrain | exercisez |
| 08:42:33 | GMFlash enters the room. | |
| 08:52:33 | peglegrot leaves the room. | |
| 09:04:03 | RyanTM leaves the room. | |
| 09:04:05 | GMFlash leaves the room. | |
| 09:04:23 | GMFlash enters the room. | |
| 09:07:11 | crossblaim enters the room. | |
| 09:08:47 | rue | Woo woo |
| 09:11:45 | cavalle enters the room. | |
| 09:25:56 | GMFlash leaves the room. | |
| 09:27:45 | ezmobius leaves the room. | |
| 09:29:04 | peglegrot enters the room. | |
| 09:35:41 | wifelette leaves the room. | |
| 09:35:54 | wycats leaves the room. | |
| 09:44:55 | sfaxon leaves the room. | |
| 09:46:36 | rue | Sleepy, be back |
| 09:49:07 | GMFlash enters the room. | |
| 09:58:58 | Fullmoon enters the room. | |
| 10:21:26 | GMFlash leaves the room. | |
| 10:35:03 | rubuildius_ppc leaves the room. | |
| 10:45:54 | w1rele55 enters the room. | |
| 10:50:07 | msimbartl enters the room. | |
| 11:01:23 | crossblaim leaves the room. | |
| 11:04:24 | thehcdreamer enters the room. | |
| 11:05:16 | hassox enters the room. | |
| 11:07:04 | Fullmoon leaves the room. | |
| 11:21:31 | langenberg enters the room. | |
| 11:23:42 | aotearoa enters the room. | |
| 11:24:25 | ragnard enters the room. | |
| 11:25:05 | langenberg leaves the room. | |
| 11:25:37 | langenberg enters the room. | |
| 11:31:40 | headius enters the room. | |
| 11:32:38 | aotearoa leaves the room. | |
| 11:50:53 | Fullmoon enters the room. | |
| 11:55:14 | langenberg leaves the room. | |
| 11:56:22 | langenberg enters the room. | |
| 11:58:13 | wycats enters the room. | |
| 11:58:47 | Fullmoon leaves the room. | |
| 12:24:01 | crossblaim enters the room. | |
| 12:39:38 | crossblaim leaves the room. | |
| 12:40:36 | thehcdreamer leaves the room. | |
| 12:48:50 | radarek enters the room. | |
| 12:51:04 | mediogre enters the room. | |
| 13:26:52 | jptix enters the room. | |
| 13:29:38 | joachimm | jp_tix: hello. |
| 13:29:53 | jptix | hi |
| 13:36:52 | w1rele55 leaves the room. | |
| 13:42:00 | imajes enters the room. | |
| 13:53:14 | ttmrichter_ leaves the room. | |
| 13:54:00 | ttmrichter_ enters the room. | |
| 14:09:06 | Phoop leaves the room. | |
| 14:09:58 | chris2 enters the room. | |
| 14:13:13 | Phoop enters the room. | |
| 14:15:45 | ctennis enters the room. | |
| 14:28:59 | agile leaves the room. | |
| 14:35:09 | msimbartl leaves the room. | |
| 14:36:01 | crossblaim enters the room. | |
| 14:36:25 | crossblaim | hi |
| 14:51:05 | nicksieger leaves the room. | |
| 14:51:08 | AndrewO enters the room. | |
| 14:52:40 | AndrewO leaves the room. | |
| 14:54:32 | enebo enters the room. | |
| 14:58:56 | dodecaphonic leaves the room. | |
| 14:59:41 | jinjing enters the room. | |
| 15:09:23 | crossblaim leaves the room. | |
| 15:10:07 | headius leaves the room. | |
| 15:19:14 | jinjing_ enters the room. | |
| 15:20:54 | jinjing leaves the room. | |
| 15:22:26 | headius enters the room. | |
| 15:22:51 | headius leaves the room. | |
| 15:22:59 | rubuildius_ppc enters the room. | |
| 15:23:23 | headius enters the room. | |
| 15:28:36 | wmoxam enters the room. | |
| 15:29:02 | jinjing_ leaves the room. | |
| 15:35:43 | rubuildius_ppc | Eric Hodel: 934dfd43a; 1723 files, 5813 examples, 19808 expectations, 0 failures, 2 errors; http://pastie.caboo.se/paste/159758 |
| 15:38:09 | msimbartl enters the room. | |
| 15:41:56 | langenberg leaves the room. | |
| 15:46:06 | gnufied leaves the room. | |
| 15:52:02 | jtoy leaves the room. | |
| 15:59:20 | wmoxam leaves the room. | |
| 16:25:21 | boyscout | 1 commit by Chuck Remes |
| 16:25:22 | boyscout | * Fixes a race condition on OSX when "find"-ing character devices; 25cfa6a |
| 16:26:43 | crossblaim enters the room. | |
| 16:29:19 | thehcdreamer enters the room. | |
| 16:29:36 | mediogre leaves the room. | |
| 16:37:57 | langenberg enters the room. | |
| 16:40:29 | rubuildius_ppc | Chuck Remes: 25cfa6a96; 1723 files, 5813 examples, 19808 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/159781 |
| 16:40:49 | cremes | yes! no more errors on OSX PPC! |
| 16:50:27 | GMFlash enters the room. | |
| 16:59:34 | imajes leaves the room. | |
| 17:01:49 | headius leaves the room. | |
| 17:02:19 | headius enters the room. | |
| 17:19:52 | GMFlash leaves the room. | |
| 17:23:18 | mernen enters the room. | |
| 17:23:44 | GMFlash enters the room. | |
| 17:24:04 | thehcdreamer leaves the room. | |
| 17:24:08 | obiejuan enters the room. | |
| 17:25:54 | agile enters the room. | |
| 17:26:04 | headius_ enters the room. | |
| 17:26:11 | headius leaves the room. | |
| 17:26:20 | headius_ leaves the room. | |
| 17:26:49 | headius enters the room. | |
| 17:29:03 | benburkert enters the room. | |
| 17:30:27 | radarek leaves the room. | |
| 17:33:17 | enebo leaves the room. | |
| 17:35:14 | obiejuan leaves the room. | |
| 17:39:38 | crossblaim leaves the room. | |
| 17:41:58 | dodecaphonic enters the room. | |
| 17:50:02 | jptix leaves the room. | |
| 17:51:25 | Ingmar leaves the room. | |
| 17:51:58 | Ingmar enters the room. | |
| 17:52:17 | crossblaim enters the room. | |
| 17:53:45 | d2dchat enters the room. | |
| 18:01:34 | wmoxam enters the room. | |
| 18:03:44 | nicksieger enters the room. | |
| 18:03:49 | RyanTM enters the room. | |
| 18:04:12 | jptix enters the room. | |
| 18:09:38 | crossblaim leaves the room. | |
| 18:14:25 | msimbartl leaves the room. | |
| 18:15:27 | jptix_ enters the room. | |
| 18:16:53 | peglegro1 enters the room. | |
| 18:16:53 | peglegrot leaves the room. | |
| 18:17:35 | benburkert leaves the room. | |
| 18:19:12 | benburkert enters the room. | |
| 18:28:37 | benburkert leaves the room. | |
| 18:34:01 | VVSiz_ enters the room. | |
| 18:36:51 | benburkert enters the room. | |
| 18:40:38 | VVSiz leaves the room. | |
| 18:40:45 | jptix leaves the room. | |
| 18:41:11 | VVSiz enters the room. | |
| 18:43:27 | cavalle_ enters the room. | |
| 18:46:37 | sfaxon enters the room. | |
| 18:47:39 | crossblaim enters the room. | |
| 18:50:26 | cremes leaves the room. | |
| 18:54:04 | GMFlash leaves the room. | |
| 18:55:04 | VVSiz_ leaves the room. | |
| 18:59:29 | cavalle leaves the room. | |
| 18:59:48 | nemerle enters the room. | |
| 19:00:12 | jacen_ leaves the room. | |
| 19:04:12 | srbaker leaves the room. | |
| 19:05:05 | FoobarWidget enters the room. | |
| 19:08:39 | srbaker enters the room. | |
| 19:12:46 | GMFlash enters the room. | |
| 19:15:58 | jluxenberg | there's a bug in the Marshal module |
| 19:16:35 | jluxenberg | I'm trying to figure out how to fix it but its not immediately obvious. |
| 19:17:35 | crossblaim leaves the room. | |
| 19:18:06 | brixen | jluxenberg: do you have a spec that demonstrates the bug? |
| 19:18:31 | dkubb leaves the room. | |
| 19:18:44 | jluxenberg | this code fails: http://pastie.caboo.se/159837 |
| 19:18:54 | jluxenberg | I can make a spec in a minute, never used rspec before |
| 19:19:34 | brixen | ahh subclassing Hash |
| 19:19:46 | jluxenberg | the offending piece of code is the first line of Marshal::State#construct_hash |
| 19:19:47 | brixen | yeah, wouldn't surprise me if there were issues |
| 19:21:01 | jluxenberg | if I make a spec will they put it in the test suite? |
| 19:21:56 | brixen | sure |
| 19:22:49 | brixen | take a look at spec/ruby/1.8/core/marshal |
| 19:23:39 | jluxenberg | ok |
| 19:24:20 | brixen | in that dir, fixtures/marshal_data.rb there's already a class UserHash < Hash |
| 19:24:33 | jluxenberg | ah |
| 19:24:35 | brixen | you could probably add the def initialize there and update the expected value below |
| 19:24:46 | jluxenberg | yeah, good idea |
| 19:25:05 | jluxenberg | where do I send patches? I guess I need to get the GIT version of the code as well |
| 19:25:24 | brixen | yeah, best is get git, git clone, and use git-format-patch |
| 19:25:28 | brixen | one sec.. |
| 19:25:49 | brixen | http://rubinius.lighthouseapp.com/projects/5089/using-git |
| 19:25:56 | jluxenberg | ah, good |
| 19:25:56 | brixen | some other docs there on specs |
| 19:26:09 | brixen | gotta run some errands, but somebody will probably be here to help ya |
| 19:26:55 | peglegrot enters the room. | |
| 19:27:17 | jluxenberg | cool, thanks! |
| 19:27:24 | brixen | np, thank you! |
| 19:33:55 | rudebwoy leaves the room. | |
| 19:35:19 | srbaker leaves the room. | |
| 19:38:03 | enebo enters the room. | |
| 19:39:14 | chris2 leaves the room. | |
| 19:42:41 | Defiler | jluxenberg: The way this works is.. you 'clone' the main repository.. make changes.. and then use 'git commit' to commit them to YOUR copy |
| 19:43:03 | Defiler | jluxenberg: Then you use git format-patch to make an emailable patch out of the difference between your repository and the main one |
| 19:43:10 | jluxenberg | ah, I see |
| 19:43:16 | peglegro1 leaves the room. | |
| 19:43:24 | jluxenberg | Defiler: can I skip the clone step if I'm only making a small change? |
| 19:43:26 | Defiler | That way, when I (or someone else) accepts it to the main repository, you get credit |
| 19:43:38 | Defiler | Well, you have to clone to have a copy of rubinius |
| 19:44:04 | Defiler | So, yeah.. even for a small change, if you downloaded the tarball, you will need to fetch the latest version from git |
| 19:44:45 | jluxenberg | Defliner: oh, what I meant was do I have to "checkout" |
| 19:45:04 | Defiler | git clone == svn co |
| 19:45:10 | Defiler | ..and yeah, you need a working copy |
| 19:45:38 | jluxenberg | Defiler: in the workflow description it says to git checkout (kind of like a branch?), make change, commit to my local copy, then "rebase" my branch? |
| 19:45:45 | rudebwoy enters the room. | |
| 19:46:33 | rudebwoy leaves the room. | |
| 19:46:34 | Defiler | Oh, I see what you are asking |
| 19:46:42 | Defiler | No, you don't need to bother with that, though it is pretty easy |
| 19:46:47 | jluxenberg | okay |
| 19:47:04 | Defiler | When you have direct committer access, you will want to do that |
| 19:47:11 | Defiler | ..but just for producing a patch, it is not necessary |
| 19:47:25 | rudebwoy enters the room. | |
| 19:48:23 | jluxenberg | working on it now |
| 19:54:36 | wmoxam leaves the room. | |
| 19:57:54 | boyscout | 1 commit by Wilson Bilkovich |
| 19:57:55 | boyscout | * Implement UNIXSocket#peeraddr and UNIXSocket#addr; 7c01bea |
| 20:02:59 | srbaker enters the room. | |
| 20:03:46 | jluxenberg | can anyone explain this syntax to me? ah, I see, |
| 20:03:53 | jluxenberg | haha oops, wrong paste. |
| 20:04:00 | jluxenberg | this: n = class << o2;ancestors;end |
| 20:04:05 | jluxenberg | where o2 is some object |
| 20:07:55 | jluxenberg | is it the same as o2.class.ancestors ? |
| 20:08:07 | peglegro1 enters the room. | |
| 20:08:11 | Defiler | That is returning the ancestors of o2's metaclass |
| 20:08:21 | Defiler | Which generally will be the same list as o2.class.ancestors, but not always |
| 20:08:48 | jptix enters the room. | |
| 20:09:14 | jluxenberg | ah, I see |
| 20:09:27 | jluxenberg | in this case, the class has been extended so the metaclass is different from the class |
| 20:09:42 | Defiler | jluxenberg: e.g. http://pastebin.com/m267753c1 |
| 20:10:04 | jluxenberg | right, cool |
| 20:10:18 | rue | Morn |
| 20:10:30 | Defiler | o7 |
| 20:13:28 | Fishy5 enters the room. | |
| 20:14:38 | jluxenberg | does anyone know if rake has a -j option like make? |
| 20:15:26 | Defiler | It does not |
| 20:15:51 | Defiler | It has a 'parallel task' type that you can use, but it just satisfies dependencies in parallel, it doesn't really try to thread it all up |
| 20:16:17 | jluxenberg | hmm, that sounds similar though. make just spawns multiple processes in parallel |
| 20:16:39 | rubuildius_ppc | Wilson Bilkovich: 7c01bea10; 1723 files, 5813 examples, 19808 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/159853 |
| 20:16:51 | Defiler | It isn't the same, sadly |
| 20:16:57 | Defiler | It wouldn't be hard to add, though |
| 20:16:59 | Toba enters the room. | |
| 20:17:04 | wmoxam enters the room. | |
| 20:17:23 | Defiler | What we should probably do, though.. is expose a JOBS environment option |
| 20:17:31 | Defiler | Since 'rake' is just calling out to make here |
| 20:17:36 | jluxenberg | yeah, fair enough |
| 20:17:45 | jluxenberg | when you say it satisfies them in parallel, what do you mean? does it spawn a bunch of rake processes? |
| 20:18:17 | skaar enters the room. | |
| 20:18:53 | benburkert leaves the room. | |
| 20:18:54 | Defiler | It doesn't, no. As I recall, it just makes some threads to execute the task objects |
| 20:19:08 | Defiler | It has been a while since I looked at it.. I know we explored it when desigining Vlad |
| 20:19:20 | benburkert enters the room. | |
| 20:19:38 | benburkert leaves the room. | |
| 20:19:44 | jluxenberg | I'm running rake spec:core, and I get an error that says "Unable to encode stream: <long obj.inspect dump>" |
| 20:20:37 | Defiler | Yeah, that is known/expected |
| 20:20:43 | Defiler | We don't pass everything in spec/core right now |
| 20:20:53 | Defiler | ./bin/mspec ci should pass without errors, though |
| 20:21:06 | Defiler | (which I believe is still aliased as 'rake spec', but I could be wrong) |
| 20:21:29 | jluxenberg | ah, so that error is from a spec test? |
| 20:21:51 | jluxenberg | the weird thing is the rake process never finishes, I have to control-c to get it to end with a seg fault |
| 20:21:59 | Defiler | Yeah, that is also known |
| 20:22:04 | Defiler | Or, rather.. same problem |
| 20:22:14 | Defiler | The spec in question fails so hard that it hangs the spec run |
| 20:22:28 | Defiler | Feel free to fix it :) |
| 20:23:01 | jluxenberg | ah, I see |
| 20:23:26 | Defiler | Make sure ./bin/mspec ci passes before you hit 'commit', though |
| 20:23:30 | Defiler | That is the important part, for now |
| 20:24:00 | jluxenberg | yeah, I just made a new spec so I want to make sure it fails in the right way |
| 20:24:17 | peglegrot leaves the room. | |
| 20:24:50 | Defiler | Oh, and you can do: ./bin/mspec ci -t r |
| 20:24:54 | Defiler | to run the suite under ruby 1.8 |
| 20:24:59 | jluxenberg | ok |
| 20:25:00 | Defiler | (Which should also pass 100%) |
| 20:25:09 | Defiler | That is worth running to make sure you wrote the spec correctly |
| 20:25:40 | jptix_ leaves the room. | |
| 20:31:51 | jluxenberg | so I made a change to core/marshal/load_spec.rb |
| 20:32:06 | jluxenberg | which will cause mspec ci to fail |
| 20:33:05 | be9 leaves the room. | |
| 20:33:06 | Defiler | You can do: bin/mspec tag --add fails spec/core/marshal/load_spec.rb |
| 20:33:13 | jluxenberg | ah, ok cool |
| 20:33:16 | Defiler | ..which will mark any specs that fail on that run as 'failing' |
| 20:33:30 | Defiler | Then re-run bin/mspec ci to make sure it is correctly excluded |
| 20:33:38 | jluxenberg | ok |
| 20:34:31 | Defiler | this page may be of interest generally: http://rubinius.lighthouseapp.com/projects/5089/specs-runners |
| 20:34:45 | Defiler | They have gotten a little option-heavy over time |
| 20:35:37 | riles enters the room. | |
| 20:35:53 | therealadam enters the room. | |
| 20:35:59 | jluxenberg | looks like there is one ERROR spec that I didn't modify: spec/ruby/1.8/core/process/setrlimit_spec.rb |
| 20:36:16 | riles enters the room. | |
| 20:39:16 | Defiler | What platform are you on? |
| 20:39:49 | jluxenberg | Ubuntu linux |
| 20:39:53 | Defiler | ..and can you paste the failure output at pastie.org or some other paste site? |
| 20:39:57 | jluxenberg | yea |
| 20:40:12 | Defiler | That spec has been irritating on various Linux systems, and I would like to take this opportunity to nail it |
| 20:40:16 | wifelette enters the room. | |
| 20:40:19 | jluxenberg | http://pastie.caboo.se/159858 |
| 20:42:02 | jluxenberg | so if one of these specs says it "FAILED", does that mean its in the fail list? |
| 20:42:12 | jluxenberg | because one of the new specs I just wrote says it "FAILED" |
| 20:42:19 | jluxenberg | but I definitely haven't added it to the fails list |
| 20:45:12 | ataiar enters the room. | |
| 20:45:51 | Defiler | No, that means it is on the 'not failing' list, but failed anyway |
| 20:46:00 | Defiler | So, unexpected failure |
| 20:46:22 | jluxenberg | so ERROR and FAILURE are just two different kinds of unexpected failure? |
| 20:47:02 | jluxenberg | in that case theres another test case that failed unexpectedly: http://pastie.caboo.se/159860 |
| 20:47:59 | Defiler | failure means an expectation was not met |
| 20:48:06 | Defiler | error means an exception was raised |
| 20:48:07 | jluxenberg | ah, I see |
| 20:48:24 | Defiler | OK, yeah.. that one you just pasted is known, and has a ticket open |
| 20:49:38 | cremes enters the room. | |
| 20:49:39 | radarek enters the room. | |
| 20:50:03 | Defiler | can you type 'man 2 setrlimit' and paste the man page that it shows you? |
| 20:51:40 | Defiler | Also, does that same spec fail for you when you run it with: bin/mspec ci -t r spec/ruby/1.8/core/process |
| 20:56:51 | jluxenberg | one sec |
| 20:57:07 | ataiar leaves the room. | |
| 20:57:38 | jluxenberg | Defiler: man page: http://pastie.caboo.se/159861 |
| 20:58:08 | Defiler | Thanks. I will take a peek in just a moment. This spec is using a weird feature, so I am googling it up |
| 20:59:07 | jluxenberg | Defiler: it still fails when run with mspec ci -t r ... |
| 20:59:14 | Defiler | OK, that is good |
| 20:59:27 | Defiler | Means it is an incorrect spec (on your system, at least), not a rubinius bug |
| 21:01:42 | jluxenberg | what does ci -t r do? |
| 21:04:47 | Defiler | runs it under ruby 1.8 instead of rubinius |
| 21:04:59 | Defiler | There are -t options for the various ruby implementations.. -t j for jruby, etc |
| 21:05:35 | jluxenberg | ah, I see |
| 21:08:28 | skaar leaves the room. | |
| 21:10:05 | Defiler | jluxenberg: can you paste the output of 'uname -a' ? |
| 21:10:13 | Defiler | Should be one line, so you can just put it in the channel |
| 21:10:30 | jluxenberg | Linux jared-desktop 2.6.22.8-custom92507 #1 SMP Tue Sep 25 23:43:57 EDT 2007 i686 GNU/Linux |
| 21:13:41 | cavalle enters the room. | |
| 21:14:43 | Defiler | jluxenberg: Could you open up that failing spec file (process/setrlimit_spec.rb) |
| 21:15:03 | Defiler | ..and above line 73 (the call to Process.setrlimit), put this: |
| 21:15:09 | Defiler | puts "RLIMIT_MEMLOCK: lim: #{lim} max: #{max}" |
| 21:15:23 | Defiler | ..run it again, and paste what that prints? |
| 21:15:35 | jluxenberg | ok, one second |
| 21:15:51 | obvio enters the room. | |
| 21:16:58 | jluxenberg | RLIMIT_MEMLOCK: lim: 140741783322623 max: 0 |
| 21:17:30 | Defiler | OK, yeah.. that's the problem |
| 21:17:35 | Defiler | lim isn't allowed to be greater than max |
| 21:18:14 | Defiler | my box prints: RLIMIT_MEMLOCK: lim: 9223372036854775807 max: 9223372036854775807 |
| 21:20:27 | boyscout | 1 commit by Wilson Bilkovich |
| 21:20:28 | boyscout | * Tweak Process.setrlimit spec for odd Linux platforms; 6039a3b |
| 21:20:29 | Defiler | That should fix it |
| 21:21:31 | Defiler | You can do: git fetch && git rebase origin |
| 21:21:36 | Defiler | to integrate that change to your copy |
| 21:21:51 | Defiler | (all your local changes must have been committed first) |
| 21:22:00 | Defiler | So you can remove that 'puts' line I had you add |
| 21:23:32 | jluxenberg | ok |
| 21:23:46 | jluxenberg | what is "origin"? |
| 21:24:16 | Defiler | That is the name git assigns to the URL you cloned from |
| 21:24:39 | Defiler | So what that command is doing is downloading any updates, without merging them into the branch you are working on |
| 21:25:01 | Defiler | ..and then you are saying "modify my working copy so that the commits I have done come AFTER whatever is in the origin copy" |
| 21:25:17 | jluxenberg | ah, ok |
| 21:25:18 | Defiler | It's pretty cool.. it's like doing "svn up" without needing to merge by hand |
| 21:25:53 | Defiler | You can also do git rebase --interactive, which is crazy awesome, and lets you move your commits around |
| 21:26:03 | Defiler | but you won't need that today |
| 21:31:00 | Defiler | But please let me know if that change makes the spec pass for you |
| 21:31:25 | jluxenberg | okay, one sec |
| 21:32:25 | jluxenberg | when I do the git rebase, it says "... needs update" |
| 21:32:40 | Defiler | 'git status' should show that nothing has changes |
| 21:32:48 | Defiler | ('git diff' is another way to check) |
| 21:33:03 | Defiler | Which files does git status list out as being modified? |
| 21:33:14 | jluxenberg | various .h files created by the build process |
| 21:33:50 | Defiler | really? |
| 21:33:57 | Defiler | Can you paste the output of 'git status' for me? |
| 21:34:01 | Defiler | That sounds like a build problem |
| 21:35:04 | jluxenberg | http://pastie.caboo.se/159879 |
| 21:35:08 | rubuildius_ppc | Wilson Bilkovich: 6039a3bd4; 1723 files, 5813 examples, 19808 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/159880 |
| 21:35:30 | jluxenberg | woah something weird is going on in lightning/doc |
| 21:35:38 | Defiler | Aah |
| 21:35:44 | Defiler | lightning went away yesterday |
| 21:36:36 | jluxenberg | but the spec still fails, same error |
| 21:36:48 | Defiler | try this: git checkout shotgun/external_libs |
| 21:36:54 | Defiler | You haven't gotten the updated copy of the spec yet |
| 21:36:58 | Defiler | Because the 'rebase' didn't finish |
| 21:37:03 | jluxenberg | oh, ok |
| 21:37:09 | jluxenberg | what after the checkout? |
| 21:37:24 | Defiler | run git status again |
| 21:37:35 | Defiler | and see if 'changed but not updated' is now empty/gone |
| 21:38:16 | jluxenberg | it's gone |
| 21:38:27 | Defiler | cool |
| 21:38:33 | Defiler | now type 'git rebase origin' |
| 21:38:50 | Defiler | Assuming that doesn't complain, you can type 'rake' and then re-run that spec |
| 21:39:03 | jluxenberg | http://pastie.caboo.se/159881 |
| 21:39:07 | jluxenberg | errored out |
| 21:39:45 | Defiler | wtf |
| 21:40:18 | Defiler | try opening that file in your editor, and see if it has a section it wants you to edit |
| 21:40:38 | jluxenberg | yeah, http://pastie.caboo.se/159882 |
| 21:40:44 | jluxenberg | ag shit |
| 21:40:45 | jluxenberg | sorry |
| 21:40:46 | jluxenberg | lol |
| 21:40:57 | Defiler | Told you to remove that line :) |
| 21:41:51 | Defiler | Oh, and after this part works.. |
| 21:41:52 | jluxenberg | weird |
| 21:42:00 | Defiler | I will have you type: "spec/tags/ruby/1.8/core/marshal/ |
| 21:42:03 | Defiler | err.. |
| 21:42:04 | Defiler | git add spec/tags/ruby/1.8/core/marshal/ |
| 21:42:07 | jluxenberg | rake doesn't do anything even though the files have changed |
| 21:42:15 | Defiler | That's fine.. probably means only specs changed |
| 21:42:25 | Defiler | Just wanted to make sure nothing in the core had changed since you started this |
| 21:42:51 | jluxenberg | ah |
| 21:42:54 | jluxenberg | it still fails |
| 21:43:11 | Defiler | do 'git fetch' and then 'git rebase origin' again just to make sure it is all up to date |
| 21:43:22 | Defiler | Since you had trouble the first time. I think you are OK now, but we should make sure |
| 21:43:54 | jluxenberg | oh, it is saying "spec/ruby/1.8/core/process/setrlimit_spec.rb: needs update" when I "git rebase origin" |
| 21:44:07 | jluxenberg | is that stopping the rebase from happening? |
| 21:44:09 | Defiler | yes |
| 21:44:22 | Defiler | do: git checkout spec/ruby/1.8/core/process/setrlimit_spec.rb |
| 21:45:50 | Defiler | then git rebase origin again |
| 21:46:47 | jluxenberg | alright should be fixed now |
| 21:46:54 | jluxenberg | but the spec still fails |
| 21:47:02 | jluxenberg | git rebase origin says "Current branch master up to date" |
| 21:47:35 | jluxenberg | and "git diff spec/ruby/1.8/core/process/setrlimit_spec.rb" outputs "" |
| 21:47:42 | jluxenberg | so I'm pretty sure we have the same file there |
| 21:49:46 | Defiler | OK |
| 21:49:52 | Defiler | You can make totally sure by looking on line 73 |
| 21:50:05 | Defiler | ..and if you see max = lim if lim > max then it is right |
| 21:50:26 | Defiler | Or, well, at least includes the change I added |
| 21:50:27 | jluxenberg | max = lim if lim > max # EINVAL is raised if this invariant is violated |
| 21:50:34 | Defiler | OK. Cool. You are up to date |
| 21:50:36 | MacRue enters the room. | |
| 21:50:42 | obvio171 enters the room. | |
| 21:50:46 | Defiler | So, that didn't fix it.. i will install Ubuntu and track it down here |
| 21:50:57 | Defiler | So we can ignore that for now. Sorry for the wild chase |
| 21:51:01 | Toba leaves the room. | |
| 21:51:17 | Defiler | Now, you can do that 'git add' on spec/tags/ruby/1.8/core/marshal |
| 21:51:20 | MacRue | Ew, Colloquy plays sounds |
| 21:51:39 | Defiler | ..and commit that as well, and use git format-patch again to make a patch for that as well |
| 21:52:10 | jluxenberg | I already made a patch by doing "git-format-patch HEAD^ spec/tags/ruby/1.8/core/marshal" |
| 21:52:13 | jluxenberg | is that wrong? |
| 21:52:33 | ataiar enters the room. | |
| 21:53:11 | foysavas leaves the room. | |
| 21:56:16 | obvio leaves the room. | |
| 21:56:21 | jluxenberg | here's the ticket: http://rubinius.lighthouseapp.com/projects/5089/tickets/377-patch-added-specs-for-marshal-ing-a-su bclassed-hash-object |
| 21:56:28 | foysavas enters the room. | |
| 21:59:51 | Defiler | jluxenberg: Your patch isn't wrong.. but I noticed when you pasted 'git status'.. |
| 22:00:05 | Defiler | ..that the change you had made using that bin/mspec tag command had not gotten committed |
| 22:00:19 | Defiler | But I can fix that here when I apply it |
| 22:00:22 | Defiler | So don't bother for now |
| 22:00:38 | jluxenberg | ah, okay. where is that data stored, for future reference? |
| 22:00:41 | ataiar leaves the room. | |
| 22:00:58 | Defiler | spec/tags |
| 22:01:04 | Defiler | You can see it in 'git status' |
| 22:01:05 | jluxenberg | ah, makes sense |
| 22:01:09 | jluxenberg | ah, okay |
| 22:01:31 | GMFlash leaves the room. | |
| 22:01:45 | Defiler | Oh, I see what happened.. you committed that 'puts 'RLIMIT'' line in this patch |
| 22:06:18 | jluxenberg | oh, crap yeah I didn't catch that |
| 22:06:19 | jluxenberg | sorry |
| 22:06:49 | Defiler | Trying to improve my git-fu so that I can easily fix that |
| 22:06:56 | therealadam leaves the room. | |
| 22:13:12 | Defiler | jluxenberg: So.. this spec fails on ruby 1.8 for me |
| 22:13:14 | Defiler | It passed for you? |
| 22:13:28 | jluxenberg | yeah |
| 22:13:32 | jluxenberg | let me double check. |
| 22:13:40 | benny enters the room. | |
| 22:13:42 | Defiler | http://rafb.net/p/RZHNhD90.html |
| 22:14:31 | benny | hey there... rubuildius will be down until tuesday (the server needs to be booted with a password, I live in germany after all ;-)) |
| 22:14:39 | benny | so, sorry about that |
| 22:15:04 | Defiler | jluxenberg: OK, I changed it from checking that the thing was first in the ancestors list, to checking that it was included in the list |
| 22:15:24 | Defiler | benny: No problem. That will give people an incentive to finish the new bot setup :) |
| 22:15:26 | jluxenberg | let me figure out why it's not first |
| 22:15:51 | Defiler | [Meths, UserHashInitParams, Hash, Enumerable, Object, PP::ObjectMixin, Kernel] |
| 22:15:58 | Defiler | Is the list I get on 1.8.6 |
| 22:16:08 | jluxenberg | okay I see |
| 22:16:11 | jluxenberg | yeah that's right |
| 22:16:15 | dewd leaves the room. | |
| 22:16:33 | jluxenberg | maybe change it so that it checks that its second in that list? |
| 22:16:40 | Defiler | OK |
| 22:16:49 | cremes | benny: rubuildius_ppc will carry the load in the interim! |
| 22:16:52 | benny | Mwuwhahaha, my plan worked perfectly. |
| 22:17:09 | cremes | benny: you crafty devil... |
| 22:17:32 | benny | well, being disconnected by irc gives rise to the inner evil |
| 22:17:32 | d2dchat leaves the room. | |
| 22:18:45 | Defiler | Wow, we have a truly unacceptable number of CI failures under ruby 1.8.6 |
| 22:18:59 | Defiler | We need to fix that before 1.0preview |
| 22:19:18 | boyscout | 2 commits by Wilson Bilkovich |
| 22:19:19 | boyscout | * Tweak new Marshal spec to pass on MatzRuby; 70aa320 |
| 22:19:20 | boyscout | * Tag new failing Marshal spec; 35476e1 |
| 22:19:36 | Defiler | Aah.. looks like a boyscout bug, that it didn't report yours |
| 22:20:20 | jluxenberg | s'ok |
| 22:21:36 | Defiler | I updated the ticket. Thanks for the spec |
| 22:21:46 | jluxenberg | welcome |
| 22:22:01 | ataiar enters the room. | |
| 22:22:12 | ataiar leaves the room. | |
| 22:25:05 | Defiler | I made a ticket for that setrlimit thing |
| 22:25:07 | Defiler | http://rubinius.lighthouseapp.com/projects/5089-rubinius/tickets/378-incorrect-process-setrlimit-s pec-on-some-linux |
| 22:25:12 | Defiler | I'll take care of it soon |
| 22:26:08 | headius | 1.0 preview? |
| 22:29:54 | rubuildius_ppc | Wilson Bilkovich: 70aa320f7; 1723 files, 5814 examples, 19809 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/159903 |
| 22:35:46 | cavalle leaves the room. | |
| 22:36:20 | cavalle enters the room. | |
| 22:36:47 | enebo leaves the room. | |
| 22:36:50 | Defiler | headius: our next milestone |
| 22:37:12 | headius | is that coming soon? I thought 1.0preview was the version you guys were going to have out in early jan |
| 22:37:19 | Defiler | May 16th |
| 22:37:27 | headius | for railsconf eh? |
| 22:37:30 | Defiler | yar |
| 22:37:37 | headius | running rails a kajillion times faster than anything? |
| 22:37:49 | Defiler | As long as we beat that crapy JRuby pile |
| 22:37:51 | Defiler | I mean.. uhh... |
| 22:37:56 | Defiler | but yes, running Rails |
| 22:38:02 | Defiler | at least, I have tickets that require such |
| 22:38:12 | headius | I'm just happy jruby's the one to beat |
| 22:38:31 | headius | have you guys started running rails tests? |
| 22:38:34 | Defiler | yes |
| 22:38:48 | Def |