Show enters and exits. Hide enters and exits.
| 00:01:59 | rue | bin/ci -C -V: ~95s, bin/ci: ~37s. This is an old-ish amd64 3000+ so something like 1.6GHz. I always run -C -V ;) |
| 00:05:56 | wmoxam leaves the room. | |
| 00:06:40 | chris2 leaves the room. | |
| 00:06:54 | brixen | evan: yo, just got back from class |
| 00:09:08 | enebo leaves the room. | |
| 00:14:35 | perplexes enters the room. | |
| 00:16:40 | rue | brixen: You just missed him |
| 00:16:54 | evan | i'm here. |
| 00:17:09 | rue | Damn it, ruining a good joke set-up |
| 00:17:11 | brixen | rue: me too |
| 00:17:12 | brixen | heh |
| 00:17:34 | rue | Im in ur ircs ruining ur j/k |
| 00:18:21 | brixen | rue: oh god, if you could only see this kitten |
| 00:18:30 | brixen | she in *everything* on my desk all day long |
| 00:18:50 | vintrepid enters the room. | |
| 00:19:10 | rue | Heh, kittens are good for that |
| 00:19:15 | evan | hehe |
| 00:19:17 | evan | take a picture! |
| 00:19:30 | rue | My cats are so big that they just get annoying when I cannot see half the monitor |
| 00:19:51 | binary42 enters the room. | |
| 00:23:06 | agile leaves the room. | |
| 00:24:24 | rue | OK, watching election coverage and trying to work /irc |
| 00:25:39 | evan | hehe |
| 00:28:29 | brixen | evan: interestingly: "len = other.size; len = size if size < len" (in String#<=>) is slightly, but measurably slower than len = size < other.size ? size : other.size |
| 00:28:41 | brixen | even with the two other.size in the second version |
| 00:28:50 | RyanTM leaves the room. | |
| 00:28:52 | brixen | why do you think that might be? |
| 00:29:21 | evan | yeah |
| 00:29:25 | evan | you called other.size twice |
| 00:29:37 | brixen | no, that version is faster, sorry! |
| 00:29:41 | evan | oh |
| 00:29:42 | brixen | *faster* |
| 00:29:43 | brixen | heh |
| 00:30:02 | evan | the ternary his shorter in bytecode maybe |
| 00:30:15 | evan | because the compiler has a better view of the control flow |
| 00:30:21 | evan | not sure otherwise |
| 00:30:23 | brixen | yeah, wondering about the 2 assignments in the first |
| 00:30:25 | evan | because it uses the same stuff |
| 00:30:30 | evan | maybe |
| 00:30:30 | evan | yeah |
| 00:30:34 | brixen | ok, something to ponder |
| 00:31:39 | brixen | probably the object creation, not the assignment, huh? assignment to locals should be fast, right? |
| 00:32:57 | rue | brixen: Can you try len = if ... else ? |
| 00:33:24 | brixen | hmm, le'me see |
| 00:36:04 | rue | Apparently everyone else is watching too, it is quiet :) |
| 00:36:33 | rue | Also, got free tickets to The Body exhibition, sweetness |
| 00:37:37 | brixen | rue: seems to be the same as the ternary |
| 00:38:02 | brixen | I'm guessing it produces the same bytecode, but I haven't looked |
| 00:38:12 | smartocci leaves the room. | |
| 00:38:38 | lstoll enters the room. | |
| 00:38:55 | lstoll_ leaves the room. | |
| 00:39:12 | octopod leaves the room. | |
| 00:40:16 | radarek leaves the room. | |
| 00:42:01 | fizx leaves the room. | |
| 00:44:17 | rue | It should |
| 00:44:36 | rue | Well, ~ish anyway. It may be shifting the lasgn |
| 00:48:20 | rue | brixen: I think it is just the extra lasgn. All three forms only have one branching instruction and the slower version has two lasgns instead of on |
| 00:48:22 | rue | One |
| 00:48:53 | brixen | makes sense |
| 00:49:05 | brixen | what doesn't make sense, at all, is compare_bytes primitive |
| 00:49:23 | evan | oh? |
| 00:50:59 | brixen | evan: do you know why bytearray.h has both a #define for bytearray_bytes and a function prototype? |
| 00:51:23 | evan | header bug. |
| 00:51:30 | brixen | ok |
| 00:52:31 | smartocci enters the room. | |
| 00:53:39 | brixen | yeah, no wonder no one is using ByteArray#<=>, it returns -1 if self.size < other.size, down the line |
| 00:53:50 | brixen | I cannot see how the memcpy would ever get executed |
| 00:54:16 | brixen | oh, yeah I can |
| 00:54:35 | brixen | but those earlier shortcircuits on size can't work |
| 00:54:40 | evan | yeah |
| 00:54:45 | evan | you'll need to nuke them |
| 00:54:49 | evan | because you're passing in the size. |
| 00:54:49 | brixen | yep |
| 00:54:58 | evan | but you probably need to clamp the length the user passes in |
| 00:54:59 | brixen | ok, just a moment of wtf hehe |
| 00:55:05 | brixen | yeah, doing that now |
| 00:55:19 | evan | to make sure it's not bigger than either ByteArray |
| 00:55:23 | brixen | yep |
| 00:56:25 | brixen | the new bootstrap method is Bytecode#compare_bytes(other, a, b) where a is lenght of self, b is length of other, and (essentially) it's clamped at abs(a-b) |
| 00:56:46 | brixen | well, smaller of a and b |
| 00:56:58 | evan | ok. |
| 00:59:43 | evan | min(a,b) |
| 00:59:44 | evan | :) |
| 01:00:01 | brixen | heh, yeah |
| 01:00:11 | Defiler | evan: What IS the command to make gdb disassemble the current instruction? |
| 01:00:52 | evan | display /i $pc |
| 01:00:54 | evan | is the best one |
| 01:00:59 | evan | because then it updates as you move around |
| 01:01:10 | evan | x /i $pc |
| 01:01:12 | evan | does it just once |
| 01:01:49 | Defiler | Cool |
| 01:03:18 | evan | i hope wolf blitzer is wearing fresh undies |
| 01:03:21 | evan | he's going to be up alllll night |
| 01:04:29 | Defiler | evan: Just to confirm.. this updated version of this test program you pasted still totally shows the wrong behavior, right? |
| 01:04:38 | evan | nope |
| 01:04:40 | evan | works perfectly. |
| 01:05:10 | evan | seems that uc_stack.ss_sp is stomped on over time |
| 01:05:21 | evan | which is ok, because it still does the right thing |
| 01:05:26 | evan | you just have to save another pointer to the memory |
| 01:05:42 | Defiler | Ohhhhh ok |
| 01:06:28 | Defiler | evan: https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=19915 |
| 01:07:14 | evan | ooh |
| 01:07:21 | evan | i wonder how you link against them. |
| 01:07:24 | evan | that would help a ton |
| 01:07:32 | evan | because i could step into libc functions |
| 01:08:13 | Defiler | evan: http://developer.apple.com/technotes/tn2004/tn2124.html#SECDEBUGLIB |
| 01:08:51 | evan | NICE |
| 01:08:53 | evan | one ENV var. |
| 01:08:56 | evan | thats so awesome. |
| 01:09:02 | evan | because it's a PITA on other unices |
| 01:09:08 | Defiler | That is intensely cool, yeah |
| 01:10:07 | skaar enters the room. | |
| 01:10:11 | d2dchat enters the room. | |
| 01:18:12 | tonka leaves the room. | |
| 01:22:30 | agardiner | hey evan, i'm curious about the callsite and selector changes... |
| 01:22:50 | agardiner | i gather this is planned to replace the inline cache? |
| 01:23:23 | evan | yep |
| 01:23:27 | evan | i'm working on it now. |
| 01:23:35 | evan | the code in HEAD right now isn't used yet |
| 01:23:49 | agardiner | is this inspired by the .net dynamiccallsite stuff? |
| 01:23:56 | evan | yep |
| 01:24:02 | evan | and jruby's CallSite class |
| 01:24:22 | evan | the idea is that the function pointer in the SendSite object can be patch to have different behavior |
| 01:25:00 | evan | for methods that are primitives and FFI functions, the SendSite will be patched with a function pointer than does a quick test, then executes the code code directly |
| 01:25:03 | agardiner | ahh - so it doesn't need only point at the target method |
| 01:25:33 | evan | that will eliminate going through a few lookup tables for each send in those cases |
| 01:26:00 | evan | basically, it will return those SendSites into very similar execution to what the old java had |
| 01:26:04 | evan | old java == pre-jit |
| 01:26:35 | evan | ie, the send site will have the address of the implementation to run on hand |
| 01:26:47 | agardiner | cool |
| 01:27:08 | agardiner | will sendsites be stored in CM's cache? |
| 01:27:13 | evan | the Selector objects let SendSites' be purged properly |
| 01:27:15 | evan | nope |
| 01:27:19 | evan | the cache field is going away entirely |
| 01:27:35 | evan | a SendSite object will be stored in the literals |
| 01:27:41 | evan | so each send will get a unique literal slot |
| 01:27:49 | evan | that contains a SendSite object |
| 01:28:23 | evan | i realized having the cache as another level of indirection isn't important. |
| 01:28:46 | djwhitt enters the room. | |
| 01:29:30 | agardiner | ok - so callsite's will exist always, they won't be optional like cache was |
| 01:29:40 | rue | Hurray for mutation over selection |
| 01:30:04 | evan | SendSite |
| 01:30:05 | evan | yeah. |
| 01:30:18 | evan | i'm trying to focus the vocab |
| 01:30:30 | agardiner | yeah, my bad :-) |
| 01:30:38 | evan | rather than using call and send |
| 01:31:54 | Defiler | Is there a whole book on gdb out there? |
| 01:31:56 | agardiner | ooh - is the SendSite in the literal's tuple going to replace the literal that was previously the name of the method? |
| 01:31:57 | technomancy leaves the room. | |
| 01:32:04 | Defiler | It is an awesome tool and I want to know everything about it |
| 01:32:06 | evan | agardiner: yep |
| 01:32:23 | evan | the name of the method is inside the SendSite |
| 01:33:04 | agardiner | yeah, gotcha |
| 01:33:10 | agardiner | that is neat |
| 01:33:18 | rue | Defiler: There are a few and they all suck |
| 01:33:25 | evan | yeah, it opens up a lot of flexibility |
| 01:33:37 | rue | Defiler: The "debugging with GDB" book by Stallman is online but it is from 2002 |
| 01:33:58 | rue | The pocket reference is OK, and there is a new one coming out this spring |
| 01:33:59 | agardiner | definitely - a whole world of it! |
| 01:34:01 | Defiler | OK. Good to know. I will just stand under the waterfall until I am the perfect weapon |
| 01:34:05 | rue | Erm, a new bigger book |
| 01:34:10 | evan | one lookup optimization i'm going to make is Selector based |
| 01:34:36 | evan | ie, if there is only one method in the system called evan_rocks_the_house, then the Selector object for that method name will contain a reference to the implemenation of that method |
| 01:34:56 | evan | that will let us dispatch directly to it very quickly |
| 01:35:33 | agardiner | so where are selectors stored? are they referenced in the sendsite? |
| 01:35:42 | evan | there is a global selectors Hash |
| 01:35:49 | evan | i'm exposing it as |
| 01:35:51 | evan | Selector::ALL |
| 01:36:01 | evan | yes |
| 01:36:08 | evan | a SendSite has a name field and a selector field |
| 01:36:17 | evan | the selector also has a send_sites Array |
| 01:36:40 | agardiner | when is the send_sites array populated? |
| 01:36:52 | evan | when a SendSite object is created |
| 01:36:59 | evan | it adds itself to the selector's array |
| 01:37:15 | evan | that array is going to have to be made into a WeakArray, once I add that class |
| 01:37:30 | evan | so that dynamic code doesn't kill us, memory wise. |
| 01:37:58 | evan | there is a lot of cool information you can get out of this though |
| 01:38:02 | agardiner | Does that mean you could find out all locations where a method is called from? |
| 01:38:15 | agardiner | 'cause that would be freakin' awesome! |
| 01:38:18 | evan | like, you can look at all the Selectors and figure out whats called a lot |
| 01:38:20 | evan | yep |
| 01:38:24 | evan | you can do exactly that |
| 01:38:42 | agardiner | wow! that is awesomely powerful |
| 01:39:05 | agardiner | are you going to track hotness in the selector and/or sendsite? |
| 01:39:25 | evan | yeah |
| 01:39:29 | evan | once i get the sendsite code in |
| 01:39:31 | evan | and working |
| 01:39:34 | agardiner | sweet! |
| 01:39:36 | evan | i'm going to add hotness and misses |
| 01:39:54 | evan | the thing thats cool about this |
| 01:40:05 | evan | is that we can revise and optimize the functions that SendSite's use |
| 01:40:16 | evan | so we can only pay for checks and such when we need it |
| 01:40:25 | evan | basically completely specialize each SendSite |
| 01:40:52 | evan | eventually, we'll begin dynamically generating functions at runtime |
| 01:41:00 | evan | like DLR does |
| 01:41:03 | agardiner | man, the potential for optimisations here is amazinf |
| 01:41:19 | evan | yeah, i think it's going to be awesome. |
| 01:42:02 | evan | agardiner: something you'll LOVE |
| 01:42:13 | evan | agardiner: is that hitting a breakpoint |
| 01:42:19 | evan | if that send has already been one |
| 01:42:36 | evan | there is a very good chance you can just look in the SendSite object to figure out where the control flow will go next |
| 01:43:09 | blowmage enters the room. | |
| 01:43:15 | agardiner | hmm... |
| 01:43:29 | evan | omg, i'm going to have to murder my upstairs neighbor again. |
| 01:43:33 | agardiner | its not guaranteed though, it it? |
| 01:43:44 | evan | no |
| 01:43:45 | evan | it's not. |
| 01:44:05 | agardiner | won't the police be suspicious of *another* murder? :-) |
| 01:44:10 | evan | bah. |
| 01:44:12 | evan | it's los angeles. |
| 01:44:14 | evan | i'm a white man. |
| 01:44:16 | evan | it's fine. |
| 01:44:19 | evan | :P |
| 01:44:21 | agardiner | hehe! |
| 01:44:56 | agardiner | re the send, if it isn't 100% deterministic, i can't rely on it |
| 01:45:09 | evan | the info to find out if it's correct is in the SendSite though |
| 01:45:29 | evan | so you could try it, and fall back. |
| 01:46:04 | agardiner | if i still might need to fallback to setting a flag to be checked on the context change, why would i bother? |
| 01:46:18 | evan | true |
| 01:46:37 | agardiner | i tell you, the stepping logic is a bitch |
| 01:46:55 | agardiner | i've got a 500 line commit i'm working on at present |
| 01:47:13 | agardiner | its a real double-edged sword... |
| 01:47:20 | evan | yeah |
| 01:47:24 | evan | step is a pain. |
| 01:47:42 | agardiner | the speed is fantastic, but having to know exactly where to place the next yield is a bitch |
| 01:47:54 | evan | ooooh |
| 01:47:57 | evan | how about this idea |
| 01:48:01 | evan | when you want to step |
| 01:48:12 | evan | you install a special function pointer in the send's SendSite object |
| 01:48:28 | evan | that special function does the normal logic, then yields |
| 01:48:45 | evan | that would mean we only pay for the yield soon logic when we ask for it |
| 01:48:57 | agardiner | ooh - instead of the flag check |
| 01:49:00 | evan | yeah |
| 01:49:01 | agardiner | yeah, sounds great |
| 01:49:43 | agardiner | the elephant in the room i don't even want to consider though is exceptions |
| 01:50:06 | evan | hm |
| 01:50:10 | evan | so |
| 01:50:12 | agardiner | how the fuck do i know a) when one will be raised, and b) where it will be handled? |
| 01:50:20 | evan | why not take this idea of customizing logic to the next step |
| 01:50:31 | evan | use function pointers for a couple more things |
| 01:50:35 | evan | like raising exceptions |
| 01:50:56 | evan | you could tell a task to use raise exception function that yields to the debugger |
| 01:51:04 | d2dchat leaves the room. | |
| 01:51:05 | agardiner | it would have to be on the task or context... but yeah, i like the sound of that! |
| 01:51:13 | evan | right |
| 01:51:17 | evan | it would be on a Task |
| 01:51:28 | evan | so you could basically put a task in debug mode. |
| 01:51:36 | evan | where it uses debug versions of functions |
| 01:51:45 | agardiner | fuck yeah! that would rock!!!! |
| 01:51:55 | evan | it's a done deal then. |
| 01:52:03 | agardiner | alright! |
| 01:52:06 | agardiner | ^5s evan |
| 01:52:24 | evan | ^10s agardiner |
| 01:52:39 | evan | agardiner: you're going to be at the .au sprint, right? |
| 01:52:41 | agardiner | man, i'm takin off my socks... |
| 01:52:44 | agardiner | :-) |
| 01:53:03 | agardiner | evan: doesn't look good... |
| 01:53:13 | evan | dang. |
| 01:53:19 | evan | you're in Melbourne, right? |
| 01:53:23 | agardiner | yeah |
| 01:53:29 | evan | i'm going to be there for a few days |
| 01:53:34 | agardiner | really? |
| 01:53:35 | evan | we should kick it then |
| 01:53:36 | evan | yeah |
| 01:53:38 | agardiner | then we have to hook up |
| 01:53:40 | evan | i get in on the 4th |
| 01:53:45 | evan | head up to Sydney an the 7th |
| 01:54:06 | agardiner | that is great news |
| 01:54:34 | agardiner | i could take a day off work if you're free one day |
| 01:54:36 | evan | i'll bring the code, you bring the beer. |
| 01:54:36 | evan | :D |
| 01:54:47 | agardiner | no prob! :-) |
| 01:54:57 | evan | sure |
| 01:55:05 | evan | i'll be crashing at crafterm's place |
| 01:55:25 | agardiner | k |
| 01:57:40 | agardiner | he's not far from me - 10 min drive is all |
| 01:58:15 | evan | sweet |
| 01:58:28 | agardiner | totally! |
| 01:59:13 | evan | do you hang out with crafterm? |
| 01:59:42 | agardiner | we've caught up once |
| 01:59:52 | agardiner | coupla weeks back |
| 02:00:13 | evan | cool, just curious. |
| 02:00:51 | d2dchat enters the room. | |
| 02:01:11 | brixen | evan: http://pastie.org/147861 |
| 02:01:14 | brixen | check out the bottom |
| 02:01:32 | brixen | it's quite interesting that a while loop in ruby vs memcmp is only 2x slower |
| 02:01:39 | evan | awesome. |
| 02:01:44 | brixen | it'd be interesting to isolate just those 2 things |
| 02:01:48 | brixen | but that's pretty cool |
| 02:01:51 | evan | yeah, that is interesting |
| 02:02:03 | kofno_ enters the room. | |
| 02:02:04 | evan | probably because large memory comparison is slow no matter how you do it |
| 02:02:13 | brixen | yep |
| 02:02:51 | Defiler | brixen: Dude that is awesome progress |
| 02:03:12 | brixen | Defiler: thanks man, although, not much work actually :P |
| 02:03:21 | Defiler | Yeah that is what I mean :) |
| 02:03:25 | brixen | spent a good 2 hours just looking at how ruby code performs |
| 02:03:32 | Defiler | It would be less awesome if you had needed to tear the whole thing apart |
| 02:03:35 | agardiner | holy cow! 12.7 -> 2.4!!! fantastic! |
| 02:03:41 | nicksieger leaves the room. | |
| 02:03:50 | kofno leaves the room. | |
| 02:04:09 | brixen | the big on is this, do you guys see how rbx smokes ruby on Fixnum#<=> ? |
| 02:04:15 | brixen | s/on/one/ |
| 02:04:29 | agardiner | yeah, 4x faster |
| 02:04:31 | Defiler | We should make the compiler handle inlining the block-argument-having version of Integer#times |
| 02:04:34 | Defiler | I will look at that tomorrow |
| 02:04:44 | brixen | Defiler: yes, but also a for loop |
| 02:04:48 | Defiler | haha yeah |
| 02:05:01 | brixen | that translates directly to a while |
| 02:05:18 | brixen | then the code looks quite clean |
| 02:05:38 | brixen | the two big things that seem to affect perf right now are object creation and lookup |
| 02:05:45 | brixen | (not surprising) |
| 02:05:53 | Defiler | yielding isn't all that fast either, right? |
| 02:06:02 | Defiler | Or is that not the bottleneck in Integer#times? |
| 02:06:09 | brixen | not sure actually |
| 02:06:12 | brixen | good question |
| 02:07:01 | brixen | I should be able to bench yielding to an empty block with a while with empty body |
| 02:07:26 | Defiler | Be careful, though.. we have some compiler code that tosses out things that are empty and useless |
| 02:07:39 | Defiler | Can't remember if there is one for empty blocks |
| 02:07:44 | perplexes leaves the room. | |
| 02:07:55 | Defiler | So maybe just put "hello" in it. :) |
| 02:08:05 | evan | #times is slow because you're creating a BlockContext open for each loop |
| 02:08:21 | evan | the compiler inline code makes that not necessary |
| 02:09:15 | Defiler | Would it be dumb to consider a BlockContext pool or something, for situations where the next one is almost identical to the last? |
| 02:09:26 | evan | i've thought about that |
| 02:09:27 | brixen | well, for the core libs, I think one big goal should be keep the code as idiomatic and clear as possible, while still being optimized and optimizable |
| 02:09:37 | evan | it's not worth it generally |
| 02:09:40 | Defiler | I would expect that the 10_000 BC objects created by 10_000.times {|i| ... } are pretty damn similar |
| 02:09:47 | evan | well |
| 02:09:53 | evan | we already optimize their creation a bit |
| 02:10:04 | KirinDave leaves the room. | |
| 02:10:43 | evan | fires up the Shark |
| 02:10:59 | agardiner | ola bini blogged on this recently... |
| 02:11:26 | Defiler | I should get you to show me the ways of The Shark this weekend |
| 02:11:31 | tom__ enters the room. | |
| 02:11:34 | evan | Defiler: ok |
| 02:11:48 | evan | i want crafterm to show us how he's used the dtrace hooks |
| 02:11:59 | evan | so we can profile rubinius via dtrace |
| 02:12:30 | tarcieri | evan: you should ask htonl... he did the dtrace support for MRI that Joyent released |
| 02:12:34 | agile enters the room. | |
| 02:13:31 | evan | ask where? |
| 02:13:34 | evan | is he on IRC? |
| 02:13:50 | tarcieri | I can ask him |
| 02:13:57 | evan | ok |
| 02:14:01 | tarcieri | I see him on IRC... on a different network |
| 02:15:39 | evan | ok |
| 02:15:55 | tarcieri | I asked him... he's not responding for now, we'll see |
| 02:17:13 | evan | ok |
| 02:17:35 | brixen | evan: why does String#== in core have Ruby.primitive :string_equal in it? |
| 02:18:01 | evan | cause i added a primitive to make it more performant |
| 02:18:13 | evan | the primitive handles the simplest/easiest case |
| 02:18:13 | brixen | is it ok if I tweak that a bit? |
| 02:18:16 | evan | then the bytecode handles the rest |
| 02:18:18 | evan | go fo rit. |
| 02:18:21 | brixen | just to push the primitive out of core? |
| 02:18:21 | brixen | ok |
| 02:18:25 | evan | no |
| 02:18:28 | evan | you have to leave it in core. |
| 02:18:31 | evan | otherwise it wont be used. |
| 02:18:55 | brixen | oh yeah, gotcha |
| 02:18:56 | evan | if you redefine a method, the fact it was a primitive before doesn't carry through |
| 02:19:10 | vintrepid leaves the room. | |
| 02:19:21 | brixen | yeah, I was thinking calling the bootstrap method, but that's more machinery |
| 02:19:38 | brixen | well, at the least we'll use the new compare_bytes |
| 02:19:54 | evan | yeah, go for it. |
| 02:19:57 | kAworu enters the room. | |
| 02:19:57 | brixen | k |
| 02:19:59 | kAworu leaves the room. | |
| 02:20:06 | evan | feel free to change those however |
| 02:20:09 | brixen | k |
| 02:20:17 | evan | i added a couple of those primitives just to make stuff a little faster |
| 02:20:21 | evan | if you have a better way, do it. |
| 02:20:29 | brixen | it'd be interesting to have data on e.g. how often is String#== called that 'other' isn't a string |
| 02:20:35 | kAworu enters the room. | |
| 02:20:53 | lopex leaves the room. | |
| 02:21:08 | evan | brixen: change it to raise an exception if it's not a String |
| 02:21:11 | evan | and see what happens |
| 02:21:11 | evan | :D |
| 02:21:16 | brixen | heh |
| 02:21:21 | brixen | that won't get very far |
| 02:21:31 | evan | thats still data! |
| 02:21:48 | brixen | indeed |
| 02:21:52 | agardiner | you need that sendsite functionality... then hook up a method that tells you! :-P |
| 02:22:02 | brixen | agardiner: exactly what I was thinking! |
| 02:22:04 | evan | :D |
| 02:22:06 | evan | soon! |
| 02:22:07 | brixen | hanging some info off that |
| 02:22:32 | agardiner | that will rock, no doubt about it... |
| 02:23:26 | agardiner | we just need an easy way to be able to hook into it |
| 02:23:52 | brixen | yeah, this is quite exciting |
| 02:23:55 | evan | hook how? |
| 02:23:56 | evan | i'll add it. |
| 02:23:57 | evan | :) |
| 02:24:47 | agardiner | well, we need a way to say insert my function pointer at the call site, and that function pointer then calls the one that was there before |
| 02:25:03 | agardiner | after doing whatever it needs to do |
| 02:25:48 | agardiner | this is essentially AOP... but at the send site |
| 02:26:28 | evan | so |
| 02:26:36 | htonl enters the room. | |
| 02:26:37 | evan | you want the ability to install a trampoline in a send site |
| 02:26:43 | agardiner | its a huge new source of evil! i love it!! |
| 02:26:44 | evan | htonl: well hello |
| 02:26:47 | htonl | howdy |
| 02:27:11 | evan | so, I was curious how you're using the dtrace probes in ruby |
| 02:27:20 | obvio171 leaves the room. | |
| 02:27:26 | evan | do you use them in Instruments? or just on the command line |
| 02:27:42 | htonl | at this point just the command line - but i'm looking to get something up in Instruments before railsconf |
| 02:28:05 | kAworu leaves the room. | |
| 02:28:29 | kAworu enters the room. | |
| 02:28:35 | evan | ok |
| 02:28:39 | evan | do you use dtrace to profile ruby code? |
| 02:29:23 | htonl | that's mostly what i use it for these days - i don't do much work in actual production environments lately so i'm using it developer-side |
| 02:29:35 | VVSiz_ enters the room. | |
| 02:29:41 | evan | htonl: sure, thats expected. |
| 02:29:47 | evan | do you have a dtrace script I can see that you use? |
| 02:30:10 | htonl | i've been building up a set of scripts and a rails plugin for all of this that we're going to release real soon |
| 02:30:13 | blowmage leaves the room. | |
| 02:30:19 | evan | ok |
| 02:30:32 | htonl | ok - i gotta eat but i'll be back on in a bit |
| 02:30:34 | evan | i'm looking to adapt some to the rubinius probes we added |
| 02:30:35 | evan | ok |
| 02:31:28 | htonl | cool - yeah i was thinking recently about probes in the emerging ruby implementations - i'm sure you guys have some specific points of interest that differ |
| 02:32:52 | evan | yeah, any insight you have would be great. |
| 02:37:33 | rue | evan: Liking the mutation-based logic changes |
| 02:37:42 | rue | agardiner: Some credit for you too! Here you go :) |
| 02:38:03 | evan | :) |
| 02:38:19 | agardiner | rue: thanks... huh? |
| 02:41:00 | rue | brixen, evan: Actually, you *could* push the primitives to bootstrap: just have the primitive call blah_cv directly (or better yet, inline it somehow) |
| 02:41:50 | agardiner | rue: ah... you're reading the scrollback? |
| 02:41:51 | rue | brixen: Change Type.coerce_to to keep a tally of what it is called with |
| 02:41:56 | macournoyer enters the room. | |
| 02:42:45 | rue | agardiner: Heh, yeah :) |
| 02:43:12 | agardiner | hehe... i was happy to take your credit, just a little confused about the context! :-D |
| 02:43:23 | rue | agardiner: Time.now - 10.minutes*i for each of my messages |
| 02:44:07 | agardiner | yeah, let me just go re-sort based on that... :-) |
| 02:44:30 | rue | Oh, you are not using the Magical IRC Client yet? |
| 02:44:52 | rue | I prototyped something like that back several years ago, although it WAS C++ :P |
| 02:45:26 | agardiner | nah... i'm using an old teletype printer - no terminal for me! |
| 02:45:42 | rue | Hehe, you know sic? |
| 02:45:56 | agardiner | no... |
| 02:45:57 | technomancy enters the room. | |
| 02:46:00 | rue | THE greatest IRC client ever: http://www.suckless.org/cgi-bin/man/man2html?query=sic |
| 02:46:19 | rue | "It multiplexes also all channel traffic into one output, that you don't have to switch different channel buffers, that's actually a feature." |
| 02:46:26 | VVSiz leaves the room. | |
| 02:46:40 | agardiner | haha! |
| 02:46:44 | _mutle leaves the room. | |
| 02:46:48 | agardiner | yeah, i should upgrade to that |
| 02:47:01 | Defiler | That is awesome |
| 02:47:05 | rue | I was going to try it out when I get home.. it seems awesome |
| 02:47:07 | Defiler | It's like 'cat', for IRC |
| 02:47:15 | rue | Exactly, netcat |
| 02:47:16 | technomancy | suckless has good stuff |
| 02:47:22 | mutle enters the room. | |
| 02:47:25 | rue | attests to dwm |
| 02:47:29 | Defiler | 'extremly fast'. So fast it doesn't have TIME for the third 'e' |
| 02:47:46 | agardiner | :-D |
| 02:48:08 | rue | Defiler: At velocities close to C you start losing vowels faster than at newtonian speeds |
| 02:48:08 | agardiner | guess it got clobbered by a backspace on another channel... |
| 02:48:26 | Defiler | rue: That is really clever |
| 02:48:36 | Defiler | nice |
| 02:48:44 | rue | Tee hee |
| 02:50:27 | headius enters the room. | |
| 02:50:43 | Defiler | I wonder what the 'netcat' of Ruby implementations would be like |
| 02:52:54 | dean_ero enters the room. | |
| 02:53:38 | RyanTM enters the room. | |
| 02:56:55 | headius | netcat? |
| 02:57:27 | Defiler | headius: rue linked this: http://www.suckless.org/cgi-bin/man/man2html?query=sic |
| 02:57:39 | Defiler | ..and I declared that it was the 'cat' of IRC clients |
| 02:58:05 | KirinDave enters the room. | |
| 02:58:24 | headius | hmmm ok |
| 02:58:27 | rue | technomancy: You a wmii user? |
| 02:58:37 | technomancy | rue: used to be before I went dual-head |
| 02:58:48 | technomancy | its xinerama support is sadly ignored |
| 02:58:57 | rue | technomancy: Really? That is quite surprising |
| 02:59:11 | rue | Was there not another separate program for that? Synergy or something? |
| 02:59:15 | technomancy | now i fake it with devilspie and emacs window splits |
| 02:59:30 | rue | Heh |
| 02:59:32 | technomancy | synergy is for if you want to treat an extra machine like another display |
| 02:59:44 | technomancy | unfortunately there's no window splits for gecko |
| 02:59:47 | rue | I thought it could use any X server/client combo |
| 03:00:27 | technomancy | oh, interesting. i hadn't thought of that |
| 03:00:39 | rue | headius: This is netcat: http://netcat.sourceforge.net/ |
| 03:00:44 | technomancy | it could work. but honestly this gets me pretty close to the same effect |
| 03:00:46 | headius | I know netcat |
| 03:01:01 | rue | Although I suppose you just meant it as "what does that have to do with anything" |
| 03:01:05 | rue | Heh, ^ |
| 03:01:12 | rue | technomancy: Sure |
| 03:01:28 | technomancy | i should write an FF extension to allow buffer splits |
| 03:01:40 | technomancy | that would significantly reduce the suckage of having a widescreen laptop at work |
| 03:01:42 | rue | That would be.. interesting |
| 03:01:47 | rue | Also possibly suicidal |
| 03:01:52 | technomancy | aka shortscreen. =( |
| 03:02:15 | technomancy | rue: eh; i've already had my neurons fried by high-volume ecmascript exposure |
| 03:02:32 | technomancy | i'm dulled to the pain of requiring explicit returns in every function |
| 03:02:36 | rue | Nothing quite compares to the mozilla browser codebase |
| 03:02:52 | headius | rue: yes, that's more what I was asking :) |
| 03:03:17 | headius | wondering what the 'netcat' of ruby implementations would be seems like asking what color thursday is |
| 03:03:23 | technomancy | rue: i've hacked conkeror before; it was actually pretty fun |
| 03:03:25 | rovar enters the room. | |
| 03:03:28 | technomancy | if you could ignore the lack of a test suite |
| 03:04:04 | rue | headius: I have to admit that I am in that boat right with you ;) |
| 03:04:24 | technomancy | i'd prefer to do it with webkit of course, but the gtk impl leaves a lot to be desired |
| 03:04:33 | rue | Heh |
| 03:06:10 | rue | Election returns looking very interesting |
| 03:06:49 | technomancy | uh oh... what's that mean? =) |
| 03:06:49 | evan | yep |
| 03:07:07 | evan | it's close for both parties |
| 03:07:46 | rovar | Ron Paul is winning Minnesota |
| 03:07:50 | rovar | :) |
| 03:07:57 | evan | get the fuck out |
| 03:07:58 | evan | REALLY? |
| 03:08:15 | rovar | i don't see the sarcasm quotes, not sure how to interpret |
| 03:08:32 | KirinDave leaves the room. | |
| 03:08:33 | evan | no he's not |
| 03:08:35 | evan | not according to cnn |
| 03:09:07 | headius | obama's probably going to get minnesota |
| 03:09:15 | rue | They thought Paul might take AK |
| 03:09:27 | headius | our precinct was 147 for obama and 74 for clinton |
| 03:09:40 | evan | rue: no way. The Huckster was governer |
| 03:10:01 | rue | I am liking Obama's numbers so far. Looks like a lot of early voters are mixing up the predictions from exit polls |
| 03:10:04 | rovar | damn.. he was last time i checked.. |
| 03:10:05 | headius | AK = alaska |
| 03:10:15 | rue | evan: What he said :) |
| 03:10:20 | rue | AR is Arkansas |
| 03:10:31 | evan | oh. |
| 03:10:36 | evan | i haven't had dinner yet |
| 03:10:38 | evan | i blame that. |
| 03:10:41 | headius | crackabee is speaking from arkansas |
| 03:10:43 | rue | Clinton has crazy leads in early ballots |
| 03:11:15 | headius | clinton seems to have an edge, but I think it's going to be close enough to keep it a two-horse race |
| 03:11:18 | evan | it will be hilarious if Paul wins MT |
| 03:11:35 | evan | nothing will be decided for the Dem's tonight |
| 03:12:40 | headius | romney took utah, surprise surprise |
| 03:13:11 | evan | heh |
| 03:13:18 | rovar | object.d? |
| 03:14:07 | evan | rovar: it's the Makefile dependencies |
| 03:14:28 | rovar | ahh |
| 03:14:40 | rovar | I'm a huge D fan.. confused me |
| 03:14:54 | rovar | i was like no wai! gtfo! |
| 03:16:14 | rovar | in attempting to build the daily I get: |
| 03:16:17 | rue | Hehe |
| 03:16:18 | rovar | fastcgi.server = (".fcgi" => ( "railsapp" => |
| 03:16:22 | rovar | ( "min-procs" => 1, |
| 03:16:26 | rovar | "max-procs" => 5, |
| 03:16:26 | rovar | "socket" => "/tmp/ruby-railsapp.fastcgi", |
| 03:16:26 | rovar | "bin-path" => "/path/to/dispatch.fastcgi" |
| 03:16:26 | rovar | ) |
| 03:16:26 | rovar | )) |
| 03:16:27 | rovar | goddammit.. sorry |
| 03:16:37 | rue | That is the weirdest error ever |
| 03:16:58 | rovar | rake is so smart it spits out lightty configs as errors |
| 03:17:10 | rovar | make[2]: Entering directory `/home/rick/Desktop/rubinius-daily/shotgun/lib' |
| 03:17:10 | rovar | object.d:1: *** missing separator. Stop. |
| 03:17:20 | rovar | it seems to me that object.d doesn't exist at all |
| 03:18:07 | evan | rovar: thats just running rake? |
| 03:18:11 | rovar | rake build |
| 03:18:34 | evan | odd |
| 03:18:37 | evan | it should build them |
| 03:18:39 | evan | do a |
| 03:18:40 | evan | rake distclean |
| 03:18:43 | evan | then |
| 03:18:44 | evan | rake build |
| 03:19:05 | rovar | -funroll-loops heh.. |
| 03:19:15 | rovar | not taking any chances with benchmarks, eh? :) |
| 03:19:38 | rue | -funroll-all-the-goddamn-loops -fquantum-pipe |
| 03:19:50 | evan | use the tools when ya got them. |
| 03:19:54 | rue | rovar: Make sure you are using gmake |
| 03:20:02 | rue | gmake sure, I should say |
| 03:20:05 | rovar | it's my only option on this box |
| 03:20:24 | MenTaLguY | sometimes loop unrolling can be a pessimization |
| 03:20:34 | MenTaLguY | trading off branches for icache |
| 03:20:45 | rue | rovar: Time to try clean, then distclean |
| 03:20:49 | MenTaLguY | or rather icache for branches |
| 03:21:17 | rovar | okay.. clean -> distclean -> build |
| 03:21:21 | rovar | thinking... |
| 03:22:40 | rovar | so is there some sort of a feature wishlist somewhere? specifically one aimed at running rails? |
| 03:23:17 | rovar | errored out again.. same error |
| 03:23:23 | evan | rovar: what platform? |
| 03:23:32 | rovar | ubuntu 32 bit |
| 03:23:44 | evan | thats pretty strange. |
| 03:23:53 | MenTaLguY | try both pristine and distclean |
| 03:23:53 | evan | what does |
| 03:23:54 | evan | make -v |
| 03:23:55 | evan | say? |
| 03:24:00 | evan | pristine is done |
| 03:24:02 | evan | er. |
| 03:24:02 | evan | gone. |
| 03:24:05 | MenTaLguY | ah, k |
| 03:24:07 | evan | it's clean:rbc now |
| 03:24:11 | rovar | gnu make 3.81 |
| 03:24:35 | evan | rovar: have you built rubinius before? |
| 03:24:39 | rovar | negative |
| 03:24:54 | evan | hm |
| 03:26:22 | RyanTM leaves the room. | |
| 03:27:09 | evan | ok, foooood time. |
| 03:28:20 | rovar | so this lighthouse ticket list? is that the closest thing to a wish list? |
| 03:28:35 | rovar | the TODO or somesuch? |
| 03:32:27 | headius leaves the room. | |
| 03:34:42 | headius enters the room. | |
| 03:35:47 | rue | rovar: Use a [FEATURE] or [TODO], plus tag the same |
| 03:36:45 | rovar | i see TODO but not feature tag |
| 03:54:13 | Fullmoon_ enters the room. | |
| 03:56:40 | lrz enters the room. | |
| 03:56:43 | lrz leaves the room. | |
| 03:56:52 | rue | There may not be enough of those for the tag to appear yet, just write it in :) |
| 03:57:22 | rue | brixen: I need to do a bit of time juggling this week--how is it looking for the mspec changes? |
| 03:57:42 | rue | brixen: If it looks like not this week, I will push some other stuff ahead |
| 03:58:14 | brixen | rue: likely tomorrow |
| 03:58:31 | brixen | running Dir.glob in rbx was adding 18 sec to a 24 sec run |
| 03:58:42 | brixen | so I diverted to trying to fix that a bit |
| 03:59:02 | brixen | I'm going to push a couple changes and then study for my midterm tomorrow :P |
| 03:59:34 | brixen | evan: the string_equal primitive ends up being 3x faster: http://pastie.org/148071 |
| 04:00:11 | KirinDave enters the room. | |
| 04:03:13 | djwhitt enters the room. | |
| 04:03:34 | rue | brixen: Hehe, yeah |
| 04:03:50 | rue | We are exploring the new theory of Diversion Driven Development |
| 04:04:29 | rue | brixen: If you can get me something to work with, that would be fantastic! If not, no problem either.. I just need to get my schedule straight |
| 04:04:36 | rue | It is hectic this week |
| 04:06:43 | wifelette_afk leaves the room. | |
| 04:07:33 | rovar | estimating completion dates is hard enough when your work hours are consistent :) |
| 04:08:25 | RyanTM enters the room. | |
| 04:09:27 | rovar | hrrm.. latest git repo has the same error :( |
| 04:09:34 | rovar | wonder if I can upgrade gmake |
| 04:09:38 | GMFlash leaves the room. | |
| 04:09:43 | GMFlash enters the room. | |
| 04:09:49 | rue | It seems like a strange problem |
| 04:10:23 | brixen | rue: I was going to paste you the whole diff, but pastie won't let me paste more than 125,000 chars |
| 04:10:27 | boyscout | 1 commit by Eric Hodel |
| 04:10:28 | boyscout | * Make StructGenerator preserve line numbers and be pretty.; 99fe4d8 |
| 04:10:28 | brixen | rue: want me to email it to you? |
| 04:10:40 | brixen | rue: or, wait till tomorrow :P |
| 04:10:58 | rue | rovar: Can you make sure that all the .d files are deleted, by hand if need be? |
| 04:11:01 | rue | brixen: Tomorrow is fine |
| 04:11:07 | rue | Tonight is elections stuff :) |
| 04:11:32 | brixen | sweet, profile of full bin/ci run only takes it from 23 to 28 seconds |
| 04:11:45 | rue | rovar: Also `which make` |
| 04:12:02 | rovar | usr/bin/make |
| 04:13:14 | rovar | find . -name '*.d' now returns nothing .. trying again |
| 04:13:20 | hornbeck leaves the room. | |
| 04:13:30 | hornbeck enters the room. | |
| 04:14:08 | rue | Does /usr/bin/make -v print anything? |
| 04:14:53 | rovar | gnu make 3.81 |
| 04:15:14 | rue | Version is fine, then |
| 04:17:36 | rue | All the .d files are generated BY make so it is bizarre that there would be any issue there |
| 04:18:02 | rue | Hm, also double-check that you have no previous Rubinius installs in /usr/lib, /usr/local/lib etc |
| 04:18:07 | rue | And check your PATH |
| 04:18:35 | rue | Just to make sure there is no bizarre directory being picked up |
| 04:18:46 | rovar | i'm sure that's not the case.. |
| 04:19:07 | rue | You want to get the finest comb you have :) |
| 04:19:30 | rue | The only situation I have ever seen that error is trying to use BSD make on a gmake file |
| 04:19:48 | rue | And if at this point we have ruled that out, anything is possible. |
| 04:19:57 | nicksieger enters the room. | |
| 04:20:04 | rovar | my path is tiny |
| 04:20:11 | rovar | no previous rubinius installs |
| 04:22:12 | rue | Alright, I am afraid we will have to confiscate your computer |
| 04:22:34 | rue | Which OS, incidentally? |
| 04:22:45 | rovar | ubuntu |
| 04:23:01 | rovar | i'm about to wipe it and install fedora 8 |
| 04:23:07 | rue | Heh |
| 04:23:14 | rovar | i've been using it on slicehost - <3 |
| 04:23:16 | rue | Install a BSD for a change of pace |
| 04:23:21 | rovar | i do like BSD too |
| 04:23:35 | rovar | i also like it when stuff works |
| 04:23:42 | rovar | *ducks* |
| 04:24:03 | rue | Hah |
| 04:24:18 | rue | We are not taking the blame for this one yet ;) |
| 04:24:29 | rovar | I was referring to BSD :) |
| 04:24:34 | rubuildius | Eric Hodel: 99fe4d88f; 4671 examples, 17094 expectations, 0 failures, 0 errors |
| 04:24:56 | brixen | rue: our loop smokes ruby: http://pastie.org/148071 |
| 04:25:01 | boyscout | 3 commits by Brian Ford |
| 04:25:03 | boyscout | * Ensure Sampler doesn't try to call #name on nil.; 6b7d357 |
| 04:25:03 | boyscout | * Fix string_equal primitive to not compare beyond either string.; ddc0d65 |
| 04:25:04 | boyscout | * Exposed ByteArray#compare_bytes.; 56e4629 |
| 04:25:08 | brixen | I think we can get String up to speed pretty easily |
| 04:25:18 | rue | Is that illegal? |
| 04:25:35 | drbrain | rovar: I've had the stuff-doesn't-work experience mostly with linux |
| 04:25:42 | rue | brixen: Hm, how does the logo factor in there? :P |
| 04:26:16 | brixen | logo? |
| 04:26:17 | brixen | lego? |
| 04:26:26 | rovar | drbrain: I like fbsd's ports system.. and have found that they are, in general, better managed and configured than apt packages |
| 04:26:29 | rue | drbrain, rovar: Not to get into a distro war but I find that BSD > Linux for the core and Linux > BSD for third-party stuff |
| 04:26:47 | rue | brixen: I have no idea how I read "loop" as "logo" |
| 04:26:53 | brixen | ahh |
| 04:27:04 | rue | Although |
| 04:27:13 | rue | If we do take that BMX bike logo |
| 04:27:15 | rovar | that's pretty accurate.. i actually went back to linux from bsd because I was doing some coding specifically for epoll |
| 04:27:28 | rue | And add red racing stripes, I bet it WILL make it faster |
| 04:27:55 | rovar | and then did some 3d stuff.. which isn't exactly fbsd's strong suit :) |
| 04:27:59 | brixen | red racing stripes makes anything fster |
| 04:28:21 | agardiner | except light |
| 04:28:22 | Fullmoon_ leaves the room. | |
| 04:28:28 | rue | Totally, but BMX bikes have special properties that respond really well to red racing stripe therapy |
| 04:28:37 | brixen | agardiner: light inherits from red racing stripes :D |
| 04:28:37 | rue | agardiner: I do not think we can conclusively say that yet |
| 04:29:19 | agardiner | :-D |
| 04:29:39 | rue | Also, you forget the redshift |
| 04:29:54 | agardiner | actually, that's what i was referring to |
| 04:30:02 | agardiner | red light < blue light |
| 04:30:27 | agardiner | so don't add red stripes to blue light! :-P |
| 04:30:32 | drbrain | rue: depending on distro, I would probably agree |
| 04:30:55 | drbrain | I couldn't use a distro that doesn't install include files by default |
| 04:30:59 | brixen | agardiner: unless your rushing toward them really fast |
| 04:31:06 | brixen | s/your/you're/ |
| 04:31:26 | rue | agardiner: Wait now, the source is moving away and the blue is filtered--OBVIOUSLY because the red stripes are moving faster |
| 04:32:02 | rue | I wonder how far in peer review a GUT based on racing stripes would get |
| 04:33:34 | agardiner | brixen: so, did those string optimisations make a difference to Dir.glob? |
| 04:33:48 | agardiner | sorry, s/string optimisations/red stripes/ |
| 04:34:20 | brixen | agardiner: probably not for dir.glob, but definitely for sorting the resulting list |
| 04:34:24 | brixen | I'll know more tomorrow |
| 04:34:31 | agardiner | neat |
| 04:34:33 | brixen | but for now, must study :P |
| 04:34:34 | rue | Hehe |
| 04:34:37 | rubuildius | Brian Ford: 6b7d3576d; 4671 examples, 17094 expectations, 0 failures, 0 errors |
| 04:34:41 | rue | Study, study.. |
| 04:34:55 | rue | Man, I want to write specs just so we can hit 5k |
| 04:34:58 | agardiner | study... one thing i defintely do NOT miss from my uni days! |
| 04:35:04 | agardiner | have fun! |
| 04:35:11 | brixen | yeah, I'm not missing it either |
| 04:35:14 | rue | Only ~300 to go |
| 04:35:23 | brixen | and it's having a decidely deleterious effect on my grades :P |
| 04:35:42 | brixen | rue: ah, that's nothin, you could knock it out in an hour :D |
| 04:38:20 | rue | brixen: I think writing 300 different TrueClass specs might get my bit temporarily revoked |
| 04:38:47 | rue | Maybe if I am veewy vewy quiet.. |
| 04:39:32 | brixen | hah |
| 04:40:33 | rovar | sleep has won this three way battle, i'll fight with make tomorrow |
| 04:40:41 | rovar | thanks for your help |
| 04:43:20 | dewd leaves the room. | |
| 05:01:33 | KirinDave leaves the room. | |
| 05:02:41 | MenTaLguY | evan: OOC, in the (very?) long-term, what do you think the prospects are for Rubinius on different VMs? |
| 05:02:51 | MenTaLguY | evan: I'm thinking specifically of Adobe Tamarin at the moment |
| 05:03:11 | evan | i'm totally open to it. |
| 05:03:35 | MenTaLguY | cool, though I was thinking more in terms of technical hurdles |
| 05:03:38 | evan | putting the kernel on another platform |
| 05:03:42 | evan | ah. |
| 05:04:04 | MenTaLguY | so it is mostly just an issue of porting kernel? |
| 05:04:23 | evan | well, eventually, hopefully we have the C parts written into ruby, so that we can reprogram it to output to some other language besides C |
| 05:04:35 | MenTaLguY | nods |
| 05:04:58 | KirinDave enters the room. | |
| 05:05:01 | evan | it would be pretty easy to hard port the VM to another language, if it was so desired. |
| 05:18:14 | KirinDave leaves the room. | |
| 05:20:11 | RyanTM leaves the room. | |
| 05:20:47 | dysinger leaves the room. | |
| 05:25:44 | jero5 leaves the room. | |
| 05:26:52 | dean_ero leaves the room. | |
| 05:27:42 | dean_ero enters the room. | |
| 05:27:54 | dean_ero leaves the room. | |
| 05:29:59 | technomancy leaves the room. | |
| 05:34:27 | wifelette enters the room. | |
| 05:48:47 | headius | MenTaLguY: the hard port is interesting to me since the low-level VM is going to be wasteful/inefficient atop the JVM proper |
| 05:49:03 | headius | I'm mostly waiting for it to get to a more stable point before looking at that |
| 05:49:22 | MenTaLguY | right |
| 05:50:32 | macournoyer leaves the room. | |
| 05:51:02 | smartocci leaves the room. | |
| 05:51:15 | arzoNaN leaves the room. | |
| 05:53:26 | ADS_ enters the room. | |
| 05:57:06 | _ADS | hello? |
| 05:57:21 | noclue123 enters the room. | |
| 05:57:36 | drbrain | I found a bug in super |
| 05:58:47 | drbrain | or, maybe instance_variables |
| 05:59:20 | drbrain | hrm |
| 06:01:20 | _ADS | hi - I just download rubinius to a WinXP machine. I'm looking at INSTALL... what's the preferred gcc port? cygwin? |
| 06:01:40 | drbrain | nope, it's a bug in FFI::Struct |
| 06:01:46 | drbrain | can only be subclassed once :( |
| 06:02:00 | KirinDave enters the room. | |
| 06:12:42 | agardiner leaves the room. | |
| 06:20:49 | KirinDave leaves the room. | |
| 06:24:53 | tom__ leaves the room. | |
| 06:24:53 | eventualbuddha enters the room. | |
| 06:28:53 | kofno_ leaves the room. | |
| 06:32:09 | evan | drbrain: eh? |
| 06:34:52 | headius leaves the room. | |
| 06:44:29 | rue | Hallo |
| 06:44:39 | rue | _ADS: There is really no preferred version |
| 06:45:15 | rue | _ADS: Not sure if anyone has tried to get it to run at all, in fact. Cygwin would be a safer bet than MinGW. Native like VS is definitely a no-go |
| 06:50:12 | _ADS | thanks. I'm installing cygwin now. |
| 06:50:24 | _ADS | I'll update with my results |
| 06:50:30 | ezmobius leaves the room. | |
| 06:57:39 | nicksieger leaves the room. | |
| 06:57:43 | geekounet enters the room. | |
| 07:10:46 | rue | Cool beans |
| 07:11:12 | rue | _ADS: We are definitely not focusing on Win32 at all at this point so any info you have will be valuable |
| 07:12:12 | _ADS | first data point: `rake build` in downloaded rubinius-daily gives error: |
| 07:12:39 | _ADS | svn: '.' is not a working copy |
| 07:12:53 | evan | we don't use svn. |
| 07:13:09 | evan | i don't see what ya mean |
| 07:13:10 | tarcieri | heh |
| 07:14:15 | _ADS | I downloaded the rubinius-daily, installed cygwin, with all the tools listed in install.... |
| 07:14:34 | _ADS | changed to the download directory and typed rake build |
| 07:14:41 | _ADS | ... got the svn error |
| 07:15:19 | evan | thats |
| 07:15:22 | evan | ... |
| 07:15:24 | evan | impossible. |
| 07:15:26 | evan | :) |
| 07:15:33 | evan | where did you download the tar.gz from? |
| 07:15:35 | evan | what url |
| 07:15:53 | dean_ero_ enters the room. | |
| 07:16:24 | _ADS | http://rubini.us/releases/daily/rubinius-daily-current.tar.gz |
| 07:16:31 | evan | does |
| 07:16:32 | evan | rake build |
| 07:16:35 | evan | output anything else? |
| 07:17:00 | _ADS | yeah, but it's scrolled off now - wait a sec |
| 07:17:14 | evan | don't paste it in channel |
| 07:17:17 | evan | please use a paste site. |
| 07:17:25 | _ADS | ok |
| 07:19:38 | _ADS | strange: same final error, but no svn error this time |
| 07:19:49 | evan | final error? |
| 07:20:16 | _ADS | yeah, rake aborted, line 97 |
| 07:20:24 | _ADS | hangon while i figure out pastie |
| 07:21:26 | _ADS | http://pastie.caboo.se/148131 |
| 07:21:47 | evan | do you have gcc installed under cygwin? |
| 07:21:58 | _ADS | yes on gcc |
| 07:21:58 | evan | or make |
| 07:22:19 | _ADS | I'm guessing the svn error was something else being configured for the first time |
| 07:22:26 | evan | doubtful |
| 07:22:30 | evan | nothing uses svn in the build. |
| 07:23:22 | rue | Haha, I thought nothing could best sic |
| 07:23:40 | rue | http://www.suckless.org/wiki/tools/irc/irc_it: "ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc directory tree with server, channel and nick name directories. In every directory a FIFO in file and a normal out file is created." |
| 07:23:41 | _ADS | I wish i saved the text - I went ahead and did a git clone - wipedout my scroll buffer |
| 07:24:50 | rue | evan: The tarballs do not contain .git, do they? |
| 07:24:57 | evan | hm. |
| 07:25:00 | evan | no |
| 07:25:45 | rue | Should wire up a changelog creation at least, I think.. sanity check of sorts (plus obviously seeing the changelog) |
| 07:26:01 | evan | not a bad idea |
| 07:29:37 | rue | Think there is a git2cl if you want to go hardcore ChangeLog but just dumping it in a file might work fine |
| 07:31:10 | MenTaLguY leaves the room. | |
| 07:31:16 | _ADS | i did a git clone, rake build, got almost the same set of errors as the first time, except no SVN error |
| 07:31:28 | _ADS | pasted at the bottom of http://pastie.caboo.se/148131 |
| 07:31:59 | evan | it doesn't look like you have make or gcc installed |
| 07:32:25 | _ADS | gcc but not make, it looks like |
| 07:32:31 | pergesu enters the room. | |
| 07:32:40 | _ADS | thought I selected that. |
| 07:32:46 | _ADS | ex |
| 07:33:03 | headius enters the room. | |
| 07:36:00 | evan | rue[sic]: heh |
| 07:36:05 | evan | rue[sic]: I'M IN YOUR FIFO |
| 07:36:48 | rue | Colours would help.. :) |
| 07:37:21 | tarcieri | popping your queues? |
| 07:38:19 | rue | Need to filter out the Freenode stuff and looks like it would actually work reasonably well |
| 07:39:44 | rue | My weechat setup is not much more high-tech except for highlighting and split windows |
| 07:40:38 | pkondzior_ leaves the room. | |
| 07:40:46 | lstoll leaves the room. | |
| 07:43:01 | _ADS | zomg, it's compiling! |
| 07:43:58 | rue | Hurray |
| 07:45:51 | _ADS | under cygwin, I get a "warning -fPIC ignored for target" on every file |
| 07:46:14 | _ADS | how many times does this run autoconf? |
| 07:47:38 | scoopr | hm, I might have to try rbx under cygwin too, if it works out that easily =) |
| 07:47:39 | evan | those are for the external_libs |
| 07:48:15 | scoopr | (I bet the hardest part is getting git working) |
| 07:48:26 | _ADS | git was super simple |
| 07:48:49 | scoopr | ok |
| 07:48:56 | scoopr | good to hear |
| 07:48:58 | _ADS | but I forgot to install 'diff' |
| 07:52:48 | rue | Be back, configuring new dwm |
| 07:52:53 | rue leaves the room. | |
| 07:56:18 | pkondzior enters the room. | |
| 08:01:50 | pkondzior_ enters the room. | |
| 08:01:50 | pkondzior leaves the room. | |
| 08:04:13 | rue enters the room. | |
| 08:04:42 | rue | Better |
| 08:08:18 | ragge enters the room. | |
| 08:15:49 | TheVoice enters the room. | |
| 08:16:07 | ezmobius enters the room. | |
| 08:19:42 | headius | sometimes I'm amazed by the obvious gaps in posix |
| 08:19:58 | headius | you can set umask, and in setting it get the previous value, but you can't query it |
| 08:21:38 | thehcdreamer enters the room. | |
| 08:21:38 | pergesu leaves the room. | |
| 08:22:05 | scoopr | double-set-query-combo-bonus |
| 08:22:28 | headius | yeah, i.e. gross |
| 08:26:22 | wifelette leaves the room. | |
| 08:27:02 | _ADS | compiling under cygwin, got an error compiling i386-dis.c: _VOID redefined |
| 08:28:20 | rue | Morning |
| 08:30:08 | pkondzior_ leaves the room. | |
| 08:30:24 | VVSiz | hi guys :) |
| 08:30:46 | wifelette enters the room. | |
| 08:31:19 | obvio171 enters the room. | |
| 08:32:51 | _ADS | external lib lightning won't compile under cygwin as-is :( |
| 08:33:16 | evan | hrm |
| 08:33:42 | wifelette leaves the room. | |
| 08:33:46 | _ADS | it redefines _VOID in conflict with cygwin's _ansi.h |
| 08:34:00 | evan | hrm. |
| 08:34:09 | evan | do an #undef before the _VOID in lightting |
| 08:34:12 | evan | see what happens |
| 08:34:15 | evan | #undef _VOID |
| 08:34:52 | scoopr | lightning was the culprit of not getting rbx compiled on arm9 linux |
| 08:35:21 | scoopr | though different reasons |
| 08:35:27 | pkondzior enters the room. | |
| 08:37:42 | _ADS | still a problem |
| 08:38:15 | _ADS | looks like it uses it's own header before stdlib.h |
| 08:38:23 | _ADS | will investigate tomorrow. sleep now |
| 08:38:48 | _ADS leaves the room. | |
| 08:40:44 | jtoy enters the room. | |
| 08:42:41 | rue | Interesting |
| 08:42:48 | rue | http://firepear.net/olive/ |
| 08:42:59 | rue | Exactly what I might need to start using RSS |
| 08:45:40 | aotearoa_ enters the room. | |
| 08:48:19 | eventualbuddha leaves the room. | |
| 08:50:54 | boyscout | 1 commit by Charles Nutter |
| 08:50:55 | boyscout | * Tidy up an apparent copy/paste mistake in IO#syswrite spec; 1fde018 |
| 08:57:38 | headius leaves the room. | |
| 08:58:55 | pkondzior leaves the room. | |
| 08:59:45 | rue | Ugh, just a warning--seems like the Firefox theme named iFox Metal is *horribly* slow |
| 09:00:55 | scoopr | I've found it to be bust not to use any odd themes or skins, they are always either ugly or outdated or just badly made like that |
| 09:04:36 | rubuildius | Charles Nutter: 1fde018b9; 4671 examples, 17094 expectations, 1 failure, 0 errors; http://rafb.net/p/fMCXlO16.html |
| 09:05:13 | scoopr | bust? best :) |
| 09:05:41 | defunkt enters the room. | |
| 09:06:53 | pkondzior enters the room. | |
| 09:07:01 | rue | Yeah. The default theme just annoys me |
| 09:07:02 | aotearoa leaves the room. | |
| 09:07:44 | rue | Ugh, I bet there was an auto-yes option to cpan that I did not read up on |
| 09:11:49 | Arjen_ enters the room. | |
| 09:13:28 | jtoy leaves the room. | |
| 09:15:59 | boyscout | 1 commit by Vladimir Sizikov |
| 09:16:00 | boyscout | * Excluded rbx failure after spec rename.; e1cb441 |
| 09:18:55 | ragge leaves the room. | |
| 09:21:30 | zenspider leaves the room. | |
| 09:24:53 | octopod enters the room. | |
| 09:28:05 | thehcdreamer leaves the room. | |
| 09:28:06 | d2dchat leaves the room. | |
| 09:29:35 | rubuildius | Vladimir Sizikov: e1cb4410b; 4670 examples, 17093 expectations, 0 failures, 0 errors |
| 09:30:39 | thehcdreamer enters the room. | |
| 09:34:45 | ezmobius leaves the room. | |
| 09:37:39 | lstoll enters the room. | |
| 09:46:30 | boyscout | 1 commit by Vladimir Sizikov |
| 09:46:30 | boyscout | * New rubyspecs for IO's sysread and read with buffer argument.; cdbbeba |
| 09:59:36 | rubuildius | Vladimir Sizikov: cdbbeba8f; 4670 examples, 17093 expectations, 0 failures, 0 errors |
| 10:02:36 | zimbatm enters the room. | |
| 10:10:21 | radarek enters the room. | |
| 10:11:48 | hassox leaves the room. | |
| 10:21:24 | dean_ero_ leaves the room. | |
| 10:24:35 | hassox enters the room. | |
| 10:25:31 | hassox leaves the room. | |
| 10:25:43 | hassox enters the room. | |
| 10:26:02 | hassox leaves the room. | |
| 10:26:16 | hassox enters the room. | |
| 10:30:16 | lstoll leaves the room. | |
| 10:30:20 | hassox enters the room. | |
| 10:32:18 | ragge enters the room. | |
| 10:51:04 | imajes leaves the room. | |
| 11:05:46 | chris2_ enters the room. | |
| 11:12:52 | zenspider enters the room. | |
| 11:14:56 | rue | *sigh* |
| 11:15:03 | rue | Why can nothing ever be easy |
| 11:16:26 | scoopr | just yesterday I pondered, would the world economy go haywire if suddenly computers were easy and they worked? |
| 11:17:19 | rue | Well, I have more modest goals |
| 11:18:54 | rue | I am just trying to find a feed reader that organizes by time, not site |
| 11:19:46 | scoopr | hm, don't most of them have a composite view in addition to the site-tree? |
| 11:20:11 | scoopr | (that is, selectin the root of the tree) |
| 11:20:28 | rue | Could not begin to say |
| 11:24:15 | lstoll enters the room. | |
| 11:24:40 | scoopr | heh, maybe you can hack this one to suit your needs :P http://raggle.org/about/ |
| 11:25:34 | rue | Nah, there is feed-normalizer |
| 11:25:45 | rue | I found this one but it seems to have an issue with posix mutexes |
| 11:29:45 | hassox leaves the room. | |
| 11:29:59 | hassox enters the room. | |
| 11:35:32 | mfp leaves the room. | |
| 11:41:38 | skaar leaves the room. | |
| 11:42:38 | ragge_ enters the room. | |
| 11:42:38 | ragge leaves the room. | |
| 11:42:51 | ragge_ leaves the room. | |
| 11:43:18 | ragge enters the room. | |
| 11:46:24 | aotearoa enters the room. | |
| 11:48:07 | defunkt enters the room. | |
| 11:50:33 | defunkt leaves the room. | |
| 11:54:21 | imajes enters the room. | |
| 12:07:24 | ragge leaves the room. | |
| 12:07:39 | Fullmoon_ enters the room. | |
| 12:10:10 | kamal_fariz | rue: newsfire does |
| 12:15:05 | aotearoa_ leaves the room. | |
| 12:15:54 | rue | kamal_fariz: Yeah, need to get that Mac first though :) |
| 12:17:37 | radarek leaves the room. | |
| 12:19:59 | yaroslav enters the room. | |
| 12:24:10 | yaroslav leaves the room. | |
| 12:30:13 | kamal_fariz | rue: google reader under the 'All' tab is by time |
| 12:32:46 | ctennis leaves the room. | |
| 12:32:58 | ctennis enters the room. | |
| 12:38:51 | boyscout | 1 commit by Vladimir Sizikov |
| 12:38:51 | boyscout | * New rubyspecs for IO#foreach.; 9c49478 |
| 12:39:52 | skaar enters the room. | |
| 12:41:28 | rue | kamal_fariz: I do not trust Google. Plu |