Show enters and exits. Hide enters and exits.
| 00:01:31 | wycats | brixen: evan reported that he couldn't repro the -P |
| 00:01:35 | wycats | did you say that you could? |
| 00:01:46 | wycats | (I thought you were able to last night) |
| 00:54:47 | brixen | wycats: use -P0 |
| 00:54:52 | brixen | I'll fix -P |
| 00:54:55 | brixen | ignore evan |
| 00:55:47 | wycats | brixen: k :) |
| 00:57:26 | brixen | wycats: but evan has a good point in the comment, in the future put that info in the ticket |
| 00:58:28 | wycats | brixen: I was mainly just writing up a ticket late at night to remind you ;) |
| 00:58:33 | wycats | since you said you could reproduce |
| 01:02:07 | brixen | understood |
| 01:02:11 | brixen | but still |
| 01:03:53 | brixen | so have_func('rb_str_set_len') is failing in mysql ext because we don't create a librubinius for the discovery code to link against |
| 01:18:37 | mistergibson | merry christmas |
| 01:18:54 | brixen | likewise |
| 01:19:06 | mistergibson | is CFLAGS back to normal, or do I have to pass a countermand to -Wall ? |
| 01:19:28 | brixen | I removed -Wall from rbconfig.rb |
| 01:19:33 | mistergibson | ok |
| 01:19:37 | mistergibson | thanks |
| 01:19:55 | brixen | I'm working on getting mysql to install |
| 01:20:00 | mistergibson | cool |
| 01:39:39 | wayneeseguin | evan / brixen Merry Xmas :). For when you're around: https://gist.github.com/51c11db9cbb906470333 |
| 01:47:03 | brixen | wayneeseguin: please file a ticket |
| 01:47:19 | wayneeseguin | brixen: ok so that's a legit bug? |
| 01:47:27 | wayneeseguin | (Making sure it's not me doing something dumb ;)) |
| 01:49:44 | brixen | I have no idea what you are doing ;) |
| 01:50:14 | wayneeseguin | brixen: installing rbx head via rvm is all |
| 01:50:19 | wayneeseguin | That's the `rake install` step |
| 01:51:05 | brixen | but you are using 1.8.7p284 |
| 01:51:25 | wayneeseguin | brixen: correct |
| 01:51:26 | brixen | does it work with 1.8.6, 1.8.7p174 |
| 01:51:32 | wayneeseguin | brixen: I'll try |
| 01:51:33 | brixen | p248 but whatever |
| 01:51:40 | brixen | does it work without using rvm |
| 01:51:50 | brixen | I don't know these things, so I can't tell you ;) |
| 01:51:53 | wayneeseguin | hehe |
| 01:52:07 | wayneeseguin | It IS possible that something changed in p248 that broke it |
| 01:52:21 | brixen | I don't even know what OS you are on |
| 01:52:23 | wayneeseguin | That's the only thing I changed in rvm was to update the default 1.8.7 to the latest |
| 01:52:26 | wayneeseguin | OSX |
| 01:52:30 | brixen | SL L? |
| 01:52:33 | wayneeseguin | SL |
| 01:52:41 | brixen | k |
| 01:52:43 | wayneeseguin | I'll try it against the older 1.8.7 |
| 01:52:48 | brixen | I don't have SL installed yet |
| 01:52:51 | wayneeseguin | If it works then I'll simply hard code it in |
| 01:52:58 | wayneeseguin | to use the older for rbx |
| 04:50:08 | slava | hi |
| 07:07:51 | wycats | brixen: appreciate you always RT'ing my posts :) |
| 07:08:00 | brixen | heh |
| 07:08:05 | brixen | you have good things to say |
| 07:08:07 | wycats | just noticed I'm not following you! |
| 07:08:10 | wycats | follows |
| 07:08:11 | wycats | hehe yeah |
| 07:08:16 | wycats | "rbx is fast" <- RT! |
| 07:08:23 | brixen | heh |
| 07:10:44 | slava | hi brixen |
| 07:11:40 | brixen | hey slava |
| 07:11:59 | brixen | I really want to convert my blog to use jekyll |
| 07:12:20 | brixen | I think I'll write a comments mananger in rails3 and run it on rbx :) |
| 07:20:15 | wycats | brixen: do it |
| 07:20:21 | wycats | we need to get Rails 3 running smoothly on rbx |
| 07:20:31 | wycats | if you guys want to do a couple days sprint after Rails 3 beta Carl and I are up for it |
| 07:20:43 | brixen | when is that? |
| 07:20:46 | wycats | not sure yet |
| 07:20:51 | brixen | we'll be in SF 17-19 |
| 07:20:55 | brixen | er Jan |
| 07:20:56 | wycats | it's possible |
| 07:21:18 | wycats | we decided to go for a hard, feature-complete beta instead of an alpha |
| 07:21:25 | brixen | cool |
| 07:21:40 | brixen | that sounds like the better idea |
| 07:22:27 | wycats | yeah |
| 07:22:31 | wycats | so late Jan probably |
| 07:22:42 | wycats | we may have time mid-Jan to look at rbx bugs |
| 07:22:56 | brixen | cool |
| 16:33:48 | Defiler | brixen: Does Jekyll have a built-in preference for a commenting system? |
| 16:49:58 | rue | Defiler: None |
| 16:50:06 | rue | It is a static generator |
| 16:50:16 | rue | And it forces you to use Liquid, ergo it sucks |
| 20:51:24 | fynn | hey |
| 20:51:40 | fynn | what's the best article / blog-post to get up to speed with the current state of the project? |
| 20:57:46 | cremes | fynn: check out posting on engineyard.com/blog |
| 20:59:21 | fynn | cremes: thanks. |
| 20:59:27 | brixen | fynn: I may just be able to answer your questions |
| 20:59:32 | brixen | what are you curious about? |
| 20:59:44 | fynn | brixen: implementation state of the compiler. |
| 20:59:55 | brixen | oh well there is a post on that : |
| 20:59:57 | brixen | :) |
| 20:59:59 | brixen | sec... |
| 21:00:17 | brixen | http://www.engineyard.com/blog/2009/improving-the-rubinius-bytecode-compiler/ |
| 21:00:30 | brixen | that's just about the bytecode compiler |
| 21:00:43 | fynn | brixen: wow, pretty awesome. |
| 21:00:50 | brixen | evan is hopefully going to do one on the JIT soon |
| 21:00:52 | cremes | would i lie? ;) |
| 21:01:02 | brixen | cremes: heh, no you would not :) |
| 21:01:16 | cremes | heh |
| 21:01:43 | fynn | brixen: that's really cool. link me any similar posts if there are such. also, what's the compatibility state vis-a-vis Ruby 1.8.7 and 1.9.1? |
| 21:02:45 | brixen | we are 1.8.7 compatible |
| 21:03:00 | brixen | there is a one_nine branch where we will work on 1.9.2 compatibility |
| 21:03:10 | brixen | it will be a separate build always though |
| 21:03:55 | brixen | fynn: at the bottom of the post I linked you, check out the related posts |
| 21:04:06 | fynn | brixen: great, thanks a lot. |
| 21:04:06 | brixen | the 5 things post is a good overview |
| 21:04:18 | brixen | the book tour is interesting if you want to delve into stuff |
| 21:04:37 | brixen | and the from text to bytecode is evan's overview of compilation |
| 21:04:40 | fynn | I sometimes wish I could just leave everything and go work on such cool stuff in engineyard :( |
| 21:05:28 | brixen | well, you can always work on it :) |
| 21:05:52 | brixen | I worked on rbx for a year before getting hired by engineyard |
| 21:06:57 | Zoxc | brixen: It seems like Rubinius complains about the stack getting screwed up if I try to compile the test code |
| 21:07:15 | fynn | brixen: yeah, it's just that I'm already deeply involved in a different field :) |
| 21:07:16 | brixen | Zoxc: yes it does |
| 21:07:29 | brixen | fynn: oh, what do you do? |
| 21:07:38 | brixen | fynn: and do you use ruby in that field? |
| 21:07:47 | fynn | brixen: bioinformatics, and not right now. |
| 21:07:59 | brixen | fynn: oh, fun |
| 21:08:12 | brixen | well, we'd be interested in hearing how ruby might work there |
| 21:08:22 | brixen | and we can do a lot to make ruby faster |
| 21:08:57 | fynn | exactly. Rubinius interests me since it may eventually make Ruby fast enough for our needs. |
| 21:09:10 | fynn | brixen: how about space efficiency btw? |
| 21:09:32 | brixen | good question, we have some instrumenting in the GC and we'll be adding more |
| 21:09:51 | brixen | basically, we have the facility to monitor and soon tweak the GC via a remote process |
| 21:09:59 | brixen | using BERT rpc |
| 21:10:18 | fynn | this is really cool... how are you finding LLVM? |
| 21:10:20 | brixen | so, the question would be, throw some processing at it and see what you get |
| 21:10:25 | brixen | LLVM is awesome |
| 21:10:30 | brixen | except it takes forever to build |
| 21:10:36 | fynn | yeah, C++ :( |
| 21:10:43 | brixen | but we have pre-built versions on major platforms for folks to use |
| 21:10:47 | brixen | what OS are you on? |
| 21:10:51 | fynn | speaking of which, do you have much trouble reading sources? |
| 21:11:00 | brixen | the LLVM source? |
| 21:11:04 | fynn | Linux and OS X |
| 21:11:06 | fynn | yup |
| 21:11:27 | fynn | (mostly Linux for the really heavy processing) |
| 21:11:28 | brixen | I haven't done much with llvm and the jit yet, that's all evan atm |
| 21:11:48 | fynn | how is writing C extensions going to be different for Rubinius vs. YARV? |
| 21:11:53 | brixen | so, you should be able to build rbx and use a prebuilt llvm on linux and osx |
| 21:11:59 | brixen | just pull head and run ./configure |
| 21:12:11 | brixen | we support MRI C exts as much as we can |
| 21:12:19 | brixen | we already run a lot of them |
| 21:12:31 | fynn | cool, so the API is going to be similar |
| 21:12:32 | brixen | we don't have a separate API for Rubinius |
| 21:12:40 | brixen | we just support the MRI C-API |
| 21:12:45 | fynn | have you heard of Cython btw? |
| 21:12:50 | brixen | we also have FFI |
| 21:13:10 | fynn | brixen: this FFI? I'm wondering if there's |
| 21:13:13 | brixen | yeah, I've seen cython |
| 21:13:16 | fynn | err, http://github.com/ffi/ffi |
| 21:13:28 | brixen | we have our own FFI built in |
| 21:13:50 | fynn | do you think it would make sense for a project like Cython to be done for Ruby? |
| 21:13:50 | brixen | we started it and wmeissner built it out for jruby and MRI |
| 21:13:53 | Zoxc | wonders how much faster than gcc clang builds LLVM |
| 21:14:01 | brixen | fynn: I don't really |
| 21:14:13 | fynn | interesting, why not? |
| 21:14:15 | brixen | fynn: also, we're trying to make Ruby fast enough that you don't need C exts |
| 21:14:31 | fynn | brixen: if you succeed in that, it would be amazing. |
| 21:14:38 | brixen | for actually interfacing with a C lib, use FFI for starters |
| 21:14:52 | fynn | go on... |
| 21:14:53 | brixen | fynn: we have extremely fast FFI calls to C lib functions |
| 21:15:08 | brixen | the data conversions and C call are done inline |
| 21:15:11 | brixen | by the JIT |
| 21:15:26 | fynn | what if I want to write Ruby extension modules in syntax that's as close as possible to Ruby's? |
| 21:15:38 | fynn | (that's basically what Cython is about for Python) |
| 21:15:44 | brixen | it's not a win in my experience |
| 21:15:56 | brixen | if you are writing C/C++, then write that |
| 21:16:08 | brixen | but we hope to make it rare that you need to |
| 21:16:14 | brixen | however, feel free to experiment |
| 21:16:44 | fynn | I've experimented a bit with Cython, and you can sometimes get a two orders of magnitude performance gain just by adding a few (C-)type annotations |
| 21:17:02 | brixen | but you'd get that writing in C |
| 21:17:02 | fynn | anyways, this is pretty exciting. |
| 21:17:26 | brixen | I don't see the advantage of layering a syntax mismatch on top of C |
| 21:17:29 | brixen | personally |
| 21:17:39 | brixen | but then, I can write C/C++ |
| 21:17:47 | fynn | sure, but writing a Python/Ruby class in C is much more verbose than writing it in Python/Ruby |
| 21:17:52 | brixen | but this mix thing is not Ruby, not C/C++ |
| 21:17:56 | brixen | so you have more to learn |
| 21:18:10 | brixen | evan actually wrote a little language called garnet to do this sort of thing |
| 21:18:17 | brixen | we never did anything with it though |
| 21:18:27 | brixen | cus it's really not worth it I think |
| 21:18:32 | brixen | could be wrong though |
| 21:19:01 | fynn | indeed, but if you already have a 500LOC class in Ruby, and you want to speed it up, adding a few type annotations and recompiling with a Cython-like tool is far cheaper than rewriting the whole class in C |
| 21:19:01 | brixen | fynn: you should check out vm/builtin/*.[hc]pp |
| 21:19:10 | fynn | thanks, will do |
| 21:19:14 | brixen | our C++ code is not particularly verbose |
| 21:19:19 | brixen | it's actually quite clean |
| 21:19:46 | brixen | fynn: you probably don't need to write the 500LOC class in C |
| 21:19:49 | fynn | brixen: I sort of agree with your arguments btw; Cython would actually make much less sense if not for its ultimate goal of taking over the world |
| 21:19:52 | brixen | you write one or two functions in C |
| 21:20:05 | fynn | erm, I meant "full syntax compatibility with Python" |
| 21:20:13 | brixen | there's rarely a point in converting a whole class to C |
| 21:20:20 | fynn | yeah, I agree. |
| 21:20:27 | brixen | the whole class is not a bottleneck |
| 21:20:57 | fynn | Cython's long term goal is actually to create a Python-like language with a few lower-level C-like syntax extensions. |
| 21:20:57 | brixen | we use some C++ primitives solely for performance |
| 21:21:10 | brixen | other primitives actually have to be written in C++ to do their work |
| 21:21:27 | brixen | but the performance ones are actually being replaced by Ruby code as the JIT improves |
| 21:21:28 | fynn | did you have a lot of C++ experience before you started working on Rubinius? |
| 21:21:36 | brixen | not a lot, no |
| 21:21:45 | brixen | a lot of C, but not a lot of C++ |
| 21:21:50 | brixen | the first vm was in C |
| 21:21:51 | fynn | yeah, same here really |
| 21:21:58 | fynn | I know, "shotgun" |
| 21:22:03 | brixen | heh yep |
| 21:22:09 | fynn | and before that something called "Cuby"? :) |
| 21:22:22 | fynn | I used to do Ruby primarily, and followed the project |
| 21:22:28 | brixen | oh, Cuby was the name before Garnet of the ruby syntax for C |
| 21:22:35 | fynn | then I started working in some production companies |
| 21:22:45 | fynn | and the performance issues became a show stopper |
| 21:22:46 | brixen | the vm before shotgun was actually written in Ruby |
| 21:22:50 | brixen | and ran on MRI |
| 21:23:02 | Zoxc | don't forget about Duby :D |
| 21:23:17 | brixen | Zoxc: what's Duby? |
| 21:23:36 | fynn | brixen: my concerns about C++ is the rumors that it can take years to master, even for an experienced C programmer |
| 21:23:43 | Zoxc | http://blog.headius.com/2008/03/duby-type-inferred-ruby-like-jvm.html |
| 21:23:53 | brixen | Zoxc: heh, I know, I was teasing |
| 21:24:01 | fynn | I used C++, and can generally read it, but have no illusions about how much more stuff there is to know there. |
| 21:24:08 | brixen | fynn: nah, just read the effective C++ books |
| 21:24:13 | brixen | it's not that hard |
| 21:24:23 | Zoxc | yeah, I'd be suprised if you missed it =P |
| 21:24:28 | brixen | when ppl talk about mastering C++, they usually mean something like groking Boost |
| 21:24:35 | brixen | I'm not interested in that |
| 21:24:54 | brixen | we use as much C++ as we need to get stuff done well but as simply as possible |
| 21:25:25 | fynn | how do you feel about Templates? :S |
| 21:25:37 | brixen | we use them sparingly |
| 21:25:52 | brixen | for example, we have kind_of<Array>(obj) |
| 21:25:54 | fynn | they're very hard to debug |
| 21:26:01 | Zoxc | I find templates a bit cleaner than macro magic |
| 21:26:04 | brixen | stuff like that has made the code very clean in rbx |
| 21:26:22 | brixen | debugging template errors is painful for sure |
| 21:26:51 | fynn | btw, Rubinius supports continuations, right? |
| 21:27:02 | brixen | it did, but not right now |
| 21:27:15 | brixen | we changed from stackless to using the C stack in the interpreter |
| 21:27:23 | brixen | we have to re-implement continuations |
| 21:27:33 | fynn | the first version did, I recall Evan even wrote a post about how easy it was to get working with Shotgun |
| 21:27:52 | brixen | yeah, continuations are stupid easy with stackless |
| 21:28:06 | fynn | hm, do you have a plan for doing that with the C stack? probably non-trivial |
| 21:28:19 | brixen | it's not as easy but doable, sure |
| 21:28:26 | brixen | we will eventually |
| 21:28:41 | brixen | it's not a feature used in production code much |
| 21:31:46 | fynn | true. anyways, I wonder how YARV supports them. |
| 21:32:12 | brixen | not sure, I'd have to look |
| 21:57:28 | rue | C++ is easy. On the other hand, C++ is very hard. |
| 23:25:16 | fynn | awaits Evan's JIT post. |