Index

Show enters and exits. Hide enters and exits.

00:08:13nicksieger enters the room.
00:10:16aotearoa enters the room.
00:13:02Maledictus leaves the room.
00:13:25rue leaves the room.
00:15:05heycarsten enters the room.
00:15:53smparkes enters the room.
00:16:26michalw leaves the room.
00:16:45drbrainshould we FFI most of io_* also?
00:17:09drbrainor do we need them?
00:19:27lopex leaves the room.
00:24:21evandrbrain: which do we have?
00:24:26atduskgreg enters the room.
00:24:52drbrainclose_ng, open, operation, read, reopen, seek, write
00:25:19drbrainI imagine that open, read and close would be needed early on
00:25:25evanlikely
00:25:49evanio_operation is very OS dependent
00:25:52evanthats why it's a primitive
00:25:59evaneven between unices
00:26:42drbrainI think it would be helpful for you to go through shotgun_primitives and do some pruning
00:26:52evansure
00:27:46drbrainwhat about Dir?
00:28:11evanthey stay
00:28:16drbrainI think all of that is FFIable
00:28:16evanwe went round and round with them
00:28:18evani'm not doing that again.
00:28:25drbrainok
00:28:48evanfor io, lets do them all
00:28:56drbrainok
00:28:58evani'd prefer to get the C++ stuff up and running
00:29:05evanthen we can prune once we've got a running system
00:29:14evanthere are ones that aren't hooked up anymore even
00:29:17evanlike the terminal ones
00:29:19drbrainwon't happen
00:29:29evanwe don't do now
00:29:31evaner
00:29:35evanwe leave on the floor
00:29:40evanwe don't pull them into the C++ branch
00:29:47evani'll go through and prune those kind out
00:34:30c0sin enters the room.
00:34:41twbray leaves the room.
00:35:06aotearoa leaves the room.
00:39:45dfg59 leaves the room.
00:40:27trythil enters the room.
00:40:42sambo82 enters the room.
00:41:06eventualbuddha leaves the room.
00:42:10chad_ leaves the room.
00:42:19chris2 leaves the room.
00:42:35chad_ enters the room.
00:45:02heycarsten leaves the room.
00:46:01binary42 enters the room.
00:47:03dfg59 enters the room.
00:53:51cout enters the room.
00:55:10NoKarma leaves the room.
00:59:44williamsmith_ enters the room.
01:00:59yroc leaves the room.
01:01:08smparkes leaves the room.
01:03:26benburkert_ leaves the room.
01:04:55williamsmith_ leaves the room.
01:08:08aotearoa enters the room.
01:10:20enebo enters the room.
01:12:38dfg59 leaves the room.
01:16:01williamsmith leaves the room.
01:21:48enebo leaves the room.
01:22:55blakewatters leaves the room.
01:24:16drbrainshould all primitives accept a STATE, even if they don't use it?
01:25:32evanyeah
01:26:15drbrainI suspected as much
01:26:53binary42 leaves the room.
01:27:45drbrainand, why do the cpp tests take so long?
01:31:37enebo enters the room.
01:32:00jackdempsey enters the room.
01:33:05MenTaLguY enters the room.
01:33:15MenTaLguYhello
01:34:10drbrainhi
01:35:03MenTaLguYmind if I bounce some API design off you?
01:35:43jbarnette enters the room.
01:37:13benburkert enters the room.
01:38:35ijcd leaves the room.
01:41:41yasuhito leaves the room.
01:54:02tarcieriMenTaLguY: I'd like to get your input on doing code and RPC servers for Rubinius
01:54:15MenTaLguYsure
01:54:35tarcieriMenTaLguY: I think that'd really simplify a lot of things, specifically with VMActor
01:54:56tarcierirather than having to do an apply / eval right off the bat, the new VM (or node) would just start with the RPC / code servers running
01:57:19twbray_ enters the room.
01:57:21MenTaLguYer, could you elaborate?
01:58:47tarcieriMenTaLguY: So, say you start the code server... Actor[:code] = CodeServer.spawn
01:58:59tarcierihow do you talk to that from a remote VM / node?
01:59:11twbray_ leaves the room.
01:59:19obvio171 enters the room.
01:59:32MenTaLguYso the bootstrapping problem, basically?
01:59:41MenTaLguYhow do you get a reference to a remote actor for some service?
01:59:57tarcieriyes, how do you get a local object representing a remote registered service?
02:00:23tarcieria possible syntax is...
02:00:23tarciericontainer = VMActor::Container.new
02:00:26tarciericontainer[:code]
02:01:02tarcieridoesn't really like "VMActor::Container" either, but... :/
02:01:24jbarnette leaves the room.
02:01:33tarcieriI mean, once you have that, it can just send messages using the symbol as the Actor ID
02:01:55tarcieribut once you have code and rpc, the bootstrapping problem is pretty well solved
02:01:55hemulen enters the room.
02:02:23MenTaLguYhow does RPC enter into this?
02:02:33tarcieriRPC is how you execute things on the remote node
02:03:02tarcieriso rather than making the apply / eval part of creating a new VMActor::Container, you're free to arbitrarily eval / apply any number of times
02:03:39MenTaLguYI feel like I'm still missing something important
02:03:44tarcieriyou load the whole environment into the remote code server, then apply whatever you want to kick off services in the remote node
02:04:24MenTaLguYthat sounds really complicated
02:04:41tarcieriwhat's a simpler alternative?
02:05:20tarcieriparticularly, a simpler alternative that facilitates code distribution and live upgrade across a distributed network...
02:05:35tarcierialthough live upgrade in Ruby sounds a bit scary :/
02:05:57MenTaLguYprobably live upgrade means tearing down a VM and replacing it with a new one
02:06:20MenTaLguYit seems to me like code distribution belongs at a less fundamental layer in any case
02:06:33tarcieriless fundamental layer than what?
02:06:39tarcieriActor messaging?
02:06:59MenTaLguYyes
02:07:06tarcierisuch as?
02:07:14MenTaLguYit seems like the basic stuff should be possible to build out of named actors
02:07:17MenTaLguYalone
02:07:35MenTaLguYassuming you have the ability to reference VMs via some uniform identifier
02:07:37tarcierihow is that different from what I'm saying?
02:07:40MenTaLguYe.g. URIs or something
02:07:47tarcierioh...
02:08:00tarcieriyou want to use URIs rather than objects?
02:08:15MenTaLguYURIs to get objects
02:08:18williamsmith enters the room.
02:08:26tarcierican you pseudocode an example?
02:09:11hemulen leaves the room.
02:09:16MenTaLguYvm = RemoteVM.new("tcp://123.123.123.123:2345/") # get VM proxy object
02:09:16MenTaLguYactor = vm[:blah] # get Actor proxy object
02:09:16MenTaLguYactor << "stuff"
02:09:41tarcieriyeah, uhh, that looks exactly like what I'm saying
02:09:42tarcieriheh
02:09:50tarcierisans the TCP part, which we can't do yet
02:10:01MenTaLguYthe TCP part is all handwaving anyhow
02:10:10MenTaLguYignore that part :)
02:10:22tarcieriokay, well I think we're at least agreed on the remote_node_object[:registered_actor_name] syntax
02:10:43tarcieriI might go ahead and try to implement that for VMActor
02:10:54MenTaLguYas far as that goes, it sounds fine to me
02:11:22tarcieriso what do you think about creating a new "actorized" VM automatically starting :code and :rpc servers?
02:12:47MenTaLguYthat's the part I'm not really happy with
02:13:05tarcieriwhat would you suggest as an alternative to that?
02:13:28MenTaLguYwhat specifically do :code and :rpc do?
02:13:38tarcierithe same thing they do in Erlang
02:13:43joachimm_ enters the room.
02:13:46atduskgreg leaves the room.
02:13:50tarcieri:code lets you push .rbcs to a remote node
02:14:00tarcierior interrogate what's loaded already, or grab a .rbc from a remote node
02:14:12tarcieriCompiledMethods, effectively
02:14:15tarcieriserialized as bytecode
02:14:28williamsmith leaves the room.
02:14:29cremes_ enters the room.
02:14:34MenTaLguYand :rpc?
02:14:43tarcieri:rpc just lets you do a remote apply
02:14:54tarcieriso run things on the remote node
02:14:57MenTaLguYexample?
02:14:57tarcieri(or eval)
02:15:05tarcieriumm, well that's where it gets tricky
02:15:10tarcieriwe need an analogue for gen_server
02:15:15tarcierispecifically gen_server:call
02:15:27c0sin leaves the room.
02:15:37tarcierimore specifically rpc:call
02:15:38tarcieribut uhh
02:15:42tarcierijust as a pseudocode example
02:15:43MenTaLguYto make it synchronous, you mean
02:16:01tarcieriRPC.call(node_object, :Class, :method, argument)
02:16:12tarcierior
02:16:13tarcieriperhaps
02:16:20tarcierinode_object.call(:Class, :method, argument)
02:16:43tarcierior arguments...
02:17:55tarcieriwhat'd *really* be nice is if you could push an entire .rba
02:17:59tarcierito the code server
02:18:11tarcieriErlang never figured that out
02:18:12smparkes enters the room.
02:18:17MenTaLguYI think that might be preferable
02:18:17tarcieriI mean, I tried to play around with ear, but...
02:18:32MenTaLguYbasically, be able to say: "here, start a VM with this .rba loaded"
02:18:48tarcieriyeah, it could all be wrapped up in the syntax for creating a new node
02:19:06tarcierido you not want to have a code server?
02:19:07MenTaLguYI think I would prefer that approach
02:19:23MenTaLguYwell, let's say that I'm uncomfortable with the idea of a code server
02:19:24tarcierior do you just want syntactic sugar for talking to it?
02:19:38tarcieriwhat don't you like about a code server?
02:19:48joachim__ enters the room.
02:19:49MenTaLguYit's a gut feeling thing
02:20:00MenTaLguYI've been trying to think how to articulate it
02:20:14tarcieriokay, well feel free to get back to me
02:20:35MenTaLguYI guess the thing is that there's not really a good way to remotely load stuff in a remote VM and have it be clean
02:20:46MenTaLguYif the only option is starting a new VM with the code sent over, I'm more okay with that
02:21:00tarcieriok
02:21:07tarcierievan had some pretty crazy ideas about it
02:21:11tarcieriyou might want to ping him
02:21:13evantarcieri: we can push stuff to the code server however ya want
02:21:14AndrewO enters the room.
02:21:25tarcieriaah, speak of the devil
02:21:34MenTaLguYmy other thing is that :code and :rpc shouldn't be "default" parts of actor-dom
02:21:44MenTaLguYthey can be standard libraries that a VM has to explicitly require before they offer them, perhaps
02:21:51evanmakes a deal with tarcieri for his soul
02:21:55tarcieriheh
02:21:57MenTaLguYI would sort of like to be able to do actors in a hostile environment
02:22:04tarcierievan: can you explain to MenTaLguY what you were thinking?
02:22:19MenTaLguYif every actor thing has :code and :rpc hanging off it by default, that sort of kills it all
02:22:24evansure
02:22:33tarcieriMenTaLguY: well, without :rpc you couldn't have node_object#call
02:22:44evanthe idea is to have just one CompiledMethod in a client VM
02:22:53jtoy enters the room.
02:22:59evanthat compiledmethod is installed in all method_tables
02:23:03evanfor all methods that are implemented
02:23:23evancalling the method the first time would cause the stub to retrieve the implementation of the method from the code server, install it, and run it
02:23:35evanbasically, lazy load methods from the code server
02:23:41evantarcieri: this what ya wanted me to explain?
02:23:44MenTaLguYI see
02:23:50MenTaLguYall that sounds pretty orthogonal to actors
02:23:54evanit is
02:24:00evanHOW the stub loads the code is up in the air
02:24:09MenTaLguYI guess my main objection is building it into actors
02:24:10evancould use a code actor that lives on another VM
02:24:15evanah
02:24:16evanyeah
02:24:19ryanlowe leaves the room.
02:24:20evanyou wouldn't need to
02:24:33evanyou, in fact, wouldn't want to build it in
02:24:39VVSiz_ enters the room.
02:24:42evanyou'd want to have it be generic
02:24:46evanso you can just do
02:24:59evan$CODE_ACTOR = get_an_actor_to_load_code()
02:25:10evanthen the stub just asks $CODE_ACTOR
02:25:20evanyou could have another version of the stub that doesn't use actors at all
02:25:28evancould lazy load directly from disk
02:25:31evanto save on memory usage
02:25:35MenTaLguYsounds good to me
02:25:50MenTaLguYI was just worried because it sounded like this was going to become some core feature of rbx actors
02:25:57MenTaLguYwhich ... it really doesn't need to be
02:26:31tarcierievan: yeah
02:26:41evanyeah
02:26:44joachi___ enters the room.
02:26:45evanthey compliment
02:27:12evanhm, in fact
02:27:13MenTaLguYon other news, I finished sketching out the new Omnibus actor implementation today
02:27:17tarcieriMenTaLguY: if nothing else, if you #call a node that doesn't have the rpc server running, it could fail
02:27:25evanthis whole thing could be done by just having a kernel that defines Object#method_missing
02:27:31MenTaLguYit has Scala-style Actor#react, in addition to Actor#receive
02:27:47tarcierireally...
02:27:47evanthat tries to resolves methods that way
02:28:10MenTaLguYtarcieri: I think I'd be happiest if #call were also provided by some extra thing you required
02:28:37tarcieriso
02:28:41tarcierirequire 'vmactor/rpc'
02:29:03tarcieriright now you're forced to do an apply when creating a remote VM
02:29:05tarcieriwhich... sucks
02:29:18evantarcieri: you're talking about implement syncronized rpc calls on top of async actors, yes?
02:29:25tarcieribecause it gives you no opportunity to configure the environment of that VM before doing the apply
02:29:30tarcierievan: yes
02:29:36evank
02:29:41evanjust wanted to be sure i was on the right page
02:30:32joachimm leaves the room.
02:30:38VVSiz leaves the room.
02:31:34tarcieriright now there's a pseudo-RPC server that uses explicit inter-VM messages
02:31:53tarcieriI'd like to get rid of that and have RPC actually use the Actor protocol
02:32:08MenTaLguYnods
02:32:24MenTaLguYI have a bias against RPC, of course, but it is useful sometimes, and we may as well use the same infrastructure for everything
02:33:10tarcieriThe main use at the moment is kickstarting the application
02:33:13tarcierion the remote node
02:33:40tarcieriso yeah, bootstrapping
02:33:53tarcieriit could work in conjunction with what evan is describing
02:34:25tarcierisince the call you make could hit Object.method_missing
02:34:31evanjust curious, whats the use case for this again?
02:34:39evani can see a couple, i'm curious what yours is
02:34:50tarcierievan: immediately... I was trying to do a multi-VM mongrel server
02:34:52evanfor having a 'client' VM that uses a code server
02:35:19joachimm_ leaves the room.
02:35:20tarcierievan: you'd have a sort of proxy object that constructs Mongrel::HttpHandlers on all the remote nodes
02:35:46tarcieriwhich are more than likely a subclass that is loaded on the "local" VM but not present on any of the remote ones
02:36:05evanso, the idea would be you load your application into the code server
02:36:21evanthen you just spawn 'front ends' that pull code from it
02:36:28joachimm enters the room.
02:36:33neelance leaves the room.
02:36:54tarcieriwell, ideally, the code server just thunks to the existing environment
02:37:19evanI thought the code server WAS the existing environment
02:37:40evanok, i should finish packing
02:37:44tarcieriit's a way to introspect or modify the current environment using the Actor protocol
02:37:47evanheaded to san diego for comic-con tonight!
02:37:52tarcieriheh
02:37:56evanMenTaLguY: you ever get to comic-con?
02:38:13MenTaLguYnope
02:38:15tarcieriand holy crap, the sun is out... rain had me trapped at work
02:38:26MenTaLguYmaybe another year
02:38:26tarcieriregrets riding a bike to work today
02:38:28evanMenTaLguY: thats too bad, kinda seems like your scene
02:38:45MenTaLguYwell, it's a little on the big side to be honest
02:38:52MenTaLguYI tend to run with the indie crowd, SPX and so on
02:39:09evanyeah, thats what I figured.
02:39:20evanI go for the spectacle of it
02:42:57joachim__ leaves the room.
02:43:53tarcieriMenTaLguY: well, we can talk about this some more later
02:43:55tarcieri-> dinner
02:44:36cremes_ leaves the room.
02:44:45cremes_ enters the room.
02:45:21smparkes leaves the room.
02:46:25williamsmith enters the room.
02:47:27headius_ enters the room.
02:47:27headius leaves the room.
02:49:40benburkert leaves the room.
02:50:00jackdempsey leaves the room.
02:50:04jackdempsey enters the room.
02:52:29joachi___ leaves the room.
02:56:56benburkert enters the room.
02:57:39benburkert leaves the room.
02:58:15benburkert enters the room.
02:58:25jw_cub enters the room.
03:02:53sambo82 leaves the room.
03:10:03jackdempsey leaves the room.
03:11:26jackdempsey enters the room.
03:17:49antares enters the room.
03:22:39smparkes enters the room.
03:30:21benburkert leaves the room.
03:35:06benburkert enters the room.
03:45:23cremes_ leaves the room.
03:45:47cremes_ enters the room.
03:46:03smparkes leaves the room.
03:46:14lchin enters the room.
03:47:42matthewd_ enters the room.
03:50:58cremes_ leaves the room.
04:01:23yipstar leaves the room.
04:04:05matthewd leaves the room.
04:06:29twbray enters the room.
04:08:12Fullmoon enters the room.
04:16:29twbray_ enters the room.
04:16:42binary42 enters the room.
04:18:10enebo leaves the room.
04:19:41RyanTM leaves the room.
04:23:33williamsmith leaves the room.
04:24:32moofbong enters the room.
04:33:06benburkert leaves the room.
04:34:43twbray leaves the room.
04:36:07twbray_ leaves the room.
04:39:56antares leaves the room.
04:40:07antares enters the room.
04:40:26headiusdrbrain: we should talk about a way to pull up the ffi generation stuff into a separate lib
04:40:44headiuswmeissner and I are fiddling with ffi and zlib now and probably will have it all working shortly in JRuby
04:40:55headiuswe're just committing the generated libs since we don't have a build cycle for target machines
04:41:24headiusbut it would potentially benefit more than just us to have a project that aggregates the generated libs
04:51:36fbuilesv_ enters the room.
05:01:30fbuilesv leaves the room.
05:17:23moofbong leaves the room.
05:22:09qrush leaves the room.
05:22:54qrush enters the room.
05:26:33AndrewO leaves the room.
05:28:02shanghaililly enters the room.
05:30:55dfg59 enters the room.
05:33:50atmos leaves the room.
05:34:19jw_cub leaves the room.
05:40:41atduskgreg enters the room.
05:42:03qrush leaves the room.
05:48:24ezmobius enters the room.
05:53:43smparkes enters the room.
06:03:05shanghaililly leaves the room.
06:03:25shanghaililly enters the room.
06:03:45shanghaililly leaves the room.
06:05:10headius leaves the room.
06:05:13headius enters the room.
06:10:54shanghaililly enters the room.
06:14:31blakewatters enters the room.
06:14:50williamsmith enters the room.
06:15:18headius_ enters the room.
06:15:22headius leaves the room.
06:16:49shanghaililly leaves the room.
06:19:19atmos enters the room.
06:22:30wyhaines leaves the room.
06:24:53atduskgreg leaves the room.
06:25:47benburkert enters the room.
06:33:35smparkes leaves the room.
06:36:04Arjen_ enters the room.
06:37:10headiusjruby's FFI just installed a gem using rubinius's zlib unmodified
06:37:13headiusneato
06:38:46tarcierinoice
06:38:51benburkert leaves the room.
06:39:49headiusand it's only slightly slower than the java zip libraries
06:40:06drbrainreally! wow
06:40:10drbrainI'm awesome!
06:40:13benburkert enters the room.
06:40:20drbrainI didn't even *try* to make it fast
06:40:20tarcieriheadius: yay, and all it took was a C extension!
06:40:23headiuswmeissner is talking about adding some additional ffi types
06:40:33headiusbuffer, buffer_in, buffer_out
06:40:53headiusto make it more explicit which direction data is going, avoiding copying when not necessary
06:40:56benburkert leaves the room.
06:41:02headiusright now he has :string implemented to copy both ways
06:41:07drbrainyeah
06:41:15headiusobviously not necessary if you're just feeding data out or pulling it in
06:41:39headiusyou might pop into #jruby if you want to talk for a minute
06:41:53drbrainthere would be a performance increase if FFI could use a char * like a buffer more easily
06:41:58drbrainsince MRI does that
06:42:11drbrainnah, I was going to wander off and work on something else
06:42:50headiuswell this ffi is already in jruby trunk and will be in 1.1.4
06:43:10headiusso we should try to pin down some initial spec standard for that
06:44:17brixenheadius: we a few specs in our spec/ffi
06:44:26brixenif the api is standard, we just need to write some specs
06:45:01headiusyeah, I saw the specs, it's pretty slim
06:45:11headiusmore talking about pinning down a publishable API
06:45:19brixenperhaps rubyspec/1.8/proto/ffi
06:45:26drbrainI guess it becomes a standard when there's >1 implementation
06:45:30brixenis where we could put proposed new standards
06:45:39brixenwell de facto
06:45:42brixennot official
06:45:56benburkert enters the room.
06:46:11benburkert leaves the room.
06:48:14headiuswe'll probably ship with rbx syslog since we don't have that functionality at present
06:48:23headiuswhat others have you guys wired in through ffi?
06:48:37dfg59 leaves the room.
06:48:39headiuswe've already got most of posix stuff separately
06:50:10drbrainall our digest stuff is in C, but attached via FFI
06:50:18drbrainlooks like we've got some iconv stuff FFI'd
06:50:26drbrainand a tiny bit of OpenSSL
06:50:41headiusmmm, we have java libs for both of those, and of course ola's ssl
06:50:49headiuswhat about readline?
06:51:01drbrainreadline looks compiled
06:51:14drbrainI think FFI doesn't do callback functions
06:51:14headiusa couple I can think of that would be nice would be readline and termio
06:51:24headiusahh right
06:51:30drbrainthe completion proc
06:51:56drbrainyeah, if FFI can be made to do callbacks, it'll work
06:52:40headiusJNA does callbacks...is there a reason FFI doesn't? I thought I'd seen something from evan about it not working with the stackless VM or something
06:53:46jero5 leaves the room.
06:53:57drbrainI think the API doesn't have it because one of the older libraries that was used didn't do it
06:54:06drbrainI don't know if whatever library we're doing now can do it or not
06:54:14jero5 enters the room.
06:54:15headiusyou're using libffi, same as jna and jffi
06:54:37headiusit was lightning-based before I believe
06:54:50drbrainwe used lightning at one time, which didn't support it
06:56:53headiusI'd at least like to figure out if we could do buffer types before 1.1.4
06:57:10headiuscallbacks could come later, there's not a big rush
06:59:25drbrainI think evan is comiccon ing
07:00:32atmos leaves the room.
07:00:41headiusman, I think I need to take more vacations
07:00:50drbrainyeah
07:00:57drbrainvacations are good
07:01:20headius leaves the room.
07:03:31blakewatters leaves the room.
07:16:10atmos enters the room.
07:20:35jgre_ enters the room.
07:20:42jtoysomeone please update http://rubini.us/news
07:20:54trythil_ enters the room.
07:21:43drbrainlooks like brixen is the man in the know
07:23:49trythil leaves the room.
07:25:25trythil enters the room.
07:27:15headius enters the room.
07:33:55imajes enters the room.
07:40:24trythil_ leaves the room.
07:42:36trythil leaves the room.
07:48:55imajes leaves the room.
07:54:13Fullmoon leaves the room.
08:07:00headius leaves the room.
08:09:00thehcdreamer enters the room.
08:10:12jackdempsey leaves the room.
08:15:07antares leaves the room.
08:17:26atmos leaves the room.
08:17:26binary42 leaves the room.
08:17:26cout leaves the room.
08:17:26Yurik leaves the room.
08:17:26explody leaves the room.
08:17:26rubuildius_ey64 leaves the room.
08:17:26shoe leaves the room.
08:17:26VVSiz_ leaves the room.
08:17:26Ingmar leaves the room.
08:17:26rubuildius_amd64 leaves the room.
08:17:26boyscout leaves the room.
08:17:26Norgg leaves the room.
08:17:26drbrain leaves the room.
08:17:26anonuser leaves the room.
08:17:26wycats_afk leaves the room.
08:17:26nemerle leaves the room.
08:17:26scoopr leaves the room.
08:17:52VVSiz_ enters the room.
08:17:52Ingmar enters the room.
08:17:52rubuildius_amd64 enters the room.
08:17:52anonuser enters the room.
08:17:52boyscout enters the room.
08:17:52scoopr enters the room.
08:17:52drbrain enters the room.
08:17:52wycats_afk enters the room.
08:17:52Norgg enters the room.
08:17:58nemerle enters the room.
08:18:09atmos enters the room.
08:18:09binary42 enters the room.
08:18:09cout enters the room.
08:18:09Yurik enters the room.
08:18:09explody enters the room.
08:18:09rubuildius_ey64 enters the room.
08:18:09shoe enters the room.
08:18:10wvdschel enters the room.
08:20:46twbray enters the room.
08:24:13twbray_ enters the room.
08:25:42twbray__ enters the room.
08:26:33atduskgreg enters the room.
08:26:55twbray___ enters the room.
08:28:39twbray____ enters the room.
08:29:24twbray_____ enters the room.
08:31:51twbray______ enters the room.
08:32:45twbray_______ enters the room.
08:36:23twbray________ enters the room.
08:40:04aotearoa leaves the room.
08:43:38twbray leaves the room.
08:45:20twbray enters the room.
08:45:45twbray_ leaves the room.
08:47:37twbray_ enters the room.
08:49:26twbray____ leaves the room.
08:50:46ezmobius leaves the room.
08:50:46twbray___ leaves the room.
08:51:03twbray___ enters the room.
08:51:07twbray__ leaves the room.
08:51:59BlackEdder enters the room.
08:52:35twbray______ leaves the room.
08:53:05twbray_____ leaves the room.
08:58:59twbray_______ leaves the room.
09:04:17robin_dewd leaves the room.
09:04:33robin_dewd enters the room.
09:05:10twbray leaves the room.
09:06:05twbray________ leaves the room.
09:08:31twbray_ leaves the room.
09:08:46octopod enters the room.
09:09:15sambo82 enters the room.
09:13:09atduskgreg leaves the room.
09:15:26xmlhacker enters the room.
09:15:40xmlhacker leaves the room.
09:17:07sambo82 leaves the room.
09:17:33twbray___ leaves the room.
09:17:34robin_dewd leaves the room.
09:23:48enebo enters the room.
09:23:54twbray enters the room.
09:23:56Arjen_ leaves the room.
09:24:36twbray leaves the room.
09:25:16twbray enters the room.
09:26:55twbray_ enters the room.
09:30:26twbray__ enters the room.
09:34:48twbray__ leaves the room.
09:41:29thehcdreamer leaves the room.
09:42:26thehcdreamer enters the room.
09:43:20twbray leaves the room.
09:54:27twbray_ leaves the room.
09:57:06Yurik leaves the room.
10:08:19jgre__ enters the room.
10:09:33jgre_ leaves the room.
10:22:06chris2 enters the room.
10:27:00atmos leaves the room.
10:38:38michalw enters the room.
10:40:41NoKarma enters the room.
10:42:06Maledictus enters the room.
10:47:37aotearoa enters the room.
10:48:16antares enters the room.
10:52:59brainopia enters the room.
10:53:58aotearoa leaves the room.
10:58:16benny leaves the room.
11:00:27thehcdreamer leaves the room.
11:17:14antares leaves the room.
11:20:40jtoy leaves the room.
11:20:42thehcdreamer enters the room.
11:21:48benny enters the room.
11:27:39mutle enters the room.
11:31:28mutle leaves the room.
11:31:34mutle enters the room.
11:33:29antares enters the room.
11:40:30mitchellvriley enters the room.
11:45:24mutle leaves the room.
11:45:33mutle enters the room.
11:50:49mutle leaves the room.
11:51:03hemulen enters the room.
11:51:21mutle enters the room.
11:53:06antares leaves the room.
11:57:47hemulen leaves the room.
11:58:21Fullmoon enters the room.
12:01:03mitchellvriley leaves the room.
12:02:14Fullmoon leaves the room.
12:02:46aotearoa enters the room.
12:06:30cremes_ enters the room.
12:12:00jero5 leaves the room.
12:13:57mutle_ enters the room.
12:13:57mutle leaves the room.
12:17:17mutle_ leaves the room.
12:18:07mutle enters the room.
12:19:46mutle leaves the room.
12:20:14mutle enters the room.
12:21:46mutle leaves the room.
12:22:55mutle enters the room.
12:23:54mutle leaves the room.
12:24:15nari enters the room.
12:27:25mutle enters the room.
12:28:27mutle leaves the room.
12:29:02jtoy enters the room.
12:29:50jtoy leaves the room.
12:30:09mutle enters the room.
12:30:30roo leaves the room.
12:41:56cremes_ leaves the room.
12:43:10mutle leaves the room.
12:45:52mutle enters the room.
12:49:16mutle leaves the room.
12:49:33mutle enters the room.
12:52:09aotearoa leaves the room.
12:55:27mutle leaves the room.
12:55:27thehcdreamer leaves the room.
12:55:27enebo leaves the room.
12:55:27rubuildius_ey64 leaves the room.
12:55:27shoe leaves the room.
12:55:27explody leaves the room.
12:55:27cout leaves the room.
12:55:27binary42 leaves the room.
12:56:20mutle enters the room.
12:57:23mutle leaves the room.
12:57:34thehcdreamer enters the room.
12:57:34enebo enters the room.
12:57:34binary42 enters the room.
12:57:34cout enters the room.
12:57:34explody enters the room.
12:57:34rubuildius_ey64 enters the room.
12:57:34shoe enters the room.
12:57:57mutle enters the room.
13:00:15mutle leaves the room.
13:08:03RyanTM enters the room.
13:08:50lchin leaves the room.
13:13:02qrush enters the room.
13:24:26lchin enters the room.
13:26:21qrush leaves the room.
13:26:43lchin leaves the room.
13:57:26lchin enters the room.
13:58:12jackdempsey enters the room.
14:03:52Yurik enters the room.
14:04:54brainopia leaves the room.
14:11:07gnufied enters the room.
14:19:16lchin leaves the room.
14:20:20michalw leaves the room.
14:23:39blakewatters enters the room.
14:27:28thehcdreamer leaves the room.
14:27:46michalw enters the room.
14:28:51jackdempsey leaves the room.
14:29:16wyhaines enters the room.
14:31:00hemulen enters the room.
14:31:29hemulen enters the room.
14:31:41AndrewO enters the room.
14:37:29moofbong enters the room.
14:39:26binary42 leaves the room.
14:46:05jackdempsey enters the room.
14:57:10pauldix enters the room.
14:57:52jackdempsey leaves the room.
15:00:06jw_cub enters the room.
15:03:22RyanTM leaves the room.
15:03:55fbuilesv_ leaves the room.
15:10:10wmoxam enters the room.
15:10:18binary42 enters the room.
15:24:22nicksieger leaves the room.
15:25:13nicksieger enters the room.
15:31:56thehcdreamer enters the room.
15:33:08rphillips leaves the room.
15:33:19rphillips enters the room.
15:37:25gnufied leaves the room.
15:39:38atduskgreg enters the room.
15:50:46enebo leaves the room.
16:02:56twbray enters the room.
16:03:32antares enters the room.
16:04:35smparkes enters the room.
16:09:16twbray_ enters the room.
16:11:06thehcdreamer leaves the room.
16:15:40atmos enters the room.
16:16:56shayarnett enters the room.
16:17:29twbray__ enters the room.
16:23:54yasuhito enters the room.
16:24:31smparkes leaves the room.
16:28:33twbray___ enters the room.
16:28:58twbray leaves the room.
16:31:50fbuilesv enters the room.
16:32:28twbray enters the room.
16:33:25twbray____ enters the room.
16:34:44lopex enters the room.
16:35:59twbray______ enters the room.
16:37:41twbray_______ enters the room.
16:38:53twbray________ enters the room.
16:40:00twbray_ leaves the room.
16:40:51smparkes enters the room.
16:41:29atduskgreg leaves the room.
16:42:09twbray___ leaves the room.
16:44:34twbray______ leaves the room.
16:45:04twbray_ enters the room.
16:48:38twbray___ enters the room.
16:49:08twbray leaves the room.
16:49:22jgre__ leaves the room.
16:50:17twbray__ leaves the room.
16:51:00twbray____ leaves the room.
16:52:28thehcdreamer enters the room.
16:52:29twbray enters the room.
16:54:39smparkes leaves the room.
16:56:53fbuilesv_ enters the room.
16:56:53fbuilesv leaves the room.
16:58:41thehcdreamer leaves the room.
16:58:42twbray_______ leaves the room.
16:59:47thehcdreamer enters the room.
17:01:33twbray________ leaves the room.
17:01:51wvdschel leaves the room.
17:02:27twbray__ enters the room.
17:03:31atduskgreg enters the room.
17:05:24twbray_ leaves the room.
17:06:11twbray_ enters the room.
17:09:31twbray___ leaves the room.
17:09:40Defilerman gist.github.com is pretty nice
17:09:55Defilercomes with a .js version of the paste that embeds it for you into an arbitrary web page
17:10:01rphillips leaves the room.
17:10:22rphillips enters the room.
17:12:13headius enters the room.
17:15:17rue enters the room.
17:15:40twbray___ enters the room.
17:16:18rueHmoo
17:18:11twbray leaves the room.
17:19:39dfg59 enters the room.
17:20:33twbray enters the room.
17:21:45twbray___ leaves the room.
17:21:50twbray__ leaves the room.
17:23:06MenTaLguY enters the room.
17:23:24MenTaLguY enters the room.
17:24:27thehcdreamer leaves the room.
17:25:01pauldix leaves the room.
17:26:04tarcierihooray, the Debian guy who mispackaged rubygems 1.9 is gonna fix it
17:26:26nexcastellanThat's good to hear.
17:28:33twbray__ enters the room.
17:28:47fbuilesv_ enters the room.
17:29:53twbray____ enters the room.
17:31:08twbray_ leaves the room.
17:31:14twbray_ enters the room.
17:32:26twbray_____ enters the room.
17:33:58headiusrubygems 1.9?
17:34:25twbray______ enters the room.
17:41:36brixenhmm, twbray is growing a rather long tail
17:43:48chris2 leaves the room.
17:44:07MenTaLguYI know... the Long Tail is, like, soooo web 2.0
17:44:16MenTaLguYit's all about web 5.x now
17:45:16thehcdreamer enters the room.
17:45:20twbray__ leaves the room.
17:48:08twbray____ leaves the room.
17:48:31brainopia enters the room.
17:50:13twbray_ leaves the room.
17:50:20twbray_____ leaves the room.
17:50:24hemulen leaves the room.
17:51:33twbray_ enters the room.
17:51:45twbray leaves the room.
17:55:04robin_dewd enters the room.
17:55:05twbray enters the room.
17:58:02headiushey, ffi question
17:58:26headiusJNA has special APIs to call to set the calling convention
17:58:33headiusI don't see anything like that in FFI, but I may be looking wrong
17:58:38headiuslike for stdcall on windows
17:59:02gnufied enters the room.
17:59:17brainopia enters the room.
18:00:39twbray__ enters the room.
18:02:52hemulen enters the room.
18:03:42jgre__ enters the room.
18:04:36neelance enters the room.
18:05:44Defilerheadius: I think libffi handles that stuff automatically
18:06:04headiushmm, well jna is based on libffi
18:06:09headiusI don't think it does
18:06:56headiusin JNA you have to tag an interface you're binding as using stdcall
18:07:29twbray______ leaves the room.
18:07:33ijcd enters the room.
18:07:38Defilerheadius: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libffi/README?rev=1.25&content-type=text/x-cvsweb -markup&cvsroot=libffi
18:07:52Defiler"platform specific notes" seems to imply, along with some of the other text, that you decide at compile-time?
18:08:40octopod leaves the room.
18:08:47headiusI think that's to set the default
18:09:53headiusI'll ask wayne how jna does it
18:10:01twbray___ enters the room.
18:10:07DefilerPassing a flag to cc is a pretty hardcore way to merely set a default
18:10:11headiuswe'll need to deal with it though
18:10:29headiusnot really
18:10:41headiusyou build it for a platform and it uses that platform's standard calling convention
18:11:12headiusbut I don't know, jna may have shipped two libs
18:11:14headiusfor windows
18:17:00twbray_ leaves the room.
18:19:23twbray leaves the room.
18:22:05twbray___ leaves the room.
18:23:33masstypically you use calling conventions, but if you have a library that fakes calls it winds up having to know how to fake all of them
18:23:54massthe C compiler will see that a function is meant to be called with stdcall and call it appropriately
18:24:18massbut your integration logic may have to do more.. the calling convention basically being part of the method signature
18:25:57neelance_ enters the room.
18:28:02jbarnette enters the room.
18:30:22twbray__ leaves the room.
18:34:27dysinger enters the room.
18:34:57neelance leaves the room.
18:35:28headiusmass: right
18:35:45headiuswhat I think is needed is a way in FFI to force a specific calling convention for a given library
18:36:08kli enters the room.
18:36:46kli leaves the room.
18:36:50kli enters the room.
18:39:12kli leaves the room.
18:39:17kli enters the room.
18:41:59c0sin enters the room.
18:42:07benburkert enters the room.
18:42:17kli leaves the room.
18:43:59twbray enters the room.
18:50:25ezmobius enters the room.
18:52:49ryanlowe enters the room.
18:56:23brainopia leaves the room.
18:57:23eventualbuddha enters the room.
18:57:26ezmobius leaves the room.
18:59:04kli enters the room.
19:01:26thehcdreamer leaves the room.
19:02:10DefilerI sure wish there were a way to run the cpp primitive tests against shotgun
19:07:12yasuhito leaves the room.
19:15:37brainopia enters the room.
19:16:52hemulen leaves the room.
19:19:26hemulen enters the room.
19:21:23dodecaphonic enters the room.
19:21:42ezmobius enters the room.
19:26:19twbray_ enters the room.
19:27:27twbray leaves the room.
19:32:01Maledictus leaves the room.
19:33:03twbray_ leaves the room.
19:38:02jazen3 leaves the room.
19:39:12twbray enters the room.
19:39:31jazen enters the room.
19:39:35jazen leaves the room.
19:39:55jazen enters the room.
19:44:17twbray leaves the room.
19:44:59twbray enters the room.
19:46:22Maledictus enters the room.
19:47:14eventualbuddha leaves the room.
19:50:23rueheadius: Yeah, a cc option would be great
19:50:30rueRight now it is just Ccc though
19:50:56headiusok, that's what I figured
19:53:50rueheadius: libffi _does_ support several so it should not be too hard to fix
19:55:51headiusyeah, I knew jna did it, so I assumed it would be possible
19:56:53octopod enters the room.
20:07:41michalw leaves the room.
20:07:59michalw enters the room.
20:08:41DefilerI guess we need something like 'set_ffi_lib' but for call convention
20:08:46DefilerWhat's the use case?
20:09:07Defilerplatforms with multiple conventions and you are linking to a binary built with a non-default choice?
20:13:02neelance_ leaves the room.
20:13:31twbray leaves the room.
20:15:27dysinger leaves the room.
20:21:07rueDefiler: set_ffi_lib is such a hack :P
20:29:38headius leaves the room.
20:31:09kli leaves the room.
20:32:20ezmobius_ enters the room.
20:32:49yipstar enters the room.
20:42:35ezmobius leaves the room.
20:44:06dbussinkset_ffi_lib is basically because some people are too lazy to specify the library for every call ;)
20:44:14dbussinkmaybe a block would be better :p
20:44:56MenTaLguYI think a block would be better
20:45:29dbussinkand if no block => look in current process
20:45:45drbrainthen you get a bunch of indentation
20:46:07dbussinkwell, it's a bit less ugly then set_ffi_lib
20:48:12drbrainugly is sometimes good
20:48:18drbrainlike set_instance_variable
20:48:36drbrainerr, instance_variable_set
20:49:42dbussinktrue, but set_ffi_lib makes me feel icky
20:49:51octopod leaves the room.
20:51:08foysavas enters the room.
20:55:50DefilerWhat's wrong with set_ffi_lib?
20:57:06drbrainit looks ugly
20:57:44DefilerDoes it?
20:58:38drbrainprobably because it has set_ in front of it
20:59:50rueBecause it is an arbitrary instance variable
21:00:00rueNot exactly thread safe
21:00:24rueAnd it is kind of ambiguous. What is the scope etc.
21:00:28drbrainyou're dynamically creating FFI'd classes?
21:01:02DefilerSo, libtommath only has a makefile, not a configure script?
21:01:02ruedrbrain: One could load an FFI-reliant lib in a thread
21:01:38drbrainDefiler: quite possibly
21:03:25dfg59 leaves the room.
21:05:28drbrainrue: and somebody else in another thread is going to call set_ffi_lib also?
21:05:33drbrainon the same class?
21:06:01MenTaLguYthat's an interesting question
21:06:15MenTaLguYit could come up if you are demand-loading things
21:06:22ruePossibly
21:06:56DefilerMaybe we should just wrap 'require' with a lock? eh
21:07:44rueIt would be good to have a thread-safe kernel
21:08:43rueThe FFI solution is still quite half-assed
21:09:27drbrainI'm just a big fan of fix problems when we need to, and not figuring out what problems we might have, maybe, and fixing those
21:11:04DefilerAnyone know how to avoid this? http://gist.github.com/2274
21:11:28Defilerhappens after I build cpp
21:13:04drbrainDefiler: add them to .gitignore
21:13:33DefilerThey are checked in though, alraedy
21:13:45Defilerjust their modes are changing
21:13:47drbrainthen they probably shouldn't be
21:13:50ruedrbrain: Yes, well, it is abundantly clear that that is the way we will approach the FFI design
21:13:57drbrainI thought it was configure's job to make them
21:18:23DefilerLooking into it now
21:21:45twbray enters the room.
21:25:39Defilerdrbrain: http://gist.github.com/2284
21:25:47Defilerirritatingly, it doesn't create those files, but changes them
21:26:33drbrainweird, only Makefile.common gets created
21:36:40obvio171 leaves the room.
21:38:05twbray leaves the room.
21:38:32neelance_ enters the room.
21:38:36eventualbuddha enters the room.
21:38:44eventualbuddha leaves the room.
21:40:58kli enters the room.
21:44:52twbray enters the room.
21:46:20benburkert leaves the room.
21:48:32jgre__ leaves the room.
21:53:35gnufied leaves the room.
22:03:22antares leaves the room.
22:15:45mernen enters the room.
22:20:16dgtizedI'm still unable to run all the cpp tests, I get: ERROR: Program used external function '_ZN8rubinius4Task13simple_returnEPNS_6ObjectE' which could not be resolved!
22:20:36dgtizedand then it aborts
22:22:52blakewatters leaves the room.
22:25:42jw_cub leaves the room.
22:28:21kli leaves the room.
22:29:45drbrainsounds like Task::simple_return(Object) is AWOL for you
22:32:34benburkert enters the room.
22:32:49moofbong leaves the room.
22:34:29twbray leaves the room.
22:36:05dgtizedanyone else have any luck compiling on ubuntu i386 8.04?
22:36:18dgtizedor is it just something specific to me
22:38:46antares_ enters the room.
22:39:05twbray enters the room.
22:44:45qrush enters the room.
22:47:53DefilerMan we need an Ubuntu bot that just rake distclean rake builds every revision
22:47:53Defilerheh
22:51:16drbrainci is supposed to have one of those set up
22:55:34rueMm, looks like a linker problem
22:58:18wmoxam leaves the room.
23:01:45michalw leaves the room.
23:14:57AndrewO leaves the room.
23:19:14brapse enters the room.
23:19:26twbray leaves the room.
23:25:42headius enters the room.
23:33:48srbaker enters the room.
23:34:59twbray enters the room.
23:35:05srbakerheya folks
23:35:55drbrainhi
23:42:15headiushowdy
23:52:23drbrainI think I just wrote Benchmark::auto
23:53:09drbrainit automatically figures out how many samples to take to get a significant result
23:53:17drbrainno more of this manually specifying N nonsense
23:54:20dysinger enters the room.
23:57:00tarcieri:( @ Constant::method
23:57:16drbrainhow about method::Constant ?
23:57:19tarcierihaha
23:57:38drbrainI've used @ivar::Constant a couple times
23:57:38tarcierithat can be useful at times...
23:57:42drbrainit's terrifying
23:57:45tarcieriheh