Show enters and exits. Hide enters and exits.
| 09:50:20 | shingara | Hi |
| 09:50:30 | shingara | Cucumber works with rubinius 1.0 ? |
| 09:50:38 | shingara | the install failed |
| 10:26:26 | dbussink | shingara: dunno, apparently there's a problem then |
| 10:28:16 | shingara | ok, where I can post this information ? |
| 10:28:21 | shingara | mechanize doesn't works too :( |
| 10:28:38 | dbussink | shingara: it's best to create an issue on github with as much detail as possible |
| 10:28:48 | dbussink | shingara: if you can simplify the issue that would be a great help |
| 10:29:07 | dbussink | shingara: so a specific line / specific lines of code that fail that are used in those gems etc. |
| 10:29:13 | shingara | on rubinius issue or cucumber etc.. gem |
| 10:29:23 | shingara | ok I try made that |
| 10:31:14 | dbussink | shingara: the more detailed / specific the information the easier it is to fix |
| 10:32:03 | shingara | Yes it is |
| 10:46:32 | shingara | it's gherkin, not cucumber failed |
| 12:24:26 | shingara | I hope is more detailled http://github.com/evanphx/rubinius/issues/issue/309 |
| 12:59:49 | shingara | about 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:03 | dbussink | shingara: we're still lacking stuff in the c api that we need to add |
| 13:54:15 | dbussink | shingara: a lot of stuff is easy, but some are not possible to add |
| 13:59:48 | shingara | I understand, it's a really great effort you do |
| 15:36:29 | phlebas | how 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:02 | khaase | phlebas: ping brixen |
| 15:37:02 | phlebas | tried running them on mri using mspec, however, it finishes without running anything |
| 15:39:35 | brixen | phlebas: you clone rubyspec, gem install mspec, cd rubyspec, mspec -t <some ruby> |
| 15:39:43 | brixen | -tr will find 'ruby' on your path |
| 15:39:54 | brixen | otherwise, give it a full path to an executable |
| 15:40:10 | khaase | brixen: is capi part of rubyspec? |
| 15:40:15 | brixen | not yet |
| 15:40:36 | brixen | there are only 2 impl that I know of that have a C-API |
| 15:40:39 | brixen | mri and rbx |
| 15:40:39 | phlebas | yet? are there plans? |
| 15:40:59 | phlebas | i believe macruby has some capi support too |
| 15:41:02 | brixen | if other impls are going to make a compatible c-api, I'll move it to rubyspec |
| 15:41:14 | brixen | interesting, haven't heard anything from them |
| 15:42:13 | phlebas | and jruby might get some support, too, in the summer of code ;) |
| 15:42:24 | dkubb | it's a new feature in the macruby 0.6 release |
| 15:43:08 | brixen | the c-api specs are not at all an easy thing to support |
| 15:43:13 | dkubb | it's just the beginning though, it's not complete yet |
| 15:43:16 | brixen | I'll need to rearch them a lot |
| 15:43:34 | brixen | since every impl will complain "I don't want to add this function...." |
| 15:43:51 | khaase | phlebas: cannot find test for capi in macruby repo |
| 15:44:05 | brixen | probably need to code-gen every single spec so the set can be compiled without errors |
| 15:44:24 | khaase | yeah, but a common subset would be cool |
| 15:44:35 | brixen | common subset is undefined |
| 15:44:42 | brixen | and that's my point, undefinable |
| 15:44:49 | slava | its amazing that rbx can support capi at all |
| 15:45:20 | brixen | bbiab.. |
| 15:58:03 | evan | morning! |
| 15:58:09 | evan | and welcome to the post 1.0 era! |
| 16:03:07 | brixen | morning! |
| 16:03:29 | brixen | it's like postmodernism on steroids |
| 17:28:29 | dbussink | evan: recovered from 1.0 partying all weekend? ;) |
| 17:28:34 | evan | :D |
| 17:57:53 | dwaite | good day everyone |
| 18:00:49 | evan | allo. |
| 18:00:54 | brixen | good day dwaite |
| 18:01:00 | dwaite | how goes it you two |
| 18:01:09 | brixen | good! |
| 18:01:10 | dwaite | hope you had a nice weekend, you earned it :) |
| 18:01:20 | dwaite | one weekend off for every major release |
| 18:04:28 | evan | at least! |
| 18:23:03 | boyscout | Exclude info generation from all in libffi. Fixes #286. - d65adb9 - Evan Phoenix |
| 18:31:04 | boyscout | CI: rubinius: d65adb9 successful: 3457 files, 13597 examples, 41217 expectations, 0 failures, 0 errors |
| 18:32:53 | toulmean | got a bot ? Where are rubinius CI and all handled ? |
| 18:33:25 | evan | toulmean: yes, thats a bot. |
| 18:33:29 | evan | we have CI on a linux machine. |
| 18:33:48 | toulmean | evan: everything's property of Engine Yard ? |
| 18:33:58 | evan | the CI machine is my own. |
| 18:34:04 | toulmean | ah ok |
| 18:34:16 | evan | why? |
| 18:34:21 | toulmean | evan: you also work with the jruby folks correct ? |
| 18:34:29 | evan | yeah |
| 18:34:42 | toulmean | evan: because I'm interested. Learning who hosts the CI machine is telling a lot about who owns the project :D |
| 18:34:57 | toulmean | it's just that. Also it's cool. |
| 18:35:06 | dwaite | is it still running a customized copy of CI Joe? :) |
| 18:35:11 | evan | yep |
| 18:35:22 | evan | it's on my github |
| 18:35:22 | toulmean | sorry if I looked nosy :) |
| 18:35:30 | evan | toulmean: no prob, just curious why you were curious. |
| 18:35:31 | toulmean | no hudson ? |
| 18:35:39 | evan | no, not hudson. |
| 18:36:10 | dwaite | I think I'm going to learn lua |
| 18:50:29 | brixen | dwaite: based on the rousing applause, I'd say you're on your own on that one |
| 18:50:37 | dwaite | lol |
| 18:51:08 | brixen | and that is a sentence fraught with misspeling opportunities |
| 18:51:14 | brixen | :) |
| 18:51:19 | brixen | couldn't resist |
| 18:51:43 | dwaite | yeah, I doubt there would be too much support in here unless it was the #luabinius channel |
| 18:52:02 | brixen | that sounds... nsfw |
| 18:52:08 | brixen | could just be me though |
| 18:53:21 | dwaite | hmm, trying to figure out why |
| 18:53:25 | dwaite | perhaps you just have a dirty mind? |
| 18:55:01 | brixen | dwaite: that would be some hard-core VM forking action |
| 18:55:10 | brixen | what with the registers and stacks all mixing it up |
| 18:55:12 | brixen | so, yeah |
| 18:55:14 | brixen | dirty mind |
| 19:20:03 | boyscout | Add some specs for read only globals - a23ba86 - Evan Phoenix |
| 19:20:03 | boyscout | Honor read-only-ness of certain globals. Fixes #283. - 690a921 - Evan Phoenix |
| 19:25:09 | dbussink | evan: that sinatra one depending is caller is fun heh? ;) |
| 19:25:19 | evan | yeah, genius. :( |
| 19:25:37 | dbussink | brittleness to the max |
| 19:26:02 | dbussink | but i'm going to play a game of sc2 :) |
| 19:26:53 | boyscout | Escape slashes in Regexp#to_s output. Fixes #308. - 2557d04 - Evan Phoenix |
| 19:26:54 | evan | have fun! |
| 19:27:47 | evan | i'm getting some lunch. |
| 19:27:59 | boyscout | CI: rubinius: 690a921 successful: 3457 files, 13603 examples, 41226 expectations, 0 failures, 0 errors |
| 20:12:21 | dbussink | i need more noob opponents in sc2, i suck at it :P |
| 20:24:56 | fbuilesv | dbussink: get me a key and I'll lose for you :) |
| 20:25:58 | dbussink | fbuilesv: hehe |
| 20:37:31 | dwaite | dbussink: I should play against you then, I'm 11 years rusty |
| 20:41:43 | dwaite | the rumor is that they are going to consolidate the chat between wow and sc2 before the next ship of both |
| 20:53:18 | JamesKilton | dwaite: 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:26 | nex3 | What's the Rubinius eval policy? |
| 20:56:54 | dbussink | nex3: eval policy? |
| 20:57:17 | nex3 | As in, is #eval supposed to be identical to MRI, or is it made into a keyword or something for efficiency? |
| 20:57:34 | evan | nex3: it's the same as MRI. |
| 20:57:37 | dbussink | it's supposed to be identical to mri |
| 20:58:11 | nex3 | Okay, then I've got a bug |
| 20:58:17 | nex3 | Let me find a succinct repro |
| 20:58:32 | nex3 | Oh wait |
| 20:58:32 | nex3 | No |
| 20:58:35 | nex3 | I'm probably just being dumb |
| 20:58:37 | nex3 | Never mind! |
| 21:01:37 | cremes | evan: 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:56 | brixen | cremes: we can pin Strings atm |
| 21:02:09 | cremes | brixen: oh yeah? |
| 21:02:15 | cremes | i'll have to look... |
| 21:02:17 | brixen | yes |
| 21:02:24 | evan | a pin'd array isn't very useful. |
| 21:02:24 | brixen | what do you mean by primitive array? |
| 21:02:30 | evan | but yes, we can pin Strings |
| 21:03:10 | cremes | here's why i ask... |
| 21:03:40 | cremes | i'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:57 | cremes | it probably doesn't matter for small strings, but for large ones it likely does |
| 21:04:09 | cremes | i'd only need to "pin" it for a few ms |
| 21:04:40 | cremes | brixen: by primitive, i mean raw bytes like ascii chars |
| 21:04:51 | brixen | cremes: yes, we can |
| 21:05:05 | cremes | i'm looking through kernel/common/string.rb |
| 21:05:08 | cremes | is that the right place? |
| 21:05:15 | brixen | it's in the VM/gc |
| 21:05:26 | brixen | you want to use this from a C ext or FFI? |
| 21:05:29 | cremes | so is it visible from the ruby side? |
| 21:05:35 | brixen | no |
| 21:05:36 | cremes | ffi |
| 21:05:56 | cremes | i'd like to pass the pointer via ffi to the ext lib |
| 21:06:05 | evan | cremes: where is the string coming from? |
| 21:06:10 | evan | because we don't support pin'ing of all strings |
| 21:06:21 | evan | they have to be located in the mature region |
| 21:06:30 | evan | so either they're old or were allocated directly in the mature region |
| 21:06:34 | cremes | it's likely being built by a json/bert/protocolbuffer/etc ruby library |
| 21:06:51 | evan | ok, so it's doubtful that it's able to be pin'd |
| 21:06:53 | cremes | (i'm somewhat enamored with msgpack lately) |
| 21:08:23 | cremes | y'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:51 | cremes | assuming the built string is in the lib's native memory |
| 21:09:14 | cremes | i'd have to provide another encoding mode that put the bytes where i need 'em... |
| 21:09:33 | cremes | anyway, i'm kind of putting the cart before the horse so just ignore me while i navel gaze... ;) |
| 21:13:29 | cyndis | is spec/ruby/command_line the appropriate place for a spec that checks if error messages are printed to stderr and not stdout? |
| 21:13:50 | evan | cremes: :) |
| 21:14:02 | evan | cremes: spec/core/ruby/ |
| 21:14:12 | evan | er. |
| 21:14:25 | evan | yes, |
| 21:14:28 | evan | spec/ruby/command_line. |
| 21:14:33 | cyndis | ok, thanks :) |
| 21:15:21 | nex3 | evan: Is there any better way to pre-allocate a string with unused buffer space than calling #modify! and #data=? |
| 21:15:38 | brixen | nex3: String.pattern |
| 21:16:16 | nex3 | Ah, gotcha |
| 21:17:48 | nex3 | brixen: What's the API? |
| 21:18:28 | brixen | http://gist.github.com/404239 |
| 21:19:45 | nex3 | Hmm |
| 21:19:47 | cremes | evan: i don't have a spec/core/ruby/ in my rbx clone; is that in the rubyspec project? |
| 21:20:00 | brixen | cremes: spec/ruby |
| 21:20:01 | nex3 | Will that space remain if I use #replace("")? |
| 21:20:10 | nex3 | The idea is to use it to concatenate strings without copying costs |
| 21:20:34 | brixen | nex3: then you should make a buff and have it be aware of where to write |
| 21:20:38 | brixen | and write directly into the buffer |
| 21:20:51 | brixen | ie practically a rope impl |
| 21:21:00 | evan | cremes: spec/ruby/command_line |
| 21:21:27 | nex3 | I'm trying to maintain basic compatibility with normal strings |
| 21:21:33 | nex3 | And I certainly don't want to manage overflow manually |
| 21:21:36 | cremes | anything in particular i should look at in there? |
| 21:21:44 | brixen | nex3: are you subclassing String? |
| 21:21:47 | nex3 | No |
| 21:21:52 | cyndis | it was me asking about command_line, not cremes :) |
| 21:21:53 | nex3 | Just using it |
| 21:22:02 | nex3 | I'm basically looking for a way to hint that this string is probably going to be yea big |
| 21:22:04 | cremes | ha! |
| 21:22:09 | brixen | nex3: are you trying to make this portable, or just run on rbx? |
| 21:22:46 | evan | cremes: what are you looking for? |
| 21:22:59 | nex3 | Ideally, the string initialization would be rbx-specific but the rest of it would be implementation-independent |
| 21:23:05 | nex3 | Basically just a bunch of #concats |
| 21:23:09 | brixen | nex3: the idea of String.pattern is to allocate a size and then write into it at locations |
| 21:23:52 | nex3 | Yeah, that's not exactly what I'm going for |
| 21:24:00 | brixen | nex3: you sound like you want a Roped string, there's a lib for that from one of the ruby quiz challenges |
| 21:24:03 | brixen | iirc |
| 21:24:41 | nex3 | Maybe that is the way to go |
| 21:25:01 | brixen | it would not be hard to write a roped impl for rbx |
| 21:25:05 | brixen | in Ruby |
| 21:25:20 | brixen | but you'd probably not want to do it 1/2 way |
| 21:25:29 | brixen | and you can't just make some methods aware |
| 21:25:47 | nex3 | But the concatenation implementation would work decently, and it would support efficient indexing, which ropes don't |
| 21:26:02 | brixen | basically, a String is a buffer of bytes in a ByteArray |
| 21:26:11 | nex3 | And roping would work better if the string didn't have to be accessed intermittently |
| 21:26:13 | nex3 | But it does |
| 21:26:46 | nex3 | Roping would be *okay*, but really no better than using Array#join |
| 21:27:10 | brixen | the idea of roping is to avoid the equivalent of Array#join |
| 21:27:26 | nex3 | Well eventually you have to do that to get the full string out |
| 21:27:28 | brixen | random access would be a range cmp + index rather than straight intex |
| 21:27:39 | brixen | depends what you mean by "get the full string out" |
| 21:27:55 | brixen | writing a String to IO could just interact with the rope segments |
| 21:28:05 | brixen | again, I'm talking rbx here |
| 21:28:12 | nex3 | No, I mean, I'm letting arbitrary Ruby code work on the string |
| 21:28:16 | brixen | we've discussed the possibility of doing this |
| 21:28:18 | nex3 | And that code's going to assume it acts like a string |
| 21:28:25 | brixen | yes, sometimes you have to do that |
| 21:28:36 | brixen | but the point would be to avoid it, or only do it at some boundary |
| 21:28:41 | nex3 | So it's gotta be converted to an actual string at the end |
| 21:28:54 | brixen | when does it really need to be converted though? |
| 21:29:03 | brixen | that's the question to investigate |
| 21:29:12 | nex3 | After a certain number of concatenations |
| 21:29:16 | brixen | why? |
| 21:29:40 | nex3 | Because at that point it's made available to user code |
| 21:29:46 | nex3 | The context is a template engine |
| 21:30:09 | brixen | well, but what does the template engine do? |
| 21:30:15 | nex3 | Think ERB |
| 21:30:25 | nex3 | So it builds up a buffer, but every so often arbitrary Ruby code runs that might want to access and modify said buffer |
| 21:30:41 | nex3 | And that code will assume it's a string, so it's gotta be converted there |
| 21:30:49 | brixen | no, it doesn't |
| 21:30:54 | nex3 | Why not? |
| 21:31:04 | brixen | what are the ops it will do on the string? |
| 21:31:37 | nex3 | The Ruby code? |
| 21:31:40 | nex3 | Anything it wants |
| 21:31:44 | nex3 | I have no control over it |
| 21:31:58 | brixen | and it will call methods to do those things |
| 21:32:10 | brixen | I'm saying, you can't have a 1/2 assed roped string |
| 21:32:32 | nex3 | Yeah, and it's certainly not worth it to build a full-assed one |
| 21:32:34 | brixen | but if you make a roped string, you can control a lot about when you must actually create an unsegmented array of bytes |
| 21:32:56 | brixen | and maybe you will never have to in common scenarios |
| 21:33:22 | nex3 | Let's assume it's not worth the effort to create and maintain a 100%-API-compatible roped string implementation |
| 21:33:49 | nex3 | Given 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:06 | nex3 | Whereas a preallocated string might be |
| 21:34:40 | brixen | well, you can grep kernel for how String.pattern is used |
| 21:34:51 | nex3 | Although actually, according to the benchmark I just ran, a preallocated string (and Array#join) both perform worse than #{}-interpolation |
| 21:34:51 | brixen | would be interesting to see a full roped string impl on rbx |
| 21:34:54 | nex3 | So maybe it's a moot point |
| 21:39:19 | brixen | evan: did you run into any craziness with Array#initialize_copy when working with rails issues? |
| 21:39:29 | evan | not that I recall. |
| 21:39:33 | brixen | ok |
| 21:39:42 | brixen | the code is a copy of Array#replace |
| 21:39:47 | brixen | even the comment says so |
| 21:40:00 | brixen | with the exception of not doing the frozen check right |
| 21:40:05 | brixen | so I was going to alias them |
| 21:43:18 | evan | why are people using cl.ly to post logs |
| 21:43:19 | evan | ug. |
| 21:45:09 | boyscout | Print error messages to stderr instead of stdout. - 2881b47 - Mikko Perttunen |
| 21:45:09 | boyscout | Add specs to test where error messages are printed. - 1ee2c50 - Mikko Perttunen |
| 21:45:09 | boyscout | Fix misspellings - 43bb160 - Mikko Perttunen |
| 21:45:09 | brixen | post logs in issues? |
| 21:45:25 | evan | http://github.com/evanphx/rubinius/issues#issue/287 |
| 21:45:29 | evan | who is mikko? |
| 21:45:31 | brixen | #310 looks fun |
| 21:45:44 | brixen | scoopr |
| 21:45:49 | brixen | er scoopr is Mikko |
| 21:46:00 | cyndis | no, i am that mikko |
| 21:46:08 | brixen | oh! |
| 21:46:10 | brixen | other Mikko |
| 21:46:16 | brixen | I was going by memory |
| 21:46:17 | brixen | hehe |
| 21:46:17 | cyndis | indeed :) |
| 21:46:26 | brixen | invasion of the finns |
| 21:46:40 | brixen | gets snorkel to fit in |
| 21:47:16 | evan | rue|W: ok mikko |
| 21:47:17 | evan | oh damn! |
| 21:47:18 | evan | except you |
| 21:47:19 | evan | :D |
| 21:47:26 | evan | does occurred really have 2 r's? |
| 21:47:32 | evan | btw, i love that a finn is correcting my english. |
| 21:47:33 | cyndis | it does |
| 21:47:33 | brixen | yeah |
| 21:47:35 | evan | no really, i love it. |
| 21:48:21 | cyndis | i probably isn't that uncommon for finns to correct native english speaker's spelling :p |
| 21:48:23 | cyndis | +t |
| 21:48:29 | brixen | hah |
| 21:48:36 | brixen | except when typing in IRC |
| 21:48:50 | evan | HUBRIS, THY NAME IS cyndis. |
| 21:48:57 | brixen | woot! |
| 21:48:59 | evan | :D |
| 21:49:07 | cyndis | truly |
| 21:51:52 | cyndis | :< |
| 21:53:08 | boyscout | CI: rubinius: 43bb160 successful: 3458 files, 13604 examples, 41228 expectations, 0 failures, 0 errors |
| 21:53:09 | brixen | cyndis: or: a native speaker's :) |
| 21:53:27 | cyndis | yes |
| 21:53:31 | brixen | way to pick on the poor finn trying to improve the state of English in the world |
| 21:53:34 | brixen | :) |
| 21:53:42 | cyndis | :) |
| 21:54:51 | cyndis | btw, now that 1.0 is out, are there any plans about librubinius.so? |
| 21:55:11 | cyndis | at least qtruby seems to be quite adamant that it exists |
| 21:56:51 | brixen | yeah, it's on the todo list |
| 21:57:02 | brixen | we need to publish a new roadmap |
| 21:57:15 | cyndis | ok |
| 21:57:15 | evan | cyndis: why does qtruby need a shared lib? |
| 21:58:27 | cyndis | well, 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:45 | evan | huh? |
| 21:58:48 | evan | thats confusing |
| 21:58:50 | cyndis | it is |
| 21:58:50 | evan | what is it doing? |
| 21:58:56 | cyndis | i'm not quite sure |
| 21:59:02 | evan | linking ruby into a .so? |
| 21:59:03 | evan | must be. |
| 21:59:12 | cyndis | it is very complicated and it uses cmake as the build system which is very confusing imho |
| 21:59:15 | evan | if so, thats a whole nother thing. |
| 21:59:22 | evan | we might have to do something custom for that. |
| 22:05:30 | cyndis | i 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:55 | evan | well, but extensions usually build that into a .so for ruby to load |
| 22:06:00 | evan | sounds like it's doing it in reverse |
| 22:06:06 | evan | trying to get qt to load ruby as a .so |
| 22:07:43 | cyndis | yeah, 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:07 | cyndis | at least, that's what i'd imagine would be the reason |
| 22:09:02 | evan | hm |
| 23:35:40 | brixen | working on these Array specs makes me contemplate a cucumber-like framework based on inductively defined sets |
| 23:35:56 | brixen | that would translate directly into actual code to be executed |
| 23:36:14 | brixen | I know, holy grail of executable specification... |
| 23:36:18 | evan | what would it look like? |
| 23:36:28 | evan | Given cookies |
| 23:36:32 | evan | Evan will write the code |
| 23:36:36 | evan | And it will pass the tests |
| 23:36:36 | evan | ? |
| 23:36:39 | brixen | let A be an array. If 1 elt of A, then A.pop == 1 |
| 23:36:47 | brixen | something like that |
| 23:37:10 | brixen | inductive definitions have a basis case, inductive step, closure statement |
| 23:37:28 | evan | solved the nokogiri install crash btw. |
| 23:37:33 | brixen | If 1 elt of A and A.size == 1, then A.pop == 1 |
| 23:37:39 | brixen | oh, nice |
| 23:37:39 | evan | it's a very blush worthy GC bug. |
| 23:37:46 | brixen | :) |
| 23:43:15 | boyscout | Update StackVariable::last_match_ in the GC. Fixes #287. - fa4d2e6 - Evan Phoenix |
| 23:51:23 | boyscout | CI: rubinius: fa4d2e6 successful: 3458 files, 13604 examples, 41228 expectations, 0 failures, 0 errors |