Show enters and exits. Hide enters and exits.
| 00:05:38 | luislavena leaves the room. | |
| 00:07:13 | Arjen_ leaves the room. | |
| 00:08:03 | dctanner enters the room. | |
| 00:33:30 | qwert666 leaves the room. | |
| 00:34:25 | benstiglitz leaves the room. | |
| 00:37:00 | benstiglitz enters the room. | |
| 00:38:18 | zimbatm__ enters the room. | |
| 00:45:09 | Defiler | evan: So.. it seems to me that there should be some way to unify this autoload technique with what we do for define_method |
| 00:45:38 | evan | perhaps a VM::CallOnAccess object |
| 00:45:43 | Defiler | evan: In each case we have this thing that goes into a table , and when you get it back out, you have to run it to let it change the state of the world for you |
| 00:45:48 | evan | that we put in either a MethodTable or Constant table |
| 00:45:54 | Defiler | Yeah. There you go |
| 00:46:09 | evan | i dig it. |
| 00:46:20 | evan | for methods, though, it's a little different |
| 00:46:24 | evan | because you want to pass through arguments |
| 00:46:31 | evan | but still, the concept is very similar |
| 00:46:32 | d2dchat enters the room. | |
| 00:46:38 | Defiler | We could just stuff Proc objects into these tables |
| 00:46:46 | Defiler | since procs can take arguments but aren't forced to |
| 00:46:55 | evan | no |
| 00:46:58 | Defiler | if you get a Proc back from the constants or methods table, call it |
| 00:47:01 | evan | no Proc's in the tables |
| 00:47:01 | zenspider | I haven't gotten around to writing up a failing spec for this... my brain is too fuzzy on drugs... but @@blah ||= false blows chunks right now |
| 00:47:10 | evan | the table would have VM::CallOnAccess object |
| 00:47:12 | evan | that references a Proc |
| 00:47:13 | radarek leaves the room. | |
| 00:47:21 | Defiler | Aah |
| 00:47:45 | evan | zenspider: blows up in compiler? |
| 00:47:46 | d2dchat leaves the room. | |
| 00:50:01 | wmoxam enters the room. | |
| 00:50:12 | zenspider | blows up on runtime iirc... the ||= unfolds and the first access raises because it isn't defined yet |
| 00:50:39 | evan | hm |
| 00:50:43 | evan | perhaps just class vars? |
| 00:50:48 | Defiler | Yeah, I looked at it and decided we need a 'fetch cvar without complaining if it isn't there' method to call |
| 00:51:07 | Defiler | The issue is that the compiler basically emits get_class_variable |
| 00:51:26 | Defiler | rather than the (not existing currently) has_class_variable? |
| 00:51:31 | zenspider | yeah, just CVs |
| 00:51:35 | evan | that probably needs to be 'rewritten' to be cvar_defined?("@@blah") ? cvar_get("@@blah") : .... |
| 00:51:43 | Defiler | right |
| 00:52:16 | Defiler | The first method doesn't exist currently, right? |
| 00:52:24 | evan | i thought there was one |
| 00:52:24 | Defiler | (in MRI) |
| 00:52:30 | evan | maybe we don't have it. |
| 00:52:50 | brixen | Module#class_variable_defined? |
| 00:52:51 | Defiler | oh, it does |
| 00:52:52 | Defiler | huh |
| 00:53:02 | Defiler | OK, yeah.. we are just plain doing it wrong. I will fix it now |
| 00:54:05 | benstiglitz leaves the room. | |
| 00:54:06 | Defiler | oh, tricky |
| 00:54:18 | Defiler | the sexp is pretty irritating for this |
| 00:54:51 | Defiler | http://rafb.net/p/6WBoVk48.html |
| 00:55:21 | evan | yeah |
| 00:55:26 | evan | well, i think the cvdecl will change even |
| 00:55:39 | Defiler | op_asgn_or really expects the 'left side' to be free of side effects |
| 00:55:39 | evan | i thought there were 2 forms of cvar assignment in the sexp |
| 00:55:43 | zenspider | an op_asgn_or should be saving our butts, making the context obvious |
| 00:55:48 | Defiler | because it executes it to decide whether to run the other side |
| 00:56:10 | Defiler | So maybe we need an @op_asgn = true kind of ivar here |
| 00:56:28 | Defiler | so things that raise on a failed get can do something different |
| 00:56:45 | evan | Defiler: huh? |
| 00:57:11 | evan | the get is just wrong |
| 00:57:18 | Defiler | op_asgn expects the "test" part of the "test and set" operation to not raise an error if it isn't set yet |
| 00:57:21 | evan | comparing against the return value for truth is wrong |
| 00:57:27 | evan | because @@blah = false |
| 00:57:32 | evan | should let false get through || |
| 00:57:35 | evan | but this code wont let that. |
| 00:57:41 | Defiler | [:cvar, :@@foo] is all we get for the left side, though |
| 00:57:48 | evan | so? |
| 00:57:48 | Defiler | and we can't just change the bytecode emitted for that fragment |
| 00:57:55 | evan | sure we can. |
| 00:58:00 | Defiler | because @@foo on its own on a line should raise if foo isn't set |
| 00:58:19 | evan | the op_asgn_or, while be consumed, needs to peek |
| 00:58:20 | Defiler | It only doesn't raise in the context of ||= or &&= |
| 00:58:36 | evan | it should peek to see if the lhs is a :cvar |
| 00:58:45 | evan | and instead of calling #bytecode |
| 00:58:54 | evan | call #test_exist_bytecode |
| 00:58:56 | evan | or something |
| 00:59:15 | evan | to call ClassVariableAccess#test_exist_bytecode |
| 00:59:16 | Defiler | gotcha |
| 01:02:07 | qed_ leaves the room. | |
| 01:02:10 | qed enters the room. | |
| 01:02:17 | hornbeck leaves the room. | |
| 01:03:37 | Defiler | I see a bunch of different possible ways to check whether a particular node is a cvar.. |
| 01:03:41 | Defiler | Which is the one you recommend? |
| 01:03:58 | evan | let it be converted into the AST |
| 01:04:49 | evan | then in OpAssignOr#bytecode test if the lhs is a CVar node |
| 01:05:17 | Defiler | Right, that's where I am |
| 01:05:28 | Defiler | I just mean.. @left.kind_of? or is there already some accessor I should use |
| 01:05:35 | Defiler | like @left.kind == :cvar |
| 01:05:51 | evan | no |
| 01:06:10 | evan | if @lefti.is? CVar |
| 01:06:12 | evan | if @left.is? CVar |
| 01:06:13 | evan | .... |
| 01:06:30 | Defiler | oh, keen |
| 01:06:31 | evan | is what you should use |
| 01:06:44 | evan | we have #is? because it looks through NewLine nodes |
| 01:06:57 | evan | and fixes a number of weird errors we have in the only compiler |
| 01:09:43 | zenspider | is itching to kill off newline |
| 01:10:38 | anteaya enters the room. | |
| 01:12:52 | evan | please do |
| 01:12:55 | evan | it's so broken. |
| 01:20:43 | dysinger enters the room. | |
| 01:21:29 | eventualbuddha enters the room. | |
| 01:22:47 | twbray enters the room. | |
| 01:26:30 | headius_ enters the room. | |
| 01:27:15 | twbray leaves the room. | |
| 01:27:29 | wycats_ enters the room. | |
| 01:28:10 | headius__ enters the room. | |
| 01:29:01 | zimbatm__ leaves the room. | |
| 01:29:56 | GMFlash leaves the room. | |
| 01:30:26 | headius___ enters the room. | |
| 01:32:29 | adamwiggins_ leaves the room. | |
| 01:32:58 | wmoxam leaves the room. | |
| 01:33:53 | dctanner leaves the room. | |
| 01:39:29 | twbray enters the room. | |
| 01:44:17 | headius_ leaves the room. | |
| 01:44:29 | wycats leaves the room. | |
| 01:44:32 | obvio leaves the room. | |
| 01:44:59 | headius__ leaves the room. | |
| 01:47:05 | headius___ leaves the room. | |
| 01:48:35 | dctanner_ enters the room. | |
| 01:49:16 | dctanner_ leaves the room. | |
| 01:49:42 | benny enters the room. | |
| 01:54:46 | jero5 enters the room. | |
| 01:57:11 | chris2 leaves the room. | |
| 01:58:07 | dschn enters the room. | |
| 01:58:12 | KirinDave enters the room. | |
| 02:00:46 | bitbang leaves the room. | |
| 02:06:22 | agile enters the room. | |
| 02:07:16 | flori leaves the room. | |
| 02:07:23 | flori enters the room. | |
| 02:08:37 | twbray leaves the room. | |
| 02:15:01 | trythil_ enters the room. | |
| 02:15:10 | twbray enters the room. | |
| 02:15:48 | twbray leaves the room. | |
| 02:19:52 | wycats_ leaves the room. | |
| 02:23:38 | imajes enters the room. | |
| 02:23:58 | lopex leaves the room. | |
| 02:31:40 | VVSiz_ enters the room. | |
| 02:31:43 | trythil leaves the room. | |
| 02:33:30 | dblack leaves the room. | |
| 02:33:38 | antares leaves the room. | |
| 02:39:34 | VVSiz leaves the room. | |
| 02:45:00 | qed leaves the room. | |
| 02:45:03 | qed enters the room. | |
| 02:51:18 | imajes leaves the room. | |
| 02:54:11 | KirinDave leaves the room. | |
| 02:54:31 | eventualbuddha leaves the room. | |
| 02:59:50 | cored enters the room. | |
| 03:01:41 | cored leaves the room. | |
| 03:03:14 | GMFlash enters the room. | |
| 03:03:55 | jtoy enters the room. | |
| 03:18:12 | trythil_ leaves the room. | |
| 03:19:10 | rue | Meeble |
| 03:19:34 | MenTaLguY enters the room. | |
| 03:22:27 | Santana_ enters the room. | |
| 03:23:50 | nicksieger leaves the room. | |
| 03:24:24 | yugui enters the room. | |
| 03:25:24 | nicksieger enters the room. | |
| 03:29:26 | headius enters the room. | |
| 03:32:18 | RyanTM leaves the room. | |
| 03:35:38 | trythil enters the room. | |
| 03:35:42 | headius_ enters the room. | |
| 03:37:05 | tarcieri | really wishes you could message pass IO objects between VMs |
| 03:37:49 | boyscout | 1 commit by Adam Gardiner |
| 03:37:50 | boyscout | * Refactor Debugger to remove dependencies on Debugger::Interface; 8263860 |
| 03:38:00 | evan | tarcieri: you can in unix |
| 03:38:11 | evan | you can pass an fd between processes via a unix socket. |
| 03:38:12 | headius__ enters the room. | |
| 03:38:21 | tarcieri | yeah, with a prefork server |
| 03:38:29 | evan | with anything |
| 03:38:39 | tarcieri | well, that's an example of something it's actually useful for :) |
| 03:38:53 | evan | i wrote an apache module that passed an fd to openvpn for certain urls |
| 03:39:03 | tarcieri | nice |
| 03:39:32 | MenTaLguY | there are ways to transfer handles between Windows processes as well |
| 03:39:46 | MenTaLguY | although "handle" is a slightly more vague idea on Windows |
| 03:39:55 | MenTaLguY | has to be a handle to a kernel object, obviously |
| 03:40:27 | evan | yep |
| 03:40:42 | headius___ enters the room. | |
| 03:42:25 | headius____ enters the room. | |
| 03:43:24 | headius_____ enters the room. | |
| 03:43:37 | evan | eyes headius[_*] |
| 03:44:12 | TheProkrammer enters the room. | |
| 03:46:09 | dlee enters the room. | |
| 03:46:09 | MenTaLguY | It's like that movie with Michael Keaton cloning himself. |
| 03:46:15 | evan | hah |
| 03:46:19 | evan | thats such a bad movie. |
| 03:46:26 | MenTaLguY | it is |
| 03:46:31 | MenTaLguY | but I kind of liked it |
| 03:46:57 | MenTaLguY | shows off his acting skills well, as far as some of the body language things he did to distinguish the clones |
| 03:47:35 | guessmethod enters the room. | |
| 03:47:58 | evan | true |
| 03:48:08 | evan | i don't blame him for the quality of movie |
| 03:48:11 | aasmith enters the room. | |
| 03:48:26 | rubuildius_amd64 | Adam Gardiner: 82638601b; 2091 files, 6649 examples, 23333 expectations, 0 failures, 0 errors; http://rafb.net/p/Okt3Pv88.html |
| 03:48:29 | tarcieri | Multiplicity? |
| 03:48:29 | tarcieri | heh |
| 03:48:33 | tarcieri | that movie was... odd |
| 03:48:34 | MenTaLguY | yes, that's the one |
| 03:49:57 | obvio enters the room. | |
| 03:50:33 | rubuildius_ppc | Adam Gardiner: 82638601b; 2091 files, 6651 examples, 23359 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185233 |
| 03:50:48 | headius leaves the room. | |
| 03:51:13 | evan | aasmith: hey andy |
| 03:51:21 | guessmethod | There was a question on ruby-talk about case-insensitive Hash access. Rubinius makes it easy: http://pastie.textmate.org/185232 |
| 03:51:26 | aasmith | hello there |
| 03:51:47 | tarcieri | evan: so anyway... say I want to write a "prethread" server with Rubinius to distribute the load across multiple VMs |
| 03:51:56 | evan | guessmethod: funny. does that not work in 1.8? |
| 03:52:03 | evan | tarcieri: ok. |
| 03:52:09 | guessmethod | evan, nor 1.9 or jruby |
| 03:52:11 | tarcieri | is there any way I can do that presently? |
| 03:52:21 | evan | guessmethod: interesting. |
| 03:52:22 | tarcieri | share an IO object across VMs |
| 03:52:25 | evan | i figured it would. |
| 03:52:33 | Yurik leaves the room. | |
| 03:52:34 | evan | i'm happy to hear that it's so easy in rubinius. |
| 03:53:00 | evan | tarcieri: sure |
| 03:53:09 | evan | tarcieri: just pass the descriptor over the message bus |
| 03:53:17 | tarcieri | the fileno? |
| 03:53:17 | evan | tarcieri: and rewrap it in an IO on the receiver end. |
| 03:53:25 | evan | yep |
| 03:53:30 | tarcieri | is it just IO.new(fileno) ? |
| 03:53:42 | evan | yep |
| 03:53:43 | guessmethod | The Ruby Programming Language says that Ruby treats strings specially for hashes. It must not use hash and eql? |
| 03:53:45 | tarcieri | cool |
| 03:53:54 | evan | guessmethod: interesting |
| 03:54:07 | tarcieri | I'd like to try writing a multi-VM Rack handler |
| 03:54:15 | evan | awesome |
| 03:54:16 | tarcieri | that listens on a single socket |
| 03:54:26 | evan | with merb largely running |
| 03:54:33 | evan | it should be clear for you to do that |
| 03:54:49 | anteaya leaves the room. | |
| 03:55:13 | headius__ leaves the room. | |
| 03:56:06 | headius_ leaves the room. | |
| 03:57:14 | tarcieri | evan: so how do I go from just an IO object to something I can #accept on? |
| 03:57:32 | tarcieri | or should I just look at how TCPServer#accept is implemented? |
| 03:57:35 | evan | #accept? |
| 03:57:45 | evan | are you going to do roundrobin accept? |
| 03:57:53 | evan | or single accept with handoff? |
| 03:58:15 | headius enters the room. | |
| 03:58:15 | tarcieri | I suppose I could do the latter |
| 03:58:17 | evan | single accept with handoff is more predictable |
| 03:58:23 | tarcieri | all right |
| 03:58:25 | evan | and easier to test up front |
| 03:58:36 | evan | so, you'll do TCPServer#accept, and get a TCPSocket |
| 03:58:44 | tarcieri | and message pass its fileno |
| 03:58:48 | tarcieri | make an IO on the other side |
| 03:58:49 | tarcieri | should be fine |
| 03:59:06 | evan | if you want a real TCPSocket on the other side |
| 03:59:07 | evan | it's simple |
| 03:59:14 | headius____ leaves the room. | |
| 03:59:14 | evan | socket = TCPSocket.allocate |
| 03:59:14 | evan | socket.send :from_descriptor, fd |
| 03:59:20 | evan | thats what TCPServer#accept does |
| 03:59:25 | tarcieri | aah, nice |
| 03:59:40 | tarcieri | and I can instance_variable_set some of the other values? |
| 03:59:48 | tarcieri | if I wanted to just hand off to something like webrick |
| 04:00:08 | MenTaLguY | I'm really coming to love Rubinius for stuff like this |
| 04:00:22 | tarcieri | for #peeraddr |
| 04:00:24 | headius_____ leaves the room. | |
| 04:00:28 | tarcieri | ugghhhh |
| 04:00:30 | evan | tarcieri: depends. you have to be a little careful with instance_variable_get because of how ivars are mapped to slots |
| 04:00:32 | headius___ leaves the room. | |
| 04:00:33 | evan | MenTaLguY: yay! |
| 04:00:38 | tarcieri | yeah for sure |
| 04:00:44 | evan | tarcieri: what do you need instance_variable_set for? |
| 04:00:55 | tarcieri | evan: the stupid crap in #peeraddr |
| 04:01:06 | MenTaLguY | hm, shouldn't from_descriptor take care of that? |
| 04:01:15 | tarcieri | I suppose it does |
| 04:01:32 | evan | tarcieri: i don't see any instance_variable_set in peeraddr... |
| 04:01:44 | evan | from_descriptor takes care of everything |
| 04:01:46 | tarcieri | evan: never mind, MenTaLguY's right |
| 04:01:47 | tarcieri | yeah |
| 04:01:51 | evan | that TCPSocket instance will be full fledged. |
| 04:01:58 | evan | not half constructed. |
| 04:01:59 | tarcieri | yeah cool |
| 04:02:12 | MenTaLguY | Rubinius is made of win and awesome |
| 04:02:17 | tarcieri | indeed |
| 04:02:22 | agardiner | winsome? :-) |
| 04:02:27 | tarcieri | so I can hand that off to webrick |
| 04:02:30 | tarcieri | (mongrel?) |
| 04:02:37 | MenTaLguY | yeah |
| 04:02:42 | MenTaLguY | it's totally the real deal of a socket, man |
| 04:02:43 | tarcieri | mongrel works? |
| 04:02:55 | MenTaLguY | don't know about mongrel offhand |
| 04:03:06 | evan | webrick works fine. |
| 04:03:06 | tarcieri | already monkeypatched Mongrel for Revactor |
| 04:03:16 | evan | the mongrel parser has trouble still |
| 04:03:28 | tarcieri | ok |
| 04:03:30 | tarcieri | man |
| 04:03:33 | tarcieri | that'd be fun |
| 04:03:38 | tarcieri | take the Ragel |
| 04:03:40 | tarcieri | convert to Ruby |
| 04:03:44 | tarcieri | the C bits |
| 04:03:51 | tarcieri | maybe I'll try that |
| 04:03:55 | evan | please! |
| 04:04:25 | tarcieri | that one's actually kept up to date right? |
| 04:04:39 | tarcieri | like it actually works on Ragel 6.0+? |
| 04:04:46 | tarcieri | looks |
| 04:05:07 | evan | there is a mongrel in rubinius |
| 04:05:12 | evan | but it probably needs to be carved out |
| 04:05:20 | evan | it's an old experiment kevinclark was doing |
| 04:11:18 | twbray enters the room. | |
| 04:12:14 | rue | tarcieri: Single master is what I was planning. |
| 04:12:25 | rue | Hand off to workers |
| 04:12:40 | tarcieri | rue: yeah cool |
| 04:12:58 | be9 enters the room. | |
| 04:13:50 | evan | more cpp code is in |
| 04:14:02 | evan | i've got gc roots wired in nicely now. |
| 04:14:11 | trythil leaves the room. | |
| 04:14:30 | headius leaves the room. | |
| 04:14:49 | evan | roots can now be distributed in opaque code |
| 04:14:56 | evan | making things simpler |
| 04:16:26 | tarcieri | are you rewriting the GC in C++? |
| 04:17:06 | rue | tarcieri: This is pretty much exactly where I intended to take the first draft for the backend so I will gladly collaborate/help on getting the server mode set up |
| 04:17:38 | MenTaLguY | he's rewriting the whole VM in C++ |
| 04:17:43 | therealadam leaves the room. | |
| 04:18:36 | evan | tarcieri: already done. |
| 04:18:39 | tarcieri | wow |
| 04:18:40 | tarcieri | heh |
| 04:19:06 | eventualbuddha enters the room. | |
| 04:19:38 | evan | update time. |
| 04:19:38 | evan | brb. |
| 04:20:44 | tarcieri | nice, the language specific parts of the Mongrel parser are already factored into separate files |
| 04:22:26 | rue | tarcieri: A web server on top? |
| 04:23:08 | tarcieri | rue: that's what I was thinking... have each VM run its own web server, but share the listener socket and load balance round robin |
| 04:23:25 | rue | Implement it on top of a generic server |
| 04:24:07 | tarcieri | that way the only data moving between VMs is effectively the file descriptor of incoming connections |
| 04:24:50 | wmoxam enters the room. | |
| 04:25:05 | rue | Yeap |
| 04:25:16 | rue | I was not really so concerned about the top layer even |
| 04:25:39 | tarcieri | the main project I want to use Rubinius with is deeply hooked into Mongrel |
| 04:25:42 | rue | I want a Unix socket dumping data into an extension that parses it out into a Rack request |
| 04:26:37 | tarcieri | well that's not too lofty a goal once Webrick or Mongrel is working across VMs |
| 04:27:33 | rue | We can implement an Ebb-like server directly though |
| 04:28:14 | tarcieri | That'd work for distributing requests |
| 04:28:34 | tarcieri | You could have a single server proxying requests to multiple VMs |
| 04:28:45 | tarcieri | and it could hand off the file descriptor along with the request |
| 04:29:20 | tarcieri | that way the other VM can write the response out directly |
| 04:30:10 | tarcieri | if the request were large, it could just dump the whole thing to a Tempfile |
| 04:31:00 | rue | Ultimately I was just looking at an IO subsystem that we can implement everything else on top of |
| 04:31:20 | tarcieri | all right, I have the Mongrel parser compiling to Ruby with a bunch of interspersed Java :) |
| 04:31:30 | cremes | tarcieri, MenTaLguY: fyi, new actor library announced today: http://dramatis.mischance.net/ |
| 04:31:55 | MenTaLguY | tarcieri: didn't the dramatis fellow email us or something a while back? |
| 04:32:02 | djwhitt | everyone is writing one these days |
| 04:32:11 | rue | Actually I think someone came on the channel |
| 04:32:14 | tarcieri | the one I remember was "AiR" (Actors in Ruby) |
| 04:33:06 | cremes | regardless, potentially some new and interesting things that could be borrowed for the good of all ruby-land |
| 04:33:29 | cremes | i figured i would let our resident actor pros know about it... |
| 04:34:20 | rue | tarcieri: Running Mongrel or whatever is one thing, of course, but I think we can do larger-scale multiplexing with a really simple system that takes the TCP/AF_UNIX/whatever connection and feeds it to a VM. Then the VM has a small runner |
| 04:34:42 | tarcieri | okay, well I guess Zed did a pure Ruby version of the Mongrel parser already |
| 04:34:43 | tarcieri | heh |
| 04:34:50 | MenTaLguY | so long as all the actor implementations support the Actor object protocol, they should all interoperate |
| 04:35:03 | tarcieri | MenTaLguY: yeah, that's what I'd really like to get to |
| 04:35:09 | MenTaLguY | it seems I was worrying needlessly about DeadActorError or whatever |
| 04:35:13 | tarcieri | effectively prototype it on Revactor then get it moved over to Rubinius |
| 04:35:17 | MenTaLguY | that didn't really seem to be necessary to expose as part of the protocol |
| 04:35:37 | MenTaLguY | as far as I can tell, send, notify_exited, notify_link and notify_unlink cover everything |
| 04:35:38 | tarcieri | MenTaLguY: so here's another idea for IO |
| 04:41:42 | wyhaines | tarcieri, Ragel has support for outputting Ruby. There have been some experiments with it, but at least under MRI, it's just too slow to seriously consider using for Mongrel. |
| 04:41:43 | srbaker leaves the room. | |
| 04:42:13 | srbaker enters the room. | |
| 04:42:27 | tarcieri | wyhaines: yeah I compiled the Java parser to Ruby |
| 04:43:57 | MenTaLguY | tarcieri: so what's this IO idea? |
| 04:46:03 | srbaker leaves the room. | |
| 04:46:04 | tarcieri | MenTaLguY: something like p = Port.new(io); p.mode :active_once |
| 04:46:25 | tarcieri | with Port#initialize(io, controller = Actor.current) |
| 04:46:34 | srbaker enters the room. | |
| 04:46:50 | tarcieri | I think that'd *really* clean up how Revactor works |
| 04:47:08 | tarcieri | you can have a Reactor proxying to the ports, rather than the Actors themselves |
| 04:47:22 | MenTaLguY | that sounds promising |
| 04:48:08 | tarcieri | also: Ragel sure produces some funky Ruby |
| 04:48:43 | tarcieri | keeps hopping in and out of the singleton defining attr_accessors |
| 04:49:07 | tarcieri | metaclass, I should say |
| 04:58:52 | trythil enters the room. | |
| 05:01:10 | be9 leaves the room. | |
| 05:02:54 | Santana_ leaves the room. | |
| 05:06:10 | marnen enters the room. | |
| 05:10:21 | ezmobius_ enters the room. | |
| 05:11:34 | guessmethod_ enters the room. | |
| 05:11:34 | guessmethod leaves the room. | |
| 05:16:13 | guessmethod_ leaves the room. | |
| 05:21:26 | wmoxam leaves the room. | |
| 05:30:14 | benburkert leaves the room. | |
| 05:30:24 | AndrewO enters the room. | |
| 05:30:33 | AndrewO leaves the room. | |
| 05:30:46 | twbray leaves the room. | |
| 05:32:03 | benburkert enters the room. | |
| 05:38:56 | dlee leaves the room. | |
| 05:40:29 | Rich_Morin_ enters the room. | |
| 05:41:47 | Rich_Morin | Apparently, there's no way in MRI to "unfreeze" an object. So, how hard might it be to add an unfreeze methoed to Rubinius? |
| 05:42:12 | MenTaLguY | not hard, though it sort of defeats the purpose of freezing |
| 05:42:29 | MenTaLguY | freezing is used to get a guarantee that the object will be immutable |
| 05:42:47 | MenTaLguY | which can become important for reasons like e.g. concurrency |
| 05:43:29 | Rich_Morin | Well, in this case I want the object to be tempoarily immutable. As in, freeze it, call a subroutine that isn't supposed to change it, and catch an exception if it does... |
| 05:43:38 | timo | I thought rubinius didn't even support freezing? |
| 05:43:45 | MenTaLguY | it may not at this time |
| 05:43:48 | MenTaLguY | I've never looked |
| 05:44:26 | MenTaLguY | Rich: what if the subroutine passes a reference to the object to a thread or something which modifies it later? |
| 05:44:46 | MenTaLguY | Rich: generally in those situations the only safe thing is to make a copy |
| 05:44:50 | MenTaLguY | to pass |
| 05:45:28 | Rich_Morin | Well, in that case, I lose, but then I'm not trying to find deliberate misbehavior; just accidental variations from assertions. |
| 05:46:43 | Rich_Morin | By way of context, I'm using metaprogramming to "wrap" methods with assertions, for testing, etc. - http://cfcl.com/twiki/bin/view/Projects/Spect/UC_Method_Calls |
| 05:48:16 | benburkert | Rich_Morin_: a mutex might work |
| 05:48:36 | Rich_Morin | For arrays and hashes, I can get some of this effect by extending the object's []= method, but using freeze is more general. |
| 05:48:49 | Rich_Morin | benburkert: explain, please |
| 05:49:37 | brixen | timo: it's partially implemented, but we're not sure yet how we will ultimately do it |
| 05:49:38 | benburkert | put a mutex around the code to assign the object. If the mutex is locked, it's just like the value is "frozen" |
| 05:49:48 | brixen | timo: shotgun/rubinius -e "s = ''; p s.frozen?; s.freeze; p s.frozen?" => false\ntrue |
| 05:53:17 | Rich_Morin | benburkert: Understand that I don't want to modify the code in the called routine, just keep it from modifying a particular argument (without my knowing). If the called routine digs down into an object and overwrites one of its strings, will the mutex catch that? |
| 05:53:30 | brixen | Rich_Morin_: in shotgun (soon to be replaced), IsFrozen is a flag on an object, to write #unfreeze, you'd need to write a VM primitive to access that flag |
| 05:53:43 | Santana_ enters the room. | |
| 05:54:24 | MenTaLguY | a mutex isn't an appropriate solution |
| 05:54:42 | MenTaLguY | among other things, it is a discretionary lock |
| 05:55:18 | Rich_Morin | again, I'm not trying to prevent intentional subterfuges... |
| 05:55:34 | Santana | I was following http://rubinius.lighthouseapp.com/projects/5089/howto-write-a-spec |
| 05:55:48 | Rich_Morin | This is more like a "lint" (or "use strict", in Perl) notion |
| 05:55:54 | Santana | when I found that completeness tries to run a script with the same name that doesn't exist |
| 05:56:14 | brixen | Santana_: yeah, it's been removed, and is in the process of being replaced |
| 05:56:21 | brixen | Santana_: I'll update that page |
| 05:56:31 | Santana | oki |
| 05:56:52 | benburkert | MenTaLguY: if he writes the code that performs the "freeze" and "unfreeze", that's enough control to use a mutex |
| 05:57:09 | Santana | out of curiosity, I ran bin/mspec -V spec/ruby/1.8/core, and found many failures and errors |
| 05:57:34 | Santana | is it expected? |
| 05:57:36 | brixen | Santana_: yes, to be expected |
| 05:57:53 | brixen | Santana_: run bin/mspec ci to run only the specs we know we pass |
| 05:58:22 | brixen | Santana_: we are in the process of implementing Ruby, many specs necessarily fail ;) |
| 05:58:31 | Santana | for what purpose?, shouldn't I rather fix the ones that fail? |
| 05:58:39 | brixen | sure, if you want |
| 05:58:45 | Santana | is it useful? |
| 05:58:51 | brixen | fixing specs? |
| 05:58:54 | Santana | yep |
| 05:58:56 | brixen | yes |
| 05:59:04 | brixen | bin/mspec ci is to catch regressions |
| 05:59:26 | brixen | bin/mspec path/to/specs just runs everything, whether we pass or fail |
| 05:59:33 | Santana | aha |
| 05:59:47 | brixen | Santana_: http://rubinius.lighthouseapp.com/projects/5089/howto-fix-a-failing-spec |
| 06:00:20 | Santana | :) thanks |
| 06:01:19 | Santana | hmmm |
| 06:06:11 | Santana | what's your preferred free IRC client for Mac OS X? |
| 06:08:03 | Santana | :) |
| 06:08:20 | Rich_Morin | How is it better than Adium? |
| 06:08:57 | Santana | I see |
| 06:09:21 | Santana | maybe they don't like you |
| 06:09:31 | brixen | Santana_: I use ssh+irssi |
| 06:09:59 | brixen | Santana_: looks pretty much the same on os x or linux :) |
| 06:10:22 | Santana | ozy`: so am I ;) |
| 06:10:32 | Rich_Morin | Sorry, meant Colloquy |
| 06:11:13 | Rich_Morin | But seeing that it is in RubyCocoa is _quite_ appealing |
| 06:12:05 | Santana | I'm not so fond of text based chat programs... |
| 06:13:32 | srbaker leaves the room. | |
| 06:14:50 | Rich_Morin | C'mon; tell us what you _really_ think... |
| 06:15:19 | srbaker enters the room. | |
| 06:15:26 | Rich_Morin | Anyway, thanks for the tip. |
| 06:21:11 | trythil_ enters the room. | |
| 06:21:13 | trythil leaves the room. | |
| 06:24:45 | Santana | I can't focus |
| 06:24:53 | Santana | time to go to read |
| 06:24:58 | Santana | see you tomorrow |
| 06:25:06 | Santana_ leaves the room. | |
| 06:26:05 | srbaker leaves the room. | |
| 06:26:20 | srbaker enters the room. | |
| 06:33:15 | eventualbuddha leaves the room. | |
| 06:33:40 | srbaker leaves the room. | |
| 06:44:48 | marnen | I'll check out Limechat...I don't agree at all that Colloquy is unstable; it's worked very well for me. |
| 06:46:35 | boyscout | 1 commit by Marnen Laibow-Koser |
| 06:46:36 | boyscout | * Get BigDecimal#to_s working according to spec.; b2a220f |
| 06:54:55 | rue | I would like to advertise weechat again for IRC |
| 06:55:11 | lstoll leaves the room. | |
| 06:55:25 | crafterm enters the room. | |
| 06:59:09 | rubuildius_ppc | Marnen Laibow-Koser: b2a220f86; 2091 files, 6657 examples, 23372 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185317 |
| 06:59:16 | agardiner | Defiler: ping? |
| 06:59:42 | headius enters the room. | |
| 06:59:49 | marnen leaves the room. | |
| 07:00:08 | rue | agardiner: Heyap |
| 07:00:18 | agardiner | hi rue |
| 07:00:31 | rue | You are not directly pushing the vm docs to the web server, are you? The URL changed |
| 07:00:41 | agardiner | no, i'm not |
| 07:00:50 | headius | I think I have slain my connection gremlins |
| 07:01:16 | agardiner | i saw you made the changes there, added the doxygen stuff - looks good! |
| 07:03:42 | benburkert enters the room. | |
| 07:03:58 | tarcieri | nice |
| 07:04:05 | tarcieri | I think I have the Mongrel parser going |
| 07:04:22 | rue | tarcieri: What level are you integrating Mongrel? |
| 07:04:36 | rue | headius: No food after midnight |
| 07:04:36 | tarcieri | rue: targeting pure Ruby with Ragel |
| 07:04:57 | rue | But to actually /run/ Mongrel, not emulate it right? |
| 07:05:11 | headius | that and eliminating sources of 2.4GHz interference or upgrading network to 802.11a |
| 07:05:12 | tarcieri | well yes, this is the bit that's normally in the nasty C extension |
| 07:05:19 | headius | for the moment I'm on a hardline |
| 07:05:33 | ezmobius | actually there used to be a mongrel prser in the git repo that worked via subtend |
| 07:06:04 | tarcieri | it's still there |
| 07:10:35 | kevinclark | yeah, it worked once |
| 07:11:14 | benburkert leaves the room. | |
| 07:11:24 | tt enters the room. | |
| 07:12:23 | rubuildius_amd64 | Marnen Laibow-Koser: b2a220f86; 2091 files, 6655 examples, 23346 expectations, 0 failures, 0 errors; http://rafb.net/p/bwuf9879.html |
| 07:12:49 | benburkert enters the room. | |
| 07:12:52 | kevinclark | it served pages fine, though it errored out at the end of every request. I think the threading was slightly incomplete |
| 07:14:08 | yaroslav enters the room. | |
| 07:19:56 | tarcieri | kevinclark: hmm, wasn't aware it actually worked, does it still? |
| 07:20:12 | tarcieri | likes avoiding C if at all possible |
| 07:21:36 | kevinclark | tarcieri: It worked when I made it work ;) I haven't worked on it in a while (work got crazy, but I should be back to a day a week on rbx sometime next month) |
| 07:22:06 | kevinclark | if subtend hasn't changed, and the vm hasn't changed enough to break it, it should still work |
| 07:22:48 | kevinclark | tarcieri: but here's the ANN: http://glu.ttono.us/articles/2007/12/10/rubinius-runs-mongrel |
| 07:24:11 | tarcieri | well aack |
| 07:24:17 | tarcieri | after all that Rubinius doesn't like it |
| 07:24:17 | tarcieri | heh |
| 07:24:24 | tarcieri | the pure Ruby one, that is |
| 07:24:38 | tarcieri | is doing something wonky because Ragel is doing something wonky |
| 07:24:57 | brixen | tarcieri: what do get? exceptions? |
| 07:25:21 | tarcieri | NoMethodError: No method '_http_parser_actions=' on an instance of Mongrel::HttpParser. |
| 07:26:03 | tarcieri | Ragel's adding a bunch of accessors in initialize by opening up the metaclass |
| 07:26:04 | brixen | it runs in mri? |
| 07:26:07 | tarcieri | yep |
| 07:26:21 | brixen | well, that would be good spec material then :) |
| 07:26:23 | tarcieri | I can probably boil that down to a minimal failing spec |
| 07:26:23 | rue | Well it is clearly a bug in MRI then ;) |
| 07:26:24 | tarcieri | heh |
| 07:26:27 | tarcieri | haha |
| 07:26:30 | brixen | heh |
| 07:27:12 | headius leaves the room. | |
| 07:27:35 | tarcieri | hmmm, wtf |
| 07:27:41 | kevinclark | I'm almost done with my massive thrift rework. Post that, I'll start concentrating on subtend again. |
| 07:32:47 | rue | Morning |
| 07:33:00 | tarcieri | haha omg |
| 07:33:02 | tarcieri | that's jacked |
| 07:33:19 | tarcieri | how the crap do you even describe this? |
| 07:33:55 | tarcieri | http://pastie.caboo.se/185335 |
| 07:34:49 | tarcieri | I suppose it doesn't need the class... |
| 07:35:11 | yugui leaves the room. | |
| 07:35:35 | yugui enters the room. | |
| 07:36:00 | rue | So a scope issue? |
| 07:36:13 | kevinclark | the only thing I've found scarier that some generated ruby is the ruby some write by hand ;) |
| 07:36:38 | tarcieri | rue: I suppose |
| 07:36:48 | rue | Actually no |
| 07:37:26 | TheVoice leaves the room. | |
| 07:37:31 | tarcieri | it's... quite odd |
| 07:37:43 | tarcieri | if you make foo private, you can still call it |
| 07:37:47 | tarcieri | if you make foo= private, you can't |
| 07:38:29 | rue | Well, the self. syntax should always be illegal for private methods |
| 07:38:38 | rue | With the explicit exception of setters |
| 07:39:07 | tarcieri | aah |
| 07:40:16 | rue | The definition of a private method is that it cannot have a receiver |
| 07:41:22 | tarcieri | so this is a known bug? |
| 07:49:31 | tarcieri | whoa crazy |
| 07:49:39 | tarcieri | rlgen-ruby has Rubinius-specific stuff? |
| 07:50:52 | wycats enters the room. | |
| 07:51:20 | dysinger leaves the room. | |
| 07:52:55 | dysinger enters the room. | |
| 08:02:06 | yaroslav leaves the room. | |
| 08:02:43 | yaroslav enters the room. | |
| 08:06:56 | dfg59 enters the room. | |
| 08:12:43 | kw leaves the room. | |
| 08:15:49 | thehcdreamer enters the room. | |
| 08:17:01 | dfg59 | hey all, new here. quick question. are all specs in spec/ruby run with |
| 08:17:05 | dfg59 | rake spec:ci |
| 08:17:43 | yaroslav leaves the room. | |
| 08:18:23 | yaroslav enters the room. | |
| 08:18:55 | w1rele55 leaves the room. | |
| 08:20:45 | brixen | dfg59: rake spec:ci runs bin/mspec ci, which runs all the specs not tagged with 'fails', 'unstable', or 'incomplete' |
| 08:21:10 | brixen | dfg59: check out http://rubinius.lighthouseapp.com/projects/5089/specs-runners for more info |
| 08:21:18 | dfg59 | brixen: ah, i see. thanks |
| 08:22:11 | brixen | dfg59: one way to see what is tagged with e.g. fails is: bin/mspec -g fails --dry-run spec |
| 08:22:26 | w1rele55 enters the room. | |
| 08:22:32 | dfg59 | brixen: you're a mind reader, that was my next question. thanks. |
| 08:22:34 | crafterm leaves the room. | |
| 08:22:42 | brixen | heh, np |
| 08:23:00 | brixen | I have a bin/mspec tag --list fails planned, just not done yet |
| 08:23:26 | brixen | dfg59: oh, always forget this, you have to add -fs to get specdoc output on that |
| 08:23:31 | brixen | otherwise you just get dots :) |
| 08:24:27 | brixen | dfg59: and, if you are interested (perhaps because you want to fix some ;) in specs we need to fix for rails, you can do: bin/mspec -w rails.yaml spec/ruby |
| 08:24:40 | crafterm enters the room. | |
| 08:25:26 | dfg59 | alright...i need to look more into this runner info, but i'm assuming that will tell me the failing specs for rails specifically? |
| 08:25:58 | brixen | yeah, or at least approximately |
| 08:26:12 | brixen | I haven't written docs on -w yet, still working on part of it |
| 08:26:25 | dfg59 | cool :) |
| 08:26:28 | benburkert leaves the room. | |
| 08:26:54 | brixen | but basically, using some data from john lam, it filters the specs for methods that supposedly rails uses in a simple "hello world" controller request |
| 08:27:07 | dfg59 | ah, clever |
| 08:27:21 | ezmobius leaves the room. | |
| 08:27:44 | dfg59 | by specifying spec/ruby, are you looking specifically for failing ruby core specs that are "needed" for the hello world app? |
| 08:27:52 | brixen | yeah |
| 08:27:57 | dfg59 | k |
| 08:28:03 | dfg59 | let me give that a shot |
| 08:28:16 | brixen | the part that is missing compares the output with the method list, to show which specs haven't been written yet |
| 08:28:42 | brixen | but the -w command will at least show which existing specs fail |
| 08:28:47 | dfg59 | ah, i see |
| 08:29:16 | dfg59 | so it seems that even using the -w option i'm still seeing a lot of specs passing...is this normal? |
| 08:29:26 | brixen | yeah |
| 08:29:54 | dfg59 | thanks for this...that was the exact command i was looking for |
| 08:30:01 | dfg59 | some direction as to what should be fixed, very nice |
| 08:30:20 | brixen | this is what I get: 1946 files, 1883 examples, 6752 expectations, 22 failures, 18 errors |
| 08:30:20 | dfg59 | we should throw that up on lighthouse (if it's already there, shame on me for not reading closely enough) |
| 08:30:41 | dfg59 | 1947 files, 1883 examples, 6752 expectations, 22 failures, 18 errors |
| 08:30:47 | dfg59 | huh, looks like i'm up 1 file on you |
| 08:30:53 | brixen | yeah, I'll have some docs up shortly, need to finish the other 1/2 |
| 08:30:58 | brixen | heh |
| 08:31:15 | brixen | I did: bin/mspec -w rails.yaml spec/ruby/ |
| 08:31:27 | brixen | what platform are you on? |
| 08:34:33 | dfg59 | os x |
| 08:34:48 | dfg59 | i did the same |
| 08:34:57 | dfg59 | bin/mspec -w rails.yaml spec/ruby |
| 08:35:33 | brixen | hmm, odd |
| 08:36:00 | dfg59 | i just did a pull literally 5 mins ago |
| 08:36:03 | dfg59 | maybe that's it? |
| 08:36:07 | brixen | ohh, yeah |
| 08:36:09 | agardiner leaves the room. | |
| 08:36:12 | brixen | I'm not on HEAD |
| 08:36:19 | brixen | in the middle of a bunch of stuff heh |
| 08:36:32 | dfg59 | ah, cool |
| 08:36:55 | brixen | well, sleep-time for me |
| 08:37:19 | crafterm leaves the room. | |
| 08:38:02 | dfg59 | thanks again for the help, think i found a good starting point for my first patch :) |
| 08:38:19 | brixen | sweet, thanks for helping out |
| 08:38:26 | dfg59 | np |
| 08:39:48 | mitchellvriley enters the room. | |
| 08:40:04 | mitchellvriley leaves the room. | |
| 08:42:03 | crafterm enters the room. | |
| 08:42:05 | crafterm leaves the room. | |
| 08:51:09 | trythil_ leaves the room. | |
| 08:57:48 | mutle enters the room. | |
| 09:01:05 | Maledictus enters the room. | |
| 09:04:21 | yugui enters the room. | |
| 09:04:47 | octopod enters the room. | |
| 09:14:26 | tt leaves the room. | |
| 09:22:07 | mapar leaves the room. | |
| 09:23:10 | yaroslav leaves the room. | |
| 09:24:49 | yaroslav enters the room. | |
| 09:26:28 | Arjen_ enters the room. | |
| 09:36:08 | mitchellvriley enters the room. | |
| 09:36:39 | be9 enters the room. | |
| 09:38:39 | qed leaves the room. | |
| 09:40:16 | mitchellvriley leaves the room. | |
| 09:45:43 | dysinger leaves the room. | |
| 09:48:13 | jero5 leaves the room. | |
| 09:53:30 | qed enters the room. | |
| 09:54:04 | qwert666 enters the room. | |
| 09:59:12 | dfg59 leaves the room. | |
| 10:08:48 | wycats leaves the room. | |
| 10:12:49 | GMFlash leaves the room. | |
| 10:19:54 | dctanner enters the room. | |
| 10:51:33 | chris2 enters the room. | |
| 10:54:01 | yugui leaves the room. | |
| 11:02:22 | den1jay enters the room. | |
| 11:02:46 | den1jay | hi |
| 11:04:10 | den1jay | anybody awake |
| 11:11:47 | rue | Morning |
| 11:14:13 | Yurik enters the room. | |
| 11:17:25 | imajes enters the room. | |
| 11:26:27 | olabini leaves the room. | |
| 11:27:59 | den1jay leaves the room. | |
| 11:54:15 | flori leaves the room. | |
| 11:54:22 | flori enters the room. | |
| 11:54:23 | olabini enters the room. | |
| 11:55:03 | dblack enters the room. | |
| 11:57:25 | flori leaves the room. | |
| 11:57:30 | flori enters the room. | |
| 12:02:48 | mutle leaves the room. | |
| 12:03:23 | mutle enters the room. | |
| 12:09:22 | jtoy leaves the room. | |
| 12:11:55 | flori leaves the room. | |
| 12:12:01 | flori enters the room. | |
| 12:29:05 | rue | Well, I am no longer going to be awake. Be back in a couple hours |
| 12:32:19 | chris2 leaves the room. | |
| 12:48:45 | RyanTM enters the room. | |
| 12:49:02 | qwert666 leaves the room. | |
| 12:56:46 | ctennis leaves the room. | |
| 12:58:11 | dblack leaves the room. | |
| 13:01:48 | jtoy enters the room. | |
| 13:09:03 | wdperson enters the room. | |
| 13:23:25 | yaroslav leaves the room. | |
| 13:25:07 | yaroslav enters the room. | |
| 13:35:06 | imajes leaves the room. | |
| 13:38:10 | yugui enters the room. | |
| 13:43:46 | srbaker enters the room. | |
| 13:44:48 | dblack enters the room. | |
| 13:49:28 | srbaker leaves the room. | |
| 13:58:49 | dewd enters the room. | |
| 13:59:43 | imajes enters the room. | |
| 14:04:25 | headius enters the room. | |
| 14:04:30 | srbaker enters the room. | |
| 14:05:45 | jlindley enters the room. | |
| 14:11:57 | GMFlash enters the room. | |
| 14:15:38 | lstoll enters the room. | |
| 14:17:30 | headius_ enters the room. | |
| 14:18:14 | headius__ enters the room. | |
| 14:21:18 | headius leaves the room. | |
| 14:26:24 | marnen enters the room. | |
| 14:30:06 | imajes leaves the room. | |
| 14:30:26 | cypher23 enters the room. | |
| 14:34:27 | headius_ leaves the room. | |
| 14:35:27 | wmoxam enters the room. | |
| 14:42:01 | AndrewO enters the room. | |
| 15:06:33 | d2dchat enters the room. | |
| 15:07:55 | smparke1 leaves the room. | |
| 15:12:36 | boyscout | 1 commit by Vladimir Sizikov |
| 15:12:37 | boyscout | * A bit more test cases for BigDecimal#sqrt.; c3fc053 |
| 15:16:36 | moofbong enters the room. | |
| 15:23:34 | rosejn enters the room. | |
| 15:26:06 | rubuildius_ppc | Vladimir Sizikov: c3fc05389; 2091 files, 6657 examples, 23372 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185473 |
| 15:27:29 | agile leaves the room. | |
| 15:30:22 | macournoyer enters the room. | |
| 15:31:52 | rubuildius_amd64 | Vladimir Sizikov: c3fc05389; 2091 files, 6655 examples, 23346 expectations, 0 failures, 0 errors; http://rafb.net/p/LolEUI65.html |
| 15:32:03 | enebo enters the room. | |
| 15:32:26 | twbray enters the room. | |
| 15:32:49 | probablycorey enters the room. | |
| 15:35:09 | twbray leaves the room. | |
| 15:36:35 | rosejn | tarcieri: you around? |
| 15:38:13 | fbuilesv enters the room. | |
| 15:40:15 | benburkert enters the room. | |
| 15:56:02 | boyscout | 3 commits by Marnen Laibow-Koser |
| 15:56:03 | boyscout | * Implement BigDecimal#frac, update spec tags.; f4e975e |
| 15:56:04 | boyscout | * Correct a spec error.; b60deba |
| 15:56:05 | boyscout | * Implement BigDecimal#-@, update spec tags.; e19cf94 |
| 15:58:08 | trythil enters the room. | |
| 15:59:48 | jicksta leaves the room. | |
| 16:00:29 | twbray enters the room. | |
| 16:04:51 | dblack leaves the room. | |
| 16:06:00 | therealadam enters the room. | |
| 16:08:30 | rubuildius_amd64 | Marnen Laibow-Koser: f4e975e52; 2091 files, 6666 examples, 23382 expectations, 0 failures, 0 errors; http://rafb.net/p/M0D2vi79.html |
| 16:08:38 | jicksta enters the room. | |
| 16:08:41 | benstiglitz enters the room. | |
| 16:08:43 | rubuildius_ppc | Marnen Laibow-Koser: f4e975e52; 2091 files, 6668 examples, 23408 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185489 |
| 16:15:12 | twbray leaves the room. | |
| 16:22:02 | RyanTM leaves the room. | |
| 16:22:45 | RyanTM enters the room. | |
| 16:25:58 | headius leaves the room. | |
| 16:28:42 | smparke1 enters the room. | |
| 16:30:23 | agile enters the room. | |
| 16:33:57 | benburkert leaves the room. | |
| 16:43:07 | w1rele55 leaves the room. | |
| 16:43:53 | obiejuan enters the room. | |
| 16:45:39 | w1rele55 enters the room. | |
| 16:45:56 | dlee enters the room. | |
| 16:48:54 | luislavena enters the room. | |
| 16:52:04 | dysinger enters the room. | |
| 16:52:16 | hornbeck leaves the room. | |
| 16:52:29 | hornbeck enters the room. | |
| 16:52:43 | luislavena | hello guys. |
| 16:52:47 | luislavena | good morning... |
| 16:52:55 | TheProkrammer | waves |
| 16:54:06 | evan | morning. |
| 16:55:25 | enebo leaves the room. | |
| 17:00:46 | luislavena | evan: good morning man. |
| 17:00:49 | JimMc leaves the room. | |
| 17:01:14 | evan | luislavena: how are you this morning? |
| 17:01:46 | luislavena | better, waiting for brixen commit the tmp() helper patches to get my hands dirty :-D |
| 17:02:12 | luislavena | is adding pressure to the daily qty brixen already have :-D |
| 17:07:23 | evan | hehe |
| 17:09:46 | Defiler | agile: Oh, just noticed you had pinged me. Still need anything? |
| 17:10:20 | brixen | luislavena: ahhh, the pressure |
| 17:10:29 | agile | Defiler, it was accidental if it was me. :) |
| 17:10:30 | brixen | runs screaming holding his head |
| 17:11:08 | luislavena | runs behind brixen holding a box of windows vista... |
| 17:11:21 | agile | falls over |
| 17:11:23 | benburkert enters the room. | |
| 17:11:28 | evan | trips luislavena so brixen can escape |
| 17:11:50 | luislavena | OT, found another stupid thing in MRI... |
| 17:11:53 | brixen | oh god, not vista |
| 17:12:01 | jtoy leaves the room. | |
| 17:12:16 | luislavena | brixen: don't worry, just kidding, long live to XP... vista make my eyes bleed :-P |
| 17:12:53 | JimMc enters the room. | |
| 17:13:04 | Defiler | agile: aah damn sorry |
| 17:13:23 | agile | np |
| 17:13:27 | Defiler | agile: Turns out tab completion doesn't work great when the person in question has left the channel |
| 17:13:44 | luislavena | investigating why GCC failed on Vista found a MRI bug on Windows... |
| 17:13:54 | Defiler | I do like how Vista finally comes with an actual backup tool, at least |
| 17:14:18 | luislavena | Defiler: there was a backup tool in XP.. not easy to use, but when you're setup, was good :-D |
| 17:15:19 | luislavena | guys, how are you testing for executable bit access(), on rubinius? |
| 17:15:32 | luislavena | X_OK I think is the mode. |
| 17:15:37 | twbray enters the room. | |
| 17:16:28 | Defiler | luislavena: It didn't create bootable filesystems, right? |
| 17:16:48 | brixen | luislavena: like File.executable? ? |
| 17:17:08 | luislavena | Defiler: you mean the backup tool? no, even don't use that since I have Acronis TrueImage installed. |
| 17:17:15 | luislavena | brixen: yeah, the inner guts of it. |
| 17:17:47 | Defiler | luislavena: Right. That's what I mean. The thing Vista has is more like TrueImage now. TrueImage is probably better, of course.. |
| 17:18:01 | brixen | luislavena: well, we just have specs for that method: spec/ruby/1.8/shared/file/executable.rb |
| 17:18:25 | luislavena | brixen: got them, checking the usage of File::Stat... |
| 17:18:35 | brixen | luislavena: those are referenced from File, File::Stat, and FileTest |
| 17:18:51 | luislavena | ok, then I can say MRI is just screwing me, again... |
| 17:19:20 | luislavena | and I don't like being screwed without at least a nice dinner and a bottle of red wine. |
| 17:20:25 | Defiler | luislavena: check out line 585 in kernel/core/file.rb for implementation |
| 17:21:17 | Defiler | We have provisions for loading in different versions of this based on the platform |
| 17:21:24 | Defiler | So Win32 can have its own version |
| 17:21:29 | luislavena | Defiler: yep, was there, but the problem is with MRI... it evaluates access X_OK and the actually check for execution flag on windows... |
| 17:21:51 | Defiler | There's an executable flag on Windows? |
| 17:22:03 | luislavena | I was about to 'fix' rubygems to workaround a true MRI windows bug: |
| 17:22:04 | luislavena | http://rubyforge.org/pipermail/rubygems-developers/2008-April/003756.html |
| 17:22:10 | luislavena | http://rubyforge.org/pipermail/rubygems-developers/2008-April/003758.html |
| 17:22:21 | luislavena | Defiler: there isn't, that's why is a bug in ruby... |
| 17:22:25 | Defiler | oh, right |
| 17:22:30 | yaroslav leaves the room. | |
| 17:23:00 | luislavena | you know all these workaround of "rake" versus "rake.bat" on windows? |
| 17:23:18 | luislavena | I heard a lot of that, like also "gem install" doesn't work on windows, yada yada... |
| 17:23:34 | luislavena | well, digging the mingw problem found WHY it was happening... |
| 17:23:50 | luislavena | now I need to send my patch to ruby-core and hope it doesn't get lost like always happens... |
| 17:23:52 | headius enters the room. | |
| 17:24:05 | obiejuan leaves the room. | |
| 17:25:36 | brixen | luislavena: ah, that is interesting. VVSiz was having an issue with that and jruby vs jruby.bat |
| 17:25:46 | brixen | luislavena: do we have specs that expose this? |
| 17:25:50 | Arjen_ leaves the room. | |
| 17:26:21 | luislavena | brixen: didn't look at that yet, is too MRI and Windows specific... |
| 17:26:45 | brixen | how so? |
| 17:27:00 | brixen | shouldn't all the impl have the same behavior re executable on windows? |
| 17:28:29 | luislavena | brixen: "Kernel.system" it "needs to be reviewed for spec completeness" do ... end :D |
| 17:28:37 | brixen | hah! |
| 17:28:40 | brixen | :) |
| 17:28:58 | brixen | bunch of slackers :P |
| 17:28:58 | mutle leaves the room. | |
| 17:29:22 | luislavena | brixen: the flow in the file.c code of MRI is wrong... it's returning before evaluating the execution flag... |
| 17:29:32 | brixen | ok |
| 17:29:45 | brixen | so #system is a good place to spec that, yes? |
| 17:29:53 | luislavena | yes. |
| 17:29:59 | brixen | cool |
| 17:30:06 | d2dchat leaves the room. | |
| 17:30:22 | luislavena | I'll like to heard back from ruby-core first about fixing the damn thing... |
| 17:30:38 | luislavena | will spec it when brixen give us the mighty tmp helper :-D |
| 17:30:40 | brixen | heh, it would put some sting in it to have a failing spec :) |
| 17:30:47 | brixen | ok already :P |
| 17:31:09 | luislavena | brixen: just kidding, could do it myself if you want me... |
| 17:31:19 | luislavena | s/want/let |
| 17:31:37 | brixen | ode to the power of git stash |
| 17:31:47 | brixen | I'll switch tasks, one sec ;) |
| 17:32:07 | brixen | I want to reorg the dirs a bit in prep for making mspec a gem |
| 17:32:14 | brixen | perhaps I should just do that later |
| 17:32:55 | brixen | it is evil :D |
| 17:33:10 | brixen | just kidding |
| 17:33:32 | brixen | everyone sees rubinius as a beautiful maiden bringing good tidings |
| 17:34:06 | thehcdreamer leaves the room. | |
| 17:35:29 | cypher23 leaves the room. | |
| 17:36:38 | dewd leaves the room. | |
| 17:37:23 | evan | ozy`: they're pretty tight lipped about it |
| 17:37:29 | luislavena | I'm not int he core and I liek rubinius, that's a valid point? :-D |
| 17:37:41 | evan | ozy`: but the general feeling is that it's good for everyone |
| 17:37:47 | evan | like jruby. |
| 17:38:36 | luislavena | brixen: yeah, put the mspec gem on hold, I think the helpers for tmp and platform_is :windows should be part of the release. |
| 17:38:47 | evan | ozy`: time will tell. |
| 17:39:12 | dlee | i think they would choose the fastest implementation |
| 17:40:47 | enebo enters the room. | |
| 17:44:46 | luislavena | an small example, took me less than 5 minutes figure out where was File.executable? than looking at the MRI C code :-) |
| 17:44:50 | rosejn leaves the room. | |
| 17:48:17 | obvio171 enters the room. | |
| 17:53:27 | srbaker leaves the room. | |
| 17:55:25 | obiejuan enters the room. | |
| 17:56:33 | marnen leaves the room. | |
| 17:56:57 | lopex enters the room. | |
| 18:02:12 | NoKarma enters the room. | |
| 18:02:19 | NoKarma | Heya |
| 18:02:43 | brixen | hey NoKarma |
| 18:04:25 | NoKarma | brixen: Any idea who Benjamin J. Bleything is? |
| 18:04:30 | srbaker enters the room. | |
| 18:04:49 | brixen | NoKarma: yeah, I know him, but don't know his nick |
| 18:05:07 | NoKarma | brixen: ah, ok |
| 18:05:15 | headius | hey get this |
| 18:05:16 | brixen | NoKarma: you don't have his email? |
| 18:05:27 | headius | somebody got sqlite + ar to work in JRuby with nestedvm |
| 18:05:29 | NoKarma | brixen: no, not really |
| 18:05:37 | obvio leaves the room. | |
| 18:05:38 | brixen | NoKarma: is he a mentor? |
| 18:05:45 | NoKarma | brixen: yup |
| 18:05:45 | obvio171 leaves the room. | |
| 18:05:47 | headius | http://nestedvm.ibex.org/ |
| 18:05:58 | headius | it's a binary translation from MIPS assembly to Java bytecode |
| 18:06:16 | brixen | headius: nestedvm is pretty neat |
| 18:06:30 | benburkert leaves the room. | |
| 18:06:42 | brixen | headius: is it active though? last news is early 2007 |
| 18:06:54 | brixen | NoKarma: is he your mentor? |
| 18:06:55 | headius | apparently it's working, if it's not active |
| 18:06:59 | headius | if we use it it might wake up |
| 18:07:02 | benburkert enters the room. | |
| 18:07:03 | NoKarma | brixen: yeah. I think I just found his blog :) |
| 18:07:21 | brixen | NoKarma: ok, le'me know if you can't reach him, I'll get his email for ya |
| 18:07:25 | fbuilesv | NoKarma: http://bleything.net/ :) |
| 18:07:46 | NoKarma | fbuilesv: Thanks :) |
| 18:07:57 | headius | so you guys just need to come up with a MIPS to Rubinius bytecode translator |
| 18:08:12 | fbuilesv | NoKarma: Do you know the other guy who's working on specs too? |
| 18:08:25 | NoKarma | fbuilesv: nope, no idea |
| 18:08:46 | fbuilesv | mmm k |
| 18:08:57 | evan | headius: going to use nestedvm to run MRI extensions? |
| 18:09:00 | evan | :) |
| 18:09:14 | obvio enters the room. | |
| 18:10:15 | headius | maybe! |
| 18:10:20 | obiejuan_ enters the room. | |
| 18:10:26 | headius | I wouldn't have thought it actuall ypossible |
| 18:10:40 | evan | sure it's possible, it's just software :) |
| 18:12:18 | evan | there is good prior work on writing mips interpreters |
| 18:12:22 | evan | i used one in college |
| 18:12:24 | evan | spim |
| 18:12:37 | evan | we wrote a compiler that output mips assembly |
| 18:12:45 | evan | and run it in spim |
| 18:12:59 | kofno enters the room. | |
| 18:13:11 | srbaker leaves the room. | |
| 18:13:18 | brixen | isn't LLVM IR modelled on MIPS ? |
| 18:13:21 | evan | http://pages.cs.wisc.edu/~larus/spim.html |
| 18:13:23 | evan | probably |
| 18:13:25 | srbaker enters the room. | |
| 18:13:28 | evan | MIPS is SOO sane. |
| 18:13:48 | evan | it makes x86 look like putting protiens together |
| 18:13:58 | brixen | heh |
| 18:15:01 | evan | i've been reading PZ Meyers blog a lot, thus the DNA reference :) |
| 18:15:16 | brixen | well, that would be an interesting experiement, compile shotgun/vm to mips and try nestedvm |
| 18:16:03 | Defiler | evan: Do we have a plan of attack for someday not needing ucontext? |
| 18:16:34 | evan | how about wire spim into rubinius and compile extensions to mips and interprete them! |
| 18:16:58 | evan | Defiler: i'm not using it at all yet in the new VM |
| 18:17:05 | brixen | wait! why not compile jvm to mips and run it on jvm using nestedvm |
| 18:17:06 | evan | when i get to that point (soon) i'm going to use coco |
| 18:17:14 | evan | brixen: awesome. |
| 18:18:32 | obiejuan leaves the room. | |
| 18:18:52 | brixen | evan: your idea could have real promise, it could move the rb_xxx completely inside the VM, couldn't it? |
| 18:19:06 | brixen | evan: making the context switching between subtend and vm unnecessary? |
| 18:19:15 | evan | yep |
| 18:19:20 | brixen | wowsers |
| 18:19:21 | Defiler | evan: Oh, so you are rewriting subtend along with the rest of the VM? |
| 18:19:22 | evan | thats exactly what i was thinking. |
| 18:19:27 | evan | Defiler: gotta |
| 18:19:37 | evan | plus subtend's wiring is a mess. |
| 18:19:37 | Defiler | Yeah, now that I say it out loud.. heh |
| 18:19:40 | Defiler | Well, awesome |
| 18:20:04 | Defiler | So, I thought of a silver lining re: the IO problem that had me stumped for so long |
| 18:20:20 | Defiler | It means that the UNIXSocket implementation I wrote wasn't the problem, and worked the first time ha ha |
| 18:20:27 | Defiler | I was sooo sure I had done that wrong |
| 18:20:28 | evan | hehe |
| 18:20:29 | evan | true! |
| 18:20:38 | evan | so |
| 18:20:41 | Defiler | I kept looking for bugs in it |
| 18:20:45 | evan | you going to get a merb app using mysql up today? |
| 18:21:10 | Defiler | Planning on it. I'm working on some internal Merb pieces that aren't working properly yet |
| 18:21:18 | Defiler | but it serves up pages and stuff, at least |
| 18:21:50 | dbussink | Defiler: going to submit patches to merb too, or only changing rubinius itself? |
| 18:23:27 | evan | well, all bugs are in rubinius |
| 18:23:29 | evan | not merb. |
| 18:23:49 | dbussink | true, but maybe fixing insanity in merb is a good idea too :) |
| 18:24:06 | evan | i thought there was no insanity |
| 18:24:41 | dbussink | well, Defiler has shown us some afaik :) |
| 18:24:50 | dbussink | but i have to go, gonna play some tennis |
| 18:25:19 | evan | enjoy! |
| 18:28:06 | Defiler | dbussink: I am making a list of insane things, and I will make patches after it is all working |
| 18:28:10 | obiejuan_ leaves the room. | |
| 18:28:23 | dbussink | Defiler: seems like the best idea yeah :) |
| 18:28:34 | GMFlash leaves the room. | |
| 18:28:36 | dbussink | bb later |
| 18:30:52 | octopod leaves the room. | |
| 18:31:25 | dblack enters the room. | |
| 18:32:06 | Defiler | The more I think about the idea of embedding spim, the cooler it sounds |
| 18:32:21 | luislavena | just fired his rockets into ruby-core hole... |
| 18:32:35 | Defiler | haha |
| 18:32:42 | wycats enters the room. | |
| 18:32:55 | Defiler | That sounds so naughty |
| 18:33:18 | luislavena | is gathering a huge list of enemies... want to start a facebook group just for that. |
| 18:35:46 | luislavena | Defiler: yeah, kind of naughty, but I'm used to see my posts remains unanswered :-P |
| 18:36:01 | fbuilesv | luislavena: wait, people on ruby-core actually answers to bug reports? :P |
| 18:36:39 | luislavena | fbuilesv: nah, neither patches ;-) |
| 18:36:57 | fbuilesv | luislavena: or patches _with_ tests and cookies! |
| 18:37:20 | djwhitt | you guys know this channel is logged right ;) |
| 18:37:24 | Defiler | luislavena: Just read it. Good email. |
| 18:37:30 | luislavena | fbuilesv: some of the things I report are broken are kind of difficult to test :-P |
| 18:37:47 | luislavena | djwhitt: yep, saw your yelling from march about Windows :-D |
| 18:37:58 | djwhitt | hehe |
| 18:38:01 | fbuilesv | djwhitt: we can expect ninjas paying a visit at us tonight? :) |
| 18:38:01 | Defiler | I hate the present/past confusion of "read" |