Index

Show enters and exits. Hide enters and exits.

09:50:20shingaraHi
09:50:30shingaraCucumber works with rubinius 1.0 ?
09:50:38shingarathe install failed
10:26:26dbussinkshingara: dunno, apparently there's a problem then
10:28:16shingaraok, where I can post this information ?
10:28:21shingaramechanize doesn't works too :(
10:28:38dbussinkshingara: it's best to create an issue on github with as much detail as possible
10:28:48dbussinkshingara: if you can simplify the issue that would be a great help
10:29:07dbussinkshingara: so a specific line / specific lines of code that fail that are used in those gems etc.
10:29:13shingaraon rubinius issue or cucumber etc.. gem
10:29:23shingaraok I try made that
10:31:14dbussinkshingara: the more detailed / specific the information the easier it is to fix
10:32:03shingaraYes it is
10:46:32shingarait's gherkin, not cucumber failed
12:24:26shingaraI hope is more detailled http://github.com/evanphx/rubinius/issues/issue/309
12:59:49shingaraabout C compatibility with other gem there are explain about how made his gem compatible with rubinius and MRI like how use rb_each ?
13:54:03dbussinkshingara: we're still lacking stuff in the c api that we need to add
13:54:15dbussinkshingara: a lot of stuff is easy, but some are not possible to add
13:59:48shingaraI understand, it's a really great effort you do
15:36:29phlebashow do you run the rubinius specs (esp. capi) on other rubies? i'm interestet in running them on other rubies trying to implement (parts of) mri's c-api
15:37:02khaasephlebas: ping brixen
15:37:02phlebastried running them on mri using mspec, however, it finishes without running anything
15:39:35brixenphlebas: you clone rubyspec, gem install mspec, cd rubyspec, mspec -t <some ruby>
15:39:43brixen-tr will find 'ruby' on your path
15:39:54brixenotherwise, give it a full path to an executable
15:40:10khaasebrixen: is capi part of rubyspec?
15:40:15brixennot yet
15:40:36brixenthere are only 2 impl that I know of that have a C-API
15:40:39brixenmri and rbx
15:40:39phlebasyet? are there plans?
15:40:59phlebasi believe macruby has some capi support too
15:41:02brixenif other impls are going to make a compatible c-api, I'll move it to rubyspec
15:41:14brixeninteresting, haven't heard anything from them
15:42:13phlebasand jruby might get some support, too, in the summer of code ;)
15:42:24dkubbit's a new feature in the macruby 0.6 release
15:43:08brixenthe c-api specs are not at all an easy thing to support
15:43:13dkubbit's just the beginning though, it's not complete yet
15:43:16brixenI'll need to rearch them a lot
15:43:34brixensince every impl will complain "I don't want to add this function...."
15:43:51khaasephlebas: cannot find test for capi in macruby repo
15:44:05brixenprobably need to code-gen every single spec so the set can be compiled without errors
15:44:24khaaseyeah, but a common subset would be cool
15:44:35brixencommon subset is undefined
15:44:42brixenand that's my point, undefinable
15:44:49slavaits amazing that rbx can support capi at all
15:45:20brixenbbiab..
15:58:03evanmorning!
15:58:09evanand welcome to the post 1.0 era!
16:03:07brixenmorning!
16:03:29brixenit's like postmodernism on steroids
17:28:29dbussinkevan: recovered from 1.0 partying all weekend? ;)
17:28:34evan:D
17:57:53dwaitegood day everyone
18:00:49evanallo.
18:00:54brixengood day dwaite
18:01:00dwaitehow goes it you two
18:01:09brixengood!
18:01:10dwaitehope you had a nice weekend, you earned it :)
18:01:20dwaiteone weekend off for every major release
18:04:28evanat least!
18:23:03boyscoutExclude info generation from all in libffi. Fixes #286. - d65adb9 - Evan Phoenix
18:31:04boyscoutCI: rubinius: d65adb9 successful: 3457 files, 13597 examples, 41217 expectations, 0 failures, 0 errors
18:32:53toulmeangot a bot ? Where are rubinius CI and all handled ?
18:33:25evantoulmean: yes, thats a bot.
18:33:29evanwe have CI on a linux machine.
18:33:48toulmeanevan: everything's property of Engine Yard ?
18:33:58evanthe CI machine is my own.
18:34:04toulmeanah ok
18:34:16evanwhy?
18:34:21toulmeanevan: you also work with the jruby folks correct ?
18:34:29evanyeah
18:34:42toulmeanevan: because I'm interested. Learning who hosts the CI machine is telling a lot about who owns the project :D
18:34:57toulmeanit's just that. Also it's cool.
18:35:06dwaiteis it still running a customized copy of CI Joe? :)
18:35:11evanyep
18:35:22evanit's on my github
18:35:22toulmeansorry if I looked nosy :)
18:35:30evantoulmean: no prob, just curious why you were curious.
18:35:31toulmeanno hudson ?
18:35:39evanno, not hudson.
18:36:10dwaiteI think I'm going to learn lua
18:50:29brixendwaite: based on the rousing applause, I'd say you're on your own on that one
18:50:37dwaitelol
18:51:08brixenand that is a sentence fraught with misspeling opportunities
18:51:14brixen:)
18:51:19brixencouldn't resist
18:51:43dwaiteyeah, I doubt there would be too much support in here unless it was the #luabinius channel
18:52:02brixenthat sounds... nsfw
18:52:08brixencould just be me though
18:53:21dwaitehmm, trying to figure out why
18:53:25dwaiteperhaps you just have a dirty mind?
18:55:01brixendwaite: that would be some hard-core VM forking action
18:55:10brixenwhat with the registers and stacks all mixing it up
18:55:12brixenso, yeah
18:55:14brixendirty mind
19:20:03boyscoutAdd some specs for read only globals - a23ba86 - Evan Phoenix
19:20:03boyscoutHonor read-only-ness of certain globals. Fixes #283. - 690a921 - Evan Phoenix
19:25:09dbussinkevan: that sinatra one depending is caller is fun heh? ;)
19:25:19evanyeah, genius. :(
19:25:37dbussinkbrittleness to the max
19:26:02dbussinkbut i'm going to play a game of sc2 :)
19:26:53boyscoutEscape slashes in Regexp#to_s output. Fixes #308. - 2557d04 - Evan Phoenix
19:26:54evanhave fun!
19:27:47evani'm getting some lunch.
19:27:59boyscoutCI: rubinius: 690a921 successful: 3457 files, 13603 examples, 41226 expectations, 0 failures, 0 errors
20:12:21dbussinki need more noob opponents in sc2, i suck at it :P
20:24:56fbuilesvdbussink: get me a key and I'll lose for you :)
20:25:58dbussinkfbuilesv: hehe
20:37:31dwaitedbussink: I should play against you then, I'm 11 years rusty
20:41:43dwaitethe rumor is that they are going to consolidate the chat between wow and sc2 before the next ship of both
20:53:18JamesKiltondwaite: no, and there is no rumor. Battle.net integration with WoW comes with the next patch in a few weeks, letting you talk to your BNet certified friends no matter what game they are on
20:56:26nex3What's the Rubinius eval policy?
20:56:54dbussinknex3: eval policy?
20:57:17nex3As in, is #eval supposed to be identical to MRI, or is it made into a keyword or something for efficiency?
20:57:34evannex3: it's the same as MRI.
20:57:37dbussinkit's supposed to be identical to mri
20:58:11nex3Okay, then I've got a bug
20:58:17nex3Let me find a succinct repro
20:58:32nex3Oh wait
20:58:32nex3No
20:58:35nex3I'm probably just being dumb
20:58:37nex3Never mind!
21:01:37cremesevan: will rbx have a capability to "pin" primitive arrays in memory like the JVM? RE: http://www.lkn.ei.tum.de/arbeiten/faq/man/JAVA-tutorial/native1.1/implementing/array.html
21:01:56brixencremes: we can pin Strings atm
21:02:09cremesbrixen: oh yeah?
21:02:15cremesi'll have to look...
21:02:17brixenyes
21:02:24evana pin'd array isn't very useful.
21:02:24brixenwhat do you mean by primitive array?
21:02:30evanbut yes, we can pin Strings
21:03:10cremeshere's why i ask...
21:03:40cremesi'd like to be able to pass a string pointer to an external C lib to avoid copying the data; this is for that 0mq networking lib i am working on
21:03:57cremesit probably doesn't matter for small strings, but for large ones it likely does
21:04:09cremesi'd only need to "pin" it for a few ms
21:04:40cremesbrixen: by primitive, i mean raw bytes like ascii chars
21:04:51brixencremes: yes, we can
21:05:05cremesi'm looking through kernel/common/string.rb
21:05:08cremesis that the right place?
21:05:15brixenit's in the VM/gc
21:05:26brixenyou want to use this from a C ext or FFI?
21:05:29cremesso is it visible from the ruby side?
21:05:35brixenno
21:05:36cremesffi
21:05:56cremesi'd like to pass the pointer via ffi to the ext lib
21:06:05evancremes: where is the string coming from?
21:06:10evanbecause we don't support pin'ing of all strings
21:06:21evanthey have to be located in the mature region
21:06:30evanso either they're old or were allocated directly in the mature region
21:06:34cremesit's likely being built by a json/bert/protocolbuffer/etc ruby library
21:06:51evanok, so it's doubtful that it's able to be pin'd
21:06:53cremes(i'm somewhat enamored with msgpack lately)
21:08:23cremesy'know, not a big deal right now... i can probably get (or patch myself) the C extensions to provide a FFI::Pointer to me; then i can pass it wherever i like
21:08:51cremesassuming the built string is in the lib's native memory
21:09:14cremesi'd have to provide another encoding mode that put the bytes where i need 'em...
21:09:33cremesanyway, i'm kind of putting the cart before the horse so just ignore me while i navel gaze... ;)
21:13:29cyndisis spec/ruby/command_line the appropriate place for a spec that checks if error messages are printed to stderr and not stdout?
21:13:50evancremes: :)
21:14:02evancremes: spec/core/ruby/
21:14:12evaner.
21:14:25evanyes,
21:14:28evanspec/ruby/command_line.
21:14:33cyndisok, thanks :)
21:15:21nex3evan: Is there any better way to pre-allocate a string with unused buffer space than calling #modify! and #data=?
21:15:38brixennex3: String.pattern
21:16:16nex3Ah, gotcha
21:17:48nex3brixen: What's the API?
21:18:28brixenhttp://gist.github.com/404239
21:19:45nex3Hmm
21:19:47cremesevan: i don't have a spec/core/ruby/ in my rbx clone; is that in the rubyspec project?
21:20:00brixencremes: spec/ruby
21:20:01nex3Will that space remain if I use #replace("")?
21:20:10nex3The idea is to use it to concatenate strings without copying costs
21:20:34brixennex3: then you should make a buff and have it be aware of where to write
21:20:38brixenand write directly into the buffer
21:20:51brixenie practically a rope impl
21:21:00evancremes: spec/ruby/command_line
21:21:27nex3I'm trying to maintain basic compatibility with normal strings
21:21:33nex3And I certainly don't want to manage overflow manually
21:21:36cremesanything in particular i should look at in there?
21:21:44brixennex3: are you subclassing String?
21:21:47nex3No
21:21:52cyndisit was me asking about command_line, not cremes :)
21:21:53nex3Just using it
21:22:02nex3I'm basically looking for a way to hint that this string is probably going to be yea big
21:22:04cremesha!
21:22:09brixennex3: are you trying to make this portable, or just run on rbx?
21:22:46evancremes: what are you looking for?
21:22:59nex3Ideally, the string initialization would be rbx-specific but the rest of it would be implementation-independent
21:23:05nex3Basically just a bunch of #concats
21:23:09brixennex3: the idea of String.pattern is to allocate a size and then write into it at locations
21:23:52nex3Yeah, that's not exactly what I'm going for
21:24:00brixennex3: you sound like you want a Roped string, there's a lib for that from one of the ruby quiz challenges
21:24:03brixeniirc
21:24:41nex3Maybe that is the way to go
21:25:01brixenit would not be hard to write a roped impl for rbx
21:25:05brixenin Ruby
21:25:20brixenbut you'd probably not want to do it 1/2 way
21:25:29brixenand you can't just make some methods aware
21:25:47nex3But the concatenation implementation would work decently, and it would support efficient indexing, which ropes don't
21:26:02brixenbasically, a String is a buffer of bytes in a ByteArray
21:26:11nex3And roping would work better if the string didn't have to be accessed intermittently
21:26:13nex3But it does
21:26:46nex3Roping would be *okay*, but really no better than using Array#join
21:27:10brixenthe idea of roping is to avoid the equivalent of Array#join
21:27:26nex3Well eventually you have to do that to get the full string out
21:27:28brixenrandom access would be a range cmp + index rather than straight intex
21:27:39brixendepends what you mean by "get the full string out"
21:27:55brixenwriting a String to IO could just interact with the rope segments
21:28:05brixenagain, I'm talking rbx here
21:28:12nex3No, I mean, I'm letting arbitrary Ruby code work on the string
21:28:16brixenwe've discussed the possibility of doing this
21:28:18nex3And that code's going to assume it acts like a string
21:28:25brixenyes, sometimes you have to do that
21:28:36brixenbut the point would be to avoid it, or only do it at some boundary
21:28:41nex3So it's gotta be converted to an actual string at the end
21:28:54brixenwhen does it really need to be converted though?
21:29:03brixenthat's the question to investigate
21:29:12nex3After a certain number of concatenations
21:29:16brixenwhy?
21:29:40nex3Because at that point it's made available to user code
21:29:46nex3The context is a template engine
21:30:09brixenwell, but what does the template engine do?
21:30:15nex3Think ERB
21:30:25nex3So it builds up a buffer, but every so often arbitrary Ruby code runs that might want to access and modify said buffer
21:30:41nex3And that code will assume it's a string, so it's gotta be converted there
21:30:49brixenno, it doesn't
21:30:54nex3Why not?
21:31:04brixenwhat are the ops it will do on the string?
21:31:37nex3The Ruby code?
21:31:40nex3Anything it wants
21:31:44nex3I have no control over it
21:31:58brixenand it will call methods to do those things
21:32:10brixenI'm saying, you can't have a 1/2 assed roped string
21:32:32nex3Yeah, and it's certainly not worth it to build a full-assed one
21:32:34brixenbut if you make a roped string, you can control a lot about when you must actually create an unsegmented array of bytes
21:32:56brixenand maybe you will never have to in common scenarios
21:33:22nex3Let's assume it's not worth the effort to create and maintain a 100%-API-compatible roped string implementation
21:33:49nex3Given that, it has to be converted to a plain string at these boundary points, and so it's no more useful than Array#join
21:34:06nex3Whereas a preallocated string might be
21:34:40brixenwell, you can grep kernel for how String.pattern is used
21:34:51nex3Although actually, according to the benchmark I just ran, a preallocated string (and Array#join) both perform worse than #{}-interpolation
21:34:51brixenwould be interesting to see a full roped string impl on rbx
21:34:54nex3So maybe it's a moot point
21:39:19brixenevan: did you run into any craziness with Array#initialize_copy when working with rails issues?
21:39:29evannot that I recall.
21:39:33brixenok
21:39:42brixenthe code is a copy of Array#replace
21:39:47brixeneven the comment says so
21:40:00brixenwith the exception of not doing the frozen check right
21:40:05brixenso I was going to alias them
21:43:18evanwhy are people using cl.ly to post logs
21:43:19evanug.
21:45:09boyscoutPrint error messages to stderr instead of stdout. - 2881b47 - Mikko Perttunen
21:45:09boyscoutAdd specs to test where error messages are printed. - 1ee2c50 - Mikko Perttunen
21:45:09boyscoutFix misspellings - 43bb160 - Mikko Perttunen
21:45:09brixenpost logs in issues?
21:45:25evanhttp://github.com/evanphx/rubinius/issues#issue/287
21:45:29evanwho is mikko?
21:45:31brixen#310 looks fun
21:45:44brixenscoopr
21:45:49brixener scoopr is Mikko
21:46:00cyndisno, i am that mikko
21:46:08brixenoh!
21:46:10brixenother Mikko
21:46:16brixenI was going by memory
21:46:17brixenhehe
21:46:17cyndisindeed :)
21:46:26brixeninvasion of the finns
21:46:40brixengets snorkel to fit in
21:47:16evanrue|W: ok mikko
21:47:17evanoh damn!
21:47:18evanexcept you
21:47:19evan:D
21:47:26evandoes occurred really have 2 r's?
21:47:32evanbtw, i love that a finn is correcting my english.
21:47:33cyndisit does
21:47:33brixenyeah
21:47:35evanno really, i love it.
21:48:21cyndisi probably isn't that uncommon for finns to correct native english speaker's spelling :p
21:48:23cyndis+t
21:48:29brixenhah
21:48:36brixenexcept when typing in IRC
21:48:50evanHUBRIS, THY NAME IS cyndis.
21:48:57brixenwoot!
21:48:59evan:D
21:49:07cyndistruly
21:51:52cyndis:<
21:53:08boyscoutCI: rubinius: 43bb160 successful: 3458 files, 13604 examples, 41228 expectations, 0 failures, 0 errors
21:53:09brixencyndis: or: a native speaker's :)
21:53:27cyndisyes
21:53:31brixenway to pick on the poor finn trying to improve the state of English in the world
21:53:34brixen:)
21:53:42cyndis:)
21:54:51cyndisbtw, now that 1.0 is out, are there any plans about librubinius.so?
21:55:11cyndisat least qtruby seems to be quite adamant that it exists
21:56:51brixenyeah, it's on the todo list
21:57:02brixenwe need to publish a new roadmap
21:57:15cyndisok
21:57:15evancyndis: why does qtruby need a shared lib?
21:58:27cyndiswell, e.g. ruby-glfw was appeased by an "empty" (no symbols) librubinius.so, but qtruby makes a libqtrubyshared.so which is not a ruby extension and i couldn't make it ignore the missing functions
21:58:45evanhuh?
21:58:48evanthats confusing
21:58:50cyndisit is
21:58:50evanwhat is it doing?
21:58:56cyndisi'm not quite sure
21:59:02evanlinking ruby into a .so?
21:59:03evanmust be.
21:59:12cyndisit is very complicated and it uses cmake as the build system which is very confusing imho
21:59:15evanif so, thats a whole nother thing.
21:59:22evanwe might have to do something custom for that.
22:05:30cyndisi suppose it uses a shared lib because qtruby actually contains many components (qt, qtwebkit, kde, etc.) which are in separate extensions and they need to share the code
22:05:55evanwell, but extensions usually build that into a .so for ruby to load
22:06:00evansounds like it's doing it in reverse
22:06:06evantrying to get qt to load ruby as a .so
22:07:43cyndisyeah, but because qtruby can build i think over 20 ruby .so's and qt's smoke binding system is quite complex, i guess they separated the common stuff into one .so to save space or something
22:08:07cyndisat least, that's what i'd imagine would be the reason
22:09:02evanhm
23:35:40brixenworking on these Array specs makes me contemplate a cucumber-like framework based on inductively defined sets
23:35:56brixenthat would translate directly into actual code to be executed
23:36:14brixenI know, holy grail of executable specification...
23:36:18evanwhat would it look like?
23:36:28evanGiven cookies
23:36:32evanEvan will write the code
23:36:36evanAnd it will pass the tests
23:36:36evan?
23:36:39brixenlet A be an array. If 1 elt of A, then A.pop == 1
23:36:47brixensomething like that
23:37:10brixeninductive definitions have a basis case, inductive step, closure statement
23:37:28evansolved the nokogiri install crash btw.
23:37:33brixenIf 1 elt of A and A.size == 1, then A.pop == 1
23:37:39brixenoh, nice
23:37:39evanit's a very blush worthy GC bug.
23:37:46brixen:)
23:43:15boyscoutUpdate StackVariable::last_match_ in the GC. Fixes #287. - fa4d2e6 - Evan Phoenix
23:51:23boyscoutCI: rubinius: fa4d2e6 successful: 3458 files, 13604 examples, 41228 expectations, 0 failures, 0 errors