Show enters and exits. Hide enters and exits.
| 06:07:52 | dwaite | *yawn* |
| 13:17:34 | dbussink | brixen: ping? |
| 15:52:50 | khaase | still have a wrong return value issue: http://ci.rkh.im/view/All/job/BigBand/ |
| 15:52:58 | khaase | (rbx should fail, too) |
| 16:41:14 | brixen | dbussink: pong |
| 16:42:24 | evan | brixen: morning |
| 16:42:30 | brixen | morning! |
| 16:48:37 | brixen | rode 52 miles through some crazy hills yesterday after 3 days of aikido |
| 16:48:47 | brixen | I'm a mere shell of my former self :) |
| 16:49:20 | evan | hah |
| 16:49:22 | evan | :D |
| 16:49:39 | brixen | it was pretty fun though |
| 16:49:51 | brixen | took a ferry across the wilamette |
| 16:50:06 | brixen | er willamette |
| 16:50:10 | evan | oh that does sound fun |
| 16:50:31 | evan | I... went to a bbq. |
| 16:50:40 | evan | and hung out with marcus at the beach. |
| 16:50:50 | brixen | the road down to it was insane, drops probably 300 ft in < 0.10 mi with curves |
| 16:50:55 | brixen | ahh that sounds fun! |
| 16:51:02 | brixen | how's marcus doing? |
| 16:51:07 | evan | he's good! |
| 16:51:15 | evan | aussie as ever. |
| 16:51:31 | brixen | hah |
| 16:52:45 | evan | he's still in the air, back to oz as we speak |
| 17:08:46 | sbryant | morning |
| 17:15:55 | evan | m-m-m-m-orning |
| 17:16:12 | evan | rad. just wrote DumpedClass and DumpedLookupTable |
| 17:16:32 | evan | for digging through a heap dump like it's "real" |
| 17:17:16 | sbryant | oh neat |
| 17:30:19 | dbussink | brixen: g'day sir :) |
| 17:30:49 | dbussink | brixen: i was wondering why you are relying on /etc/issue in that change? because /etc/issue doesn't guarantee anything |
| 17:30:51 | dbussink | it can contain total nonsense |
| 17:31:26 | brixen | yep it can |
| 17:31:30 | brixen | and if it does, oh well |
| 17:31:58 | brixen | it's only for some platform, like fedora 8, that are ancient and need special prebuilts |
| 17:32:11 | brixen | normally, it will download the generic one which will work fine |
| 17:32:37 | dbussink | isn't there a /etc/redhat_release for rpm based distro's? |
| 17:32:44 | dbussink | like you included /etc/debian_release |
| 17:33:50 | brixen | ubuntu uses debian_release, which has nonsens (relatively) in it |
| 17:34:10 | brixen | if someone edits their etc/issue, I don't really care |
| 17:34:15 | brixen | that's their problem |
| 17:34:35 | dbussink | evan: cool :) |
| 17:34:36 | brixen | if I rely on /etc/*_release, on ubuntu I have no good info |
| 17:34:43 | dbussink | ah ok |
| 17:34:56 | dbussink | evan: is adding the ivar support for modules relatively easy or not? |
| 17:35:14 | brixen | dbussink: this is a failover behavior, not the common case |
| 17:35:44 | evan | dbussink: you mean packnig wise? |
| 17:35:49 | dbussink | evan: yeah? |
| 17:35:54 | evan | modules can have ivars no. |
| 17:35:55 | evan | now. |
| 17:36:09 | evan | i'm trying to figure out what you're refering to |
| 17:36:50 | dbussink | evan: that those ivars are packed for an object that includes a certain module |
| 17:36:59 | evan | pretty easy. |
| 17:37:00 | dbussink | evan: that datamapper stuff i was pointing at saturday i think |
| 17:37:05 | evan | k |
| 17:37:05 | evan | yeah |
| 17:37:08 | evan | pretty easy to add. |
| 17:37:13 | evan | i'll do it today |
| 17:41:05 | evan | muhaha |
| 17:41:18 | evan | lets of fun shit with heap dump today! |
| 17:41:39 | evan | http://gist.github.com/447201 |
| 17:41:42 | evan | thats the output from |
| 17:42:00 | evan | tuple.all_instances.referers.histogram.to_text |
| 17:43:03 | evan | s/lets/lots/ |
| 17:45:17 | dbussink | evan: this is everything that refers to tuple(s)? |
| 17:45:23 | evan | yep |
| 17:45:36 | evan | a class breakdown of all the things that refer to tuples |
| 17:46:22 | dbussink | evan: ah, cool, lot's of loaded code :) |
| 17:46:32 | evan | thats the kernel :) |
| 17:50:42 | Defiler | IdentityMap is the whole recursive array tomfoolery, right? |
| 17:51:04 | evan | eh? |
| 17:51:11 | evan | oh in Array |
| 17:51:17 | evan | i'ts used for LoadedFeatures |
| 17:51:19 | evan | as I recall. |
| 17:55:10 | brixen | Defiler: IdentityMap is used to implement Array#| and & |
| 17:55:31 | brixen | and also used in LoadedFeatures to turn O(n) search into O(1) |
| 17:57:13 | brixen | approx O(1) because IM maintains a spill array |
| 18:00:08 | Defiler | brixen: gotcha |
| 18:43:29 | evan | this is why I didn't want to write a ruby parser: |
| 18:43:30 | evan | "Don't be a slave to syntax. Syntax is the Maya of programming, forever blinding many of the weaker souls to the eternal light of symbolic expressions." |
| 18:43:37 | evan | from http://axisofeval.blogspot.com/2010/06/letter-to-young-pl-enthusiast.html |
| 18:45:11 | Defiler | I love the 'go forthe' typo. Presumably intentional |
| 18:45:14 | Defiler | or even.. intensional. |
| 18:45:34 | Defiler | god, that pun actually works |
| 18:46:02 | evan | ha |
| 18:46:16 | Defiler | Write a compiler, not an interpreter, for in an interpreter, you will always find an easy way to cheat yourself out of the labyrinth, and you will never have to face the cold, hard walls of reality and triumph over the Minotaur. |
| 18:46:16 | BrianRice-work | huh |
| 18:46:20 | Defiler | great advice |
| 18:46:46 | Defiler | cold walls and the ashes of those that failed before you |
| 18:46:53 | Defiler | are what you will find here, traveler. |
| 18:47:20 | BrianRice-work | makes me want to brand Slate as "open-world Smalltalk" |
| 18:48:54 | Defiler | http://www.ccs.neu.edu/course/cs7400/lectures/lecture04.pdf |
| 18:48:56 | Defiler | check out page 4 |
| 18:49:28 | Defiler | that page is everything I need to know about scheme, day to day |
| 18:49:49 | evan | hah |
| 18:50:04 | Defiler | in that even contrived simplistic examples are unreadable |
| 18:50:17 | evan | i was thinking the same thing. |
| 18:51:13 | Defiler | here's that code in ruby: 30 |
| 18:52:04 | Defiler | or is it 27, I can't fucking read it |
| 18:52:15 | evan | hah |
| 18:54:12 | sbryant | Does anyone write lisp like that?! |
| 18:54:16 | sbryant | I sure as hell don't. |
| 18:54:56 | evan | someone does. |
| 18:54:59 | BrianRice-work | schemers do |
| 18:55:39 | BrianRice-work | I seem to be about half-way compliant with these recommendations |
| 18:55:49 | sbryant | I mainly write emacs lisp, but as I understand it most people would just write another function. |
| 18:56:37 | BrianRice-work | well, this is also toy-example code to illustrate lexical issues |
| 18:57:58 | sbryant | Or features? |
| 18:59:25 | Defiler | or fissues |
| 19:00:10 | sbryant | rofls |
| 19:00:30 | sbryant | That's an awful example. |
| 19:00:59 | sbryant | And I don't see many (if any) nested lets in the wild. |
| 19:10:10 | BrianRice-work | I was trying to say that it's contrived to illustrate the lexical address concept more fully :P |
| 21:09:19 | bakkdoor | is there documentation on rubinius' vm opcodes? |
| 21:09:37 | bakkdoor | and the overall bytecode file format rubinius uses? |
| 21:11:46 | evan | bakkdoor: there had been, but it's not well maintained. we should fix that. |
| 21:11:50 | evan | you can check out vm/instructions.def |
| 21:12:00 | evan | there is a bunch of inline docs for each opcode there. |
| 21:12:08 | evan | but the .rbc format is largely undocumented still |
| 21:12:20 | evan | there are some ruby classes to read it, which are a kind of documentation. |
| 21:12:35 | bakkdoor | evan: hm ok. having some documentation would really help. i'm planning on porting my language to rubinius :) |
| 21:12:52 | evan | bakkdoor: well, you don't need to worry about the .rbc format probably |
| 21:13:02 | bakkdoor | evan: alright, I'll have a look. |
| 21:13:19 | bakkdoor | evan: but if i want to compile down to rbc I'd need it, or am i missing something? |
| 21:13:28 | evan | you're missing something :D |
| 21:13:35 | bakkdoor | cool :) |
| 21:13:37 | evan | you can write your own .rbc files |
| 21:13:39 | evan | but there is no reason to. |
| 21:14:00 | brixen | bakkdoor: have a look at lib/compiler |
| 21:14:03 | bakkdoor | what would I do then to use rubinius? |
| 21:14:04 | evan | the architecture as it stands knows how to write a tree of CompiledMethods to a .rbc file |
| 21:14:04 | bakkdoor | ok |
| 21:14:06 | brixen | you want to create CompiledMethods |
| 21:14:11 | evan | so you just have to build a tree of CompiledMethods |
| 21:14:15 | bakkdoor | ah ok |
| 21:14:28 | evan | then that is serialized to the .rbc |
| 21:14:50 | brixen | bakkdoor: vm/instructions.def is really good documentation |
| 21:14:57 | evan | I should write a blog post about using the bytecode generator directly |
| 21:15:01 | bakkdoor | brixen: alright, thanks |
| 21:15:09 | evan | which is what you want to do |
| 21:15:10 | brixen | bakkdoor: the few insns that don't have docs in that file are easy to understand |
| 21:15:24 | bakkdoor | evan: that would be cool, yes :) |
| 21:15:29 | brixen | but yes, we need more docs |
| 21:15:55 | bakkdoor | brixen: yeah, in the doc/vm/ directory i found several things that seemed to be outdated |
| 21:15:56 | evan | it's really trivial. |
| 21:16:09 | evan | bakkdoor: yeah, doc/vm is pretty outdated now. |
| 21:16:15 | brixen | bakkdoor: yep, that dir is especially outdated |
| 21:16:25 | evan | we moved faster than I wanted to keep the docs up to date. |
| 21:16:29 | evan | since we're now post 1.0 |
| 21:16:35 | evan | it makes sense for me to codify a number of these things. |
| 21:16:40 | slava | hi evan |
| 21:16:43 | brixen | bakkdoor: bin/rbx compile -ABS some_ruby.rb will teach you a lot |
| 21:16:46 | evan | dr. slava. |
| 21:16:48 | bakkdoor | evan: sure, no problem. i always lack behind in documentation as well.. |
| 21:17:02 | brixen | bakkdoor: also note the -N option to compile |
| 21:17:09 | brixen | bakkdoor: bin/rbx compile -h |
| 21:17:16 | bakkdoor | brixen: thanks! |
| 21:17:49 | brixen | bakkdoor: write a ruby method that computes what you'd like to compute and look at the bytecode (-B) |
| 21:18:00 | bakkdoor | brixen: yeah, I'll do that |
| 21:18:04 | brixen | bakkdoor: also, note that script bodies and class/module bodies are just methods |
| 21:18:06 | evan | bakkdoor: something to remember |
| 21:18:18 | brixen | bakkdoor: you'll see this plaining in the -B output |
| 21:18:25 | brixen | s/plaining/plainly/ |
| 21:18:26 | evan | bakkdoor: the architecture of rubinius makes no assumptions about ruby syntax |
| 21:18:34 | evan | the VM itself doesn't even know how to read ruby code. |
| 21:18:42 | brixen | yes, good point |
| 21:18:57 | bakkdoor | evan: yeah, i guessed it would be that way. which makes sense |
| 21:19:02 | evan | the parser is in an extension |
| 21:19:19 | brixen | syntax is so ephemeral, just ask slava :) |
| 21:19:23 | bakkdoor | :) |
| 21:19:24 | evan | :D |
| 21:19:38 | bakkdoor | true.. |
| 21:19:52 | brixen | bakkdoor: this is going to be rad, 2 alt langs running on rbx vm by emerg lang conf |
| 21:20:10 | brixen | bakkdoor: we should convince slava to run some Factor on rbx :) |
| 21:20:16 | evan | all our brains work the same, we just choose to use different syntaxs to express the contents of them. |
| 21:20:20 | evan | Rubinius is the same way. |
| 21:20:45 | bakkdoor | brixen: i'll try to get fancy that far, but I can't promise. would rock though :) |
| 21:20:54 | brixen | bakkdoor: I forget, you're in pdx? |
| 21:21:13 | bakkdoor | brixen: yeah, I'll be there from monday till saturday |
| 21:21:24 | brixen | ah ok, but where are you now? |
| 21:21:25 | bakkdoor | brixen: my talk's on thursday |
| 21:21:42 | bakkdoor | brixen: oh, right now i'm in my apartment in osnabrück, germany :) |
| 21:21:57 | brixen | hah, ok, I guess meeting for coffee to work on this is a long shot :) |
| 21:22:04 | brixen | dang |
| 21:22:39 | bakkdoor | yeah.. too bad. but I'll be around in pdx during all of oscon, although I only have a ticket for the 2 days during emerging lang camp |
| 21:22:45 | bakkdoor | but we can meet there as well ;) |
| 21:22:57 | brixen | yep, definitely |
| 21:23:00 | brixen | do you like beer? |
| 21:23:09 | bakkdoor | I'm german. :P |
| 21:23:11 | bakkdoor | of course! |
| 21:23:12 | brixen | haha |
| 21:23:13 | bakkdoor | :D |
| 21:23:21 | brixen | you'll probably be impressed by a few here |
| 21:23:45 | bakkdoor | cool, I always like trying out new beers |
| 21:24:45 | brixen | so, if you look at eg lib/compiler/compiler.rb self.compile, you can see the basic pipeline |
| 21:24:59 | bakkdoor | ok, cool. will do |
| 21:25:15 | slava | I'm looking forward to drinking pdx beer |
| 21:25:15 | brixen | then look at lib/compiler/stages.rb |
| 21:25:22 | brixen | slava: yay! |
| 21:26:14 | brixen | bakkdoor: the compiler is basically: MRI parser -> internal parse tree -> callbacks -> ruby AST -> symbolic bytecode -> encoded bytecode -> .rbc |
| 21:26:43 | brixen | bakkdoor: lib/melbourne/processor.rb contains the methods called to convert the parse tree to the AST |
| 21:26:53 | bakkdoor | brixen: yeah, that's what I also got so far after reading through some docs |
| 21:26:58 | brixen | ok |
| 21:27:00 | bakkdoor | brixen: ok thanks |
| 21:27:14 | brixen | the bytecode(g) method on the AST nodes is probably where you would start |
| 21:27:27 | brixen | since I assume you have your own parser |
| 21:27:29 | BrianRice-work | slava, ping me when you'll be around |
| 21:27:39 | slava | for sure |
| 21:27:55 | brixen | BrianRice-work: totally, we have to all hang out |
| 21:28:10 | brixen | is stoked something interesting is in pdx for once |
| 21:28:17 | BrianRice-work | I need to figure out which days to take off of work for OSCON |
| 21:28:46 | BrianRice-work | that's not dominated by stinky hipster nerds... oops, did I say that aloud? ;) |
| 21:28:52 | brixen | haha |
| 21:29:01 | bakkdoor | brixen: yeah I've got a bison parser right now. but I actually wan't to rewrite it in fancy somehow. we'll see. maybe for now sticking to it makes most sense. we'll see |
| 21:29:19 | evan | brixen: looks like we might have broken running .rbc files raw. |
| 21:29:28 | bakkdoor | brixen: but it shouldn't be too hard since my grammar isn't nearly as hard to parse then ruby's ;) |
| 21:29:30 | brixen | evan: yep, needs to check for the ext |
| 21:29:58 | brixen | evan: quick fix in loader.rb to just recognize the file ends in .rbc |
| 21:30:22 | brixen | some ppl don't want .rbc files, some want to run them directly |
| 21:30:27 | brixen | the world is so mixed up... |
| 21:30:28 | brixen | :) |
| 21:30:43 | evan | :D |
| 21:30:49 | evan | can i use load? |
| 21:31:05 | brixen | we could make it recognize .rbc sure |
| 21:31:07 | evan | hm, that doesn't work either. |
| 21:31:19 | brixen | no, directly loading doesn't work atm |
| 21:31:23 | evan | i'm looking for something that works now. |
| 21:31:24 | brixen | I didn't implement it |
| 21:31:25 | evan | lets see... |
| 21:32:22 | slava | I'm not sure what to talk about at emerginglangs |
| 21:32:35 | BrianRice-work | slava, you're not alone |
| 21:33:03 | BrianRice-work | although if you want to pitch Factor, or just tell stories about it, that's probably appropriate |
| 21:33:04 | bakkdoor | i'm not sure what not to talk about.. ^^ |
| 21:33:34 | slava | BrianRice-work: the problem is more that its hard to make a 20 minute talk memorable |
| 21:33:57 | brixen | slava: gotta focus on your *one* takeaway |
| 21:34:04 | slava | fish and chips? |
| 21:34:08 | BrianRice-work | oh, agreed. I'm surprised you have the same timeslot size that I do |
| 21:34:14 | brixen | even expecting one thing to be remembered from a 45min talk is optimistic |
| 21:34:17 | slava | BrianRice-work: everyone has the same timeslot |
| 21:34:51 | brixen | slava: evan made 10 min talk memorable, ask him for some ideas :) |
| 21:35:05 | dbussink | brixen: i haven't been surprised much in the usa, unless you count surprises that it wasn't as bad as i thought ;) |
| 21:35:06 | slava | what did you talk about evan? |
| 21:35:09 | dbussink | beer wise |
| 21:35:10 | brixen | they might include a band and a suit... |
| 21:35:20 | BrianRice-work | so, it's like a set of lightning talks. hm |
| 21:35:22 | brixen | dbussink: haha, you kid |
| 21:35:39 | brixen | dbussink: how much beer did you have in pdx? |
| 21:36:44 | brixen | dbussink: you definitely have to go to the right places, there's plenty of places to get PBR even in pdx |
| 21:36:45 | dbussink | brixen: i've a few actually |
| 21:37:07 | dbussink | brixen: you should give me a tour then whenever i'm there again :) |
| 21:37:20 | brixen | dbussink: definitely! :) |
| 21:38:23 | evan | bakkdoor: http://gist.github.com/447537 |
| 21:38:40 | evan | we need to cleanup the loader situation, but thats easy. |
| 21:38:42 | dbussink | brixen: but i'm going to get some sleep :) |
| 21:39:23 | brixen | dbussink: good plan, night! :) |
| 21:39:44 | bakkdoor | evan: cool, thanks |
| 21:40:10 | evan | bakkdoor: check out lib/compiler/generator.rb for all the methods on g. that you can use to generate bytecode |
| 21:40:32 | bakkdoor | evan: alright :) |
| 21:41:07 | evan | thats the exact same API that our normal compiler uses |
| 21:41:19 | evan | so you can check out lib/compiler/ast/* for examples of driving g |
| 21:43:50 | slava | sbryant's hostname is "slavasaur.com"? |
| 21:47:47 | bakkdoor | evan: i get an error when running the loader.rb file: http://gist.github.com/447553 |
| 21:48:02 | evan | you have to pass it a file to load |
| 21:48:09 | evan | the file that generator.rb outputs |
| 21:48:15 | evan | rbx loader.rb raw.rbc |
| 21:48:17 | evan | for instance. |
| 21:49:16 | bakkdoor | ah ok. thought that was what the "script.file_path = "output/raw.rbc"" line was for in loader.rb |
| 21:49:24 | evan | nope |
| 21:50:15 | bakkdoor | ok thanks :) |
| 22:44:43 | evan | tmm1: you around? |
| 22:46:11 | tmm1 | sup |
| 22:46:28 | evan | did you do the web site of memprof.com? |
| 22:46:55 | tmm1 | yea |
| 22:47:21 | evan | would you mind if a borrowed some of the concepts? |
| 22:47:28 | evan | i'm working on a heap dump viewer |
| 22:47:38 | evan | on the right expanding panels idea is quite nice for doing that |
| 22:48:15 | tmm1 | yea that works well, feel free to copy. i copied that mostly from how the iphone navigation controller |
| 22:48:34 | evan | ok, thanks a bunch |
| 22:48:45 | evan | i'm a rookie web dev at this point |
| 23:09:11 | tarcieri | lol crazy |
| 23:54:21 | brixen | meh, I have a cold |
| 23:54:56 | evan | :( |
| 23:54:58 | brixen | after a short nap, my room is spinning |
| 23:55:06 | brixen | so, I'm going to have another |
| 23:55:44 | brixen | evan: how's the heap dump viewer going? |
| 23:55:51 | evan | ok |
| 23:55:52 | brixen | can't wait to play with it |
| 23:55:54 | brixen | sweet |
| 23:55:56 | evan | my rails knowledge blows. |
| 23:55:58 | evan | though. |
| 23:56:10 | brixen | so does most people's :) |
| 23:59:13 | evan | :D |