Index

Show enters and exits. Hide enters and exits.

00:01:19rueIs tea going to be the next big thing out of Seattle?
00:02:01chris2 leaves the room.
00:02:47joachimmevan: are you seeing the same error on ppc?
00:03:16evani haven't been home to check
00:03:19evani will later.
00:04:47drbrainrue: unlikely
00:06:55joachimmevan: ok, nice. bed time here. bye.
00:07:05evanjoachimm: ok
00:07:10evantalk tomorrow
00:09:48hornbeck enters the room.
00:14:45therealadam leaves the room.
00:16:02ezmobius leaves the room.
00:16:19ezmobius enters the room.
00:24:41tomyevan: Got a sec?
00:24:47evansure, sup?
00:25:40tomyI've got an overloaded method in llvm Module::getOrInsertFunction
00:26:11tomyIt can take a name and a function prototype object, or a variable argument list of return type followed by args.
00:26:43evanok.
00:27:04tomyRice 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:22evani'd let rice wrap the API the same way as the C++ one
00:27:33evanthen wrap that api to make it more ruby like all in ruby
00:28:04tomyThen I have to come up with different names getOrInsertFunctionByFunctionPrototype and getOrInsertFunctionByArgs
00:28:18evanah ah.
00:28:24evanwell
00:28:25tomyBut yes I can do the rubifying in ruby code.
00:28:46evanrice doesn't output overloaded methods?
00:29:30tomyThe rice method is to create function templates and protoypes to wrap them up.
00:29:57trythil_ leaves the room.
00:30:10tarcieridoes rice have a web page?
00:30:22tarcierithe only one I'm seeing is "Ruby Irc interfaCE"
00:30:26tomySo 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:27evanwill rice generate seperates methods for each overloaded type of a function?
00:30:33tarcierioh
00:30:36tarcieririce.rubyforge.org
00:30:37tarcierimy bad
00:30:58evantomy_: sure
00:31:06tomyWith a little work, but you have to give them different names
00:31:16evansay you have a method make_awesome that takes a char* or an int
00:31:16boyscoutyou have a method make_awesome that takes a char* or an int
00:31:43evanrice should either create a function that sits between and checks the incoming types and does a cast then call
00:31:49evanso you can call either via one Ruby method
00:31:53evanor generate 2 ruby methods
00:31:59evanone for each signature of the C++ function
00:32:30knowtheory leaves the room.
00:32:40tomyThat was what I was going to do selectively by hand. For example, when the function overloads only differ by float or int
00:33:18evanyeah
00:33:21tomyRice relies heavily on templates and partial specialization, so they are limited in what they can do.
00:33:26evanif we have to do them by hand, it's going to be a pain
00:34:10tomyI 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:38evanok
00:34:52tomyThere is a lot of classes, so I am concentrating on the classes necessary to go through the tutorials
00:35:19evanawesome
00:35:22tomyThen create ruby versions of the tutorials. I also had a go at using swig, but it chokes on some macros
00:35:27evanare you using rb++ ?
00:35:35evanor setting things up in rice by hand
00:35:40tomyI'm not familiar with that
00:35:51evanoh, you weren't here last night
00:36:09evansomeone wrote a ruby lib thet uses gccxml to autogenerate bindings for C and C++
00:36:12tomyI'm using rice by hand, but it is really pretty simple. But I've thought that the rice stuff could be generated
00:36:23tomyWhoa, cool idea
00:36:49tomyI'll dig around for that.
00:36:55evancool
00:36:57evani'll find ya the link
00:36:58evanone sec.
00:37:08evanhttp://rbplusplus.rubyforge.org/
00:37:33tomyI'll have a look.
00:39:29tomyLooks 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:07evanheh
00:40:49evanwell, 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:20tarcieritomy: you're trying to do bindings to LLVM through its C++ API?
00:41:41agile enters the room.
00:41:47tomyFor a while I was thinking about writing a compatible MRI API that called into llvm,
00:42:05tomytarcieri: yes using C++.
00:43:25tomyThe 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:59dctanner enters the room.
00:45:43rueHrm. I think my APR is hosed.. it keeps creating buckets with random functions
00:46:10rueLike one's free fptr was actually apr_psprintf :P
00:46:21drbrainyou mean buckets of FUN!
00:46:36evanfor ever-y-one!
00:46:38rueHeh, something like that
00:47:55tomyevan: When you get into rice, not that some of their tutorial code has incorrect syntax, notably the typedef declarations of method pointers:
00:48:50tomytypedef size_t (*Container::get_capacity)(); should be typedef size_t (Container::*get_capacity)();
00:49:08knowtheory enters the room.
00:49:19evanah
00:49:21tomyAnd gcc won't give you a clue as to what is wrong. I have forgotten what a pain C++ is.
00:49:21evanok
00:57:48ShayArnett enters the room.
01:05:51foysavas leaves the room.
01:06:16anthonymorrisjoh leaves the room.
01:09:38benny leaves the room.
01:11:18mapar leaves the room.
01:12:02foysavas enters the room.
01:14:31dctanner leaves the room.
01:19:34trythil enters the room.
01:31:18lopex leaves the room.
01:33:03ShayArnett_ enters the room.
01:33:03ShayArnett leaves the room.
01:33:07marnen enters the room.
01:34:39enebo enters the room.
01:35:09jp_tixhuh, rubinius supports non-local returns (or whatever it's called)
01:35:41marnen leaves the room.
01:35:50jp_tix[1,2,3,4,5].each { |n| return n if n == 3 } # => 3
01:36:25jp_tixMRI raises LocalJumpError, and jruby just quits
01:38:35jp_tixwonders if this is by design
01:39:40drbrainI think we should raise LocalJumpError
01:39:53drbrainshould use break there
01:41:06jp_tixi kind of like it - smalltalk allows non-local returns
01:41:12jp_tixbut yeah, should probably do as MRI
01:41:17benstiglitz leaves the room.
01:41:27blakewatters enters the room.
01:46:17thudson_ leaves the room.
01:46:53tomy_ leaves the room.
01:47:51dlee leaves the room.
01:48:16blakewatters leaves the room.
01:50:29blakewatters enters the room.
01:50:43jtoy enters the room.
01:52:34enebo leaves the room.
02:06:44marnen enters the room.
02:08:43blakewatters leaves the room.
02:15:01GMFlash leaves the room.
02:15:10GMFlash enters the room.
02:24:42anthonymorrisjoh enters the room.
02:24:52ruejp_tix: Can you open a ticket?
02:25:03imajes leaves the room.
02:25:37jp_tixrue: there's already a spec for it
02:25:45jp_tixbut you want a ticket anyway?
02:29:11crafterm enters the room.
02:30:54rueOh, nevermind if it is caught already
02:31:10stepheneb leaves the room.
02:31:39_VVSiz_ enters the room.
02:34:49dfg59 enters the room.
02:45:30dfg59 leaves the room.
02:49:24VVSiz_ leaves the room.
03:06:59hornbeck leaves the room.
03:09:27bitbang enters the room.
03:10:30ezmobius leaves the room.
03:10:49ezmobius enters the room.
03:13:29crafterm leaves the room.
03:15:07anthonymorrisjoh leaves the room.
03:16:16Erlang00t enters the room.
03:22:06mernen enters the room.
03:22:08jacen_ leaves the room.
03:26:31benburkert leaves the room.
03:28:48enebo enters the room.
03:33:26MenTaLguY enters the room.
03:41:21benburkert enters the room.
03:43:29benburkert leaves the room.
03:43:44Yurik leaves the room.
03:44:31ttmrichter enters the room.
03:45:04tarcierihey MenTaLguY
03:45:10MenTaLguYhey tony
03:45:12MenTaLguYhow's it going?
03:45:18tarcieripretty well
03:45:32tarcieriI've come to a conclusion about Ports
03:45:49benburkert enters the room.
03:45:55MenTaLguYah?
03:45:59tarcieriI 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:31enebo leaves the room.
03:46:36MenTaLguYI agree.
03:46:42tarciericircumventing normal message delivery means you need to deal with all the duck types of Actor individually
03:46:50MenTaLguYamong other things
03:47:01MenTaLguY(well, or make the mechanism part of the duck type)
03:47:08tarcieriso I think something like Revactor's "inets" is the way to go
03:47:32MenTaLguYquite possibly
03:47:37tarcierii.e. a big central Reactor loop which delivers messages to the interested Actors
03:47:47MenTaLguYnods
03:47:57tarcieriusing <</"send"
03:48:04MenTaLguYI think that's what I was suggesting a while back. :)
03:48:14tarcieriyeah, I just got performance hungry
03:48:29tarcieriand didn't think about the non-local Actor case
03:49:19MenTaLguYregarding performance, have you thought about the Proactor pattern much?
03:49:43tarcieriyeah, I... do not see how it is teneable for streaming protocols
03:50:01agile leaves the room.
03:50:10MenTaLguYhm, howso?
03:50:41tarcieriwell 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:44mapar enters the room.
03:51:23MenTaLguYyes, pretty much
03:51:51tarcieriI have never seen how that approach can ever fit buffered protocols
03:51:52MenTaLguYbut I'm not sure it differs as far as knowing how much to read
03:52:11trythil_ enters the room.
03:52:16agile enters the room.
03:52:33tarcierii.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:33trythil leaves the room.
03:52:43obvio leaves the room.
03:53:33tarcieriI mean, somehow Microsoft has an HTTP server going on I/O completion ports
03:53:56tarcieriit'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:00MenTaLguYI'm having difficulty seeing the problem, I guess
03:54:25xhanjian1 leaves the room.
03:54:27tarcieriokay, so if the protocol in question is HTTP
03:54:29tarcierihow much do you read?
03:54:39MenTaLguYhow much do you read in the reactor case?
03:54:44tarcieriyou don't
03:54:55tarcierithe Reactor loop sees that data is available
03:54:57tarcierireads all it can
03:54:59tarcieriand gives it to you
03:55:21MenTaLguYthat is proactor, not reactor
03:55:26xhanjian enters the room.
03:55:28tarcierithat's Reactor
03:55:34MenTaLguYreally.
03:55:40tarcieriiirc Proactor is "give me X bytes of data"
03:55:43tarcieriI can look again
03:55:56tarcieriit follows the traditional buffered I/O / async I/O approach
03:56:00MenTaLguYmy 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:10tarcieriyes
03:56:13tarcierisame basic idea
03:57:16MenTaLguYwhen your handler does the read, you've got to pass a sized buffer to the read system call
03:57:47tarcieriReactor is looking for readable/writable events
03:57:48MenTaLguYwhen 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:52tarcieriProactor is looking for I/O completions
03:58:14tarcieriit's like asking Scheduler to send you data vs. having Scheduler send you readiness notices
03:58:26tarcieriis it a maximum?
03:58:29MenTaLguYyes
03:58:38MenTaLguYjust like it is with reactor when you call read yourself
03:58:44MenTaLguYif there's less data available you get less
03:58:53tarcieriok
03:59:06tarcieriwell if that's really the case, I've been confused all along, and have been implementing Proactors :)
03:59:08MenTaLguYbtw, Scheduler.send_on_readable does actually do the read for you if you pass it a buffer :)
03:59:19tarcieriyeah, that's the point
03:59:24MenTaLguYyeah, that's Proactor
03:59:33tarcieridoes Scheduler take n bytes, or max-of-n bytes?
03:59:57tarcierii.e. does it do read o readpartial?
04:00:10tarcieriI guess I should look at the readpartial sources
04:00:18tarcierilooks at IOCP again
04:00:58MenTaLguYI believeit takes max-of-n bytes
04:01:46evanevening boys
04:01:55tarcieriurgh silly Microsoft muckety muck MSDN documentation
04:02:02MenTaLguYevening evan
04:02:06tarcierisup evan
04:02:11evantarcieri: yes, it does a readpartial
04:02:15MenTaLguYevan numbah seven
04:02:15evanit doesn't block
04:02:22tarcierisweet
04:02:32evanyou give it a buffer and how many bytes you'd like
04:02:37evanthe buffer is filled with as much is available
04:02:39rueFuck I am stupid. Spent hours because I needed *& and not ** for the effect I was going for
04:02:42evanblocking is for posers.
04:02:47MenTaLguYI was thinking about Scheduler stuff today
04:02:50tarcieriheh, indeed blocking is for poseurs
04:03:07MenTaLguYI think what most Scheduler things should write by default is the Scheduler event id
04:03:18MenTaLguYs/write/send/
04:03:30MenTaLguYit seems like that's the only good way to allow multiplexing
04:03:34tarcieriyeah
04:03:35evanah
04:03:36MenTaLguYon a single wait channel
04:03:38evanthats a good call
04:03:43tarcieriespecially in the case of Scheduler doing the I/O for you
04:03:52tarcieriyou want what you get back to be flagged with some kind of id
04:03:58enebo enters the room.
04:04:09MenTaLguYand I also think the scheduler event ID should ideally be an immediate object rather than a fixnum
04:04:15MenTaLguYthat way they can be GCed and recycled
04:04:27MenTaLguYrather than the counter wrapping or overflowing into bignums after enough IO
04:04:29evanfixnum's are immediate
04:04:38MenTaLguYan immediate object that's not a fixnum :)
04:04:42evanlike what?
04:04:44MenTaLguYto permit GCing event IDs
04:05:02evanwell, that complicates things
04:05:06evanwhy not just have an Event object
04:05:22MenTaLguYyeah, I guess so
04:05:32MenTaLguYI'm going all premature optimization here
04:05:38MenTaLguYan Event object ought to be fine
04:05:56tarcierian event object would rock
04:06:28tarcieriespecially if you had subclasses for different types of events
04:06:38tarcierithen you could do your event handling all slick like with case
04:06:41MenTaLguYhm, that's an interesting point
04:06:47tarcieriTimeoutEvent
04:06:52tarcieriwould certainly be nicer than nil :)
04:06:57evanwell, we could subclass out Scheduler's functionality
04:06:58MenTaLguYyou could do stuff like have the Event carry the read buffer back to you for a proacted read
04:07:05tarcieriyep
04:07:16evante = TimeoutEvent.perform chan, 5.0
04:07:27MenTaLguYhm.
04:07:36evanin the VM, there already is an 'event' object
04:07:42evanthat holds the buffer and such
04:07:46MenTaLguYnods
04:07:47evanso this would just be exposing it
04:07:55MenTaLguYlet's just expose that to start with
04:08:00MenTaLguYand give it an Event#cancel method
04:08:12tarcierithat would be so sweet
04:08:13evansure
04:08:19tarcieriespecially if it could carry at least one other value
04:08:35evanso that I don't forget
04:08:37evanopen a ticket
04:08:47tarcieriokee
04:09:01tarcieriokee, should I do that, or do you want to, MenTaLguY?
04:09:39MenTaLguYplease do it tony
04:09:45tarcierisweet
04:09:45MenTaLguYI'm just about out of time tonight
04:09:57ezmobius leaves the room.
04:10:02tarcieriout of time until what?
04:10:04evani'm so excited about no more ivar_as_index
04:10:07MenTaLguYuntil tomorrow
04:10:19tarcierievan: using... slots or something?
04:10:26MenTaLguYI need to goto :bed, :time => :early
04:10:33evantarcieri: it always used slots
04:10:50tarcieriok, guess I missed what you did then
04:10:52evantarcieri: i'm moving more towards an arch where a CompiledMethod is an execution blueprint
04:11:06tarcieriMenTaLguY: I never go to bed early, heh
04:12:00MenTaLguYI seldom do, but I ought to.
04:12:17MenTaLguYand for tomorrow it's important since I've got to get up early
04:13:00evanthe VM is going to transform a CM into a VMMethod, thats going to include transform access to ivars into access into slots
04:13:12evanphase 1 is only the builtin classes
04:13:29evanand preallocated ivar to slot bindings
04:14:07tarcieriok
04:14:19tarcieriso struct-like access to ivars, handled at compile-time?
04:14:26evanno
04:14:32tarcierino! heh
04:14:32evanthat was ivar_as_index
04:14:37tarcierio
04:14:55evanivar as index gave the compiler knowledge of what ivars were actually slots
04:15:14evanand the bytecode would then contain a bytecode to access a slot, instead of a normal, dynamic ivar
04:15:21evanthen new scheme moves that into the VM
04:15:25evanthe compiler doesn't have to care
04:15:36tarcieriso it's handled at runtime?
04:15:45evanthe VM takes care of rewriting ivar access when the CM is first run
04:16:09evanyeah, runtime.
04:16:53tarcieriso it's like inline "slotting" of ivars as they get used?
04:17:01evanthats phase 2
04:17:08evandetecting and assign ivars to slots dynamically
04:17:18evanphase 1 is that the binding of ivar to slot is hardcoded
04:17:33evandecided at VM compile time
04:18:12rueMm, how are you doing the substitution to avoid the cost for all CM first runs?
04:18:39tarcierievan: oh, here's a question about the whole event thing
04:19:08evanrue: i'm not
04:19:31tarcierievan: In Rev I have something similar, but you instantiate the event observer objects first before binding them to the "Scheduler"
04:19:39evanvery CM first run will generate the backend VMMethod object, which contains the translated instructions
04:19:50evantarcieri: ok
04:20:02tarcierievan: that way it can carry a user value along with it
04:20:20marnen leaves the room.
04:20:32tarcieriTimeoutEvent.perform chan, 5.0, value would work, I guess
04:21:01evanwhat does the Rev api look like?
04:21:03evangive me an example
04:21:23tarcieriat the lowest level, there's things like IOWatcher
04:21:31MenTaLguYI'm not real keen on the idea of making the user instantiate their own event object
04:21:50tarcieriMenTaLguY: they don't have to in order to have the capability to pass user values
04:21:57tarcieri^^^ is probably the way to go
04:22:23MenTaLguYindeed
04:22:29tarcieriIOWatcher is fundamentally an event observer
04:22:36tarcieriand what I'd be trying to implement on top of scheduler
04:22:38MenTaLguYand actually in the Scheduler case the internal event things already have a field for the user value
04:22:57MenTaLguYthough right now that's also the buffer for proacted reads
04:23:16tarcieriRev::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:04tarcierito receive I/O events, you subclass IOWatcher (or it has an alternative API that does instance_eval)
04:24:07tarcieriso
04:24:39tarciericlass MyObserver < Rev::IOWatcher; def on_readable; puts "read event"; end; end
04:24:59evanhow do ou get the data?
04:25:25tarcierithen MyObserver.new(io).attach(Rev::Loop.default) to have it wait for events... Rev::Loop.default.run to run the Reactor loop
04:25:50stepheneb enters the room.
04:26:06tarcieriwhich 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:14evanok
04:26:21evanso it's up to you to use IO#readpartial then
04:26:44tarcieriyeah, #readpartial works... but you still need IO#write_nonblock
04:26:53evanyeah
04:27:12tarcieriso on top of that is a Proactor, I guess... Rev::IO which creates a read watcher and a write watcher
04:27:26evanmy thinking was integration the read task at the lowest layer improves things a lot
04:27:33tarcieriyeah for sure
04:28:27tarcieriif you had ReadEvent.perform chan, io, 4096, value
04:28:33tarcierithat'd be awesome
04:28:49evansure
04:28:56evanthat simplifies the VM
04:29:08evanbecause it can have the event chain be real Event objects
04:29:19tarcierisweet
04:30:00evanok, i'm going to eat dinner.
04:30:01evanbbiab.
04:35:11tarcieriposted a ticket to lighthouse
04:36:18mernen leaves the room.
04:41:16mapar leaves the room.
04:46:03rueWhoa, Indiana is <2%
04:49:19tarcieriafter locking up on me the last 5 times I tried to play it, GTA4 multiplayer is working again
04:49:21tarcieri*boggle*
04:51:45hornbeck enters the room.
04:52:12trythil_ leaves the room.
04:52:15trythil enters the room.
04:52:22yugui enters the room.
04:54:13yugui leaves the room.
04:55:19yugui enters the room.
04:55:20yugui leaves the room.
04:55:57ezmobius enters the room.
04:58:12knowtheory leaves the room.
04:59:43yugui enters the room.
05:01:49marnen enters the room.
05:01:56enebo leaves the room.
05:08:57trythil_ enters the room.
05:08:57trythil leaves the room.
05:08:59vertiginous enters the room.
05:09:13knowtheory enters the room.
05:09:25RyanTM leaves the room.
05:10:53blakewatters enters the room.
05:15:23blakewatters leaves the room.
05:21:38marnen leaves the room.
05:22:24jacen_ enters the room.
05:26:38cyndis leaves the room.
05:27:04cyndis enters the room.
05:35:04mapar enters the room.
05:42:20tarcieriwell, anyone on ps3 wants to send me an invite for some gta4, I'm tarcieri there as well
05:43:36benburkert leaves the room.
05:47:23Erlang00t leaves the room.
05:48:31bitbang leaves the room.
05:53:34cyndis leaves the room.
05:55:40cyndis enters the room.
06:00:59benburkert enters the room.
06:01:09rueWell, I would but I have neither the system nor the console. But if I did, I would
06:01:35tarcieriheh
06:04:12yugui leaves the room.
06:07:59bitbang enters the room.
06:20:46MenTaLguY leaves the room.
06:21:19be9 enters the room.
06:34:26MenTaLguY enters the room.
06:35:44ezmobius leaves the room.
06:36:37srbaker leaves the room.
06:39:01trythil enters the room.
06:39:01trythil_ leaves the room.
06:46:54enebo enters the room.
06:47:17headius enters the room.
06:47:55vertiginous leaves the room.
06:48:43nicksieger enters the room.
06:52:15xhanjian leaves the room.
06:52:17dysinger leaves the room.
06:52:23xhanjian enters the room.
06:52:27Skip enters the room.
07:09:36mapar leaves the room.
07:15:42knowtheory leaves the room.
07:21:41benburkert leaves the room.
07:22:38stepheneb leaves the room.
07:26:22evanhm...
07:27:06evanyou know what would be a totally rad feature?
07:27:30evanforeign pointers as immediates
07:29:23GMFlash leaves the room.
07:29:33GMFlash enters the room.
07:33:13Maledictus enters the room.
07:38:40dbussinkyou mean stuff that comes from ffi?
07:39:01evanyeah
07:39:14evanthough, i'm considering using it more than ffi
07:39:21dbussinkaren't there cases where that could collide?
07:39:30evanah ha!
07:39:34evanconsider this
07:39:43evanwe already have immediates because the bottom 2 bits are never used.
07:40:00evanso... you have foreign pointers be an immediate where the bottom 2 bits are set, ie, 11
07:40:19evanand to get the original pointer back you just & it to remove the bits
07:40:19dbussinkah, that's true indeed
07:40:21evanbingo
07:40:26evanoriginal pointer restored
07:40:32dbussinkthey're always 32 / 64 bit aligned of course
07:40:35dbussinkeasy :)
07:40:40evanyou couldn't deref it would without removing the bits
07:40:42evanbut thats ok
07:41:50evani've considered having every OOP be 64 bits on all platforms
07:41:58evanbut that doubles the memory on every platform
07:42:01rueWhat can they be used for?
07:42:17evanforeign pointers?
07:43:11evanperhaps i'll just make it so an immediate that is OpaqueData
07:43:14evanwhich is really a pointer
07:43:26evanruby wont be able to see into it, but the VM can
07:47:25imajes enters the room.
07:47:26evanany example of that is the specialized VMMethod C++ object that is associated with a CompiledMethod
07:48:08dbussinkwell, if it would simplify things that would be a really good thing
07:48:37evanoh sweet.
07:48:44evani've got a whole numberic range unused
07:48:56evani can implement this with i very minor tweak
07:49:01evana very
07:50:16dlee enters the room.
07:52:15evani see i'm talking to myself.
07:53:52tarcieriwouldn't 64-bit ops be slow(er) on 32-bit platforms?
07:54:07evanmaking all oops 64 bit?
07:54:12tarcieriyes
07:54:27evanfor 32bit platforms, the oop would be downcast to a 32bit pointer
07:54:28evanso yes.
07:55:48tarcieribut it lets you juggle pointers around directly inside the VM?
07:55:49qwert666 enters the room.
07:55:59evangives us more immediate space to work with
07:57:51dbussinkso basically comes down to long long everywhere?
07:58:00evanyeah, i doubt we'll do it though.
07:58:12dbussinkdunno what that will do with fixnum arithmetic though, speed wise
07:58:25dbussinkdo we need the immediate space then?
07:58:41dbussinkor are there more things we would like to be immediates?
07:59:07dbussinkmaybe a utf-8 kind of way
07:59:18evanyeah, when we go utf-8
07:59:23evanwe'll want a Character immediate
07:59:36dbussinkbut can't we do something like that too?
07:59:41dbussink11 is not used now?
07:59:48evanwe can use what we have, yeah.
07:59:59evan10 is only has 4 values in it currently
08:00:19evan11 is divided int Symbol and Custom
08:00:38evanCustom is nothing, it it's just reserved for future use
08:00:40evanlike this :)
08:02:21trythil leaves the room.
08:02:56dbussinkdivided like 011 / 111 or in another way?
08:03:01evanyep
08:03:02evanlike that
08:03:08evansimpel
08:03:11evansimple
08:03:38dbussinkcan't we do the same trick with 10 then?
08:03:46dbussinkto claim the space that is left there?
08:04:35evanyeah, we can
08:04:40evanwe don't need the 64bit space
08:04:41evanjust musing.
08:06:22dbussinkwell, the vm shouldn't be obscured with too much tricks though
08:06:28dbussinkplain and simple is good
08:10:27dbussinkgoing to push this stuff?
08:16:24evanwhich?
08:18:07thehcdreamer enters the room.
08:25:40evanVVSiz: you at J1?
08:25:50w1rele55 enters the room.
08:30:37imajes leaves the room.
08:31:56evanoh! here's a crazy idea!
08:32:10evananyone around?
08:32:25VVSizevan: nope, not this year. Watching it remotely from Germany...
08:32:37evanVVSiz: are the parties remote too?
08:32:51evanthat seems to be the only thing headius, olabini, and timbray are doing
08:32:52evan:)
08:33:18headiusnah, what with talks we've had to defer the parties
08:33:29headiushacking with david_koontz, enebo, and nicksieger right now
08:33:31VVSizheheheh. My party is sitting in front of a PC for 16 hours and read twitter! :)
08:33:35evanheadius: super weak
08:33:40evanheadius: you should be partying.
08:33:46headiuswe'll make up for it tomorrow
08:33:51evanyou better.
08:33:54headiustoronado
08:33:55VVSizthe funny part... my manager went to JRuby session and saw my name in a list of contributors!!! :)
08:34:02evanI want a long blog post about the party scene at J1
08:34:24nicksiegerVVSiz: didn't you tell him?
08:34:32headiusIs Partying Killing the JavaOne Hackfest?
08:34:44headiusVVSiz: hahah
08:34:44eneboVVSiz: hahaha
08:34:45headiusawesome
08:34:51nicksiegerwas there ever a java one hackfest?
08:34:57headius"you're fired"
08:35:07evanheadius: yes please.
08:35:12headiusyou need to get jruby on blu-ray
08:35:17VVSiznicksieger: yeah, he knew that I was contributing in some capacity, just didn't realize it in full :)
08:35:17evanon your blog topic
08:36:07headiusevan: LA JUG wants tom or I to come down some time
08:36:17evancome on down!
08:36:18headiusI'll let ya know if we do it
08:36:20evanwe'll hit the town
08:36:24evani'll show ya the real hollywood.
08:36:45evanthe real hollywood is, btw, seeing Drew Carey at a dinner
08:43:20zenspideranyone here know utf8 inside and out?
08:43:33evantbray?
08:44:11zenspiderhere?
08:44:17evanhe's here sometimes
08:44:51Arjen_ enters the room.
08:45:29bitbang enters the room.
08:45:55sambo82 enters the room.
08:46:32bitbang leaves the room.
08:47:34bitbang enters the room.
08:49:22octopod enters the room.
08:49:47headiusprobably won't be on til tomorrow, but he's your man
08:50:27zenspiderthis code is so so so horrible
08:50:41zenspiderI'm down 300 flog points so far
08:51:29evanstill on pack?
08:52:39zenspideryup
08:52:43zenspiderdoing U currently
08:54:09smparke1 leaves the room.
08:54:23bitbang leaves the room.
08:56:22mae enters the room.
08:56:25maehello all
08:56:32mutle enters the room.
08:56:34evanwell looky at that
08:56:35evanit's mae.
08:56:39maethats right
08:56:41maecatch me if you can
08:56:43maeyou can't catch me
08:56:49maei'm the ginger-bread admin
08:56:49evanhehe
08:57:01evanstill given up on ruby?
08:57:23maeyeah
08:57:29maei think rubinius can save ruby though ; (
08:57:30mae; )
08:57:49evan:)
08:57:52maestill learning haskell in my free time
08:57:58maegave up on erlang
08:58:05maeits concurrent C in disguise :)
08:58:10tarcierihahaha what???
08:58:36maeheh
08:58:36tarcieriI worked for years to develop something like Erlang on my own in C
08:58:39rue*cough*
08:58:51maei love saying controversial things like that
08:58:58maeit scares out all the cockroaches
08:59:01tarcierilulz
08:59:06zenspiderI can't read OR write haskell
08:59:20evanme neither
08:59:34maeyeah, its pretty much a brain-type-theory-fuck
08:59:37tarcieriHaskell tops the pedantry / practicality ratio of languages
09:00:00maesay what you will lewzers
09:00:00boyscoutwhat you will lewzers
09:00:20maei have almost finished my tool for my new job that pulls together various databases via ODBC
09:00:33maeJD edwards, red prairie, active directory (ldap)
09:00:39maewritten in haskell :)
09:01:01tarcieriI can't imagine having a job that would let me use Haskell, not that I'd want to
09:01:08evanditto.
09:01:22maei can't imagine my bosses actually reading any programming that I do and even pretending to understand it anyways
09:01:31maethe programmers are all in another department
09:01:33zenspiderheh. true
09:01:33maei'm just answering phones
09:01:54maeand using indirect channels to obtain access to oracle and ibm databases
09:03:14maeI no longer feel that fancy metaprogramming with sugar coating is a good thing
09:03:19maethats probably why I don't like ruby anymore
09:03:39maebut I think in general, of all the OO languages, I think its the most elegant
09:03:56dbussinkevan: was gone doing some actual work ;)
09:04:03maeits a double edged sword, one edge is beauty, the other is perl
09:04:09dbussinkheadius: i see you're gonna talk in amsterdam too
09:04:11tarcierihaha
09:04:14maework? whats this?
09:04:43dbussinkheadius: probably will hop by there too
09:05:38maeyou guys shouldn't give up on haskell
09:05:43maeit just turns your thinking totally upside down
09:05:51headiusdbussink: can't turn down a trip to amsterdam
09:06:05dbussinkheadius: hehe
09:06:07maebecause you stop thinking about the steps involved and you start thinking more about transformations and function composition
09:06:36rueAnd kittens
09:06:39dbussinkheadius: not that special for me anymore, been there a lot of times
09:06:57tarcierimae: I start thinking about how difficult laziness is to reason about
09:07:00headiusso nice in june though
09:07:06dbussinkdefinitely true
09:07:15dbussinkworked in amsterdam during the summer in 2006
09:07:19rue"I believe I have been to Amsterdam.. but I cannot remember."
09:07:37maetarcieri: 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:51maeits suboptimal in some cases but you can always write strict functions
09:08:18dbussinkmaybe we need someone to talk there on rubinius if jruby is going to be there :P
09:08:35maebuy kingsley hendrickse a plane ticket
09:08:39maei'll make him do it
09:09:14maehow about scala, anyone tried this?
09:09:25maescala / lift
09:10:18tarcieriI poked around with Scala a little
09:10:22tarcieriI should really learn it better
09:10:49zenspideromg this code is so fucking opaque!
09:10:50maethere seems to be a growing trend of the JVM being whored out for other languages
09:10:58tarcieriit's a nice VM
09:10:59maezenspider: show me!
09:11:05zenspiderhands evan a gun
09:11:13zenspiderputs it in his hand
09:11:14evanwho should I shoot?
09:11:20maetarcieri: how close is it to being open sourced?
09:11:22zenspiderpulls gun to forehead
09:11:25zenspiderdo it
09:11:29sambo82_ enters the room.
09:11:30evanwhy me?
09:11:32dbussinkevan: what was your crazy idea?
09:11:34tarcierimae: got me
09:11:39zenspidermae: no. I wouldn't hurt you like that
09:11:41evanzenspider: i didn't write Array#pack
09:11:42sambo82 leaves the room.
09:11:45evanor String#unpack
09:11:50maelol
09:11:55zenspiderevan: dumbass... shoot ME
09:12:01evanoh, ok.
09:12:11maeoh yeah
09:12:17maei had the pleasure of using that library once
09:12:55maeit was like trying to shave blindfolded, after having a 12-pack of budweiser.
09:13:08zenspider enters the room.
09:13:15zenspiderjerk. :P
09:13:24evani threw some bad grammar in
09:13:26evanto make the death worse.
09:13:39rueIt seems to be very richly commented at least.
09:13:45zenspiderhaha
09:14:04zenspiderrue: yeah... I clarified a lot of the code by stripping them all out
09:15:48zenspiderthe utf8 section is so... byzantine
09:16:57rueEtruskan, even
09:17:14maeif 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:17zenspiderone 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:46zenspidermae: share the drugs pls
09:19:01maezenspider: this isn't drugs, this is me after 10 hours of unlocking windows user accounts and filling out IT change request forms
09:19:18maeso please all, participate in my quiz.
09:19:22TheVoice leaves the room.
09:20:00maezen: do you still use p4?
09:20:19maeper4
09:20:39zenspideryes
09:21:58maedid you ever work for google
09:23:07headiusMr. Soze rarely works with the same people for very long, and they never know who they're working for
09:23:43maeso how come no one will answer my quiz
09:23:47maefine dammit i'll ask ruby-lang
09:24:02maeat least theres people lame enough there to indulge my ramblings
09:24:45dbussinkmae: ok ok, i'll just take the easy way out and take the gun ;)
09:25:09maeheh
09:25:35dbussinkthat also means no more weird quizzes :)
09:25:40maeno one wants to attempt to rebuild computer society by bootstrapping a lisp VM on basic?
09:25:47maeCOME ON!
09:26:02dbussinkhahaha
09:26:41zenspidermae: no, I picked up p4 from amazon
09:27:02maeyeah, they hook you like crack, then they put you back into the world
09:27:21maethats cool, so did you do anything fun at amazon?
09:29:03zenspideryeah, 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:27maewhat burned you out?
09:31:02enebo leaves the room.
09:31:59zenspiderI 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:25maebad management is always to blame
09:32:40maegood management is the complete opposite
09:32:47maei have good management right now
09:32:50zenspidergreat... can we PLEASE not use unpack to test pack?!?!
09:32:53zenspiderARGH
09:32:56evanhah
09:32:56zenspideryup
09:33:12evanpulls the hammer back on the gun
09:33:18maeevan don't do it
09:33:23maeyou have your whole life ahead of you
09:33:33maedon't wax this shmuck
09:33:59evanit's for zenspider
09:38:48evanshit, i should go to bed.
09:38:49evannite.
09:38:59zenspiderlater
09:39:36dbussinknite
09:41:06headius leaves the room.
09:42:49wycats_ leaves the room.
09:48:20rue'S barely two
09:48:35maethats what i'm saying!
09:48:41maei mean sleep is for the weak
09:49:33yugui enters the room.
09:58:50dlee leaves the room.
10:03:53yugui leaves the room.
10:04:18yugui enters the room.
10:04:46GMFlash leaves the room.
10:07:30dctanner enters the room.
10:12:00wycats_ enters the room.
10:13:20mae leaves the room.
10:25:45zenspiderYAY!!! I cracked below 700 flog points!
10:27:54rueHm, Ruby.undef has some weird fucking semantics
10:28:16rueAlso, we should totally implement undef and friends as methods of the Ruby module :P
10:28:24zenspiderI'll undef you!
10:30:09rueIt always affects the surrounding module, it seems.
10:30:57rueThe lexically surrounding, that is
10:31:05Yurik enters the room.
10:32:44mkrauskopf enters the room.
10:33:11hosiawak enters the room.
10:43:49rueHumm, looks like -j might have intermittent contention to its dir/files
10:45:14wycats_ leaves the room.
10:46:53sambo82 enters the room.
10:47:45sambo82_ leaves the room.
10:49:12imajes enters the room.
10:51:07boyscout7 commits by Ryan Davis
10:51:08boyscout * First pass cleaning up Array#pack. Almost rewritten. Flog dropped 25% and much more ...; bf286ec
10:51:09boyscout * Added specs for big uncovered areas, still not 100%; ee21177
10:51:10boyscout * Added rdoc for String#unpack; 8ccce5e
10:51:12boyscout * Intermediate checkin... ported XxNVvaAZcCMwHh and dropped flog by about 250; 3287b5b
10:51:12boyscout * Fixed typo; 7ce9bc2
10:51:13boyscout ...
10:52:01zenspideryay
10:52:04zenspiderugh
10:54:29rueAh, you bastard.. made it just before me
10:54:39rueLooks good though
10:56:30boyscout1 commit by Eero Saynatkari
10:56:31boyscout * Node doc for :if, :unless, :while, :until, :block, :scope, :args, :undef.; ac7794a
10:56:46zenspiderrue: ?
10:57:36rue??
10:58:02zenspider!
10:58:16zenspiderString#unpack is next...
10:58:22zenspiderthese two methods are horrid
10:59:18rueI had to do a second `git fetch && git rebase origin && rake build && bin/mspec ci -j` :)
10:59:51zenspiderah. sorry. :)
11:00:04zenspiderstupid build bot... hurry up
11:00:11rueHeh
11:00:19zenspiderwait... they're not running
11:00:29zenspiderok. fuck it. I'm going to bed
11:14:28agile leaves the room.
11:14:35sambo82 leaves the room.
11:17:08agile enters the room.
11:17:25sambo82 enters the room.
11:23:29chris2 enters the room.
11:25:52rubuildius_ppc enters the room.
11:26:47rubuildius_amd64 enters the room.
11:29:41mutle leaves the room.
11:35:50w1rele55 leaves the room.
11:37:56ttmrichter leaves the room.
11:39:34mutle enters the room.
11:39:53jtoy leaves the room.
11:43:03rubuildius_ppcEero Saynatkari: ac7794a61; 2103 files, 6849 examples, 24698 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/192918
11:44:30mutle leaves the room.
11:44:58mutle enters the room.
12:05:43riffraff leaves the room.
12:16:56atmos leaves the room.
12:36:27mutle leaves the room.
12:36:38mutle enters the room.
12:46:33dbussinkthe silence has returned
12:49:01chris2 leaves the room.
12:56:40qwert666 leaves the room.
13:03:31ctennis leaves the room.
13:16:19ArjenFortunatly.
13:19:01vertiginous enters the room.
13:19:10rueHa, so you think
13:23:30GMFlash enters the room.
13:30:29yugui_ enters the room.
13:30:29yugui leaves the room.
13:54:57smparke1 enters the room.
13:55:12_mutle enters the room.
13:59:10RyanTM enters the room.
14:05:08cremes_ enters the room.
14:11:36mutle leaves the room.
14:24:14meanphil leaves the room.
14:26:11pauldix enters the room.
14:27:11anteaya enters the room.
14:32:45RyanTM leaves the room.
14:33:24agile leaves the room.
14:36:22blakewatters enters the room.
14:42:07AndrewO enters the room.
14:43:15wmoxam enters the room.
14:47:06blakewatters leaves the room.
14:51:04yipstar enters the room.
14:51:57trythil enters the room.
14:54:26trythil leaves the room.
15:03:55blakewatters enters the room.
15:05:03gnufied enters the room.
15:05:53yugui_ leaves the room.
15:10:12JimMc leaves the room.
15:17:21macournoyer enters the room.
15:20:31JimMc enters the room.
15:21:55rubuildius_amd64 leaves the room.
15:21:59rubuildius_amd64 enters the room.
15:22:00rubuildius_amd64 leaves the room.
15:22:06rubuildius_amd64 enters the room.
15:24:36robertpostill enters the room.
15:26:59moofbong enters the room.
15:32:48rubuildius_amd64Eero Saynatkari: ac7794a61; 2103 files, 6847 examples, 24672 expectations, 0 failures, 0 errors; http://rafb.net/p/mu4YsF97.html
15:39:52gnufied leaves the room.
15:44:58agile enters the room.
15:57:30benstiglitz enters the room.
16:05:39trythil enters the room.
16:17:53benburkert enters the room.
16:19:53eventualbuddha enters the room.
16:21:08robertpostill leaves the room.
16:24:41benburkert leaves the room.
16:26:48benny leaves the room.
16:27:27therealadam enters the room.
16:27:36fbuilesv enters the room.
16:28:25smparke1 leaves the room.
16:32:34jtoy enters the room.
16:32:56fbuilesvCan 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:22brainopia enters the room.
17:07:31lopex enters the room.
17:08:33anteaya leaves the room.
17:12:21anteaya enters the room.
17:14:10sambo82 leaves the room.
17:15:39benburkert enters the room.
17:27:44brixenfbuilesv: the patch works ok for me except that line 16 (after applying) needs to be -9.22337203685478e+018
17:29:39brixenfbuilesv: actually, I'm going to create a new patch, I want to remove the use of #to_s in that spec
17:29:51mutle leaves the room.
17:30:20nicksieger leaves the room.
17:39:51jtoy leaves the room.
17:49:08qwert666 enters the room.
17:49:58thehcdreamer leaves the room.
18:01:34squeegy leaves the room.
18:05:05Yurik leaves the room.
18:07:19dctanner leaves the room.
18:09:37srbaker enters the room.
18:10:13octopod leaves the room.
18:10:20boyscout1 commit by Brian Ford
18:10:21boyscout * Use literals in Bignum#to_f specs (alternate fix for #535).; d73b17b
18:11:44squeegy enters the room.
18:22:45atmos enters the room.
18:22:49rubuildius_amd64Brian Ford: d73b17b88; 2103 files, 6847 examples, 24672 expectations, 0 failures, 0 errors; http://rafb.net/p/ufWewM31.html
18:25:43rubuildius_ppcBrian Ford: d73b17b88; 2103 files, 6849 examples, 24698 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/193096
18:33:10dysinger enters the room.
18:42:51loincloth enters the room.
18:45:12dlee enters the room.
18:50:24anteaya leaves the room.
18:50:37imajes leaves the room.
18:52:33nicksieger enters the room.
18:53:14benburkert_ enters the room.
18:56:22wycats_ enters the room.
19:02:13enebo enters the room.
19:09:23TheVoice enters the room.
19:09:31benburkert leaves the room.
19:10:19fbuilesv leaves the room.
19:12:53be9 leaves the room.
19:14:05benny enters the room.
19:16:30ezmobius enters the room.
19:24:03wycats_ leaves the room.
19:31:52zenspider leaves the room.
19:36:09m7d enters the room.
19:36:18imajes enters the room.
19:39:05ndemonner enters the room.
19:40:41wycats_ enters the room.
19:44:37atmos_ enters the room.
19:45:56joachimm leaves the room.
19:56:09srbaker leaves the room.
19:57:35atmos leaves the room.
20:01:25tizianobis enters the room.
20:01:26enebo leaves the room.
20:06:01m7d leaves the room.
20:07:15tizianobis leaves the room.
20:11:36loincloth leaves the room.
20:12:22enebo enters the room.
20:13:19enebo leaves the room.
20:21:32benny leaves the room.
20:22:04m7d enters the room.
20:22:54nicksieger leaves the room.
20:28:19m7d_ enters the room.
20:34:22m7d__ enters the room.
20:34:56rueMorning
20:35:11brixenmorning rue
20:35:22Arjen_ leaves the room.
20:42:07joachimm enters the room.
20:43:41m7d leaves the room.
20:51:03m7d_ leaves the room.
20:51:03ezmobius leaves the room.
20:51:29ezmobius enters the room.
21:00:54joachimm_ enters the room.
21:01:16mapar enters the room.
21:05:25chris2 enters the room.
21:09:47ndemonner leaves the room.
21:14:24tarcieriman, Net::HTTP is pain :(
21:16:47joachimm leaves the room.
21:23:08stepheneb enters the room.
21:24:26joachimm enters the room.
21:27:30benburkert enters the room.
21:28:54m7d__ leaves the room.
21:30:21Skip leaves the room.
21:32:19srbaker enters the room.
21:32:29joachimm_ leaves the room.
21:34:09qwert666_ enters the room.
21:43:14benburkert_ leaves the room.
21:45:10evanwhats up this afternoon kids?
21:45:42drbrainPixelJunk Monsters Encore is released tomorrow!
21:46:31djwhittGoogles
21:46:38djwhittfascinating...
21:46:52drbrainhttp://blog.us.playstation.com/2008/05/06/pixeljunk-monsters-encore-dated-interview-part-2/
21:48:19drbrainI think I'm only missing rainbows on two maps
21:48:46Blinchik leaves the room.
21:49:25evandrbrain: i still haven't played
21:49:41evani should
21:49:47evandrbrain: hows the head?
21:49:49drbrainits lots of fun, and has (local only) coop
21:50:08drbrainnose is clear, sinuses have blockage
21:50:11djwhittwow, um... it's tower defense?
21:50:31evandrbrain: still foggy?
21:50:42drbrainnot so much as yesterday
21:51:14drbraindjwhitt: yes, and its lots of fun
21:51:27djwhittneeto
21:51:58djwhittor neato as the case may be
21:52:12qwert666 leaves the room.
22:05:11Yurik enters the room.
22:05:42macournoyer leaves the room.
22:05:54Blinchik enters the room.
22:11:41imajes leaves the room.
22:14:27joachimm leaves the room.
22:24:13qwert666_ leaves the room.
22:25:30ezmobius leaves the room.
22:25:52ezmobius enters the room.
22:27:53anteaya enters the room.
22:28:00stepheneb leaves the room.
22:28:20Maledictus leaves the room.
22:30:48blakewatters leaves the room.
22:38:08dctanner enters the room.
22:40:03mkrauskopf leaves the room.
22:42:42Arjen_ enters the room.
22:51:17boyscout1 commit by Brian Ford
22:51:18boyscout * Added spec for Kernel#eval with binding from method defined by #eval.; 819649f
22:53:56mkrauskopf enters the room.
23:02:48rubuildius_amd64Brian Ford: 819649f24; 2103 files, 6849 examples, 24674 expectations, 0 failures, 0 errors; http://rafb.net/p/U4br5d59.html
23:02:57Defilerbrixen: cool spec
23:03:25brixenDefiler: thanks :)
23:03:35evanoops.
23:03:38brixenevan: I saw 1e in the bt originally, but Qnil is 14L
23:03:41brixenwhat am I missing?
23:03:56evanbrixen: nil (14) was deref'd a struct
23:04:04evanthus an offset was added to it's base
23:04:06brixenok
23:04:16evanderef'd AS a struct
23:04:28evanDefiler: Kernel#__add_method__ doesn't add a staticscope to the method.
23:04:43evanin fact, i think Kernel#__add_method__ is all kinds of broken.
23:05:14brixenhmm, where should we spec that?
23:05:22evanin def.
23:05:27evanafter every def
23:05:31dctanner leaves the room.
23:05:36evancheck that the static scope of the CompiledMethod object is correct
23:06:01Defilerevan: Hrm.. that does look wrong, doesn't it
23:06:08Defilerwhen is that version of add_method called?
23:06:14DefilerModule's version is vastly more common
23:07:02evanwhen self isn't a Module
23:07:12evandef inside def
23:07:15evanok, i've got this fixed
23:07:19brixenevan: well, def spec in spec/ruby/1.8/language wouldn't be appropriate
23:07:28brixenwhat about spec/core/kernel/add_method_spec
23:07:32evanbrixen: sure.
23:07:33brixennot sure where the root of this is
23:07:37evanit's there
23:07:43brixenwe also have spec/core/compiledmethod
23:07:44evanadd_method_spec is correct.
23:07:46evanit's not that
23:07:48brixenok
23:07:50evanit's the behavior of adding a method.
23:08:04brixenk
23:08:20rubuildius_ppcBrian Ford: 819649f24; 2103 files, 6851 examples, 24700 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/193304
23:08:29brixenso, method.staticscope.should_not == nil
23:08:36brixen?
23:08:36evanas a first step, yes
23:08:40brixenk
23:08:48evanBUT it should really verify the scope is EXACTLY something
23:08:50evanie
23:09:00evanmethod.staticscope.module.should == Object
23:09:06evanor whatever the lexical scoping of the method was
23:09:07trythil leaves the room.
23:09:31brixenok
23:10:08boyscout1 commit by Evan Phoenix
23:10:10boyscout * Setup a staticscope properly; 3bf37ee
23:10:17evanpeep that.
23:10:18