Show enters and exits. Hide enters and exits.
| 03:13:26 | seydar | good evening, home and french fries |
| 03:14:51 | seydar | i have a question on the general construction of rubinius in its entirety (i'm trying to see where exactly it differs from a traditional compiler) |
| 03:15:44 | seydar | if a compiler has the phases: grammar, lexer, parser, symbol table, generation, emitting, assembly, and runtime |
| 03:16:02 | seydar | what does rubinius/an interpreter have? |
| 03:31:10 | brixen | seydar: an interpreter typically has a lexer, parser that generates a parse tree or AST, then the interpreter proper walks the tree and executes the nodes |
| 03:32:40 | brixen | rbx has a lexer, parser that generates a parse tree, the PT is converted to sexps, which are converted to an AST |
| 03:33:20 | brixen | bytecode is generated from that and executed (in the absence of the jit) by the bytecode interpreter |
| 03:47:03 | seydar | brixen: thank you :-) |
| 03:48:08 | seydar | brixen: what is added to the AST that the sexps don't have? |
| 03:48:17 | seydar | or is it just more easily traversable? |
| 03:50:12 | brixen | right, the latter |
| 03:50:19 | brixen | the sexp step is going away very soon |
| 03:50:25 | slava | http://twitter.com/FactorBuilds |
| 03:50:34 | seydar | good, because it seems to make sense to drop it |
| 03:50:42 | seydar | dudezor! |
| 03:50:51 | seydar | will there be a to_ast method on things then? |
| 03:50:55 | seydar | permission to add that method? |
| 03:50:59 | brixen | slava: cool |
| 03:53:11 | seydar | slava: dudezor! i just realized this: do you not need left recursion in your grammar since things flow oppositely? |
| 03:53:32 | slava | I'm not sure what you mean |
| 03:54:06 | seydar | well like normally when parsing math, for instance, you have to do: digits digit |
| 03:54:17 | seydar | so that things bind more tightly to the left of the equation |
| 03:54:26 | seydar | but since it's opposite in factor |
| 03:54:36 | seydar | you can use right recursion, right? digit digits |
| 03:54:49 | seydar | although i don't think anyone rights a grammar like that anymore |
| 03:54:58 | seydar | but if you WERE |
| 03:56:23 | slava | I don't have a hardcoded grammar |
| 03:56:50 | seydar | how do you do that parsing? |
| 03:57:57 | slava | the parser reads whitespace separated tokens and looks them up in the dictionary, if they have parsing behavior then they take over the parser until some end delimiter |
| 04:26:19 | manveru | :) |
| 04:26:33 | manveru | yay for simplicity |
| 04:35:02 | tonyla | a question for anyone |
| 04:35:24 | tonyla | I'm just starting to look at the rubinius code base and was wondering how you debug kernel methods |
| 05:30:53 | brixen | tonyla_: mostly by code inspection |
| 05:31:03 | brixen | but we have a debugger |
| 05:31:05 | brixen | http://gist.github.com/109866 |
| 05:31:32 | tonyla | ah! |
| 05:31:32 | brixen | it still needs some work since the change away from stackless execution model |
| 05:31:41 | brixen | you can also do obj.__show__ |
| 05:31:51 | brixen | which will bypass kernel methods |
| 05:31:59 | brixen | if you just need to confirm an object |
| 05:32:27 | tonyla | thanks! |
| 05:32:31 | brixen | sure |
| 05:32:36 | tonyla | that's exactly what i needed to poke around |
| 05:32:46 | brixen | excellent |
| 05:33:56 | brixen | btw, I don't believe stepping works right atm |
| 05:39:11 | tonyla | :) that's cool |
| 05:40:10 | tonyla | brixen: one more question:) is there a logger or anything that i can use to debug |
| 05:41:29 | brixen | how do you mean? |
| 05:52:46 | tonyla | i mean |
| 05:52:54 | tonyla | other then debugging is there a way |
| 05:53:05 | tonyla | to output values of variables at runtime |
| 05:53:49 | brixen | not really, but see bin/rbx -h |
| 05:53:59 | tonyla | alright will do thanks for the help again :) |
| 05:54:00 | brixen | you can do -d to show exceptions raised |
| 05:54:11 | brixen | and -dl to show files loaded/compiled |
| 05:54:30 | brixen | mostly you should be familiar with the code |
| 05:54:38 | brixen | the debugger is for checking values |
| 05:54:46 | brixen | or add obj.__show__ |
| 05:55:05 | tonyla | what will that do? |
| 05:55:10 | tonyla | exactly |
| 05:55:34 | brixen | it uses the VM to display an #inspect-ish repr of the obj |
| 05:55:43 | brixen | if you want to avoid kernel methods |
| 05:55:55 | brixen | ie, it works while the kernel is loading even |
| 05:56:06 | brixen | or you can do STDERR.write obj |
| 05:56:13 | brixen | or even p obj in some places |
| 05:56:32 | brixen | obviously, you have to be careful where you print stuff |
| 05:56:52 | brixen | since you could call methods that don't exist yet while the kernel is loading |
| 05:59:59 | tonyla | nothing prints to console when i try any of those methods including __show__ |
| 06:00:32 | brixen | did you type rake build after modifying the files in kernel/** ? |
| 06:01:33 | tonyla | yup |
| 06:01:42 | tonyla | then i do a bin/rbx script.rb |
| 06:02:13 | brixen | does the method you modified get called? |
| 06:02:39 | tonyla | yup |
| 06:02:42 | tonyla | ok |
| 06:02:49 | tonyla | it must have been something |
| 06:02:59 | tonyla | i did wrong on my end |
| 06:03:03 | tonyla | because now it's showing up |
| 06:03:03 | tonyla | :) |
| 06:03:05 | tonyla | sorry |
| 06:03:13 | brixen | n/p |
| 06:05:46 | brixen | bbiab.. |
| 06:20:33 | mkoukoullis | hey all. i cloned the repo and compiled rubinius for the first time yesterday. Avi Bryant inspired me at the JAOO conference. Looking into how I can contribute. |
| 06:54:33 | brixen | mkoukoullis: cool, tell Avi thanks :) |
| 06:54:48 | brixen | mkoukoullis: what are you interested in? |
| 06:56:31 | evan | mkoukoullis: did Avi mention Rubinius? |
| 06:56:41 | evan | if so, i might have to pay him a royalty :D |
| 06:56:59 | brixen | heh |
| 06:57:31 | evan | brixen: how ya doin'? |
| 06:57:51 | brixen | good, about to push the profiler stuff |
| 06:57:54 | brixen | writing docs |
| 06:58:02 | evan | coool |
| 06:58:07 | brixen | and then I'm going to finish the draft of the roadmap |
| 06:58:15 | evan | nice |
| 07:00:55 | evan | i'm watching that PHP compiler talk |
| 07:01:06 | brixen | is that a recent talk? |
| 07:01:26 | brixen | I thought I watched something about using llvm in php |
| 07:01:39 | evan | i guess there is one, roadsend or something |
| 07:01:44 | evan | this doesn't appear to use LLVM |
| 07:01:48 | evan | just curious what they ran into |
| 07:02:20 | brixen | hm, what's the link again? |
| 07:02:33 | evan | http://www.youtube.com/watch?v=kKySEUrP7LA |
| 07:02:38 | brixen | thanks |
| 07:02:41 | evan | they have the same issue as us |
| 07:02:42 | evan | ie, no spec. |
| 07:02:48 | evan | i'm curious if they wrote a spec |
| 07:02:53 | evan | ala us |
| 07:03:35 | brixen | ah, I had this in a tab |
| 07:03:42 | brixen | hadn't watched it |
| 07:04:26 | evan | hah |
| 07:04:34 | evan | he just said our approach is impractical |
| 07:04:35 | evan | sweet. |
| 07:05:06 | evan | wow thats fucked. |
| 07:05:21 | evan | in 5.2.1: 0x9fa0ff0b is an int |
| 07:05:23 | brixen | what exactly is our approach? |
| 07:05:31 | evan | in 5.2.3: 0x9fa0ff0b is a float |
| 07:05:38 | brixen | wow |
| 07:06:26 | evan | our approach == rewrite all the C functions |
| 07:06:46 | evan | PHP is worse, because so many are bindings to external libraries |
| 07:06:48 | evan | and they're builtin |
| 07:07:14 | brixen | ahh |
| 07:07:30 | brixen | I don't think he knows what he's talking about |
| 07:07:44 | evan | he's writing a PHP compiler as his PHd thesis |
| 07:07:45 | brixen | php in php is almost a horrifying thought :P |
| 07:07:51 | evan | yeah |
| 07:07:57 | evan | his system is almost all written in C++ |
| 07:08:01 | evan | so that says a lot about PHP. |
| 07:08:05 | brixen | yeah |
| 07:10:26 | evan | oh fun |
| 07:10:32 | evan | they're compiling PHP into C |
| 07:10:39 | evan | then linking that with the existing PHP functions |
| 07:10:49 | evan | 3) add crushed ice |
| 07:10:51 | evan | 4) blend |
| 07:10:52 | evan | 5) drink! |
| 07:10:55 | brixen | heh |
| 07:11:01 | brixen | 6) code s'more |
| 07:11:50 | evan | yeah, but that drink better be an absinthe margarita! |
| 07:13:02 | brixen | hmm, I think I should limit the # of callers and callees in the graph output |
| 07:13:09 | brixen | it produces gobs of info |
| 07:13:10 | evan | probably |
| 07:13:19 | brixen | maybe the top 10? |
| 07:13:27 | brixen | I've already got it sorting |
| 07:13:39 | evan | pick a sensible default |
| 07:13:43 | evan | and add a config variable for it |
| 07:14:01 | brixen | I'll just reuse the rbx.profiler.full_report |
| 07:14:22 | evan | k |
| 07:15:00 | brixen | 10 looks pretty reasonable based on running rails -h |
| 07:15:07 | evan | k |
| 07:15:14 | brixen | with its 152 million method calls |
| 07:15:44 | evan | hehe |
| 07:15:46 | evan | noice |
| 07:23:24 | brixen | http://gist.github.com/109884 |
| 07:23:29 | evan | hahahahah |
| 07:23:34 | evan | guess what |
| 07:23:38 | brixen | what? |
| 07:23:38 | evan | "5" + true |
| 07:23:40 | evan | is in PHP? |
| 07:23:41 | evan | guess |
| 07:23:46 | brixen | 6 |
| 07:23:49 | evan | yep! |
| 07:23:53 | brixen | oh god |
| 07:24:05 | brixen | I'm guessing php correctly |
| 07:24:07 | brixen | shoot me now |
| 07:24:14 | evan | gotta love loose typing |
| 07:24:20 | brixen | or not |
| 07:24:22 | brixen | :) |
| 07:24:22 | evan | shoots brixen |
| 07:24:30 | brixen | falls in his tea |
| 07:24:35 | evan | hehe |
| 07:24:35 | brixen | death by green tea |
| 07:24:38 | brixen | not so bad |
| 07:24:46 | evan | could be a lot worse. |
| 07:24:54 | brixen | could be death by php! |
| 07:25:10 | evan | huh |
| 07:25:15 | evan | you can't redefine a function in PHP |
| 07:25:22 | evan | for all the crazy dynamic shit |
| 07:25:26 | evan | thats pretty weird. |
| 07:25:57 | brixen | gotta have a fixed point somewhere |
| 07:26:36 | evan | thats like wearing assless pants around the mall and saying "no way am I going to eat an icecream cone at the same time!" |
| 07:26:49 | brixen | haha |
| 07:27:13 | brixen | so, the cool thing about this graph output, the lines about the "primary" line are callers |
| 07:27:25 | evan | after you commit that |
| 07:27:34 | evan | lets have a quick video call to have you explain it to me |
| 07:27:36 | brixen | the called field on the left adds up to the calls to the primary method in the entry |
| 07:27:41 | brixen | ah ok |
| 07:27:48 | evan | i think i get it |
| 07:27:50 | evan | but I want to be sure |
| 07:27:52 | brixen | maybe in the morning :) |
| 07:27:54 | brixen | sure |
| 07:27:58 | evan | sounds good. |
| 07:28:29 | brixen | I'm going to push it, you can read the docs, then we can clarify them after the call |
| 07:28:37 | evan | sounds good. |
| 07:28:40 | brixen | k |
| 07:28:56 | evan | i'm cleaning up our CallFrame a little |
| 07:29:01 | evan | got is_block removed |
| 07:29:01 | evan | yay |
| 07:29:32 | brixen | cool |
| 07:32:32 | brixen | interesting, take a look at that gist, 3rd entry from the top String#[] |
| 07:32:41 | evan | which gist? |
| 07:32:46 | brixen | sec.. |
| 07:32:50 | brixen | http://gist.github.com/109884 |
| 07:33:05 | brixen | only 7604 are calls to Rubinius::ByteArray#[] |
| 07:33:58 | brixen | most of the calls to String#[] are from MatchData#pre_match_from |
| 07:35:11 | boyscout | Make new_hash helper smarter. - bb46a59 - Brian Ford |
| 07:35:11 | boyscout | Added gprof-style graph output to profiler. - b28627e - Brian Ford |
| 07:35:11 | boyscout | More docs for the profiler. - 1143fb2 - Brian Ford |
| 07:35:11 | boyscout | Limit the # of callers/callees in graph output. - d32a63e - Brian Ford |
| 07:36:39 | brixen | hm Array#compact |
| 07:37:06 | brixen | well, it is obvious we need some serious algorithm audits in kernel |
| 07:38:32 | brixen | ahh [18] Array#compact called from String#split |
| 07:42:21 | boyscout | CI: d32a63e success. 2647 files, 10179 examples, 32469 expectations, 0 failures, 0 errors |
| 07:45:00 | evan | really? |
| 07:45:02 | evan | yikes. |
| 07:45:06 | brixen | added the flat output at the bottom for comparison http://gist.github.com/109884 |
| 07:45:08 | evan | i guess i shouldn't be too surprised. |
| 07:45:32 | evan | why is #push calling #each in Array... |
| 07:45:44 | brixen | to avoid all the items on the stack |
| 07:46:06 | brixen | I had the same question |
| 07:46:09 | evan | ah |
| 07:46:11 | brixen | but I remember it |
| 07:46:15 | evan | because push takes any number of args. |
| 07:46:18 | brixen | right |
| 07:46:26 | evan | probably a good idea to just do |
| 07:46:29 | evan | if args.size == 1 |
| 07:46:30 | brixen | we changed it during rails 1.0 |
| 07:46:33 | evan | self << args[0] |
| 07:46:34 | brixen | yeah |
| 07:46:34 | evan | else |
| 07:46:39 | evan | <use each > |
| 07:46:39 | evan | end |
| 07:48:00 | brixen | or use #concat |
| 07:48:16 | evan | yeah, that would be better. |
| 07:48:43 | brixen | well, we've got the tools now to fix this stuff up |
| 07:48:51 | evan | yep |
| 07:48:55 | brixen | and the infrastructure it focus on it |
| 07:48:57 | evan | like we were talking about with String |
| 07:49:07 | brixen | s/it/to/ |
| 07:49:12 | evan | makes me wonder if doing Array via auto-flattening chunks would help |
| 07:49:24 | brixen | probably |
| 07:50:36 | evan | what are the [] after the entries? |
| 07:50:45 | brixen | index of the method |
| 07:50:53 | evan | index? |
| 07:50:54 | brixen | so you can cross-reference |
| 07:50:54 | evan | into what? |
| 07:50:57 | evan | oh oh |
| 07:51:00 | evan | in THIS output |
| 07:51:02 | brixen | yeah |
| 07:51:08 | evan | so [0] is "not listed" |
| 07:51:12 | brixen | if [0], the method is not listed |
| 07:51:15 | brixen | as a primary entry |
| 07:51:27 | evan | if it's [0], can we just not output it? |
| 07:51:36 | brixen | could |
| 07:52:06 | brixen | it would make the format more complicated |
| 07:52:19 | evan | ok, nm. |
| 07:52:20 | evan | just curious |
| 07:52:50 | brixen | this highlights why we need realistic benchmarks too |
| 07:53:07 | brixen | all that Array optimizing dgtized did didn't hit any of this |
| 07:53:40 | brixen | well, maybe not any, but definitely left a gap |
| 07:54:57 | evan | what did he optimize? |
| 07:57:12 | brixen | mm, dun recall specifics |
| 07:57:15 | brixen | stuff :) |
| 07:57:20 | evan | :D |
| 07:57:23 | evan | good enough! |
| 07:57:27 | brixen | heh |
| 07:58:42 | brixen | running the rdoc 2.4.3 tests, see how far they get |
| 07:58:56 | evan | neat |
| 08:00:19 | brixen | hm, not very far |
| 08:00:26 | brixen | wants miniunit/autorun |
| 08:00:40 | evan | it does? |
| 08:00:40 | brixen | minitest that is |
| 08:00:41 | evan | ug. |
| 08:00:44 | brixen | yeah |
| 08:00:46 | brixen | lovely |
| 08:00:48 | evan | ok |
| 08:01:44 | brixen | I thought we had minitest bundled? |
| 08:02:47 | evan | i might have accidentally fully removed it |
| 08:02:51 | evan | rather than just removing it's test/unit shim |
| 08:03:53 | brixen | 275 tests, 726 assertions, 0 failures, 0 errors, 0 skips |
| 08:03:55 | brixen | :D |
| 08:04:33 | brixen | took 4.778900 seconds to run and a minute to load everything |
| 08:05:19 | brixen | I installed the minitest gem |
| 08:05:24 | evan | yay |
| 08:05:27 | evan | thats even better. |
| 08:06:16 | brixen | yeah |
| 08:11:19 | evan | hey! |
| 08:11:20 | evan | woo! |
| 08:11:23 | evan | he mentioned Rubinius |
| 08:11:37 | evan | at about 53 minutes |
| 08:18:07 | brixen | sweet |
| 10:42:04 | mkoukoullis | evan: brixen: sorry i've been pairing all day in the office on a client project. yeah Avi mentioned rubinius at JAOO in sydney. currently looking into the repo, reading about how you got about specing things. its a pleasant suprise to be reading ruby libraries written in ruby. |
| 18:08:56 | evan | slava: so, I watched that PHP compiler video |
| 18:09:05 | evan | slava: made me down right happy about ruby's semantics :D |
| 19:17:16 | brixen | all righty then |
| 19:17:23 | brixen | evan: roadmap draft sent! |
| 19:17:24 | slava | WAKE UP SHEEPLE |
| 19:17:32 | brixen | looking pretty sexy if I do say so myself |
| 19:17:42 | brixen | slava: yo yo |
| 19:17:44 | slava | me? sexy? thanks |
| 19:17:52 | brixen | that too :) |
| 19:19:53 | headius | yay roadmaps |
| 19:21:45 | evan | brixen: it's awesome. |
| 19:21:52 | brixen | coool |
| 19:21:58 | evan | so where should we put it? |
| 19:22:19 | brixen | website, I think I should work on that a bit |
| 19:22:33 | evan | well, should we migrate it to github finally? |
| 19:22:38 | brixen | yeah |
| 19:22:41 | brixen | definitely |
| 19:22:49 | evan | lets work on that after lunch today |
| 19:22:52 | brixen | ok |
| 19:24:42 | brixen | I think we should wire up 3 benchmarks, too: matrix, rdoc, and core specs |
| 19:24:48 | brixen | and run these at least daily |
| 19:25:08 | brixen | we're about the same distance behind mri in them |
| 19:25:17 | brixen | but they do different stuff |
| 19:25:39 | evan | sounds great |
| 19:26:22 | brixen | ok, 4, rails -h too :) |
| 19:26:41 | evan | heh |
| 19:32:16 | ezmob | where's this roadmap? |
| 19:32:38 | brixen | ezmob: we're going to put it on the website |
| 19:32:45 | ezmob | ahh cool |
| 19:32:49 | ezmob | bnice getting to hang with you guys |
| 19:32:52 | brixen | it's a draft evan and I have been working on |
| 19:32:55 | ezmob | s/b/was/ |
| 19:32:56 | brixen | totally |
| 19:33:10 | evan | ezmob: yep! hope you're enjoying your winnings :D |
| 19:33:18 | ezmob | ;) |
| 20:01:37 | seydar | OT: for those interested in RSA fun and factoring: http://preview.tinyurl.com/pt3ge9 |
| 20:05:46 | dgtized | brixen: I'm pretty certain there are a lot more of benchmark cases for array and string that I did not test, most of the optimizations I applied were simple changes that either moved something into a primitive, or got rid of using a block when a faster loop construct would suffice |
| 20:10:48 | dgtized | so they were basic optimizations that were not targeting edge cases |
| 20:16:01 | evan | new LLVM JIT code is in the llvm-jit branch |
| 20:16:18 | evan | the build process is a little busted on it |
| 20:16:25 | evan | and it needs a custom LLVM patch applied |
| 20:21:13 | macournoyer | yeaaaaaaah! |
| 20:23:30 | ezmob | sweet |
| 20:23:37 | marcandre | exciting |
| 20:23:52 | evan | :D |
| 20:23:59 | macournoyer | breathtaking |
| 20:24:01 | evan | it doesn't compile much yet |
| 20:24:18 | evan | but it's well structured so I can add support for things easily |
| 20:24:24 | evan | which is my goal this week |
| 20:30:29 | brixen | holy crap, 726,000 line diff! :P |
| 20:30:40 | evan | really? |
| 20:30:45 | evan | oh damnit. |
| 20:30:48 | evan | because I deleted llvm |
| 20:30:52 | evan | because I was using an svn version. |
| 20:30:53 | evan | ack. |
| 20:30:55 | brixen | ah |
| 20:31:18 | brixen | ahh yeah, that's it |
| 20:31:28 | evan | i'm not THAT productive |
| 20:31:29 | evan | :D |
| 20:31:36 | brixen | what version of llvm are you using? |
| 20:31:44 | evan | i'm using svn |
| 20:31:53 | brixen | ah head then |
| 20:31:53 | evan | with http://github.com/evanphx/llvm-patches/blob/2c685dbc54ba109dc80af8e8337ce53eac6e558c/jit-info.diff applied |
| 20:31:58 | evan | yeah |
| 20:32:24 | evan | if we "vendor" llvm again, I think what I'll do is have it in a seperate project |
| 20:32:33 | evan | with our patches applied or whatever |
| 20:32:37 | brixen | that's a good idea |
| 20:32:47 | evan | and just wire our Rakefile to clone and build it seperately |
| 20:32:51 | brixen | yeah |
| 20:32:52 | evan | so it can be done once |
| 20:33:16 | headius | does the order of the passes make a difference? |
| 20:33:24 | headius | seems like it could |
| 20:33:33 | evan | a LOT |
| 20:33:37 | evan | it makes a major difference |
| 20:33:50 | evan | they're run in literally the order you see |
| 20:33:52 | headius | yeah |
| 20:33:53 | evan | which is good |
| 20:33:57 | evan | because you can rerun them |
| 20:34:03 | evan | like the simplifier pass is run multiple times |
| 20:34:07 | headius | so potentially you may need to re-cycle through |
| 20:34:33 | evan | re-cycle? |
| 20:34:52 | headius | run through the full set of passes or subsets of them |
| 20:35:00 | evan | sure |
| 20:35:08 | evan | there will be a bit of tuning on them |
| 20:35:17 | evan | and the ability to introduce different sets |
| 20:35:21 | evan | based on what semantics we need |
| 20:35:25 | evan | speed/quality wise |
| 20:35:56 | evan | the current set is just something I threw together based on looking at other people's sets |
| 20:36:00 | evan | and I added a few to the end |
| 20:36:40 | headius | sure |
| 20:36:58 | headius | hotspot does some number of passes as well |
| 20:38:24 | headius | hmm it occurs to me now I don't remember seeing macruby's compiler set up frame data anywhere |
| 20:38:33 | headius | seeing it in your jit reminded me of that |
| 20:38:35 | evan | it doesn't |
| 20:38:46 | evan | at least, I didn't see it either |
| 20:38:49 | headius | I'm not sure how that's going to continue working for them |
| 20:39:05 | headius | what I've seen so far in roxor is very optimistic |
| 20:39:41 | evan | yeah |
| 20:39:44 | evan | i dunno |
| 20:39:54 | evan | i'm basically taking the interpreter and refactoring parts |
| 20:40:00 | evan | and then making the JIT emit them directly |
| 20:40:05 | evan | like CallFrame |
| 20:40:16 | evan | and the argument handlers |
| 20:40:19 | evan | etc |
| 20:40:31 | headius | yeah |
| 20:40:54 | headius | some of that happens for us already, but we don't do any optimization pass on top of those VM operations ourselves |
| 20:41:03 | headius | so it leaves too much up to hotspot to figure out |
| 20:41:31 | evan | right |
| 20:41:31 | headius | i.e. it will happily inline a dozen calls to frame stuff in a row but the amount of code around them obscures whether they might be redundant |
| 20:41:37 | evan | thus your compiler stuff |
| 20:41:40 | headius | yeah |
| 20:42:43 | evan | ok! lunch time for me. |
| 20:42:51 | evan | I finally put together the dinning table last night |
| 20:42:55 | evan | so I actually have a place to eat now! |
| 20:50:49 | slava | hi evan, good to hear the jit is coming along well |
| 21:29:21 | evan | shoe: thanks! |
| 21:29:23 | evan | er. |
| 21:29:25 | evan | slava: thanks! |
| 21:29:27 | evan | silly keys. |
| 21:47:29 | marcandre | evan: if you have a second, can you change the obsolete topic in #ruby-core? |
| 21:48:02 | evan | can I change ruby-core topics? |
| 21:48:19 | evan | looks like it! |
| 21:54:18 | marcandre | yeah, well, the old one was yours... |
| 21:54:38 | brixen | what is http://github.com/rubinius ? |
| 21:54:58 | slava | evan: are you on a mac? |
| 21:55:09 | marcandre | he he, no, it was something about a meeting last june... |
| 21:55:36 | evan | slava: yep |
| 21:56:14 | brixen | evan: do you know who own the github rubinius account? |
| 21:56:18 | brixen | owns* |
| 21:56:24 | slava | evan: http://factorcode.org/terrain-demo/terrain.dmg |
| 21:56:37 | evan | umm |
| 21:56:42 | slava | take a few hits of tarcieri's bong and give it a shot :) |
| 21:57:58 | brixen | slava: how do I move forward? |
| 22:00:12 | slava | w |
| 22:01:23 | brixen | heh as in forWard, eh? |
| 22:02:02 | slava | the wasd controls are standard for shooters |
| 22:02:12 | brixen | ah |
| 22:02:14 | slava | its from http://duriansoftware.com/joe/The-Factor-game-framework.html |
| 22:02:20 | brixen | well, it doesn't do anything for me |
| 22:02:44 | headius | I think I drove into the sky |
| 22:02:47 | headius | now I can't do anything |
| 22:02:51 | slava | hehe |
| 22:03:16 | brixen | ahh, it's not respecting my keymap |
| 22:03:22 | brixen | I have to use the Qwerty w |
| 22:04:44 | slava | that's how games work; otherwise anyone with drovak would get uselessly unergonomic defaults |
| 22:04:55 | slava | dvorak I guess |
| 22:05:01 | brixen | shows ya what I know about gaming :) |
| 22:05:17 | brixen | I'm traversing the edge of this 2-d terrain |
| 22:05:20 | slava | its just a simple demo of opengl pixel shaders and game input |
| 22:05:40 | slava | the terrain and sky are generated procedurally on the gpu |
| 22:07:13 | brixen | where are the people? I'm all alone in this alien world |
| 22:09:31 | rue | Back home. |
| 22:09:57 | rue | Unintentionally apropos |
| 22:10:08 | slava | lol |
| 22:17:37 | drbrain | I ran off the edge of the world :( |
| 22:33:15 | boyscout | 1.9: Enumerable#each_with_object (new) - 672d5eb - Marc-Andre Lafortune |
| 22:33:15 | boyscout | 1.8.7: Enumerable#find_index (rewrite) - 1a6f3d7 - Marc-Andre Lafortune |
| 22:33:15 | boyscout | 1.8.7: Enumerable#first, #take (new) - 255efdc - Marc-Andre Lafortune |
| 22:33:15 | boyscout | 1.8.7: Enumerable#group_by (fix) - b1677a5 - Marc-Andre Lafortune |
| 22:33:15 | boyscout | 1.8.7: Enumerable#inject (accepts symbol) - 52076cb - Marc-Andre Lafortune |
| 22:35:40 | boyscout | CI: 52076cb success. 2647 files, 10179 examples, 32469 expectations, 0 failures, 0 errors |
| 22:54:48 | brixen | evan: hah, I didn't realize you had gh.rubini.us working already |
| 22:54:49 | brixen | rock |
| 22:55:14 | evan | :) |
| 22:55:44 | brixen | so, I want to keep /doc in the regular repo, but I'll put a copy of it in gh-pages with the rest of the site |
| 22:56:10 | brixen | so it can serve under the rubini.us/doc url |
| 22:56:58 | evan | ok |
| 23:07:00 | evan | brixen: ok, lets work on the website |
| 23:07:15 | evan | just finished submitting my first LLVM patch |
| 23:08:27 | brixen | cool |
| 23:08:48 | brixen | so, I'm just creating the site in the gh-pages branch |
| 23:09:34 | brixen | I'll get the basics from the existing site in and we can update it |
| 23:09:40 | brixen | unless you want a radical departure |
| 23:10:21 | evan | nope |
| 23:10:23 | evan | go for it |
| 23:10:27 | brixen | k |
| 23:10:29 | evan | get it up there and commited |
| 23:10:34 | evan | then we can bounce on editting it |
| 23:11:24 | brixen | yep |
| 23:12:23 | brixen | evan: btw, know who created http://github.com/rubinius ? |
| 23:15:55 | evan | brixen: nope, but we should find out |
| 23:17:36 | brixen | yeah |
| 23:17:48 | brixen | cus if it wasn't you, then it was a troll |
| 23:17:54 | brixen | probably |
| 23:18:11 | evan | it's not me |
| 23:18:52 | brixen | oh look, I'll message them |
| 23:41:30 | boyscout | Fix calling via rbx_simple_send - 3409537 - Evan Phoenix (llvm-jit) |
| 23:41:49 | slava | evan: does your jit compile everything or is there an interpeter fallback? |
| 23:42:11 | evan | it will compile everything |
| 23:42:13 | evan | it doesn't yet |
| 23:52:22 | boyscout | Import of existing rubini.us site. - ee45dd2 - Brian Ford (gh-pages) |
| 23:52:43 | brixen | I like how that reports the branch |
| 23:52:44 | brixen | very nice |
| 23:53:28 | brixen | evan: http://gh.rubini.us/ |
| 23:53:46 | brixen | although, while importing that, I pretty much think it all should go ;) |
| 23:54:10 | evan | sure |
| 23:54:41 | brixen | but, we could now serve rubini.us from that content |
| 23:54:48 | brixen | once you update the cname |
| 23:55:02 | evan | I can change it now |
| 23:55:09 | brixen | sweet |
| 23:58:20 | evan | hm |
| 23:58:23 | evan | maybe I can change it now.... |
| 23:59:44 | evan | hrm. |