Show enters and exits. Hide enters and exits.
| 00:01:19 | rue | Is tea going to be the next big thing out of Seattle? |
| 00:02:01 | chris2 leaves the room. | |
| 00:02:47 | joachimm | evan: are you seeing the same error on ppc? |
| 00:03:16 | evan | i haven't been home to check |
| 00:03:19 | evan | i will later. |
| 00:04:47 | drbrain | rue: unlikely |
| 00:06:55 | joachimm | evan: ok, nice. bed time here. bye. |
| 00:07:05 | evan | joachimm: ok |
| 00:07:10 | evan | talk tomorrow |
| 00:09:48 | hornbeck enters the room. | |
| 00:14:45 | therealadam leaves the room. | |
| 00:16:02 | ezmobius leaves the room. | |
| 00:16:19 | ezmobius enters the room. | |
| 00:24:41 | tomy | evan: Got a sec? |
| 00:24:47 | evan | sure, sup? |
| 00:25:40 | tomy | I've got an overloaded method in llvm Module::getOrInsertFunction |
| 00:26:11 | tomy | It can take a name and a function prototype object, or a variable argument list of return type followed by args. |
| 00:26:43 | evan | ok. |
| 00:27:04 | tomy | Rice has a nice facility for wrapping these, but would it be more ruby-like to have a single method that takes a variable number of objects ? |
| 00:27:22 | evan | i'd let rice wrap the API the same way as the C++ one |
| 00:27:33 | evan | then wrap that api to make it more ruby like all in ruby |
| 00:28:04 | tomy | Then I have to come up with different names getOrInsertFunctionByFunctionPrototype and getOrInsertFunctionByArgs |
| 00:28:18 | evan | ah ah. |
| 00:28:24 | evan | well |
| 00:28:25 | tomy | But yes I can do the rubifying in ruby code. |
| 00:28:46 | evan | rice doesn't output overloaded methods? |
| 00:29:30 | tomy | The rice method is to create function templates and protoypes to wrap them up. |
| 00:29:57 | trythil_ leaves the room. | |
| 00:30:10 | tarcieri | does rice have a web page? |
| 00:30:22 | tarcieri | the only one I'm seeing is "Ruby Irc interfaCE" |
| 00:30:26 | tomy | So if you have two methods called capacity and one took an arg (common idiom in c++), you use prototypes mapped to get_capacity and set_capacity |
| 00:30:27 | evan | will rice generate seperates methods for each overloaded type of a function? |
| 00:30:33 | tarcieri | oh |
| 00:30:36 | tarcieri | rice.rubyforge.org |
| 00:30:37 | tarcieri | my bad |
| 00:30:58 | evan | tomy_: sure |
| 00:31:06 | tomy | With a little work, but you have to give them different names |
| 00:31:16 | evan | say you have a method make_awesome that takes a char* or an int |
| 00:31:16 | boyscout | you have a method make_awesome that takes a char* or an int |
| 00:31:43 | evan | rice should either create a function that sits between and checks the incoming types and does a cast then call |
| 00:31:49 | evan | so you can call either via one Ruby method |
| 00:31:53 | evan | or generate 2 ruby methods |
| 00:31:59 | evan | one for each signature of the C++ function |
| 00:32:30 | knowtheory leaves the room. | |
| 00:32:40 | tomy | That was what I was going to do selectively by hand. For example, when the function overloads only differ by float or int |
| 00:33:18 | evan | yeah |
| 00:33:21 | tomy | Rice relies heavily on templates and partial specialization, so they are limited in what they can do. |
| 00:33:26 | evan | if we have to do them by hand, it's going to be a pain |
| 00:34:10 | tomy | I don't see a lot of overloaded stuff. I think I will just do the Rice typedef thing and then wrap that up with a little ruby sugar. |
| 00:34:38 | evan | ok |
| 00:34:52 | tomy | There is a lot of classes, so I am concentrating on the classes necessary to go through the tutorials |
| 00:35:19 | evan | awesome |
| 00:35:22 | tomy | Then create ruby versions of the tutorials. I also had a go at using swig, but it chokes on some macros |
| 00:35:27 | evan | are you using rb++ ? |
| 00:35:35 | evan | or setting things up in rice by hand |
| 00:35:40 | tomy | I'm not familiar with that |
| 00:35:51 | evan | oh, you weren't here last night |
| 00:36:09 | evan | someone wrote a ruby lib thet uses gccxml to autogenerate bindings for C and C++ |
| 00:36:12 | tomy | I'm using rice by hand, but it is really pretty simple. But I've thought that the rice stuff could be generated |
| 00:36:23 | tomy | Whoa, cool idea |
| 00:36:49 | tomy | I'll dig around for that. |
| 00:36:55 | evan | cool |
| 00:36:57 | evan | i'll find ya the link |
| 00:36:58 | evan | one sec. |
| 00:37:08 | evan | http://rbplusplus.rubyforge.org/ |
| 00:37:33 | tomy | I'll have a look. |
| 00:39:29 | tomy | Looks interesting. I was having major namespace pollution last night in my brain. There's a ruby module, a rice module, and an llvm module, so I pretty much can't use "using namespace", it hurts the brain. |
| 00:40:07 | evan | heh |
| 00:40:49 | evan | well, my eventual plan is to have a version of rice that rewrites the backend interface layer to use Rubinius directly rather than the MRI API |
| 00:41:20 | tarcieri | tomy: you're trying to do bindings to LLVM through its C++ API? |
| 00:41:41 | agile enters the room. | |
| 00:41:47 | tomy | For a while I was thinking about writing a compatible MRI API that called into llvm, |
| 00:42:05 | tomy | tarcieri: yes using C++. |
| 00:43:25 | tomy | The C++ isn't over the top like some C++ API's. It maps nicely to ruby. And with some syntactic sugar we could have things like Module.new { Block.new { ...}} |
| 00:43:59 | dctanner enters the room. | |
| 00:45:43 | rue | Hrm. I think my APR is hosed.. it keeps creating buckets with random functions |
| 00:46:10 | rue | Like one's free fptr was actually apr_psprintf :P |
| 00:46:21 | drbrain | you mean buckets of FUN! |
| 00:46:36 | evan | for ever-y-one! |
| 00:46:38 | rue | Heh, something like that |
| 00:47:55 | tomy | evan: When you get into rice, not that some of their tutorial code has incorrect syntax, notably the typedef declarations of method pointers: |
| 00:48:50 | tomy | typedef size_t (*Container::get_capacity)(); should be typedef size_t (Container::*get_capacity)(); |
| 00:49:08 | knowtheory enters the room. | |
| 00:49:19 | evan | ah |
| 00:49:21 | tomy | And gcc won't give you a clue as to what is wrong. I have forgotten what a pain C++ is. |
| 00:49:21 | evan | ok |
| 00:57:48 | ShayArnett enters the room. | |
| 01:05:51 | foysavas leaves the room. | |
| 01:06:16 | anthonymorrisjoh leaves the room. | |
| 01:09:38 | benny leaves the room. | |
| 01:11:18 | mapar leaves the room. | |
| 01:12:02 | foysavas enters the room. | |
| 01:14:31 | dctanner leaves the room. | |
| 01:19:34 | trythil enters the room. | |
| 01:31:18 | lopex leaves the room. | |
| 01:33:03 | ShayArnett_ enters the room. | |
| 01:33:03 | ShayArnett leaves the room. | |
| 01:33:07 | marnen enters the room. | |
| 01:34:39 | enebo enters the room. | |
| 01:35:09 | jp_tix | huh, rubinius supports non-local returns (or whatever it's called) |
| 01:35:41 | marnen leaves the room. | |
| 01:35:50 | jp_tix | [1,2,3,4,5].each { |n| return n if n == 3 } # => 3 |
| 01:36:25 | jp_tix | MRI raises LocalJumpError, and jruby just quits |
| 01:38:35 | jp_tix | wonders if this is by design |
| 01:39:40 | drbrain | I think we should raise LocalJumpError |
| 01:39:53 | drbrain | should use break there |
| 01:41:06 | jp_tix | i kind of like it - smalltalk allows non-local returns |
| 01:41:12 | jp_tix | but yeah, should probably do as MRI |
| 01:41:17 | benstiglitz leaves the room. | |
| 01:41:27 | blakewatters enters the room. | |
| 01:46:17 | thudson_ leaves the room. | |
| 01:46:53 | tomy_ leaves the room. | |
| 01:47:51 | dlee leaves the room. | |
| 01:48:16 | blakewatters leaves the room. | |
| 01:50:29 | blakewatters enters the room. | |
| 01:50:43 | jtoy enters the room. | |
| 01:52:34 | enebo leaves the room. | |
| 02:06:44 | marnen enters the room. | |
| 02:08:43 | blakewatters leaves the room. | |
| 02:15:01 | GMFlash leaves the room. | |
| 02:15:10 | GMFlash enters the room. | |
| 02:24:42 | anthonymorrisjoh enters the room. | |
| 02:24:52 | rue | jp_tix: Can you open a ticket? |
| 02:25:03 | imajes leaves the room. | |
| 02:25:37 | jp_tix | rue: there's already a spec for it |
| 02:25:45 | jp_tix | but you want a ticket anyway? |
| 02:29:11 | crafterm enters the room. | |
| 02:30:54 | rue | Oh, nevermind if it is caught already |
| 02:31:10 | stepheneb leaves the room. | |
| 02:31:39 | _VVSiz_ enters the room. | |
| 02:34:49 | dfg59 enters the room. | |
| 02:45:30 | dfg59 leaves the room. | |
| 02:49:24 | VVSiz_ leaves the room. | |
| 03:06:59 | hornbeck leaves the room. | |
| 03:09:27 | bitbang enters the room. | |
| 03:10:30 | ezmobius leaves the room. | |
| 03:10:49 | ezmobius enters the room. | |
| 03:13:29 | crafterm leaves the room. | |
| 03:15:07 | anthonymorrisjoh leaves the room. | |
| 03:16:16 | Erlang00t enters the room. | |
| 03:22:06 | mernen enters the room. | |
| 03:22:08 | jacen_ leaves the room. | |
| 03:26:31 | benburkert leaves the room. | |
| 03:28:48 | enebo enters the room. | |
| 03:33:26 | MenTaLguY enters the room. | |
| 03:41:21 | benburkert enters the room. | |
| 03:43:29 | benburkert leaves the room. | |
| 03:43:44 | Yurik leaves the room. | |
| 03:44:31 | ttmrichter enters the room. | |
| 03:45:04 | tarcieri | hey MenTaLguY |
| 03:45:10 | MenTaLguY | hey tony |
| 03:45:12 | MenTaLguY | how's it going? |
| 03:45:18 | tarcieri | pretty well |
| 03:45:32 | tarcieri | I've come to a conclusion about Ports |
| 03:45:49 | benburkert enters the room. | |
| 03:45:55 | MenTaLguY | ah? |
| 03:45:59 | tarcieri | I think it's bad to circumvent standard message delivery, except as a down-the-road performance optimization once you have a working system in place |
| 03:46:31 | enebo leaves the room. | |
| 03:46:36 | MenTaLguY | I agree. |
| 03:46:42 | tarcieri | circumventing normal message delivery means you need to deal with all the duck types of Actor individually |
| 03:46:50 | MenTaLguY | among other things |
| 03:47:01 | MenTaLguY | (well, or make the mechanism part of the duck type) |
| 03:47:08 | tarcieri | so I think something like Revactor's "inets" is the way to go |
| 03:47:32 | MenTaLguY | quite possibly |
| 03:47:37 | tarcieri | i.e. a big central Reactor loop which delivers messages to the interested Actors |
| 03:47:47 | MenTaLguY | nods |
| 03:47:57 | tarcieri | using <</"send" |
| 03:48:04 | MenTaLguY | I think that's what I was suggesting a while back. :) |
| 03:48:14 | tarcieri | yeah, I just got performance hungry |
| 03:48:29 | tarcieri | and didn't think about the non-local Actor case |
| 03:49:19 | MenTaLguY | regarding performance, have you thought about the Proactor pattern much? |
| 03:49:43 | tarcieri | yeah, I... do not see how it is teneable for streaming protocols |
| 03:50:01 | agile leaves the room. | |
| 03:50:10 | MenTaLguY | hm, howso? |
| 03:50:41 | tarcieri | well I haven't looked at it since forever ago, but isn't it all based around async I/O, i.e. "you do the event handling and I/O for me", i.e. I know how much to read all the time? |
| 03:50:44 | mapar enters the room. | |
| 03:51:23 | MenTaLguY | yes, pretty much |
| 03:51:51 | tarcieri | I have never seen how that approach can ever fit buffered protocols |
| 03:51:52 | MenTaLguY | but I'm not sure it differs as far as knowing how much to read |
| 03:52:11 | trythil_ enters the room. | |
| 03:52:16 | agile enters the room. | |
| 03:52:33 | tarcieri | i.e. read everything you can, stick it through a (hopefully FSM) parser, and read more unless the parser is in its finished state |
| 03:52:33 | trythil leaves the room. | |
| 03:52:43 | obvio leaves the room. | |
| 03:53:33 | tarcieri | I mean, somehow Microsoft has an HTTP server going on I/O completion ports |
| 03:53:56 | tarcieri | it's just not an approach I've ever liked... maybe because I don't properly understand it, but I don't see how buffered protocols are possible |
| 03:54:00 | MenTaLguY | I'm having difficulty seeing the problem, I guess |
| 03:54:25 | xhanjian1 leaves the room. | |
| 03:54:27 | tarcieri | okay, so if the protocol in question is HTTP |
| 03:54:29 | tarcieri | how much do you read? |
| 03:54:39 | MenTaLguY | how much do you read in the reactor case? |
| 03:54:44 | tarcieri | you don't |
| 03:54:55 | tarcieri | the Reactor loop sees that data is available |
| 03:54:57 | tarcieri | reads all it can |
| 03:54:59 | tarcieri | and gives it to you |
| 03:55:21 | MenTaLguY | that is proactor, not reactor |
| 03:55:26 | xhanjian enters the room. | |
| 03:55:28 | tarcieri | that's Reactor |
| 03:55:34 | MenTaLguY | really. |
| 03:55:40 | tarcieri | iirc Proactor is "give me X bytes of data" |
| 03:55:43 | tarcieri | I can look again |
| 03:55:56 | tarcieri | it follows the traditional buffered I/O / async I/O approach |
| 03:56:00 | MenTaLguY | my understanding was that reactor just called your handler, and your handler was responsible for doing the read, whereas proactor does the read for you |
| 03:56:10 | tarcieri | yes |
| 03:56:13 | tarcieri | same basic idea |
| 03:57:16 | MenTaLguY | when your handler does the read, you've got to pass a sized buffer to the read system call |
| 03:57:47 | tarcieri | Reactor is looking for readable/writable events |
| 03:57:48 | MenTaLguY | when you ask proactor to do a read, you've got to give it a maximum size to read, just the same as you do the read call |
| 03:57:52 | tarcieri | Proactor is looking for I/O completions |
| 03:58:14 | tarcieri | it's like asking Scheduler to send you data vs. having Scheduler send you readiness notices |
| 03:58:26 | tarcieri | is it a maximum? |
| 03:58:29 | MenTaLguY | yes |
| 03:58:38 | MenTaLguY | just like it is with reactor when you call read yourself |
| 03:58:44 | MenTaLguY | if there's less data available you get less |
| 03:58:53 | tarcieri | ok |
| 03:59:06 | tarcieri | well if that's really the case, I've been confused all along, and have been implementing Proactors :) |
| 03:59:08 | MenTaLguY | btw, Scheduler.send_on_readable does actually do the read for you if you pass it a buffer :) |
| 03:59:19 | tarcieri | yeah, that's the point |
| 03:59:24 | MenTaLguY | yeah, that's Proactor |
| 03:59:33 | tarcieri | does Scheduler take n bytes, or max-of-n bytes? |
| 03:59:57 | tarcieri | i.e. does it do read o readpartial? |
| 04:00:10 | tarcieri | I guess I should look at the readpartial sources |
| 04:00:18 | tarcieri | looks at IOCP again |
| 04:00:58 | MenTaLguY | I believeit takes max-of-n bytes |
| 04:01:46 | evan | evening boys |
| 04:01:55 | tarcieri | urgh silly Microsoft muckety muck MSDN documentation |
| 04:02:02 | MenTaLguY | evening evan |
| 04:02:06 | tarcieri | sup evan |
| 04:02:11 | evan | tarcieri: yes, it does a readpartial |
| 04:02:15 | MenTaLguY | evan numbah seven |
| 04:02:15 | evan | it doesn't block |
| 04:02:22 | tarcieri | sweet |
| 04:02:32 | evan | you give it a buffer and how many bytes you'd like |
| 04:02:37 | evan | the buffer is filled with as much is available |
| 04:02:39 | rue | Fuck I am stupid. Spent hours because I needed *& and not ** for the effect I was going for |
| 04:02:42 | evan | blocking is for posers. |
| 04:02:47 | MenTaLguY | I was thinking about Scheduler stuff today |
| 04:02:50 | tarcieri | heh, indeed blocking is for poseurs |
| 04:03:07 | MenTaLguY | I think what most Scheduler things should write by default is the Scheduler event id |
| 04:03:18 | MenTaLguY | s/write/send/ |
| 04:03:30 | MenTaLguY | it seems like that's the only good way to allow multiplexing |
| 04:03:34 | tarcieri | yeah |
| 04:03:35 | evan | ah |
| 04:03:36 | MenTaLguY | on a single wait channel |
| 04:03:38 | evan | thats a good call |
| 04:03:43 | tarcieri | especially in the case of Scheduler doing the I/O for you |
| 04:03:52 | tarcieri | you want what you get back to be flagged with some kind of id |
| 04:03:58 | enebo enters the room. | |
| 04:04:09 | MenTaLguY | and I also think the scheduler event ID should ideally be an immediate object rather than a fixnum |
| 04:04:15 | MenTaLguY | that way they can be GCed and recycled |
| 04:04:27 | MenTaLguY | rather than the counter wrapping or overflowing into bignums after enough IO |
| 04:04:29 | evan | fixnum's are immediate |
| 04:04:38 | MenTaLguY | an immediate object that's not a fixnum :) |
| 04:04:42 | evan | like what? |
| 04:04:44 | MenTaLguY | to permit GCing event IDs |
| 04:05:02 | evan | well, that complicates things |
| 04:05:06 | evan | why not just have an Event object |
| 04:05:22 | MenTaLguY | yeah, I guess so |
| 04:05:32 | MenTaLguY | I'm going all premature optimization here |
| 04:05:38 | MenTaLguY | an Event object ought to be fine |
| 04:05:56 | tarcieri | an event object would rock |
| 04:06:28 | tarcieri | especially if you had subclasses for different types of events |
| 04:06:38 | tarcieri | then you could do your event handling all slick like with case |
| 04:06:41 | MenTaLguY | hm, that's an interesting point |
| 04:06:47 | tarcieri | TimeoutEvent |
| 04:06:52 | tarcieri | would certainly be nicer than nil :) |
| 04:06:57 | evan | well, we could subclass out Scheduler's functionality |
| 04:06:58 | MenTaLguY | you could do stuff like have the Event carry the read buffer back to you for a proacted read |
| 04:07:05 | tarcieri | yep |
| 04:07:16 | evan | te = TimeoutEvent.perform chan, 5.0 |
| 04:07:27 | MenTaLguY | hm. |
| 04:07:36 | evan | in the VM, there already is an 'event' object |
| 04:07:42 | evan | that holds the buffer and such |
| 04:07:46 | MenTaLguY | nods |
| 04:07:47 | evan | so this would just be exposing it |
| 04:07:55 | MenTaLguY | let's just expose that to start with |
| 04:08:00 | MenTaLguY | and give it an Event#cancel method |
| 04:08:12 | tarcieri | that would be so sweet |
| 04:08:13 | evan | sure |
| 04:08:19 | tarcieri | especially if it could carry at least one other value |
| 04:08:35 | evan | so that I don't forget |
| 04:08:37 | evan | open a ticket |
| 04:08:47 | tarcieri | okee |
| 04:09:01 | tarcieri | okee, should I do that, or do you want to, MenTaLguY? |
| 04:09:39 | MenTaLguY | please do it tony |
| 04:09:45 | tarcieri | sweet |
| 04:09:45 | MenTaLguY | I'm just about out of time tonight |
| 04:09:57 | ezmobius leaves the room. | |
| 04:10:02 | tarcieri | out of time until what? |
| 04:10:04 | evan | i'm so excited about no more ivar_as_index |
| 04:10:07 | MenTaLguY | until tomorrow |
| 04:10:19 | tarcieri | evan: using... slots or something? |
| 04:10:26 | MenTaLguY | I need to goto :bed, :time => :early |
| 04:10:33 | evan | tarcieri: it always used slots |
| 04:10:50 | tarcieri | ok, guess I missed what you did then |
| 04:10:52 | evan | tarcieri: i'm moving more towards an arch where a CompiledMethod is an execution blueprint |
| 04:11:06 | tarcieri | MenTaLguY: I never go to bed early, heh |
| 04:12:00 | MenTaLguY | I seldom do, but I ought to. |
| 04:12:17 | MenTaLguY | and for tomorrow it's important since I've got to get up early |
| 04:13:00 | evan | the VM is going to transform a CM into a VMMethod, thats going to include transform access to ivars into access into slots |
| 04:13:12 | evan | phase 1 is only the builtin classes |
| 04:13:29 | evan | and preallocated ivar to slot bindings |
| 04:14:07 | tarcieri | ok |
| 04:14:19 | tarcieri | so struct-like access to ivars, handled at compile-time? |
| 04:14:26 | evan | no |
| 04:14:32 | tarcieri | no! heh |
| 04:14:32 | evan | that was ivar_as_index |
| 04:14:37 | tarcieri | o |
| 04:14:55 | evan | ivar as index gave the compiler knowledge of what ivars were actually slots |
| 04:15:14 | evan | and the bytecode would then contain a bytecode to access a slot, instead of a normal, dynamic ivar |
| 04:15:21 | evan | then new scheme moves that into the VM |
| 04:15:25 | evan | the compiler doesn't have to care |
| 04:15:36 | tarcieri | so it's handled at runtime? |
| 04:15:45 | evan | the VM takes care of rewriting ivar access when the CM is first run |
| 04:16:09 | evan | yeah, runtime. |
| 04:16:53 | tarcieri | so it's like inline "slotting" of ivars as they get used? |
| 04:17:01 | evan | thats phase 2 |
| 04:17:08 | evan | detecting and assign ivars to slots dynamically |
| 04:17:18 | evan | phase 1 is that the binding of ivar to slot is hardcoded |
| 04:17:33 | evan | decided at VM compile time |
| 04:18:12 | rue | Mm, how are you doing the substitution to avoid the cost for all CM first runs? |
| 04:18:39 | tarcieri | evan: oh, here's a question about the whole event thing |
| 04:19:08 | evan | rue: i'm not |
| 04:19:31 | tarcieri | evan: In Rev I have something similar, but you instantiate the event observer objects first before binding them to the "Scheduler" |
| 04:19:39 | evan | very CM first run will generate the backend VMMethod object, which contains the translated instructions |
| 04:19:50 | evan | tarcieri: ok |
| 04:20:02 | tarcieri | evan: that way it can carry a user value along with it |
| 04:20:20 | marnen leaves the room. | |
| 04:20:32 | tarcieri | TimeoutEvent.perform chan, 5.0, value would work, I guess |
| 04:21:01 | evan | what does the Rev api look like? |
| 04:21:03 | evan | give me an example |
| 04:21:23 | tarcieri | at the lowest level, there's things like IOWatcher |
| 04:21:31 | MenTaLguY | I'm not real keen on the idea of making the user instantiate their own event object |
| 04:21:50 | tarcieri | MenTaLguY: they don't have to in order to have the capability to pass user values |
| 04:21:57 | tarcieri | ^^^ is probably the way to go |
| 04:22:23 | MenTaLguY | indeed |
| 04:22:29 | tarcieri | IOWatcher is fundamentally an event observer |
| 04:22:36 | tarcieri | and what I'd be trying to implement on top of scheduler |
| 04:22:38 | MenTaLguY | and actually in the Scheduler case the internal event things already have a field for the user value |
| 04:22:57 | MenTaLguY | though right now that's also the buffer for proacted reads |
| 04:23:16 | tarcieri | Rev::Loop.default is a singleton for the "default loop" which really signifies nothing except that it's a singleton and thus globally accessible |
| 04:24:04 | tarcieri | to receive I/O events, you subclass IOWatcher (or it has an alternative API that does instance_eval) |
| 04:24:07 | tarcieri | so |
| 04:24:39 | tarcieri | class MyObserver < Rev::IOWatcher; def on_readable; puts "read event"; end; end |
| 04:24:59 | evan | how do ou get the data? |
| 04:25:25 | tarcieri | then MyObserver.new(io).attach(Rev::Loop.default) to have it wait for events... Rev::Loop.default.run to run the Reactor loop |
| 04:25:50 | stepheneb enters the room. | |
| 04:26:06 | tarcieri | which will call the on_readable method when the IO object becomes readable... in order to read the data you need something else holding onto the IO object to call #read_nonblock |
| 04:26:14 | evan | ok |
| 04:26:21 | evan | so it's up to you to use IO#readpartial then |
| 04:26:44 | tarcieri | yeah, #readpartial works... but you still need IO#write_nonblock |
| 04:26:53 | evan | yeah |
| 04:27:12 | tarcieri | so on top of that is a Proactor, I guess... Rev::IO which creates a read watcher and a write watcher |
| 04:27:26 | evan | my thinking was integration the read task at the lowest layer improves things a lot |
| 04:27:33 | tarcieri | yeah for sure |
| 04:28:27 | tarcieri | if you had ReadEvent.perform chan, io, 4096, value |
| 04:28:33 | tarcieri | that'd be awesome |
| 04:28:49 | evan | sure |
| 04:28:56 | evan | that simplifies the VM |
| 04:29:08 | evan | because it can have the event chain be real Event objects |
| 04:29:19 | tarcieri | sweet |
| 04:30:00 | evan | ok, i'm going to eat dinner. |
| 04:30:01 | evan | bbiab. |
| 04:35:11 | tarcieri | posted a ticket to lighthouse |
| 04:36:18 | mernen leaves the room. | |
| 04:41:16 | mapar leaves the room. | |
| 04:46:03 | rue | Whoa, Indiana is <2% |
| 04:49:19 | tarcieri | after locking up on me the last 5 times I tried to play it, GTA4 multiplayer is working again |
| 04:49:21 | tarcieri | *boggle* |
| 04:51:45 | hornbeck enters the room. | |
| 04:52:12 | trythil_ leaves the room. | |
| 04:52:15 | trythil enters the room. | |
| 04:52:22 | yugui enters the room. | |
| 04:54:13 | yugui leaves the room. | |
| 04:55:19 | yugui enters the room. | |
| 04:55:20 | yugui leaves the room. | |
| 04:55:57 | ezmobius enters the room. | |
| 04:58:12 | knowtheory leaves the room. | |
| 04:59:43 | yugui enters the room. | |
| 05:01:49 | marnen enters the room. | |
| 05:01:56 | enebo leaves the room. | |
| 05:08:57 | trythil_ enters the room. | |
| 05:08:57 | trythil leaves the room. | |
| 05:08:59 | vertiginous enters the room. | |
| 05:09:13 | knowtheory enters the room. | |
| 05:09:25 | RyanTM leaves the room. | |
| 05:10:53 | blakewatters enters the room. | |
| 05:15:23 | blakewatters leaves the room. | |
| 05:21:38 | marnen leaves the room. | |
| 05:22:24 | jacen_ enters the room. | |
| 05:26:38 | cyndis leaves the room. | |
| 05:27:04 | cyndis enters the room. | |
| 05:35:04 | mapar enters the room. | |
| 05:42:20 | tarcieri | well, anyone on ps3 wants to send me an invite for some gta4, I'm tarcieri there as well |
| 05:43:36 | benburkert leaves the room. | |
| 05:47:23 | Erlang00t leaves the room. | |
| 05:48:31 | bitbang leaves the room. | |
| 05:53:34 | cyndis leaves the room. | |
| 05:55:40 | cyndis enters the room. | |
| 06:00:59 | benburkert enters the room. | |
| 06:01:09 | rue | Well, I would but I have neither the system nor the console. But if I did, I would |
| 06:01:35 | tarcieri | heh |
| 06:04:12 | yugui leaves the room. | |
| 06:07:59 | bitbang enters the room. | |
| 06:20:46 | MenTaLguY leaves the room. | |
| 06:21:19 | be9 enters the room. | |
| 06:34:26 | MenTaLguY enters the room. | |
| 06:35:44 | ezmobius leaves the room. | |
| 06:36:37 | srbaker leaves the room. | |
| 06:39:01 | trythil enters the room. | |
| 06:39:01 | trythil_ leaves the room. | |
| 06:46:54 | enebo enters the room. | |
| 06:47:17 | headius enters the room. | |
| 06:47:55 | vertiginous leaves the room. | |
| 06:48:43 | nicksieger enters the room. | |
| 06:52:15 | xhanjian leaves the room. | |
| 06:52:17 | dysinger leaves the room. | |
| 06:52:23 | xhanjian enters the room. | |
| 06:52:27 | Skip enters the room. | |
| 07:09:36 | mapar leaves the room. | |
| 07:15:42 | knowtheory leaves the room. | |
| 07:21:41 | benburkert leaves the room. | |
| 07:22:38 | stepheneb leaves the room. | |
| 07:26:22 | evan | hm... |
| 07:27:06 | evan | you know what would be a totally rad feature? |
| 07:27:30 | evan | foreign pointers as immediates |
| 07:29:23 | GMFlash leaves the room. | |
| 07:29:33 | GMFlash enters the room. | |
| 07:33:13 | Maledictus enters the room. | |
| 07:38:40 | dbussink | you mean stuff that comes from ffi? |
| 07:39:01 | evan | yeah |
| 07:39:14 | evan | though, i'm considering using it more than ffi |
| 07:39:21 | dbussink | aren't there cases where that could collide? |
| 07:39:30 | evan | ah ha! |
| 07:39:34 | evan | consider this |
| 07:39:43 | evan | we already have immediates because the bottom 2 bits are never used. |
| 07:40:00 | evan | so... you have foreign pointers be an immediate where the bottom 2 bits are set, ie, 11 |
| 07:40:19 | evan | and to get the original pointer back you just & it to remove the bits |
| 07:40:19 | dbussink | ah, that's true indeed |
| 07:40:21 | evan | bingo |
| 07:40:26 | evan | original pointer restored |
| 07:40:32 | dbussink | they're always 32 / 64 bit aligned of course |
| 07:40:35 | dbussink | easy :) |
| 07:40:40 | evan | you couldn't deref it would without removing the bits |
| 07:40:42 | evan | but thats ok |
| 07:41:50 | evan | i've considered having every OOP be 64 bits on all platforms |
| 07:41:58 | evan | but that doubles the memory on every platform |
| 07:42:01 | rue | What can they be used for? |
| 07:42:17 | evan | foreign pointers? |
| 07:43:11 | evan | perhaps i'll just make it so an immediate that is OpaqueData |
| 07:43:14 | evan | which is really a pointer |
| 07:43:26 | evan | ruby wont be able to see into it, but the VM can |
| 07:47:25 | imajes enters the room. | |
| 07:47:26 | evan | any example of that is the specialized VMMethod C++ object that is associated with a CompiledMethod |
| 07:48:08 | dbussink | well, if it would simplify things that would be a really good thing |
| 07:48:37 | evan | oh sweet. |
| 07:48:44 | evan | i've got a whole numberic range unused |
| 07:48:56 | evan | i can implement this with i very minor tweak |
| 07:49:01 | evan | a very |
| 07:50:16 | dlee enters the room. | |
| 07:52:15 | evan | i see i'm talking to myself. |
| 07:53:52 | tarcieri | wouldn't 64-bit ops be slow(er) on 32-bit platforms? |
| 07:54:07 | evan | making all oops 64 bit? |
| 07:54:12 | tarcieri | yes |
| 07:54:27 | evan | for 32bit platforms, the oop would be downcast to a 32bit pointer |
| 07:54:28 | evan | so yes. |
| 07:55:48 | tarcieri | but it lets you juggle pointers around directly inside the VM? |
| 07:55:49 | qwert666 enters the room. | |
| 07:55:59 | evan | gives us more immediate space to work with |
| 07:57:51 | dbussink | so basically comes down to long long everywhere? |
| 07:58:00 | evan | yeah, i doubt we'll do it though. |
| 07:58:12 | dbussink | dunno what that will do with fixnum arithmetic though, speed wise |
| 07:58:25 | dbussink | do we need the immediate space then? |
| 07:58:41 | dbussink | or are there more things we would like to be immediates? |
| 07:59:07 | dbussink | maybe a utf-8 kind of way |
| 07:59:18 | evan | yeah, when we go utf-8 |
| 07:59:23 | evan | we'll want a Character immediate |
| 07:59:36 | dbussink | but can't we do something like that too? |
| 07:59:41 | dbussink | 11 is not used now? |
| 07:59:48 | evan | we can use what we have, yeah. |
| 07:59:59 | evan | 10 is only has 4 values in it currently |
| 08:00:19 | evan | 11 is divided int Symbol and Custom |
| 08:00:38 | evan | Custom is nothing, it it's just reserved for future use |
| 08:00:40 | evan | like this :) |
| 08:02:21 | trythil leaves the room. | |
| 08:02:56 | dbussink | divided like 011 / 111 or in another way? |
| 08:03:01 | evan | yep |
| 08:03:02 | evan | like that |
| 08:03:08 | evan | simpel |
| 08:03:11 | evan | simple |
| 08:03:38 | dbussink | can't we do the same trick with 10 then? |
| 08:03:46 | dbussink | to claim the space that is left there? |
| 08:04:35 | evan | yeah, we can |
| 08:04:40 | evan | we don't need the 64bit space |
| 08:04:41 | evan | just musing. |
| 08:06:22 | dbussink | well, the vm shouldn't be obscured with too much tricks though |
| 08:06:28 | dbussink | plain and simple is good |
| 08:10:27 | dbussink | going to push this stuff? |
| 08:16:24 | evan | which? |
| 08:18:07 | thehcdreamer enters the room. | |
| 08:25:40 | evan | VVSiz: you at J1? |
| 08:25:50 | w1rele55 enters the room. | |
| 08:30:37 | imajes leaves the room. | |
| 08:31:56 | evan | oh! here's a crazy idea! |
| 08:32:10 | evan | anyone around? |
| 08:32:25 | VVSiz | evan: nope, not this year. Watching it remotely from Germany... |
| 08:32:37 | evan | VVSiz: are the parties remote too? |
| 08:32:51 | evan | that seems to be the only thing headius, olabini, and timbray are doing |
| 08:32:52 | evan | :) |
| 08:33:18 | headius | nah, what with talks we've had to defer the parties |
| 08:33:29 | headius | hacking with david_koontz, enebo, and nicksieger right now |
| 08:33:31 | VVSiz | heheheh. My party is sitting in front of a PC for 16 hours and read twitter! :) |
| 08:33:35 | evan | headius: super weak |
| 08:33:40 | evan | headius: you should be partying. |
| 08:33:46 | headius | we'll make up for it tomorrow |
| 08:33:51 | evan | you better. |
| 08:33:54 | headius | toronado |
| 08:33:55 | VVSiz | the funny part... my manager went to JRuby session and saw my name in a list of contributors!!! :) |
| 08:34:02 | evan | I want a long blog post about the party scene at J1 |
| 08:34:24 | nicksieger | VVSiz: didn't you tell him? |
| 08:34:32 | headius | Is Partying Killing the JavaOne Hackfest? |
| 08:34:44 | headius | VVSiz: hahah |
| 08:34:44 | enebo | VVSiz: hahaha |
| 08:34:45 | headius | awesome |
| 08:34:51 | nicksieger | was there ever a java one hackfest? |
| 08:34:57 | headius | "you're fired" |
| 08:35:07 | evan | headius: yes please. |
| 08:35:12 | headius | you need to get jruby on blu-ray |
| 08:35:17 | VVSiz | nicksieger: yeah, he knew that I was contributing in some capacity, just didn't realize it in full :) |
| 08:35:17 | evan | on your blog topic |
| 08:36:07 | headius | evan: LA JUG wants tom or I to come down some time |
| 08:36:17 | evan | come on down! |
| 08:36:18 | headius | I'll let ya know if we do it |
| 08:36:20 | evan | we'll hit the town |
| 08:36:24 | evan | i'll show ya the real hollywood. |
| 08:36:45 | evan | the real hollywood is, btw, seeing Drew Carey at a dinner |
| 08:43:20 | zenspider | anyone here know utf8 inside and out? |
| 08:43:33 | evan | tbray? |
| 08:44:11 | zenspider | here? |
| 08:44:17 | evan | he's here sometimes |
| 08:44:51 | Arjen_ enters the room. | |
| 08:45:29 | bitbang enters the room. | |
| 08:45:55 | sambo82 enters the room. | |
| 08:46:32 | bitbang leaves the room. | |
| 08:47:34 | bitbang enters the room. | |
| 08:49:22 | octopod enters the room. | |
| 08:49:47 | headius | probably won't be on til tomorrow, but he's your man |
| 08:50:27 | zenspider | this code is so so so horrible |
| 08:50:41 | zenspider | I'm down 300 flog points so far |
| 08:51:29 | evan | still on pack? |
| 08:52:39 | zenspider | yup |
| 08:52:43 | zenspider | doing U currently |
| 08:54:09 | smparke1 leaves the room. | |
| 08:54:23 | bitbang leaves the room. | |
| 08:56:22 | mae enters the room. | |
| 08:56:25 | mae | hello all |
| 08:56:32 | mutle enters the room. | |
| 08:56:34 | evan | well looky at that |
| 08:56:35 | evan | it's mae. |
| 08:56:39 | mae | thats right |
| 08:56:41 | mae | catch me if you can |
| 08:56:43 | mae | you can't catch me |
| 08:56:49 | mae | i'm the ginger-bread admin |
| 08:56:49 | evan | hehe |
| 08:57:01 | evan | still given up on ruby? |
| 08:57:23 | mae | yeah |
| 08:57:29 | mae | i think rubinius can save ruby though ; ( |
| 08:57:30 | mae | ; ) |
| 08:57:49 | evan | :) |
| 08:57:52 | mae | still learning haskell in my free time |
| 08:57:58 | mae | gave up on erlang |
| 08:58:05 | mae | its concurrent C in disguise :) |
| 08:58:10 | tarcieri | hahaha what??? |
| 08:58:36 | mae | heh |
| 08:58:36 | tarcieri | I worked for years to develop something like Erlang on my own in C |
| 08:58:39 | rue | *cough* |
| 08:58:51 | mae | i love saying controversial things like that |
| 08:58:58 | mae | it scares out all the cockroaches |
| 08:59:01 | tarcieri | lulz |
| 08:59:06 | zenspider | I can't read OR write haskell |
| 08:59:20 | evan | me neither |
| 08:59:34 | mae | yeah, its pretty much a brain-type-theory-fuck |
| 08:59:37 | tarcieri | Haskell tops the pedantry / practicality ratio of languages |
| 09:00:00 | mae | say what you will lewzers |
| 09:00:00 | boyscout | what you will lewzers |
| 09:00:20 | mae | i have almost finished my tool for my new job that pulls together various databases via ODBC |
| 09:00:33 | mae | JD edwards, red prairie, active directory (ldap) |
| 09:00:39 | mae | written in haskell :) |
| 09:01:01 | tarcieri | I can't imagine having a job that would let me use Haskell, not that I'd want to |
| 09:01:08 | evan | ditto. |
| 09:01:22 | mae | i can't imagine my bosses actually reading any programming that I do and even pretending to understand it anyways |
| 09:01:31 | mae | the programmers are all in another department |
| 09:01:33 | zenspider | heh. true |
| 09:01:33 | mae | i'm just answering phones |
| 09:01:54 | mae | and using indirect channels to obtain access to oracle and ibm databases |
| 09:03:14 | mae | I no longer feel that fancy metaprogramming with sugar coating is a good thing |
| 09:03:19 | mae | thats probably why I don't like ruby anymore |
| 09:03:39 | mae | but I think in general, of all the OO languages, I think its the most elegant |
| 09:03:56 | dbussink | evan: was gone doing some actual work ;) |
| 09:04:03 | mae | its a double edged sword, one edge is beauty, the other is perl |
| 09:04:09 | dbussink | headius: i see you're gonna talk in amsterdam too |
| 09:04:11 | tarcieri | haha |
| 09:04:14 | mae | work? whats this? |
| 09:04:43 | dbussink | headius: probably will hop by there too |
| 09:05:38 | mae | you guys shouldn't give up on haskell |
| 09:05:43 | mae | it just turns your thinking totally upside down |
| 09:05:51 | headius | dbussink: can't turn down a trip to amsterdam |
| 09:06:05 | dbussink | headius: hehe |
| 09:06:07 | mae | because you stop thinking about the steps involved and you start thinking more about transformations and function composition |
| 09:06:36 | rue | And kittens |
| 09:06:39 | dbussink | headius: not that special for me anymore, been there a lot of times |
| 09:06:57 | tarcieri | mae: I start thinking about how difficult laziness is to reason about |
| 09:07:00 | headius | so nice in june though |
| 09:07:06 | dbussink | definitely true |
| 09:07:15 | dbussink | worked in amsterdam during the summer in 2006 |
| 09:07:19 | rue | "I believe I have been to Amsterdam.. but I cannot remember." |
| 09:07:37 | mae | tarcieri: the truth is you don't have to think about the laziness if you write pure functions, you only have to think about it when you start getting weird space issues because of all the thunks that are created |
| 09:07:51 | mae | its suboptimal in some cases but you can always write strict functions |
| 09:08:18 | dbussink | maybe we need someone to talk there on rubinius if jruby is going to be there :P |
| 09:08:35 | mae | buy kingsley hendrickse a plane ticket |
| 09:08:39 | mae | i'll make him do it |
| 09:09:14 | mae | how about scala, anyone tried this? |
| 09:09:25 | mae | scala / lift |
| 09:10:18 | tarcieri | I poked around with Scala a little |
| 09:10:22 | tarcieri | I should really learn it better |
| 09:10:49 | zenspider | omg this code is so fucking opaque! |
| 09:10:50 | mae | there seems to be a growing trend of the JVM being whored out for other languages |
| 09:10:58 | tarcieri | it's a nice VM |
| 09:10:59 | mae | zenspider: show me! |
| 09:11:05 | zenspider | hands evan a gun |
| 09:11:13 | zenspider | puts it in his hand |
| 09:11:14 | evan | who should I shoot? |
| 09:11:20 | mae | tarcieri: how close is it to being open sourced? |
| 09:11:22 | zenspider | pulls gun to forehead |
| 09:11:25 | zenspider | do it |
| 09:11:29 | sambo82_ enters the room. | |
| 09:11:30 | evan | why me? |
| 09:11:32 | dbussink | evan: what was your crazy idea? |
| 09:11:34 | tarcieri | mae: got me |
| 09:11:39 | zenspider | mae: no. I wouldn't hurt you like that |
| 09:11:41 | evan | zenspider: i didn't write Array#pack |
| 09:11:42 | sambo82 leaves the room. | |
| 09:11:45 | evan | or String#unpack |
| 09:11:50 | mae | lol |
| 09:11:55 | zenspider | evan: dumbass... shoot ME |
| 09:12:01 | evan | oh, ok. |
| 09:12:11 | mae | oh yeah |
| 09:12:17 | mae | i had the pleasure of using that library once |
| 09:12:55 | mae | it was like trying to shave blindfolded, after having a 12-pack of budweiser. |
| 09:13:08 | zenspider enters the room. | |
| 09:13:15 | zenspider | jerk. :P |
| 09:13:24 | evan | i threw some bad grammar in |
| 09:13:26 | evan | to make the death worse. |
| 09:13:39 | rue | It seems to be very richly commented at least. |
| 09:13:45 | zenspider | haha |
| 09:14:04 | zenspider | rue: yeah... I clarified a lot of the code by stripping them all out |
| 09:15:48 | zenspider | the utf8 section is so... byzantine |
| 09:16:57 | rue | Etruskan, even |
| 09:17:14 | mae | if you were stranded on a desert island for the rest of your natural life and you had a choice between a gun, a laptop with infinity battery power and no internet connectivity (only the original version of qdos is installed + qbasic), or a picture of barbara streissand naked, which would you choose? |
| 09:17:17 | zenspider | one thing I'd like to do is strip a fair amount of the complexity out by having the first part involve a rewriter step... N4 => NNNN and the like |
| 09:17:46 | zenspider | mae: share the drugs pls |
| 09:19:01 | mae | zenspider: this isn't drugs, this is me after 10 hours of unlocking windows user accounts and filling out IT change request forms |
| 09:19:18 | mae | so please all, participate in my quiz. |
| 09:19:22 | TheVoice leaves the room. | |
| 09:20:00 | mae | zen: do you still use p4? |
| 09:20:19 | mae | per4 |
| 09:20:39 | zenspider | yes |
| 09:21:58 | mae | did you ever work for google |
| 09:23:07 | headius | Mr. Soze rarely works with the same people for very long, and they never know who they're working for |
| 09:23:43 | mae | so how come no one will answer my quiz |
| 09:23:47 | mae | fine dammit i'll ask ruby-lang |
| 09:24:02 | mae | at least theres people lame enough there to indulge my ramblings |
| 09:24:45 | dbussink | mae: ok ok, i'll just take the easy way out and take the gun ;) |
| 09:25:09 | mae | heh |
| 09:25:35 | dbussink | that also means no more weird quizzes :) |
| 09:25:40 | mae | no one wants to attempt to rebuild computer society by bootstrapping a lisp VM on basic? |
| 09:25:47 | mae | COME ON! |
| 09:26:02 | dbussink | hahaha |
| 09:26:41 | zenspider | mae: no, I picked up p4 from amazon |
| 09:27:02 | mae | yeah, they hook you like crack, then they put you back into the world |
| 09:27:21 | mae | thats cool, so did you do anything fun at amazon? |
| 09:29:03 | zenspider | yeah, some... in the beginning it was fun and I learned a lot... in the end, not so much... I left pretty burnt out |
| 09:29:27 | mae | what burned you out? |
| 09:31:02 | enebo leaves the room. | |
| 09:31:59 | zenspider | I was put onto a special project that was refactoring the whole code base... that alone could do it (5m loc at the time) but the mgr was horrid |
| 09:32:25 | mae | bad management is always to blame |
| 09:32:40 | mae | good management is the complete opposite |
| 09:32:47 | mae | i have good management right now |
| 09:32:50 | zenspider | great... can we PLEASE not use unpack to test pack?!?! |
| 09:32:53 | zenspider | ARGH |
| 09:32:56 | evan | hah |
| 09:32:56 | zenspider | yup |
| 09:33:12 | evan | pulls the hammer back on the gun |
| 09:33:18 | mae | evan don't do it |
| 09:33:23 | mae | you have your whole life ahead of you |
| 09:33:33 | mae | don't wax this shmuck |
| 09:33:59 | evan | it's for zenspider |
| 09:38:48 | evan | shit, i should go to bed. |
| 09:38:49 | evan | nite. |
| 09:38:59 | zenspider | later |
| 09:39:36 | dbussink | nite |
| 09:41:06 | headius leaves the room. | |
| 09:42:49 | wycats_ leaves the room. | |
| 09:48:20 | rue | 'S barely two |
| 09:48:35 | mae | thats what i'm saying! |
| 09:48:41 | mae | i mean sleep is for the weak |
| 09:49:33 | yugui enters the room. | |
| 09:58:50 | dlee leaves the room. | |
| 10:03:53 | yugui leaves the room. | |
| 10:04:18 | yugui enters the room. | |
| 10:04:46 | GMFlash leaves the room. | |
| 10:07:30 | dctanner enters the room. | |
| 10:12:00 | wycats_ enters the room. | |
| 10:13:20 | mae leaves the room. | |
| 10:25:45 | zenspider | YAY!!! I cracked below 700 flog points! |
| 10:27:54 | rue | Hm, Ruby.undef has some weird fucking semantics |
| 10:28:16 | rue | Also, we should totally implement undef and friends as methods of the Ruby module :P |
| 10:28:24 | zenspider | I'll undef you! |
| 10:30:09 | rue | It always affects the surrounding module, it seems. |
| 10:30:57 | rue | The lexically surrounding, that is |
| 10:31:05 | Yurik enters the room. | |
| 10:32:44 | mkrauskopf enters the room. | |
| 10:33:11 | hosiawak enters the room. | |
| 10:43:49 | rue | Humm, looks like -j might have intermittent contention to its dir/files |
| 10:45:14 | wycats_ leaves the room. | |
| 10:46:53 | sambo82 enters the room. | |
| 10:47:45 | sambo82_ leaves the room. | |
| 10:49:12 | imajes enters the room. | |
| 10:51:07 | boyscout | 7 commits by Ryan Davis |
| 10:51:08 | boyscout | * First pass cleaning up Array#pack. Almost rewritten. Flog dropped 25% and much more ...; bf286ec |
| 10:51:09 | boyscout | * Added specs for big uncovered areas, still not 100%; ee21177 |
| 10:51:10 | boyscout | * Added rdoc for String#unpack; 8ccce5e |
| 10:51:12 | boyscout | * Intermediate checkin... ported XxNVvaAZcCMwHh and dropped flog by about 250; 3287b5b |
| 10:51:12 | boyscout | * Fixed typo; 7ce9bc2 |
| 10:51:13 | boyscout | ... |
| 10:52:01 | zenspider | yay |
| 10:52:04 | zenspider | ugh |
| 10:54:29 | rue | Ah, you bastard.. made it just before me |
| 10:54:39 | rue | Looks good though |
| 10:56:30 | boyscout | 1 commit by Eero Saynatkari |
| 10:56:31 | boyscout | * Node doc for :if, :unless, :while, :until, :block, :scope, :args, :undef.; ac7794a |
| 10:56:46 | zenspider | rue: ? |
| 10:57:36 | rue | ?? |
| 10:58:02 | zenspider | ! |
| 10:58:16 | zenspider | String#unpack is next... |
| 10:58:22 | zenspider | these two methods are horrid |
| 10:59:18 | rue | I had to do a second `git fetch && git rebase origin && rake build && bin/mspec ci -j` :) |
| 10:59:51 | zenspider | ah. sorry. :) |
| 11:00:04 | zenspider | stupid build bot... hurry up |
| 11:00:11 | rue | Heh |
| 11:00:19 | zenspider | wait... they're not running |
| 11:00:29 | zenspider | ok. fuck it. I'm going to bed |
| 11:14:28 | agile leaves the room. | |
| 11:14:35 | sambo82 leaves the room. | |
| 11:17:08 | agile enters the room. | |
| 11:17:25 | sambo82 enters the room. | |
| 11:23:29 | chris2 enters the room. | |
| 11:25:52 | rubuildius_ppc enters the room. | |
| 11:26:47 | rubuildius_amd64 enters the room. | |
| 11:29:41 | mutle leaves the room. | |
| 11:35:50 | w1rele55 leaves the room. | |
| 11:37:56 | ttmrichter leaves the room. | |
| 11:39:34 | mutle enters the room. | |
| 11:39:53 | jtoy leaves the room. | |
| 11:43:03 | rubuildius_ppc | Eero Saynatkari: ac7794a61; 2103 files, 6849 examples, 24698 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/192918 |
| 11:44:30 | mutle leaves the room. | |
| 11:44:58 | mutle enters the room. | |
| 12:05:43 | riffraff leaves the room. | |
| 12:16:56 | atmos leaves the room. | |
| 12:36:27 | mutle leaves the room. | |
| 12:36:38 | mutle enters the room. | |
| 12:46:33 | dbussink | the silence has returned |
| 12:49:01 | chris2 leaves the room. | |
| 12:56:40 | qwert666 leaves the room. | |
| 13:03:31 | ctennis leaves the room. | |
| 13:16:19 | Arjen | Fortunatly. |
| 13:19:01 | vertiginous enters the room. | |
| 13:19:10 | rue | Ha, so you think |
| 13:23:30 | GMFlash enters the room. | |
| 13:30:29 | yugui_ enters the room. | |
| 13:30:29 | yugui leaves the room. | |
| 13:54:57 | smparke1 enters the room. | |
| 13:55:12 | _mutle enters the room. | |
| 13:59:10 | RyanTM enters the room. | |
| 14:05:08 | cremes_ enters the room. | |
| 14:11:36 | mutle leaves the room. | |
| 14:24:14 | meanphil leaves the room. | |
| 14:26:11 | pauldix enters the room. | |
| 14:27:11 | anteaya enters the room. | |
| 14:32:45 | RyanTM leaves the room. | |
| 14:33:24 | agile leaves the room. | |
| 14:36:22 | blakewatters enters the room. | |
| 14:42:07 | AndrewO enters the room. | |
| 14:43:15 | wmoxam enters the room. | |
| 14:47:06 | blakewatters leaves the room. | |
| 14:51:04 | yipstar enters the room. | |
| 14:51:57 | trythil enters the room. | |
| 14:54:26 | trythil leaves the room. | |
| 15:03:55 | blakewatters enters the room. | |
| 15:05:03 | gnufied enters the room. | |
| 15:05:53 | yugui_ leaves the room. | |
| 15:10:12 | JimMc leaves the room. | |
| 15:17:21 | macournoyer enters the room. | |
| 15:20:31 | JimMc enters the room. | |
| 15:21:55 | rubuildius_amd64 leaves the room. | |
| 15:21:59 | rubuildius_amd64 enters the room. | |
| 15:22:00 | rubuildius_amd64 leaves the room. | |
| 15:22:06 | rubuildius_amd64 enters the room. | |
| 15:24:36 | robertpostill enters the room. | |
| 15:26:59 | moofbong enters the room. | |
| 15:32:48 | rubuildius_amd64 | Eero Saynatkari: ac7794a61; 2103 files, 6847 examples, 24672 expectations, 0 failures, 0 errors; http://rafb.net/p/mu4YsF97.html |
| 15:39:52 | gnufied leaves the room. | |
| 15:44:58 | agile enters the room. | |
| 15:57:30 | benstiglitz enters the room. | |
| 16:05:39 | trythil enters the room. | |
| 16:17:53 | benburkert enters the room. | |
| 16:19:53 | eventualbuddha enters the room. | |
| 16:21:08 | robertpostill leaves the room. | |
| 16:24:41 | benburkert leaves the room. | |
| 16:26:48 | benny leaves the room. | |
| 16:27:27 | therealadam enters the room. | |
| 16:27:36 | fbuilesv enters the room. | |
| 16:28:25 | smparke1 leaves the room. | |
| 16:32:34 | jtoy enters the room. | |
| 16:32:56 | fbuilesv | Can someone with access to a Windows machine apply the patch in http://rubinius.lighthouseapp.com/projects/5089-rubinius/tickets/535-bignum-to_f-spec-missing-guards#ticket-535-2 and let me know if it works? |
| 17:00:22 | brainopia enters the room. | |
| 17:07:31 | lopex enters the room. | |
| 17:08:33 | anteaya leaves the room. | |
| 17:12:21 | anteaya enters the room. | |
| 17:14:10 | sambo82 leaves the room. | |
| 17:15:39 | benburkert enters the room. | |
| 17:27:44 | brixen | fbuilesv: the patch works ok for me except that line 16 (after applying) needs to be -9.22337203685478e+018 |
| 17:29:39 | brixen | fbuilesv: actually, I'm going to create a new patch, I want to remove the use of #to_s in that spec |
| 17:29:51 | mutle leaves the room. | |
| 17:30:20 | nicksieger leaves the room. | |
| 17:39:51 | jtoy leaves the room. | |
| 17:49:08 | qwert666 enters the room. | |
| 17:49:58 | thehcdreamer leaves the room. | |
| 18:01:34 | squeegy leaves the room. | |
| 18:05:05 | Yurik leaves the room. | |
| 18:07:19 | dctanner leaves the room. | |
| 18:09:37 | srbaker enters the room. | |
| 18:10:13 | octopod leaves the room. | |
| 18:10:20 | boyscout | 1 commit by Brian Ford |
| 18:10:21 | boyscout | * Use literals in Bignum#to_f specs (alternate fix for #535).; d73b17b |
| 18:11:44 | squeegy enters the room. | |
| 18:22:45 | atmos enters the room. | |
| 18:22:49 | rubuildius_amd64 | Brian Ford: d73b17b88; 2103 files, 6847 examples, 24672 expectations, 0 failures, 0 errors; http://rafb.net/p/ufWewM31.html |
| 18:25:43 | rubuildius_ppc | Brian Ford: d73b17b88; 2103 files, 6849 examples, 24698 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/193096 |
| 18:33:10 | dysinger enters the room. | |
| 18:42:51 | loincloth enters the room. | |
| 18:45:12 | dlee enters the room. | |
| 18:50:24 | anteaya leaves the room. | |
| 18:50:37 | imajes leaves the room. | |
| 18:52:33 | nicksieger enters the room. | |
| 18:53:14 | benburkert_ enters the room. | |
| 18:56:22 | wycats_ enters the room. | |
| 19:02:13 | enebo enters the room. | |
| 19:09:23 | TheVoice enters the room. | |
| 19:09:31 | benburkert leaves the room. | |
| 19:10:19 | fbuilesv leaves the room. | |
| 19:12:53 | be9 leaves the room. | |
| 19:14:05 | benny enters the room. | |
| 19:16:30 | ezmobius enters the room. | |
| 19:24:03 | wycats_ leaves the room. | |
| 19:31:52 | zenspider leaves the room. | |
| 19:36:09 | m7d enters the room. | |
| 19:36:18 | imajes enters the room. | |
| 19:39:05 | ndemonner enters the room. | |
| 19:40:41 | wycats_ enters the room. | |
| 19:44:37 | atmos_ enters the room. | |
| 19:45:56 | joachimm leaves the room. | |
| 19:56:09 | srbaker leaves the room. | |
| 19:57:35 | atmos leaves the room. | |
| 20:01:25 | tizianobis enters the room. | |
| 20:01:26 | enebo leaves the room. | |
| 20:06:01 | m7d leaves the room. | |
| 20:07:15 | tizianobis leaves the room. | |
| 20:11:36 | loincloth leaves the room. | |
| 20:12:22 | enebo enters the room. | |
| 20:13:19 | enebo leaves the room. | |
| 20:21:32 | benny leaves the room. | |
| 20:22:04 | m7d enters the room. | |
| 20:22:54 | nicksieger leaves the room. | |
| 20:28:19 | m7d_ enters the room. | |
| 20:34:22 | m7d__ enters the room. | |
| 20:34:56 | rue | Morning |
| 20:35:11 | brixen | morning rue |
| 20:35:22 | Arjen_ leaves the room. | |
| 20:42:07 | joachimm enters the room. | |
| 20:43:41 | m7d leaves the room. | |
| 20:51:03 | m7d_ leaves the room. | |
| 20:51:03 | ezmobius leaves the room. | |
| 20:51:29 | ezmobius enters the room. | |
| 21:00:54 | joachimm_ enters the room. | |
| 21:01:16 | mapar enters the room. | |
| 21:05:25 | chris2 enters the room. | |
| 21:09:47 | ndemonner leaves the room. | |
| 21:14:24 | tarcieri | man, Net::HTTP is pain :( |
| 21:16:47 | joachimm leaves the room. | |
| 21:23:08 | stepheneb enters the room. | |
| 21:24:26 | joachimm enters the room. | |
| 21:27:30 | benburkert enters the room. | |
| 21:28:54 | m7d__ leaves the room. | |
| 21:30:21 | Skip leaves the room. | |
| 21:32:19 | srbaker enters the room. | |
| 21:32:29 | joachimm_ leaves the room. | |
| 21:34:09 | qwert666_ enters the room. | |
| 21:43:14 | benburkert_ leaves the room. | |
| 21:45:10 | evan | whats up this afternoon kids? |
| 21:45:42 | drbrain | PixelJunk Monsters Encore is released tomorrow! |
| 21:46:31 | djwhitt | Googles |
| 21:46:38 | djwhitt | fascinating... |
| 21:46:52 | drbrain | http://blog.us.playstation.com/2008/05/06/pixeljunk-monsters-encore-dated-interview-part-2/ |
| 21:48:19 | drbrain | I think I'm only missing rainbows on two maps |
| 21:48:46 | Blinchik leaves the room. | |
| 21:49:25 | evan | drbrain: i still haven't played |
| 21:49:41 | evan | i should |
| 21:49:47 | evan | drbrain: hows the head? |
| 21:49:49 | drbrain | its lots of fun, and has (local only) coop |
| 21:50:08 | drbrain | nose is clear, sinuses have blockage |
| 21:50:11 | djwhitt | wow, um... it's tower defense? |
| 21:50:31 | evan | drbrain: still foggy? |
| 21:50:42 | drbrain | not so much as yesterday |
| 21:51:14 | drbrain | djwhitt: yes, and its lots of fun |
| 21:51:27 | djwhitt | neeto |
| 21:51:58 | djwhitt | or neato as the case may be |
| 21:52:12 | qwert666 leaves the room. | |
| 22:05:11 | Yurik enters the room. | |
| 22:05:42 | macournoyer leaves the room. | |
| 22:05:54 | Blinchik enters the room. | |
| 22:11:41 | imajes leaves the room. | |
| 22:14:27 | joachimm leaves the room. | |
| 22:24:13 | qwert666_ leaves the room. | |
| 22:25:30 | ezmobius leaves the room. | |
| 22:25:52 | ezmobius enters the room. | |
| 22:27:53 | anteaya enters the room. | |
| 22:28:00 | stepheneb leaves the room. | |
| 22:28:20 | Maledictus leaves the room. | |
| 22:30:48 | blakewatters leaves the room. | |
| 22:38:08 | dctanner enters the room. | |
| 22:40:03 | mkrauskopf leaves the room. | |
| 22:42:42 | Arjen_ enters the room. | |
| 22:51:17 | boyscout | 1 commit by Brian Ford |
| 22:51:18 | boyscout | * Added spec for Kernel#eval with binding from method defined by #eval.; 819649f |
| 22:53:56 | mkrauskopf enters the room. | |
| 23:02:48 | rubuildius_amd64 | Brian Ford: 819649f24; 2103 files, 6849 examples, 24674 expectations, 0 failures, 0 errors; http://rafb.net/p/U4br5d59.html |
| 23:02:57 | Defiler | brixen: cool spec |
| 23:03:25 | brixen | Defiler: thanks :) |
| 23:03:35 | evan | oops. |
| 23:03:38 | brixen | evan: I saw 1e in the bt originally, but Qnil is 14L |
| 23:03:41 | brixen | what am I missing? |
| 23:03:56 | evan | brixen: nil (14) was deref'd a struct |
| 23:04:04 | evan | thus an offset was added to it's base |
| 23:04:06 | brixen | ok |
| 23:04:16 | evan | deref'd AS a struct |
| 23:04:28 | evan | Defiler: Kernel#__add_method__ doesn't add a staticscope to the method. |
| 23:04:43 | evan | in fact, i think Kernel#__add_method__ is all kinds of broken. |
| 23:05:14 | brixen | hmm, where should we spec that? |
| 23:05:22 | evan | in def. |
| 23:05:27 | evan | after every def |
| 23:05:31 | dctanner leaves the room. | |
| 23:05:36 | evan | check that the static scope of the CompiledMethod object is correct |
| 23:06:01 | Defiler | evan: Hrm.. that does look wrong, doesn't it |
| 23:06:08 | Defiler | when is that version of add_method called? |
| 23:06:14 | Defiler | Module's version is vastly more common |
| 23:07:02 | evan | when self isn't a Module |
| 23:07:12 | evan | def inside def |
| 23:07:15 | evan | ok, i've got this fixed |
| 23:07:19 | brixen | evan: well, def spec in spec/ruby/1.8/language wouldn't be appropriate |
| 23:07:28 | brixen | what about spec/core/kernel/add_method_spec |
| 23:07:32 | evan | brixen: sure. |
| 23:07:33 | brixen | not sure where the root of this is |
| 23:07:37 | evan | it's there |
| 23:07:43 | brixen | we also have spec/core/compiledmethod |
| 23:07:44 | evan | add_method_spec is correct. |
| 23:07:46 | evan | it's not that |
| 23:07:48 | brixen | ok |
| 23:07:50 | evan | it's the behavior of adding a method. |
| 23:08:04 | brixen | k |
| 23:08:20 | rubuildius_ppc | Brian Ford: 819649f24; 2103 files, 6851 examples, 24700 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/193304 |
| 23:08:29 | brixen | so, method.staticscope.should_not == nil |
| 23:08:36 | brixen | ? |
| 23:08:36 | evan | as a first step, yes |
| 23:08:40 | brixen | k |
| 23:08:48 | evan | BUT it should really verify the scope is EXACTLY something |
| 23:08:50 | evan | ie |
| 23:09:00 | evan | method.staticscope.module.should == Object |
| 23:09:06 | evan | or whatever the lexical scoping of the method was |
| 23:09:07 | trythil leaves the room. | |
| 23:09:31 | brixen | ok |
| 23:10:08 | boyscout | 1 commit by Evan Phoenix |
| 23:10:10 | boyscout | * Setup a staticscope properly; 3bf37ee |
| 23:10:17 | evan | peep that. |
| 23:10:18 |