Index

Show enters and exits. Hide enters and exits.

00:01:31wycatsbrixen: evan reported that he couldn't repro the -P
00:01:35wycatsdid you say that you could?
00:01:46wycats(I thought you were able to last night)
00:54:47brixenwycats: use -P0
00:54:52brixenI'll fix -P
00:54:55brixenignore evan
00:55:47wycatsbrixen: k :)
00:57:26brixenwycats: but evan has a good point in the comment, in the future put that info in the ticket
00:58:28wycatsbrixen: I was mainly just writing up a ticket late at night to remind you ;)
00:58:33wycatssince you said you could reproduce
01:02:07brixenunderstood
01:02:11brixenbut still
01:03:53brixenso 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:37mistergibsonmerry christmas
01:18:54brixenlikewise
01:19:06mistergibsonis CFLAGS back to normal, or do I have to pass a countermand to -Wall ?
01:19:28brixenI removed -Wall from rbconfig.rb
01:19:33mistergibsonok
01:19:37mistergibsonthanks
01:19:55brixenI'm working on getting mysql to install
01:20:00mistergibsoncool
01:39:39wayneeseguinevan / brixen Merry Xmas :). For when you're around: https://gist.github.com/51c11db9cbb906470333
01:47:03brixenwayneeseguin: please file a ticket
01:47:19wayneeseguinbrixen: ok so that's a legit bug?
01:47:27wayneeseguin(Making sure it's not me doing something dumb ;))
01:49:44brixenI have no idea what you are doing ;)
01:50:14wayneeseguinbrixen: installing rbx head via rvm is all
01:50:19wayneeseguinThat's the `rake install` step
01:51:05brixenbut you are using 1.8.7p284
01:51:25wayneeseguinbrixen: correct
01:51:26brixendoes it work with 1.8.6, 1.8.7p174
01:51:32wayneeseguinbrixen: I'll try
01:51:33brixenp248 but whatever
01:51:40brixendoes it work without using rvm
01:51:50brixenI don't know these things, so I can't tell you ;)
01:51:53wayneeseguinhehe
01:52:07wayneeseguinIt IS possible that something changed in p248 that broke it
01:52:21brixenI don't even know what OS you are on
01:52:23wayneeseguinThat's the only thing I changed in rvm was to update the default 1.8.7 to the latest
01:52:26wayneeseguinOSX
01:52:30brixenSL L?
01:52:33wayneeseguinSL
01:52:41brixenk
01:52:43wayneeseguinI'll try it against the older 1.8.7
01:52:48brixenI don't have SL installed yet
01:52:51wayneeseguinIf it works then I'll simply hard code it in
01:52:58wayneeseguinto use the older for rbx
04:50:08slavahi
07:07:51wycatsbrixen: appreciate you always RT'ing my posts :)
07:08:00brixenheh
07:08:05brixenyou have good things to say
07:08:07wycatsjust noticed I'm not following you!
07:08:10wycatsfollows
07:08:11wycatshehe yeah
07:08:16wycats"rbx is fast" <- RT!
07:08:23brixenheh
07:10:44slavahi brixen
07:11:40brixenhey slava
07:11:59brixenI really want to convert my blog to use jekyll
07:12:20brixenI think I'll write a comments mananger in rails3 and run it on rbx :)
07:20:15wycatsbrixen: do it
07:20:21wycatswe need to get Rails 3 running smoothly on rbx
07:20:31wycatsif you guys want to do a couple days sprint after Rails 3 beta Carl and I are up for it
07:20:43brixenwhen is that?
07:20:46wycatsnot sure yet
07:20:51brixenwe'll be in SF 17-19
07:20:55brixener Jan
07:20:56wycatsit's possible
07:21:18wycatswe decided to go for a hard, feature-complete beta instead of an alpha
07:21:25brixencool
07:21:40brixenthat sounds like the better idea
07:22:27wycatsyeah
07:22:31wycatsso late Jan probably
07:22:42wycatswe may have time mid-Jan to look at rbx bugs
07:22:56brixencool
16:33:48Defilerbrixen: Does Jekyll have a built-in preference for a commenting system?
16:49:58rueDefiler: None
16:50:06rueIt is a static generator
16:50:16rueAnd it forces you to use Liquid, ergo it sucks
20:51:24fynnhey
20:51:40fynnwhat's the best article / blog-post to get up to speed with the current state of the project?
20:57:46cremesfynn: check out posting on engineyard.com/blog
20:59:21fynncremes: thanks.
20:59:27brixenfynn: I may just be able to answer your questions
20:59:32brixenwhat are you curious about?
20:59:44fynnbrixen: implementation state of the compiler.
20:59:55brixenoh well there is a post on that :
20:59:57brixen:)
20:59:59brixensec...
21:00:17brixenhttp://www.engineyard.com/blog/2009/improving-the-rubinius-bytecode-compiler/
21:00:30brixenthat's just about the bytecode compiler
21:00:43fynnbrixen: wow, pretty awesome.
21:00:50brixenevan is hopefully going to do one on the JIT soon
21:00:52cremeswould i lie? ;)
21:01:02brixencremes: heh, no you would not :)
21:01:16cremesheh
21:01:43fynnbrixen: 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:45brixenwe are 1.8.7 compatible
21:03:00brixenthere is a one_nine branch where we will work on 1.9.2 compatibility
21:03:10brixenit will be a separate build always though
21:03:55brixenfynn: at the bottom of the post I linked you, check out the related posts
21:04:06fynnbrixen: great, thanks a lot.
21:04:06brixenthe 5 things post is a good overview
21:04:18brixenthe book tour is interesting if you want to delve into stuff
21:04:37brixenand the from text to bytecode is evan's overview of compilation
21:04:40fynnI sometimes wish I could just leave everything and go work on such cool stuff in engineyard :(
21:05:28brixenwell, you can always work on it :)
21:05:52brixenI worked on rbx for a year before getting hired by engineyard
21:06:57Zoxcbrixen: It seems like Rubinius complains about the stack getting screwed up if I try to compile the test code
21:07:15fynnbrixen: yeah, it's just that I'm already deeply involved in a different field :)
21:07:16brixenZoxc: yes it does
21:07:29brixenfynn: oh, what do you do?
21:07:38brixenfynn: and do you use ruby in that field?
21:07:47fynnbrixen: bioinformatics, and not right now.
21:07:59brixenfynn: oh, fun
21:08:12brixenwell, we'd be interested in hearing how ruby might work there
21:08:22brixenand we can do a lot to make ruby faster
21:08:57fynnexactly. Rubinius interests me since it may eventually make Ruby fast enough for our needs.
21:09:10fynnbrixen: how about space efficiency btw?
21:09:32brixengood question, we have some instrumenting in the GC and we'll be adding more
21:09:51brixenbasically, we have the facility to monitor and soon tweak the GC via a remote process
21:09:59brixenusing BERT rpc
21:10:18fynnthis is really cool... how are you finding LLVM?
21:10:20brixenso, the question would be, throw some processing at it and see what you get
21:10:25brixenLLVM is awesome
21:10:30brixenexcept it takes forever to build
21:10:36fynnyeah, C++ :(
21:10:43brixenbut we have pre-built versions on major platforms for folks to use
21:10:47brixenwhat OS are you on?
21:10:51fynnspeaking of which, do you have much trouble reading sources?
21:11:00brixenthe LLVM source?
21:11:04fynnLinux and OS X
21:11:06fynnyup
21:11:27fynn(mostly Linux for the really heavy processing)
21:11:28brixenI haven't done much with llvm and the jit yet, that's all evan atm
21:11:48fynnhow is writing C extensions going to be different for Rubinius vs. YARV?
21:11:53brixenso, you should be able to build rbx and use a prebuilt llvm on linux and osx
21:11:59brixenjust pull head and run ./configure
21:12:11brixenwe support MRI C exts as much as we can
21:12:19brixenwe already run a lot of them
21:12:31fynncool, so the API is going to be similar
21:12:32brixenwe don't have a separate API for Rubinius
21:12:40brixenwe just support the MRI C-API
21:12:45fynnhave you heard of Cython btw?
21:12:50brixenwe also have FFI
21:13:10fynnbrixen: this FFI? I'm wondering if there's
21:13:13brixenyeah, I've seen cython
21:13:16fynnerr, http://github.com/ffi/ffi
21:13:28brixenwe have our own FFI built in
21:13:50fynndo you think it would make sense for a project like Cython to be done for Ruby?
21:13:50brixenwe started it and wmeissner built it out for jruby and MRI
21:13:53Zoxcwonders how much faster than gcc clang builds LLVM
21:14:01brixenfynn: I don't really
21:14:13fynninteresting, why not?
21:14:15brixenfynn: also, we're trying to make Ruby fast enough that you don't need C exts
21:14:31fynnbrixen: if you succeed in that, it would be amazing.
21:14:38brixenfor actually interfacing with a C lib, use FFI for starters
21:14:52fynngo on...
21:14:53brixenfynn: we have extremely fast FFI calls to C lib functions
21:15:08brixenthe data conversions and C call are done inline
21:15:11brixenby the JIT
21:15:26fynnwhat if I want to write Ruby extension modules in syntax that's as close as possible to Ruby's?
21:15:38fynn(that's basically what Cython is about for Python)
21:15:44brixenit's not a win in my experience
21:15:56brixenif you are writing C/C++, then write that
21:16:08brixenbut we hope to make it rare that you need to
21:16:14brixenhowever, feel free to experiment
21:16:44fynnI'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:02brixenbut you'd get that writing in C
21:17:02fynnanyways, this is pretty exciting.
21:17:26brixenI don't see the advantage of layering a syntax mismatch on top of C
21:17:29brixenpersonally
21:17:39brixenbut then, I can write C/C++
21:17:47fynnsure, but writing a Python/Ruby class in C is much more verbose than writing it in Python/Ruby
21:17:52brixenbut this mix thing is not Ruby, not C/C++
21:17:56brixenso you have more to learn
21:18:10brixenevan actually wrote a little language called garnet to do this sort of thing
21:18:17brixenwe never did anything with it though
21:18:27brixencus it's really not worth it I think
21:18:32brixencould be wrong though
21:19:01fynnindeed, 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:01brixenfynn: you should check out vm/builtin/*.[hc]pp
21:19:10fynnthanks, will do
21:19:14brixenour C++ code is not particularly verbose
21:19:19brixenit's actually quite clean
21:19:46brixenfynn: you probably don't need to write the 500LOC class in C
21:19:49fynnbrixen: 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:52brixenyou write one or two functions in C
21:20:05fynnerm, I meant "full syntax compatibility with Python"
21:20:13brixenthere's rarely a point in converting a whole class to C
21:20:20fynnyeah, I agree.
21:20:27brixenthe whole class is not a bottleneck
21:20:57fynnCython's long term goal is actually to create a Python-like language with a few lower-level C-like syntax extensions.
21:20:57brixenwe use some C++ primitives solely for performance
21:21:10brixenother primitives actually have to be written in C++ to do their work
21:21:27brixenbut the performance ones are actually being replaced by Ruby code as the JIT improves
21:21:28fynndid you have a lot of C++ experience before you started working on Rubinius?
21:21:36brixennot a lot, no
21:21:45brixena lot of C, but not a lot of C++
21:21:50brixenthe first vm was in C
21:21:51fynnyeah, same here really
21:21:58fynnI know, "shotgun"
21:22:03brixenheh yep
21:22:09fynnand before that something called "Cuby"? :)
21:22:22fynnI used to do Ruby primarily, and followed the project
21:22:28brixenoh, Cuby was the name before Garnet of the ruby syntax for C
21:22:35fynnthen I started working in some production companies
21:22:45fynnand the performance issues became a show stopper
21:22:46brixenthe vm before shotgun was actually written in Ruby
21:22:50brixenand ran on MRI
21:23:02Zoxcdon't forget about Duby :D
21:23:17brixenZoxc: what's Duby?
21:23:36fynnbrixen: my concerns about C++ is the rumors that it can take years to master, even for an experienced C programmer
21:23:43Zoxchttp://blog.headius.com/2008/03/duby-type-inferred-ruby-like-jvm.html
21:23:53brixenZoxc: heh, I know, I was teasing
21:24:01fynnI used C++, and can generally read it, but have no illusions about how much more stuff there is to know there.
21:24:08brixenfynn: nah, just read the effective C++ books
21:24:13brixenit's not that hard
21:24:23Zoxcyeah, I'd be suprised if you missed it =P
21:24:28brixenwhen ppl talk about mastering C++, they usually mean something like groking Boost
21:24:35brixenI'm not interested in that
21:24:54brixenwe use as much C++ as we need to get stuff done well but as simply as possible
21:25:25fynnhow do you feel about Templates? :S
21:25:37brixenwe use them sparingly
21:25:52brixenfor example, we have kind_of<Array>(obj)
21:25:54fynnthey're very hard to debug
21:26:01ZoxcI find templates a bit cleaner than macro magic
21:26:04brixenstuff like that has made the code very clean in rbx
21:26:22brixendebugging template errors is painful for sure
21:26:51fynnbtw, Rubinius supports continuations, right?
21:27:02brixenit did, but not right now
21:27:15brixenwe changed from stackless to using the C stack in the interpreter
21:27:23brixenwe have to re-implement continuations
21:27:33fynnthe first version did, I recall Evan even wrote a post about how easy it was to get working with Shotgun
21:27:52brixenyeah, continuations are stupid easy with stackless
21:28:06fynnhm, do you have a plan for doing that with the C stack? probably non-trivial
21:28:19brixenit's not as easy but doable, sure
21:28:26brixenwe will eventually
21:28:41brixenit's not a feature used in production code much
21:31:46fynntrue. anyways, I wonder how YARV supports them.
21:32:12brixennot sure, I'd have to look
21:57:28rueC++ is easy. On the other hand, C++ is very hard.
23:25:16fynnawaits Evan's JIT post.