Show enters and exits. Hide enters and exits.
| 00:08:13 | nicksieger enters the room. | |
| 00:10:16 | aotearoa enters the room. | |
| 00:13:02 | Maledictus leaves the room. | |
| 00:13:25 | rue leaves the room. | |
| 00:15:05 | heycarsten enters the room. | |
| 00:15:53 | smparkes enters the room. | |
| 00:16:26 | michalw leaves the room. | |
| 00:16:45 | drbrain | should we FFI most of io_* also? |
| 00:17:09 | drbrain | or do we need them? |
| 00:19:27 | lopex leaves the room. | |
| 00:24:21 | evan | drbrain: which do we have? |
| 00:24:26 | atduskgreg enters the room. | |
| 00:24:52 | drbrain | close_ng, open, operation, read, reopen, seek, write |
| 00:25:19 | drbrain | I imagine that open, read and close would be needed early on |
| 00:25:25 | evan | likely |
| 00:25:49 | evan | io_operation is very OS dependent |
| 00:25:52 | evan | thats why it's a primitive |
| 00:25:59 | evan | even between unices |
| 00:26:42 | drbrain | I think it would be helpful for you to go through shotgun_primitives and do some pruning |
| 00:26:52 | evan | sure |
| 00:27:46 | drbrain | what about Dir? |
| 00:28:11 | evan | they stay |
| 00:28:16 | drbrain | I think all of that is FFIable |
| 00:28:16 | evan | we went round and round with them |
| 00:28:18 | evan | i'm not doing that again. |
| 00:28:25 | drbrain | ok |
| 00:28:48 | evan | for io, lets do them all |
| 00:28:56 | drbrain | ok |
| 00:28:58 | evan | i'd prefer to get the C++ stuff up and running |
| 00:29:05 | evan | then we can prune once we've got a running system |
| 00:29:14 | evan | there are ones that aren't hooked up anymore even |
| 00:29:17 | evan | like the terminal ones |
| 00:29:19 | drbrain | won't happen |
| 00:29:29 | evan | we don't do now |
| 00:29:31 | evan | er |
| 00:29:35 | evan | we leave on the floor |
| 00:29:40 | evan | we don't pull them into the C++ branch |
| 00:29:47 | evan | i'll go through and prune those kind out |
| 00:34:30 | c0sin enters the room. | |
| 00:34:41 | twbray leaves the room. | |
| 00:35:06 | aotearoa leaves the room. | |
| 00:39:45 | dfg59 leaves the room. | |
| 00:40:27 | trythil enters the room. | |
| 00:40:42 | sambo82 enters the room. | |
| 00:41:06 | eventualbuddha leaves the room. | |
| 00:42:10 | chad_ leaves the room. | |
| 00:42:19 | chris2 leaves the room. | |
| 00:42:35 | chad_ enters the room. | |
| 00:45:02 | heycarsten leaves the room. | |
| 00:46:01 | binary42 enters the room. | |
| 00:47:03 | dfg59 enters the room. | |
| 00:53:51 | cout enters the room. | |
| 00:55:10 | NoKarma leaves the room. | |
| 00:59:44 | williamsmith_ enters the room. | |
| 01:00:59 | yroc leaves the room. | |
| 01:01:08 | smparkes leaves the room. | |
| 01:03:26 | benburkert_ leaves the room. | |
| 01:04:55 | williamsmith_ leaves the room. | |
| 01:08:08 | aotearoa enters the room. | |
| 01:10:20 | enebo enters the room. | |
| 01:12:38 | dfg59 leaves the room. | |
| 01:16:01 | williamsmith leaves the room. | |
| 01:21:48 | enebo leaves the room. | |
| 01:22:55 | blakewatters leaves the room. | |
| 01:24:16 | drbrain | should all primitives accept a STATE, even if they don't use it? |
| 01:25:32 | evan | yeah |
| 01:26:15 | drbrain | I suspected as much |
| 01:26:53 | binary42 leaves the room. | |
| 01:27:45 | drbrain | and, why do the cpp tests take so long? |
| 01:31:37 | enebo enters the room. | |
| 01:32:00 | jackdempsey enters the room. | |
| 01:33:05 | MenTaLguY enters the room. | |
| 01:33:15 | MenTaLguY | hello |
| 01:34:10 | drbrain | hi |
| 01:35:03 | MenTaLguY | mind if I bounce some API design off you? |
| 01:35:43 | jbarnette enters the room. | |
| 01:37:13 | benburkert enters the room. | |
| 01:38:35 | ijcd leaves the room. | |
| 01:41:41 | yasuhito leaves the room. | |
| 01:54:02 | tarcieri | MenTaLguY: I'd like to get your input on doing code and RPC servers for Rubinius |
| 01:54:15 | MenTaLguY | sure |
| 01:54:35 | tarcieri | MenTaLguY: I think that'd really simplify a lot of things, specifically with VMActor |
| 01:54:56 | tarcieri | rather 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:19 | twbray_ enters the room. | |
| 01:57:21 | MenTaLguY | er, could you elaborate? |
| 01:58:47 | tarcieri | MenTaLguY: So, say you start the code server... Actor[:code] = CodeServer.spawn |
| 01:58:59 | tarcieri | how do you talk to that from a remote VM / node? |
| 01:59:11 | twbray_ leaves the room. | |
| 01:59:19 | obvio171 enters the room. | |
| 01:59:32 | MenTaLguY | so the bootstrapping problem, basically? |
| 01:59:41 | MenTaLguY | how do you get a reference to a remote actor for some service? |
| 01:59:57 | tarcieri | yes, how do you get a local object representing a remote registered service? |
| 02:00:23 | tarcieri | a possible syntax is... |
| 02:00:23 | tarcieri | container = VMActor::Container.new |
| 02:00:26 | tarcieri | container[:code] |
| 02:01:02 | tarcieri | doesn't really like "VMActor::Container" either, but... :/ |
| 02:01:24 | jbarnette leaves the room. | |
| 02:01:33 | tarcieri | I mean, once you have that, it can just send messages using the symbol as the Actor ID |
| 02:01:55 | tarcieri | but once you have code and rpc, the bootstrapping problem is pretty well solved |
| 02:01:55 | hemulen enters the room. | |
| 02:02:23 | MenTaLguY | how does RPC enter into this? |
| 02:02:33 | tarcieri | RPC is how you execute things on the remote node |
| 02:03:02 | tarcieri | so 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:39 | MenTaLguY | I feel like I'm still missing something important |
| 02:03:44 | tarcieri | you load the whole environment into the remote code server, then apply whatever you want to kick off services in the remote node |
| 02:04:24 | MenTaLguY | that sounds really complicated |
| 02:04:41 | tarcieri | what's a simpler alternative? |
| 02:05:20 | tarcieri | particularly, a simpler alternative that facilitates code distribution and live upgrade across a distributed network... |
| 02:05:35 | tarcieri | although live upgrade in Ruby sounds a bit scary :/ |
| 02:05:57 | MenTaLguY | probably live upgrade means tearing down a VM and replacing it with a new one |
| 02:06:20 | MenTaLguY | it seems to me like code distribution belongs at a less fundamental layer in any case |
| 02:06:33 | tarcieri | less fundamental layer than what? |
| 02:06:39 | tarcieri | Actor messaging? |
| 02:06:59 | MenTaLguY | yes |
| 02:07:06 | tarcieri | such as? |
| 02:07:14 | MenTaLguY | it seems like the basic stuff should be possible to build out of named actors |
| 02:07:17 | MenTaLguY | alone |
| 02:07:35 | MenTaLguY | assuming you have the ability to reference VMs via some uniform identifier |
| 02:07:37 | tarcieri | how is that different from what I'm saying? |
| 02:07:40 | MenTaLguY | e.g. URIs or something |
| 02:07:47 | tarcieri | oh... |
| 02:08:00 | tarcieri | you want to use URIs rather than objects? |
| 02:08:15 | MenTaLguY | URIs to get objects |
| 02:08:18 | williamsmith enters the room. | |
| 02:08:26 | tarcieri | can you pseudocode an example? |
| 02:09:11 | hemulen leaves the room. | |
| 02:09:16 | MenTaLguY | vm = RemoteVM.new("tcp://123.123.123.123:2345/") # get VM proxy object |
| 02:09:16 | MenTaLguY | actor = vm[:blah] # get Actor proxy object |
| 02:09:16 | MenTaLguY | actor << "stuff" |
| 02:09:41 | tarcieri | yeah, uhh, that looks exactly like what I'm saying |
| 02:09:42 | tarcieri | heh |
| 02:09:50 | tarcieri | sans the TCP part, which we can't do yet |
| 02:10:01 | MenTaLguY | the TCP part is all handwaving anyhow |
| 02:10:10 | MenTaLguY | ignore that part :) |
| 02:10:22 | tarcieri | okay, well I think we're at least agreed on the remote_node_object[:registered_actor_name] syntax |
| 02:10:43 | tarcieri | I might go ahead and try to implement that for VMActor |
| 02:10:54 | MenTaLguY | as far as that goes, it sounds fine to me |
| 02:11:22 | tarcieri | so what do you think about creating a new "actorized" VM automatically starting :code and :rpc servers? |
| 02:12:47 | MenTaLguY | that's the part I'm not really happy with |
| 02:13:05 | tarcieri | what would you suggest as an alternative to that? |
| 02:13:28 | MenTaLguY | what specifically do :code and :rpc do? |
| 02:13:38 | tarcieri | the same thing they do in Erlang |
| 02:13:43 | joachimm_ enters the room. | |
| 02:13:46 | atduskgreg leaves the room. | |
| 02:13:50 | tarcieri | :code lets you push .rbcs to a remote node |
| 02:14:00 | tarcieri | or interrogate what's loaded already, or grab a .rbc from a remote node |
| 02:14:12 | tarcieri | CompiledMethods, effectively |
| 02:14:15 | tarcieri | serialized as bytecode |
| 02:14:28 | williamsmith leaves the room. | |
| 02:14:29 | cremes_ enters the room. | |
| 02:14:34 | MenTaLguY | and :rpc? |
| 02:14:43 | tarcieri | :rpc just lets you do a remote apply |
| 02:14:54 | tarcieri | so run things on the remote node |
| 02:14:57 | MenTaLguY | example? |
| 02:14:57 | tarcieri | (or eval) |
| 02:15:05 | tarcieri | umm, well that's where it gets tricky |
| 02:15:10 | tarcieri | we need an analogue for gen_server |
| 02:15:15 | tarcieri | specifically gen_server:call |
| 02:15:27 | c0sin leaves the room. | |
| 02:15:37 | tarcieri | more specifically rpc:call |
| 02:15:38 | tarcieri | but uhh |
| 02:15:42 | tarcieri | just as a pseudocode example |
| 02:15:43 | MenTaLguY | to make it synchronous, you mean |
| 02:16:01 | tarcieri | RPC.call(node_object, :Class, :method, argument) |
| 02:16:12 | tarcieri | or |
| 02:16:13 | tarcieri | perhaps |
| 02:16:20 | tarcieri | node_object.call(:Class, :method, argument) |
| 02:16:43 | tarcieri | or arguments... |
| 02:17:55 | tarcieri | what'd *really* be nice is if you could push an entire .rba |
| 02:17:59 | tarcieri | to the code server |
| 02:18:11 | tarcieri | Erlang never figured that out |
| 02:18:12 | smparkes enters the room. | |
| 02:18:17 | MenTaLguY | I think that might be preferable |
| 02:18:17 | tarcieri | I mean, I tried to play around with ear, but... |
| 02:18:32 | MenTaLguY | basically, be able to say: "here, start a VM with this .rba loaded" |
| 02:18:48 | tarcieri | yeah, it could all be wrapped up in the syntax for creating a new node |
| 02:19:06 | tarcieri | do you not want to have a code server? |
| 02:19:07 | MenTaLguY | I think I would prefer that approach |
| 02:19:23 | MenTaLguY | well, let's say that I'm uncomfortable with the idea of a code server |
| 02:19:24 | tarcieri | or do you just want syntactic sugar for talking to it? |
| 02:19:38 | tarcieri | what don't you like about a code server? |
| 02:19:48 | joachim__ enters the room. | |
| 02:19:49 | MenTaLguY | it's a gut feeling thing |
| 02:20:00 | MenTaLguY | I've been trying to think how to articulate it |
| 02:20:14 | tarcieri | okay, well feel free to get back to me |
| 02:20:35 | MenTaLguY | I 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:46 | MenTaLguY | if the only option is starting a new VM with the code sent over, I'm more okay with that |
| 02:21:00 | tarcieri | ok |
| 02:21:07 | tarcieri | evan had some pretty crazy ideas about it |
| 02:21:11 | tarcieri | you might want to ping him |
| 02:21:13 | evan | tarcieri: we can push stuff to the code server however ya want |
| 02:21:14 | AndrewO enters the room. | |
| 02:21:25 | tarcieri | aah, speak of the devil |
| 02:21:34 | MenTaLguY | my other thing is that :code and :rpc shouldn't be "default" parts of actor-dom |
| 02:21:44 | MenTaLguY | they can be standard libraries that a VM has to explicitly require before they offer them, perhaps |
| 02:21:51 | evan | makes a deal with tarcieri for his soul |
| 02:21:55 | tarcieri | heh |
| 02:21:57 | MenTaLguY | I would sort of like to be able to do actors in a hostile environment |
| 02:22:04 | tarcieri | evan: can you explain to MenTaLguY what you were thinking? |
| 02:22:19 | MenTaLguY | if every actor thing has :code and :rpc hanging off it by default, that sort of kills it all |
| 02:22:24 | evan | sure |
| 02:22:33 | tarcieri | MenTaLguY: well, without :rpc you couldn't have node_object#call |
| 02:22:44 | evan | the idea is to have just one CompiledMethod in a client VM |
| 02:22:53 | jtoy enters the room. | |
| 02:22:59 | evan | that compiledmethod is installed in all method_tables |
| 02:23:03 | evan | for all methods that are implemented |
| 02:23:23 | evan | calling 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:35 | evan | basically, lazy load methods from the code server |
| 02:23:41 | evan | tarcieri: this what ya wanted me to explain? |
| 02:23:44 | MenTaLguY | I see |
| 02:23:50 | MenTaLguY | all that sounds pretty orthogonal to actors |
| 02:23:54 | evan | it is |
| 02:24:00 | evan | HOW the stub loads the code is up in the air |
| 02:24:09 | MenTaLguY | I guess my main objection is building it into actors |
| 02:24:10 | evan | could use a code actor that lives on another VM |
| 02:24:15 | evan | ah |
| 02:24:16 | evan | yeah |
| 02:24:19 | ryanlowe leaves the room. | |
| 02:24:20 | evan | you wouldn't need to |
| 02:24:33 | evan | you, in fact, wouldn't want to build it in |
| 02:24:39 | VVSiz_ enters the room. | |
| 02:24:42 | evan | you'd want to have it be generic |
| 02:24:46 | evan | so you can just do |
| 02:24:59 | evan | $CODE_ACTOR = get_an_actor_to_load_code() |
| 02:25:10 | evan | then the stub just asks $CODE_ACTOR |
| 02:25:20 | evan | you could have another version of the stub that doesn't use actors at all |
| 02:25:28 | evan | could lazy load directly from disk |
| 02:25:31 | evan | to save on memory usage |
| 02:25:35 | MenTaLguY | sounds good to me |
| 02:25:50 | MenTaLguY | I was just worried because it sounded like this was going to become some core feature of rbx actors |
| 02:25:57 | MenTaLguY | which ... it really doesn't need to be |
| 02:26:31 | tarcieri | evan: yeah |
| 02:26:41 | evan | yeah |
| 02:26:44 | joachi___ enters the room. | |
| 02:26:45 | evan | they compliment |
| 02:27:12 | evan | hm, in fact |
| 02:27:13 | MenTaLguY | on other news, I finished sketching out the new Omnibus actor implementation today |
| 02:27:17 | tarcieri | MenTaLguY: if nothing else, if you #call a node that doesn't have the rpc server running, it could fail |
| 02:27:25 | evan | this whole thing could be done by just having a kernel that defines Object#method_missing |
| 02:27:31 | MenTaLguY | it has Scala-style Actor#react, in addition to Actor#receive |
| 02:27:47 | tarcieri | really... |
| 02:27:47 | evan | that tries to resolves methods that way |
| 02:28:10 | MenTaLguY | tarcieri: I think I'd be happiest if #call were also provided by some extra thing you required |
| 02:28:37 | tarcieri | so |
| 02:28:41 | tarcieri | require 'vmactor/rpc' |
| 02:29:03 | tarcieri | right now you're forced to do an apply when creating a remote VM |
| 02:29:05 | tarcieri | which... sucks |
| 02:29:18 | evan | tarcieri: you're talking about implement syncronized rpc calls on top of async actors, yes? |
| 02:29:25 | tarcieri | because it gives you no opportunity to configure the environment of that VM before doing the apply |
| 02:29:30 | tarcieri | evan: yes |
| 02:29:36 | evan | k |
| 02:29:41 | evan | just wanted to be sure i was on the right page |
| 02:30:32 | joachimm leaves the room. | |
| 02:30:38 | VVSiz leaves the room. | |
| 02:31:34 | tarcieri | right now there's a pseudo-RPC server that uses explicit inter-VM messages |
| 02:31:53 | tarcieri | I'd like to get rid of that and have RPC actually use the Actor protocol |
| 02:32:08 | MenTaLguY | nods |
| 02:32:24 | MenTaLguY | I 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:10 | tarcieri | The main use at the moment is kickstarting the application |
| 02:33:13 | tarcieri | on the remote node |
| 02:33:40 | tarcieri | so yeah, bootstrapping |
| 02:33:53 | tarcieri | it could work in conjunction with what evan is describing |
| 02:34:25 | tarcieri | since the call you make could hit Object.method_missing |
| 02:34:31 | evan | just curious, whats the use case for this again? |
| 02:34:39 | evan | i can see a couple, i'm curious what yours is |
| 02:34:50 | tarcieri | evan: immediately... I was trying to do a multi-VM mongrel server |
| 02:34:52 | evan | for having a 'client' VM that uses a code server |
| 02:35:19 | joachimm_ leaves the room. | |
| 02:35:20 | tarcieri | evan: you'd have a sort of proxy object that constructs Mongrel::HttpHandlers on all the remote nodes |
| 02:35:46 | tarcieri | which are more than likely a subclass that is loaded on the "local" VM but not present on any of the remote ones |
| 02:36:05 | evan | so, the idea would be you load your application into the code server |
| 02:36:21 | evan | then you just spawn 'front ends' that pull code from it |
| 02:36:28 | joachimm enters the room. | |
| 02:36:33 | neelance leaves the room. | |
| 02:36:54 | tarcieri | well, ideally, the code server just thunks to the existing environment |
| 02:37:19 | evan | I thought the code server WAS the existing environment |
| 02:37:40 | evan | ok, i should finish packing |
| 02:37:44 | tarcieri | it's a way to introspect or modify the current environment using the Actor protocol |
| 02:37:47 | evan | headed to san diego for comic-con tonight! |
| 02:37:52 | tarcieri | heh |
| 02:37:56 | evan | MenTaLguY: you ever get to comic-con? |
| 02:38:13 | MenTaLguY | nope |
| 02:38:15 | tarcieri | and holy crap, the sun is out... rain had me trapped at work |
| 02:38:26 | MenTaLguY | maybe another year |
| 02:38:26 | tarcieri | regrets riding a bike to work today |
| 02:38:28 | evan | MenTaLguY: thats too bad, kinda seems like your scene |
| 02:38:45 | MenTaLguY | well, it's a little on the big side to be honest |
| 02:38:52 | MenTaLguY | I tend to run with the indie crowd, SPX and so on |
| 02:39:09 | evan | yeah, thats what I figured. |
| 02:39:20 | evan | I go for the spectacle of it |
| 02:42:57 | joachim__ leaves the room. | |
| 02:43:53 | tarcieri | MenTaLguY: well, we can talk about this some more later |
| 02:43:55 | tarcieri | -> dinner |
| 02:44:36 | cremes_ leaves the room. | |
| 02:44:45 | cremes_ enters the room. | |
| 02:45:21 | smparkes leaves the room. | |
| 02:46:25 | williamsmith enters the room. | |
| 02:47:27 | headius_ enters the room. | |
| 02:47:27 | headius leaves the room. | |
| 02:49:40 | benburkert leaves the room. | |
| 02:50:00 | jackdempsey leaves the room. | |
| 02:50:04 | jackdempsey enters the room. | |
| 02:52:29 | joachi___ leaves the room. | |
| 02:56:56 | benburkert enters the room. | |
| 02:57:39 | benburkert leaves the room. | |
| 02:58:15 | benburkert enters the room. | |
| 02:58:25 | jw_cub enters the room. | |
| 03:02:53 | sambo82 leaves the room. | |
| 03:10:03 | jackdempsey leaves the room. | |
| 03:11:26 | jackdempsey enters the room. | |
| 03:17:49 | antares enters the room. | |
| 03:22:39 | smparkes enters the room. | |
| 03:30:21 | benburkert leaves the room. | |
| 03:35:06 | benburkert enters the room. | |
| 03:45:23 | cremes_ leaves the room. | |
| 03:45:47 | cremes_ enters the room. | |
| 03:46:03 | smparkes leaves the room. | |
| 03:46:14 | lchin enters the room. | |
| 03:47:42 | matthewd_ enters the room. | |
| 03:50:58 | cremes_ leaves the room. | |
| 04:01:23 | yipstar leaves the room. | |
| 04:04:05 | matthewd leaves the room. | |
| 04:06:29 | twbray enters the room. | |
| 04:08:12 | Fullmoon enters the room. | |
| 04:16:29 | twbray_ enters the room. | |
| 04:16:42 | binary42 enters the room. | |
| 04:18:10 | enebo leaves the room. | |
| 04:19:41 | RyanTM leaves the room. | |
| 04:23:33 | williamsmith leaves the room. | |
| 04:24:32 | moofbong enters the room. | |
| 04:33:06 | benburkert leaves the room. | |
| 04:34:43 | twbray leaves the room. | |
| 04:36:07 | twbray_ leaves the room. | |
| 04:39:56 | antares leaves the room. | |
| 04:40:07 | antares enters the room. | |
| 04:40:26 | headius | drbrain: we should talk about a way to pull up the ffi generation stuff into a separate lib |
| 04:40:44 | headius | wmeissner and I are fiddling with ffi and zlib now and probably will have it all working shortly in JRuby |
| 04:40:55 | headius | we're just committing the generated libs since we don't have a build cycle for target machines |
| 04:41:24 | headius | but it would potentially benefit more than just us to have a project that aggregates the generated libs |
| 04:51:36 | fbuilesv_ enters the room. | |
| 05:01:30 | fbuilesv leaves the room. | |
| 05:17:23 | moofbong leaves the room. | |
| 05:22:09 | qrush leaves the room. | |
| 05:22:54 | qrush enters the room. | |
| 05:26:33 | AndrewO leaves the room. | |
| 05:28:02 | shanghaililly enters the room. | |
| 05:30:55 | dfg59 enters the room. | |
| 05:33:50 | atmos leaves the room. | |
| 05:34:19 | jw_cub leaves the room. | |
| 05:40:41 | atduskgreg enters the room. | |
| 05:42:03 | qrush leaves the room. | |
| 05:48:24 | ezmobius enters the room. | |
| 05:53:43 | smparkes enters the room. | |
| 06:03:05 | shanghaililly leaves the room. | |
| 06:03:25 | shanghaililly enters the room. | |
| 06:03:45 | shanghaililly leaves the room. | |
| 06:05:10 | headius leaves the room. | |
| 06:05:13 | headius enters the room. | |
| 06:10:54 | shanghaililly enters the room. | |
| 06:14:31 | blakewatters enters the room. | |
| 06:14:50 | williamsmith enters the room. | |
| 06:15:18 | headius_ enters the room. | |
| 06:15:22 | headius leaves the room. | |
| 06:16:49 | shanghaililly leaves the room. | |
| 06:19:19 | atmos enters the room. | |
| 06:22:30 | wyhaines leaves the room. | |
| 06:24:53 | atduskgreg leaves the room. | |
| 06:25:47 | benburkert enters the room. | |
| 06:33:35 | smparkes leaves the room. | |
| 06:36:04 | Arjen_ enters the room. | |
| 06:37:10 | headius | jruby's FFI just installed a gem using rubinius's zlib unmodified |
| 06:37:13 | headius | neato |
| 06:38:46 | tarcieri | noice |
| 06:38:51 | benburkert leaves the room. | |
| 06:39:49 | headius | and it's only slightly slower than the java zip libraries |
| 06:40:06 | drbrain | really! wow |
| 06:40:10 | drbrain | I'm awesome! |
| 06:40:13 | benburkert enters the room. | |
| 06:40:20 | drbrain | I didn't even *try* to make it fast |
| 06:40:20 | tarcieri | headius: yay, and all it took was a C extension! |
| 06:40:23 | headius | wmeissner is talking about adding some additional ffi types |
| 06:40:33 | headius | buffer, buffer_in, buffer_out |
| 06:40:53 | headius | to make it more explicit which direction data is going, avoiding copying when not necessary |
| 06:40:56 | benburkert leaves the room. | |
| 06:41:02 | headius | right now he has :string implemented to copy both ways |
| 06:41:07 | drbrain | yeah |
| 06:41:15 | headius | obviously not necessary if you're just feeding data out or pulling it in |
| 06:41:39 | headius | you might pop into #jruby if you want to talk for a minute |
| 06:41:53 | drbrain | there would be a performance increase if FFI could use a char * like a buffer more easily |
| 06:41:58 | drbrain | since MRI does that |
| 06:42:11 | drbrain | nah, I was going to wander off and work on something else |
| 06:42:50 | headius | well this ffi is already in jruby trunk and will be in 1.1.4 |
| 06:43:10 | headius | so we should try to pin down some initial spec standard for that |
| 06:44:17 | brixen | headius: we a few specs in our spec/ffi |
| 06:44:26 | brixen | if the api is standard, we just need to write some specs |
| 06:45:01 | headius | yeah, I saw the specs, it's pretty slim |
| 06:45:11 | headius | more talking about pinning down a publishable API |
| 06:45:19 | brixen | perhaps rubyspec/1.8/proto/ffi |
| 06:45:26 | drbrain | I guess it becomes a standard when there's >1 implementation |
| 06:45:30 | brixen | is where we could put proposed new standards |
| 06:45:39 | brixen | well de facto |
| 06:45:42 | brixen | not official |
| 06:45:56 | benburkert enters the room. | |
| 06:46:11 | benburkert leaves the room. | |
| 06:48:14 | headius | we'll probably ship with rbx syslog since we don't have that functionality at present |
| 06:48:23 | headius | what others have you guys wired in through ffi? |
| 06:48:37 | dfg59 leaves the room. | |
| 06:48:39 | headius | we've already got most of posix stuff separately |
| 06:50:10 | drbrain | all our digest stuff is in C, but attached via FFI |
| 06:50:18 | drbrain | looks like we've got some iconv stuff FFI'd |
| 06:50:26 | drbrain | and a tiny bit of OpenSSL |
| 06:50:41 | headius | mmm, we have java libs for both of those, and of course ola's ssl |
| 06:50:49 | headius | what about readline? |
| 06:51:01 | drbrain | readline looks compiled |
| 06:51:14 | drbrain | I think FFI doesn't do callback functions |
| 06:51:14 | headius | a couple I can think of that would be nice would be readline and termio |
| 06:51:24 | headius | ahh right |
| 06:51:30 | drbrain | the completion proc |
| 06:51:56 | drbrain | yeah, if FFI can be made to do callbacks, it'll work |
| 06:52:40 | headius | JNA 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:46 | jero5 leaves the room. | |
| 06:53:57 | drbrain | I think the API doesn't have it because one of the older libraries that was used didn't do it |
| 06:54:06 | drbrain | I don't know if whatever library we're doing now can do it or not |
| 06:54:14 | jero5 enters the room. | |
| 06:54:15 | headius | you're using libffi, same as jna and jffi |
| 06:54:37 | headius | it was lightning-based before I believe |
| 06:54:50 | drbrain | we used lightning at one time, which didn't support it |
| 06:56:53 | headius | I'd at least like to figure out if we could do buffer types before 1.1.4 |
| 06:57:10 | headius | callbacks could come later, there's not a big rush |
| 06:59:25 | drbrain | I think evan is comiccon ing |
| 07:00:32 | atmos leaves the room. | |
| 07:00:41 | headius | man, I think I need to take more vacations |
| 07:00:50 | drbrain | yeah |
| 07:00:57 | drbrain | vacations are good |
| 07:01:20 | headius leaves the room. | |
| 07:03:31 | blakewatters leaves the room. | |
| 07:16:10 | atmos enters the room. | |
| 07:20:35 | jgre_ enters the room. | |
| 07:20:42 | jtoy | someone please update http://rubini.us/news |
| 07:20:54 | trythil_ enters the room. | |
| 07:21:43 | drbrain | looks like brixen is the man in the know |
| 07:23:49 | trythil leaves the room. | |
| 07:25:25 | trythil enters the room. | |
| 07:27:15 | headius enters the room. | |
| 07:33:55 | imajes enters the room. | |
| 07:40:24 | trythil_ leaves the room. | |
| 07:42:36 | trythil leaves the room. | |
| 07:48:55 | imajes leaves the room. | |
| 07:54:13 | Fullmoon leaves the room. | |
| 08:07:00 | headius leaves the room. | |
| 08:09:00 | thehcdreamer enters the room. | |
| 08:10:12 | jackdempsey leaves the room. | |
| 08:15:07 | antares leaves the room. | |
| 08:17:26 | atmos leaves the room. | |
| 08:17:26 | binary42 leaves the room. | |
| 08:17:26 | cout leaves the room. | |
| 08:17:26 | Yurik leaves the room. | |
| 08:17:26 | explody leaves the room. | |
| 08:17:26 | rubuildius_ey64 leaves the room. | |
| 08:17:26 | shoe leaves the room. | |
| 08:17:26 | VVSiz_ leaves the room. | |
| 08:17:26 | Ingmar leaves the room. | |
| 08:17:26 | rubuildius_amd64 leaves the room. | |
| 08:17:26 | boyscout leaves the room. | |
| 08:17:26 | Norgg leaves the room. | |
| 08:17:26 | drbrain leaves the room. | |
| 08:17:26 | anonuser leaves the room. | |
| 08:17:26 | wycats_afk leaves the room. | |
| 08:17:26 | nemerle leaves the room. | |
| 08:17:26 | scoopr leaves the room. | |
| 08:17:52 | VVSiz_ enters the room. | |
| 08:17:52 | Ingmar enters the room. | |
| 08:17:52 | rubuildius_amd64 enters the room. | |
| 08:17:52 | anonuser enters the room. | |
| 08:17:52 | boyscout enters the room. | |
| 08:17:52 | scoopr enters the room. | |
| 08:17:52 | drbrain enters the room. | |
| 08:17:52 | wycats_afk enters the room. | |
| 08:17:52 | Norgg enters the room. | |
| 08:17:58 | nemerle enters the room. | |
| 08:18:09 | atmos enters the room. | |
| 08:18:09 | binary42 enters the room. | |
| 08:18:09 | cout enters the room. | |
| 08:18:09 | Yurik enters the room. | |
| 08:18:09 | explody enters the room. | |
| 08:18:09 | rubuildius_ey64 enters the room. | |
| 08:18:09 | shoe enters the room. | |
| 08:18:10 | wvdschel enters the room. | |
| 08:20:46 | twbray enters the room. | |
| 08:24:13 | twbray_ enters the room. | |
| 08:25:42 | twbray__ enters the room. | |
| 08:26:33 | atduskgreg enters the room. | |
| 08:26:55 | twbray___ enters the room. | |
| 08:28:39 | twbray____ enters the room. | |
| 08:29:24 | twbray_____ enters the room. | |
| 08:31:51 | twbray______ enters the room. | |
| 08:32:45 | twbray_______ enters the room. | |
| 08:36:23 | twbray________ enters the room. | |
| 08:40:04 | aotearoa leaves the room. | |
| 08:43:38 | twbray leaves the room. | |
| 08:45:20 | twbray enters the room. | |
| 08:45:45 | twbray_ leaves the room. | |
| 08:47:37 | twbray_ enters the room. | |
| 08:49:26 | twbray____ leaves the room. | |
| 08:50:46 | ezmobius leaves the room. | |
| 08:50:46 | twbray___ leaves the room. | |
| 08:51:03 | twbray___ enters the room. | |
| 08:51:07 | twbray__ leaves the room. | |
| 08:51:59 | BlackEdder enters the room. | |
| 08:52:35 | twbray______ leaves the room. | |
| 08:53:05 | twbray_____ leaves the room. | |
| 08:58:59 | twbray_______ leaves the room. | |
| 09:04:17 | robin_dewd leaves the room. | |
| 09:04:33 | robin_dewd enters the room. | |
| 09:05:10 | twbray leaves the room. | |
| 09:06:05 | twbray________ leaves the room. | |
| 09:08:31 | twbray_ leaves the room. | |
| 09:08:46 | octopod enters the room. | |
| 09:09:15 | sambo82 enters the room. | |
| 09:13:09 | atduskgreg leaves the room. | |
| 09:15:26 | xmlhacker enters the room. | |
| 09:15:40 | xmlhacker leaves the room. | |
| 09:17:07 | sambo82 leaves the room. | |
| 09:17:33 | twbray___ leaves the room. | |
| 09:17:34 | robin_dewd leaves the room. | |
| 09:23:48 | enebo enters the room. | |
| 09:23:54 | twbray enters the room. | |
| 09:23:56 | Arjen_ leaves the room. | |
| 09:24:36 | twbray leaves the room. | |
| 09:25:16 | twbray enters the room. | |
| 09:26:55 | twbray_ enters the room. | |
| 09:30:26 | twbray__ enters the room. | |
| 09:34:48 | twbray__ leaves the room. | |
| 09:41:29 | thehcdreamer leaves the room. | |
| 09:42:26 | thehcdreamer enters the room. | |
| 09:43:20 | twbray leaves the room. | |
| 09:54:27 | twbray_ leaves the room. | |
| 09:57:06 | Yurik leaves the room. | |
| 10:08:19 | jgre__ enters the room. | |
| 10:09:33 | jgre_ leaves the room. | |
| 10:22:06 | chris2 enters the room. | |
| 10:27:00 | atmos leaves the room. | |
| 10:38:38 | michalw enters the room. | |
| 10:40:41 | NoKarma enters the room. | |
| 10:42:06 | Maledictus enters the room. | |
| 10:47:37 | aotearoa enters the room. | |
| 10:48:16 | antares enters the room. | |
| 10:52:59 | brainopia enters the room. | |
| 10:53:58 | aotearoa leaves the room. | |
| 10:58:16 | benny leaves the room. | |
| 11:00:27 | thehcdreamer leaves the room. | |
| 11:17:14 | antares leaves the room. | |
| 11:20:40 | jtoy leaves the room. | |
| 11:20:42 | thehcdreamer enters the room. | |
| 11:21:48 | benny enters the room. | |
| 11:27:39 | mutle enters the room. | |
| 11:31:28 | mutle leaves the room. | |
| 11:31:34 | mutle enters the room. | |
| 11:33:29 | antares enters the room. | |
| 11:40:30 | mitchellvriley enters the room. | |
| 11:45:24 | mutle leaves the room. | |
| 11:45:33 | mutle enters the room. | |
| 11:50:49 | mutle leaves the room. | |
| 11:51:03 | hemulen enters the room. | |
| 11:51:21 | mutle enters the room. | |
| 11:53:06 | antares leaves the room. | |
| 11:57:47 | hemulen leaves the room. | |
| 11:58:21 | Fullmoon enters the room. | |
| 12:01:03 | mitchellvriley leaves the room. | |
| 12:02:14 | Fullmoon leaves the room. | |
| 12:02:46 | aotearoa enters the room. | |
| 12:06:30 | cremes_ enters the room. | |
| 12:12:00 | jero5 leaves the room. | |
| 12:13:57 | mutle_ enters the room. | |
| 12:13:57 | mutle leaves the room. | |
| 12:17:17 | mutle_ leaves the room. | |
| 12:18:07 | mutle enters the room. | |
| 12:19:46 | mutle leaves the room. | |
| 12:20:14 | mutle enters the room. | |
| 12:21:46 | mutle leaves the room. | |
| 12:22:55 | mutle enters the room. | |
| 12:23:54 | mutle leaves the room. | |
| 12:24:15 | nari enters the room. | |
| 12:27:25 | mutle enters the room. | |
| 12:28:27 | mutle leaves the room. | |
| 12:29:02 | jtoy enters the room. | |
| 12:29:50 | jtoy leaves the room. | |
| 12:30:09 | mutle enters the room. | |
| 12:30:30 | roo leaves the room. | |
| 12:41:56 | cremes_ leaves the room. | |
| 12:43:10 | mutle leaves the room. | |
| 12:45:52 | mutle enters the room. | |
| 12:49:16 | mutle leaves the room. | |
| 12:49:33 | mutle enters the room. | |
| 12:52:09 | aotearoa leaves the room. | |
| 12:55:27 | mutle leaves the room. | |
| 12:55:27 | thehcdreamer leaves the room. | |
| 12:55:27 | enebo leaves the room. | |
| 12:55:27 | rubuildius_ey64 leaves the room. | |
| 12:55:27 | shoe leaves the room. | |
| 12:55:27 | explody leaves the room. | |
| 12:55:27 | cout leaves the room. | |
| 12:55:27 | binary42 leaves the room. | |
| 12:56:20 | mutle enters the room. | |
| 12:57:23 | mutle leaves the room. | |
| 12:57:34 | thehcdreamer enters the room. | |
| 12:57:34 | enebo enters the room. | |
| 12:57:34 | binary42 enters the room. | |
| 12:57:34 | cout enters the room. | |
| 12:57:34 | explody enters the room. | |
| 12:57:34 | rubuildius_ey64 enters the room. | |
| 12:57:34 | shoe enters the room. | |
| 12:57:57 | mutle enters the room. | |
| 13:00:15 | mutle leaves the room. | |
| 13:08:03 | RyanTM enters the room. | |
| 13:08:50 | lchin leaves the room. | |
| 13:13:02 | qrush enters the room. | |
| 13:24:26 | lchin enters the room. | |
| 13:26:21 | qrush leaves the room. | |
| 13:26:43 | lchin leaves the room. | |
| 13:57:26 | lchin enters the room. | |
| 13:58:12 | jackdempsey enters the room. | |
| 14:03:52 | Yurik enters the room. | |
| 14:04:54 | brainopia leaves the room. | |
| 14:11:07 | gnufied enters the room. | |
| 14:19:16 | lchin leaves the room. | |
| 14:20:20 | michalw leaves the room. | |
| 14:23:39 | blakewatters enters the room. | |
| 14:27:28 | thehcdreamer leaves the room. | |
| 14:27:46 | michalw enters the room. | |
| 14:28:51 | jackdempsey leaves the room. | |
| 14:29:16 | wyhaines enters the room. | |
| 14:31:00 | hemulen enters the room. | |
| 14:31:29 | hemulen enters the room. | |
| 14:31:41 | AndrewO enters the room. | |
| 14:37:29 | moofbong enters the room. | |
| 14:39:26 | binary42 leaves the room. | |
| 14:46:05 | jackdempsey enters the room. | |
| 14:57:10 | pauldix enters the room. | |
| 14:57:52 | jackdempsey leaves the room. | |
| 15:00:06 | jw_cub enters the room. | |
| 15:03:22 | RyanTM leaves the room. | |
| 15:03:55 | fbuilesv_ leaves the room. | |
| 15:10:10 | wmoxam enters the room. | |
| 15:10:18 | binary42 enters the room. | |
| 15:24:22 | nicksieger leaves the room. | |
| 15:25:13 | nicksieger enters the room. | |
| 15:31:56 | thehcdreamer enters the room. | |
| 15:33:08 | rphillips leaves the room. | |
| 15:33:19 | rphillips enters the room. | |
| 15:37:25 | gnufied leaves the room. | |
| 15:39:38 | atduskgreg enters the room. | |
| 15:50:46 | enebo leaves the room. | |
| 16:02:56 | twbray enters the room. | |
| 16:03:32 | antares enters the room. | |
| 16:04:35 | smparkes enters the room. | |
| 16:09:16 | twbray_ enters the room. | |
| 16:11:06 | thehcdreamer leaves the room. | |
| 16:15:40 | atmos enters the room. | |
| 16:16:56 | shayarnett enters the room. | |
| 16:17:29 | twbray__ enters the room. | |
| 16:23:54 | yasuhito enters the room. | |
| 16:24:31 | smparkes leaves the room. | |
| 16:28:33 | twbray___ enters the room. | |
| 16:28:58 | twbray leaves the room. | |
| 16:31:50 | fbuilesv enters the room. | |
| 16:32:28 | twbray enters the room. | |
| 16:33:25 | twbray____ enters the room. | |
| 16:34:44 | lopex enters the room. | |
| 16:35:59 | twbray______ enters the room. | |
| 16:37:41 | twbray_______ enters the room. | |
| 16:38:53 | twbray________ enters the room. | |
| 16:40:00 | twbray_ leaves the room. | |
| 16:40:51 | smparkes enters the room. | |
| 16:41:29 | atduskgreg leaves the room. | |
| 16:42:09 | twbray___ leaves the room. | |
| 16:44:34 | twbray______ leaves the room. | |
| 16:45:04 | twbray_ enters the room. | |
| 16:48:38 | twbray___ enters the room. | |
| 16:49:08 | twbray leaves the room. | |
| 16:49:22 | jgre__ leaves the room. | |
| 16:50:17 | twbray__ leaves the room. | |
| 16:51:00 | twbray____ leaves the room. | |
| 16:52:28 | thehcdreamer enters the room. | |
| 16:52:29 | twbray enters the room. | |
| 16:54:39 | smparkes leaves the room. | |
| 16:56:53 | fbuilesv_ enters the room. | |
| 16:56:53 | fbuilesv leaves the room. | |
| 16:58:41 | thehcdreamer leaves the room. | |
| 16:58:42 | twbray_______ leaves the room. | |
| 16:59:47 | thehcdreamer enters the room. | |
| 17:01:33 | twbray________ leaves the room. | |
| 17:01:51 | wvdschel leaves the room. | |
| 17:02:27 | twbray__ enters the room. | |
| 17:03:31 | atduskgreg enters the room. | |
| 17:05:24 | twbray_ leaves the room. | |
| 17:06:11 | twbray_ enters the room. | |
| 17:09:31 | twbray___ leaves the room. | |
| 17:09:40 | Defiler | man gist.github.com is pretty nice |
| 17:09:55 | Defiler | comes with a .js version of the paste that embeds it for you into an arbitrary web page |
| 17:10:01 | rphillips leaves the room. | |
| 17:10:22 | rphillips enters the room. | |
| 17:12:13 | headius enters the room. | |
| 17:15:17 | rue enters the room. | |
| 17:15:40 | twbray___ enters the room. | |
| 17:16:18 | rue | Hmoo |
| 17:18:11 | twbray leaves the room. | |
| 17:19:39 | dfg59 enters the room. | |
| 17:20:33 | twbray enters the room. | |
| 17:21:45 | twbray___ leaves the room. | |
| 17:21:50 | twbray__ leaves the room. | |
| 17:23:06 | MenTaLguY enters the room. | |
| 17:23:24 | MenTaLguY enters the room. | |
| 17:24:27 | thehcdreamer leaves the room. | |
| 17:25:01 | pauldix leaves the room. | |
| 17:26:04 | tarcieri | hooray, the Debian guy who mispackaged rubygems 1.9 is gonna fix it |
| 17:26:26 | nexcastellan | That's good to hear. |
| 17:28:33 | twbray__ enters the room. | |
| 17:28:47 | fbuilesv_ enters the room. | |
| 17:29:53 | twbray____ enters the room. | |
| 17:31:08 | twbray_ leaves the room. | |
| 17:31:14 | twbray_ enters the room. | |
| 17:32:26 | twbray_____ enters the room. | |
| 17:33:58 | headius | rubygems 1.9? |
| 17:34:25 | twbray______ enters the room. | |
| 17:41:36 | brixen | hmm, twbray is growing a rather long tail |
| 17:43:48 | chris2 leaves the room. | |
| 17:44:07 | MenTaLguY | I know... the Long Tail is, like, soooo web 2.0 |
| 17:44:16 | MenTaLguY | it's all about web 5.x now |
| 17:45:16 | thehcdreamer enters the room. | |
| 17:45:20 | twbray__ leaves the room. | |
| 17:48:08 | twbray____ leaves the room. | |
| 17:48:31 | brainopia enters the room. | |
| 17:50:13 | twbray_ leaves the room. | |
| 17:50:20 | twbray_____ leaves the room. | |
| 17:50:24 | hemulen leaves the room. | |
| 17:51:33 | twbray_ enters the room. | |
| 17:51:45 | twbray leaves the room. | |
| 17:55:04 | robin_dewd enters the room. | |
| 17:55:05 | twbray enters the room. | |
| 17:58:02 | headius | hey, ffi question |
| 17:58:26 | headius | JNA has special APIs to call to set the calling convention |
| 17:58:33 | headius | I don't see anything like that in FFI, but I may be looking wrong |
| 17:58:38 | headius | like for stdcall on windows |
| 17:59:02 | gnufied enters the room. | |
| 17:59:17 | brainopia enters the room. | |
| 18:00:39 | twbray__ enters the room. | |
| 18:02:52 | hemulen enters the room. | |
| 18:03:42 | jgre__ enters the room. | |
| 18:04:36 | neelance enters the room. | |
| 18:05:44 | Defiler | headius: I think libffi handles that stuff automatically |
| 18:06:04 | headius | hmm, well jna is based on libffi |
| 18:06:09 | headius | I don't think it does |
| 18:06:56 | headius | in JNA you have to tag an interface you're binding as using stdcall |
| 18:07:29 | twbray______ leaves the room. | |
| 18:07:33 | ijcd enters the room. | |
| 18:07:38 | Defiler | headius: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libffi/README?rev=1.25&content-type=text/x-cvsweb -markup&cvsroot=libffi |
| 18:07:52 | Defiler | "platform specific notes" seems to imply, along with some of the other text, that you decide at compile-time? |
| 18:08:40 | octopod leaves the room. | |
| 18:08:47 | headius | I think that's to set the default |
| 18:09:53 | headius | I'll ask wayne how jna does it |
| 18:10:01 | twbray___ enters the room. | |
| 18:10:07 | Defiler | Passing a flag to cc is a pretty hardcore way to merely set a default |
| 18:10:11 | headius | we'll need to deal with it though |
| 18:10:29 | headius | not really |
| 18:10:41 | headius | you build it for a platform and it uses that platform's standard calling convention |
| 18:11:12 | headius | but I don't know, jna may have shipped two libs |
| 18:11:14 | headius | for windows |
| 18:17:00 | twbray_ leaves the room. | |
| 18:19:23 | twbray leaves the room. | |
| 18:22:05 | twbray___ leaves the room. | |
| 18:23:33 | mass | typically 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:54 | mass | the C compiler will see that a function is meant to be called with stdcall and call it appropriately |
| 18:24:18 | mass | but your integration logic may have to do more.. the calling convention basically being part of the method signature |
| 18:25:57 | neelance_ enters the room. | |
| 18:28:02 | jbarnette enters the room. | |
| 18:30:22 | twbray__ leaves the room. | |
| 18:34:27 | dysinger enters the room. | |
| 18:34:57 | neelance leaves the room. | |
| 18:35:28 | headius | mass: right |
| 18:35:45 | headius | what I think is needed is a way in FFI to force a specific calling convention for a given library |
| 18:36:08 | kli enters the room. | |
| 18:36:46 | kli leaves the room. | |
| 18:36:50 | kli enters the room. | |
| 18:39:12 | kli leaves the room. | |
| 18:39:17 | kli enters the room. | |
| 18:41:59 | c0sin enters the room. | |
| 18:42:07 | benburkert enters the room. | |
| 18:42:17 | kli leaves the room. | |
| 18:43:59 | twbray enters the room. | |
| 18:50:25 | ezmobius enters the room. | |
| 18:52:49 | ryanlowe enters the room. | |
| 18:56:23 | brainopia leaves the room. | |
| 18:57:23 | eventualbuddha enters the room. | |
| 18:57:26 | ezmobius leaves the room. | |
| 18:59:04 | kli enters the room. | |
| 19:01:26 | thehcdreamer leaves the room. | |
| 19:02:10 | Defiler | I sure wish there were a way to run the cpp primitive tests against shotgun |
| 19:07:12 | yasuhito leaves the room. | |
| 19:15:37 | brainopia enters the room. | |
| 19:16:52 | hemulen leaves the room. | |
| 19:19:26 | hemulen enters the room. | |
| 19:21:23 | dodecaphonic enters the room. | |
| 19:21:42 | ezmobius enters the room. | |
| 19:26:19 | twbray_ enters the room. | |
| 19:27:27 | twbray leaves the room. | |
| 19:32:01 | Maledictus leaves the room. | |
| 19:33:03 | twbray_ leaves the room. | |
| 19:38:02 | jazen3 leaves the room. | |
| 19:39:12 | twbray enters the room. | |
| 19:39:31 | jazen enters the room. | |
| 19:39:35 | jazen leaves the room. | |
| 19:39:55 | jazen enters the room. | |
| 19:44:17 | twbray leaves the room. | |
| 19:44:59 | twbray enters the room. | |
| 19:46:22 | Maledictus enters the room. | |
| 19:47:14 | eventualbuddha leaves the room. | |
| 19:50:23 | rue | headius: Yeah, a cc option would be great |
| 19:50:30 | rue | Right now it is just Ccc though |
| 19:50:56 | headius | ok, that's what I figured |
| 19:53:50 | rue | headius: libffi _does_ support several so it should not be too hard to fix |
| 19:55:51 | headius | yeah, I knew jna did it, so I assumed it would be possible |
| 19:56:53 | octopod enters the room. | |
| 20:07:41 | michalw leaves the room. | |
| 20:07:59 | michalw enters the room. | |
| 20:08:41 | Defiler | I guess we need something like 'set_ffi_lib' but for call convention |
| 20:08:46 | Defiler | What's the use case? |
| 20:09:07 | Defiler | platforms with multiple conventions and you are linking to a binary built with a non-default choice? |
| 20:13:02 | neelance_ leaves the room. | |
| 20:13:31 | twbray leaves the room. | |
| 20:15:27 | dysinger leaves the room. | |
| 20:21:07 | rue | Defiler: set_ffi_lib is such a hack :P |
| 20:29:38 | headius leaves the room. | |
| 20:31:09 | kli leaves the room. | |
| 20:32:20 | ezmobius_ enters the room. | |
| 20:32:49 | yipstar enters the room. | |
| 20:42:35 | ezmobius leaves the room. | |
| 20:44:06 | dbussink | set_ffi_lib is basically because some people are too lazy to specify the library for every call ;) |
| 20:44:14 | dbussink | maybe a block would be better :p |
| 20:44:56 | MenTaLguY | I think a block would be better |
| 20:45:29 | dbussink | and if no block => look in current process |
| 20:45:45 | drbrain | then you get a bunch of indentation |
| 20:46:07 | dbussink | well, it's a bit less ugly then set_ffi_lib |
| 20:48:12 | drbrain | ugly is sometimes good |
| 20:48:18 | drbrain | like set_instance_variable |
| 20:48:36 | drbrain | err, instance_variable_set |
| 20:49:42 | dbussink | true, but set_ffi_lib makes me feel icky |
| 20:49:51 | octopod leaves the room. | |
| 20:51:08 | foysavas enters the room. | |
| 20:55:50 | Defiler | What's wrong with set_ffi_lib? |
| 20:57:06 | drbrain | it looks ugly |
| 20:57:44 | Defiler | Does it? |
| 20:58:38 | drbrain | probably because it has set_ in front of it |
| 20:59:50 | rue | Because it is an arbitrary instance variable |
| 21:00:00 | rue | Not exactly thread safe |
| 21:00:24 | rue | And it is kind of ambiguous. What is the scope etc. |
| 21:00:28 | drbrain | you're dynamically creating FFI'd classes? |
| 21:01:02 | Defiler | So, libtommath only has a makefile, not a configure script? |
| 21:01:02 | rue | drbrain: One could load an FFI-reliant lib in a thread |
| 21:01:38 | drbrain | Defiler: quite possibly |
| 21:03:25 | dfg59 leaves the room. | |
| 21:05:28 | drbrain | rue: and somebody else in another thread is going to call set_ffi_lib also? |
| 21:05:33 | drbrain | on the same class? |
| 21:06:01 | MenTaLguY | that's an interesting question |
| 21:06:15 | MenTaLguY | it could come up if you are demand-loading things |
| 21:06:22 | rue | Possibly |
| 21:06:56 | Defiler | Maybe we should just wrap 'require' with a lock? eh |
| 21:07:44 | rue | It would be good to have a thread-safe kernel |
| 21:08:43 | rue | The FFI solution is still quite half-assed |
| 21:09:27 | drbrain | I'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:04 | Defiler | Anyone know how to avoid this? http://gist.github.com/2274 |
| 21:11:28 | Defiler | happens after I build cpp |
| 21:13:04 | drbrain | Defiler: add them to .gitignore |
| 21:13:33 | Defiler | They are checked in though, alraedy |
| 21:13:45 | Defiler | just their modes are changing |
| 21:13:47 | drbrain | then they probably shouldn't be |
| 21:13:50 | rue | drbrain: Yes, well, it is abundantly clear that that is the way we will approach the FFI design |
| 21:13:57 | drbrain | I thought it was configure's job to make them |
| 21:18:23 | Defiler | Looking into it now |
| 21:21:45 | twbray enters the room. | |
| 21:25:39 | Defiler | drbrain: http://gist.github.com/2284 |
| 21:25:47 | Defiler | irritatingly, it doesn't create those files, but changes them |
| 21:26:33 | drbrain | weird, only Makefile.common gets created |
| 21:36:40 | obvio171 leaves the room. | |
| 21:38:05 | twbray leaves the room. | |
| 21:38:32 | neelance_ enters the room. | |
| 21:38:36 | eventualbuddha enters the room. | |
| 21:38:44 | eventualbuddha leaves the room. | |
| 21:40:58 | kli enters the room. | |
| 21:44:52 | twbray enters the room. | |
| 21:46:20 | benburkert leaves the room. | |
| 21:48:32 | jgre__ leaves the room. | |
| 21:53:35 | gnufied leaves the room. | |
| 22:03:22 | antares leaves the room. | |
| 22:15:45 | mernen enters the room. | |
| 22:20:16 | dgtized | I'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:36 | dgtized | and then it aborts |
| 22:22:52 | blakewatters leaves the room. | |
| 22:25:42 | jw_cub leaves the room. | |
| 22:28:21 | kli leaves the room. | |
| 22:29:45 | drbrain | sounds like Task::simple_return(Object) is AWOL for you |
| 22:32:34 | benburkert enters the room. | |
| 22:32:49 | moofbong leaves the room. | |
| 22:34:29 | twbray leaves the room. | |
| 22:36:05 | dgtized | anyone else have any luck compiling on ubuntu i386 8.04? |
| 22:36:18 | dgtized | or is it just something specific to me |
| 22:38:46 | antares_ enters the room. | |
| 22:39:05 | twbray enters the room. | |
| 22:44:45 | qrush enters the room. | |
| 22:47:53 | Defiler | Man we need an Ubuntu bot that just rake distclean rake builds every revision |
| 22:47:53 | Defiler | heh |
| 22:51:16 | drbrain | ci is supposed to have one of those set up |
| 22:55:34 | rue | Mm, looks like a linker problem |
| 22:58:18 | wmoxam leaves the room. | |
| 23:01:45 | michalw leaves the room. | |
| 23:14:57 | AndrewO leaves the room. | |
| 23:19:14 | brapse enters the room. | |
| 23:19:26 | twbray leaves the room. | |
| 23:25:42 | headius enters the room. | |
| 23:33:48 | srbaker enters the room. | |
| 23:34:59 | twbray enters the room. | |
| 23:35:05 | srbaker | heya folks |
| 23:35:55 | drbrain | hi |
| 23:42:15 | headius | howdy |
| 23:52:23 | drbrain | I think I just wrote Benchmark::auto |
| 23:53:09 | drbrain | it automatically figures out how many samples to take to get a significant result |
| 23:53:17 | drbrain | no more of this manually specifying N nonsense |
| 23:54:20 | dysinger enters the room. | |
| 23:57:00 | tarcieri | :( @ Constant::method |
| 23:57:16 | drbrain | how about method::Constant ? |
| 23:57:19 | tarcieri | haha |
| 23:57:38 | drbrain | I've used @ivar::Constant a couple times |
| 23:57:38 | tarcieri | that can be useful at times... |
| 23:57:42 | drbrain | it's terrifying |
| 23:57:45 | tarcieri | heh |