Index

Show enters and exits. Hide enters and exits.

00:35:39evanso
00:35:52evanI'm going to take a swing at prelim windows support for 1.1 I think.
01:03:50philoallo
01:08:38brixenhi jasper586
01:08:55jasper586not much talk here
01:09:13brixenactually depends on the time of day
01:09:19brixenwant to chat about something?
01:12:10jasper586not really was just curious about the state of rubinius
01:12:18jasper586and the website seems a litle outdated
01:12:46brixenyes, sorry, it is
01:12:58brixenwe are so not good at website
01:13:07brixenwhat question do you have?
01:15:27brixenjasper586: are you a ruby programmer?
01:15:42jasper586minor rubyist
01:15:47brixencool
01:15:49jasper586more interrested in llvm
01:15:59brixenhave you tried running your ruby codes one rubinius?
01:16:11brixener s/one/on/
01:16:12jasper586nope i use jruby
01:16:20brixenok
01:16:46brixenwell, any questions in particular?
01:17:09jasper586just looking for some benchmark
01:17:13jasper586rubinius vs jruby
01:17:23jasper586and the current state of the project
01:17:27brixenok
01:17:33brixenwell, you can run the benches yourself
01:17:42brixenthere's a number in the benchmark dir
01:17:46jasper586was planning on lurking here for some time lol
01:18:02jasper586hummm i am too lazy for that lol
01:18:04brixenbut I suggest taking a look at benchmar/tiers
01:18:13jasper586brizen rubyist or compiler guru ?
01:18:31brixenrubyist, aspiring compiler guru :)
01:18:58brixencurrent status is we are working on 1.1 release
01:19:15brixenand need feedback from folks about how their code runs
01:19:23brixenevan has been working on removing the GIL
01:19:30brixenyou can check that out in the hydra branch
01:19:40brixenmay have preliminary windows support in 1.1
01:19:57brixenother than that, best way to check it out is to run it
01:20:07brixenrvm install rbx-head may be easist for you
01:20:17brixenar git clone rbx; configure; rake
01:20:32brixenok, I'm grabbing some dinner
01:20:59brixenjasper586: if you lurk logged in, feel free to leave some questions in channel and I'll answer them when back if I can
01:21:05brixenor someone else will :)
01:21:52jasper586brixen: thanks
05:39:06dbussinkmorning :)
05:44:31brixendbussink: don't you ever sleep? :P
05:48:44dbussinkbrixen: i have a steady rhythm, not very programmer worthy ;)
14:21:19seydaranyone awake yet?
14:39:24dbussinki am
14:39:37dbussinkseydar: for over 9 hours :p
14:39:44seydarhttp://github.com/bjpop/berp/
14:40:13seydarthere's been talk of garnet for over two years now
14:40:30seydarwe could in theory piggy back a ruby face to the berp backend
14:50:08seydardbussink: what do you think of that for garnet?
14:54:08seydari'm freaking out. i can't believe someone got a python -> haskell compiler
14:54:20seydarhe did it in the same fashion that I'd do
14:54:28seydarbut that fact that he did it destroys me
14:54:34seydarand sets a precedent
14:55:30seydarwould compiling to Haskell for Garnet be acceptable? or do people really want C/++?
14:56:57philoa python to haskell compiler ?
14:57:01philoare people that bored ?
14:59:39seydarhah. It sets a nice precedent for other people to compile dynamic langauges
15:04:13dbussinkseydar: hehe, you will experience that feeling more often in your life ;)
15:04:18dbussinkthe i wish i'd done that feeling
15:04:50seydari need to get moving then before technology gets too advanced and everyone gets all the low hanging fruit
15:07:11seydarbut seriously. Garnet with a haskell backend. what do people think
15:07:21dbussinkseydar: garnet?
15:07:37seydarRuby (subset) -> machine code
15:07:53seydarsomething rubinius can be bootstrapped in
15:08:10seydaralthough it wouldn't quite be boostrapping, but you get my point
15:08:22dbussinkseydar: hehe, didn't know that idea had that name
15:08:44philoseydar doesnt that kill the all point ?
15:08:58bougymanso how do I install gems into rbx?
15:09:07bougymani notice it doesn't have a 'gem' binary.
15:09:16dbussinkbougyman: ./bin/rbx -S gem install whatever_gem
15:09:20bougymanhttp://github.com/evanphx/rubinius/tree/master/doc/ nothing here gets me quickly there.
15:09:24bougymandbussink: cool, thanks.
15:09:32seydarwe should update the docs
15:09:53seydari can't do that now, but i can do it in like 9 hours or so
15:10:08dbussinkif you can chat here, you can do it too ;)
15:10:12seydarphilo: rbx needs to be written in something that compiles to machine code
15:10:16bougymandbussink: are y'all opposed to a wrapper in bin/ named gem which calls that?
15:10:48dbussinkbougyman: dunno about that, but the -S way of doing things is actually something that works across all rubies
15:11:08dbussinkbougyman: jruby -S rake whatever runs the whatever rake task in jruby
15:11:09bougymanbrave man.
15:11:14bougymani don't even know what 'all rubies' are.
15:11:15seydarphilo: right now that lingo is C++, because it compiles to machine code
15:11:18philoseydar: dont know much about rubinius , but what dpes rbx do ? loading gems ?
15:11:24dbussinkbougyman: jruby, rbx, mri
15:11:27bougymani wouldn't dare to say they all do something the same :)
15:11:28seydarphilo: rbx is the shortname for rubinius
15:11:59philoyou want to rewrite the base in haskell ?
15:12:00dbussinkbougyman: well, they usually support the -S style of executing bin scripts
15:12:04seydarphilo: garnet would be the name for some ruby-like language that (eventually) compiles to machine code
15:12:21dbussinkrvm also supports it to call it for all rubies it will call
15:12:23bougymanugh.
15:12:28seydarphilo: heh, i've toyed with the idea, but not quite. I want to write the ruby-like language in haskell
15:12:29bougymanhit a giant problem.
15:12:38seydarphilo: or rather, have it compile to haskell
15:12:40bougymanKernel(NilClass)#to_str (method_missing) at kernel/delta/kernel.rb:85
15:12:48philoi see
15:12:55seydarphilo: and from there, compile the haskell code to machine code
15:13:02philointerresting
15:13:02dbussinkbougyman: do you have a backtrace?
15:13:14philodepend on what exactly is the garnet subset
15:13:17bougymandbussink: yeah.
15:13:19bougymanbut hold on
15:13:33seydarphilo: yeah. how strict do we make it? what features do we include?
15:13:35bougymaneven when I add to_s to NilClass it throws it.
15:13:52seydaropen ended question. i get the feeling that it's just a "make SOMETHING" kind of game
15:14:06bougymancan I bring pastr in here for a sec for the backtrace?
15:14:07dbussinkwell, to_s != to_str :)
15:14:12philoseydar ?
15:14:25dbussinkbougyman: you can also gist or pastie it somewhere
15:14:41philohow much c++ line of code rbx (excluding llvm) of course
15:15:17seydarphilo: I'm not sure how many lines of code rbx is. but the idea is to rewrite it all in garnet
15:15:34Pastrbougyman pasted http://pastr.it/16853 (rbx backtrace trying to load ramaze app.rb), 103 lines of Plain Text
15:16:03seydarphilo: sorry, the idea is to rewrite the C++ parts in garnet
15:16:16dbussinkbougyman: what version of rbx are you using?
15:16:31dbussinkbougyman: and can you create a small script that reproduces the issue?
15:16:46philoseydar: interresting evenif i dont clearly see the point
15:17:01philothe compiler is allready in ruby right ?
15:17:10bougymandbussink: yes, loading innate does it.
15:17:20dbussinkbougyman: that's a gem?
15:17:21bougymandbussink: i probably updated git mid-last week.
15:17:23bougymandbussink: yes.
15:17:31seydarphilo: the core of the compiler is in C++. The point is to rewrite it in something that looks like Ruby
15:17:37bougymaninnate is the base of ramaze
15:17:56seydarbougyman: since i don't have access to rbx right now, can you run `nil.to_s` for me?
15:18:10seydarbougyman: and then `nil.to_str`?
15:18:13bougymanseydar: sure, one sec, getting the latest git.
15:18:38bougymanirb(main):002:0> nil.to_str
15:18:38bougymanNoMethodError: no method 'to_str' on nil:NilClass.
15:18:49seydarnil.to_s
15:18:53seydarwhat does that return
15:18:56philoseydar: ok i thought the vm was in c++ and the compiler in ruby
15:19:03bougymanseydar: ""
15:19:12seydarphilo: ah, yes. thank you for correcting my terminology
15:19:14bougymani did class NilClass;def to_str;to_s;end;end to get by that one.
15:19:28seydarphilo: the vm is in c++, and the goal is to rewrite the VM in garnet, or something ruby-like
15:19:42bougymanuh oh.
15:19:48bougymani've got some 1.9.1 stuff in this app.
15:19:55bougyman from Kernel(Object)#require_relative (method_missing) at kernel/delta/kernel.rb:85
15:20:04bougymandoes rbx not support any 1.9isms?
15:20:08philoseydar: ok i understand now , but dont really see the point
15:20:11seydarbougyman: your error looks like a ramaze error. try just running it again
15:20:24philoseydar: is someone working on the definition of the garnet subset ?
15:20:25dbussinkseydar: you mean that's the goal for rbx?
15:20:30seydarphilo: just to unify the language that rbx is written in
15:20:59seydardbussink: i was just referring to garnet, the strict ruby subset that compiles natively
15:21:25dbussinkseydar: well, it's not a very immediate goal, more of a nice to have future i guess :)
15:21:46bougymanseydar: which, the nil.to_str?
15:21:47seydaryeah, a goal for a long time from now
15:21:52philowhy not use rbx compiler to compiler to llvm bytecode then llvm to compile to native code ?
15:21:53bougymanthat happens in just rbx<enter> irb.
15:21:59seydarbougyman: yeah. that's correct behavior.
15:22:11seydarbougyman: but you got that error in your pastr.it thing
15:22:13bougymanwhat is nil.to_str being undefined?
15:22:27seydarbougyman: just try rerunning your ramaze app
15:22:53bougymanseydar: same error.
15:23:04bougymanit's not just gonna go away without changing something
15:23:05dbussinkbougyman: nil.to_str is also not defined in 1.9
15:23:19bougymani can get by that error by defining nil.to_str, but yeah, i see what you mean.
15:23:40dbussinkbougyman: so this a problem that appears as this, but it's not the issue in itself
15:25:31seydarbougyman: actually sometimes those pesky nil errors do
15:29:18bougymanoh crap.
15:30:03bougymannow i'm hitting {the: "new", literal: "Hash notation"} missing.
15:30:12bougymanno fix for that, i'd have to change code.
15:31:29bougymangetting further now.
15:39:49bougymanvery odd now.
15:41:32bougymanit's kind of crazy behavior... same app, same code, 1.8.7 and 1.9.1 work fine, rbx gives a Sequel::DatabaseConnectionError: PGError: could not translate host name "nrs_ic" to address: Name or service not known
15:41:40bougymani have no idea where it's getting/setting that hostname.
15:42:39bougymanjeremyevans: around?
15:45:56seydarbougyman: that is weird
16:02:04jeremyevansbougyman: I'm around
16:03:29bougymanjeremyevans: ever seen the above?
16:03:41bougymannrs_ic is the database name, the host is localhost.
16:03:45bougymanbut i'm specifying that.
16:03:55jeremyevansbougyman: Can you pastie the code you have and the backtrace?
16:08:30bougymanjeremyevans: sure, when I get back to the office.
16:08:54bougymani'm out for beers atm, it's been a hell week (a/c has gone out in the dc twice and our avaya definity lost its brain)
16:17:35evanmorning gents.
16:17:39evanbusy in here this morning!
16:18:04seydarmorning 'van
16:18:11seydarhave you read the backlog?
16:18:25seydarand at my place of work, they have a shittonne of beer in the fridge. is this normal?
16:20:48bougymanseydar: it is in our branch office, not at corporate.
16:21:00bougymanplus I like to get out of the office for a while.
16:21:05bougymanespecially in a week like this.
16:21:14bougyman1.8 million dollar phone switch bit the dust.
16:29:51evanjust got done reading the backlog
16:32:25evanbougyman: wrt your nil error
16:32:37bougymanyeah i'm way past that
16:32:41evani wonder if perhaps you're using File.dirname(__FILE__) inside an instance_eval
16:32:44bougymanon a weird sequel-related one now.
16:32:45evanbut did you actually fix it?
16:33:03bougymanevan: it disappeared, dunno about 'fixed'
16:33:07bougymani can load ramaze apps now.
16:33:14bougymani questioned that, too, seydar said: just try it again.
16:33:20bougymani was skeptical, but it somehow worked.
16:33:42evanseydar: why did you think running it again would help?
16:33:55seydarbecause i've seen nil errors that just kinda come and go before
16:33:58bougymannow... in the meantime I found gem install extensions and added require "extensions/all" so my require_relative usage wasn't affected.
16:34:15bougymani did get rid of all my hash-literal notation, i'm gonna have to get out of that habit for rbx, eh?
16:34:19seydarevan: precedent, not any logic
16:34:20bougymani was so loving it in 1.9
16:34:53bougymanrequire_relative, hash literal notation, and fibers were the main reasons I liked 1.9
16:35:07evanprecedent? :/
16:35:13evanthats a terrible precedent to set.
16:35:35seydarthe precedent was that I've seen nils happen before
16:35:44evanbougyman: yeah, we don't have any 1.9isms.
16:35:55evani haven't.
16:36:04evanit's important to get to the bottom of those
16:36:09seydari don't like fixing bugs in that fashion, but at least it identifies the bug as semi-non-deterministic
16:36:12evannot just rerun it again and shrug.
16:36:23seydarwe're not shruggin (yet)
16:36:27evanit doesn't identify the bug at all
16:36:33seydarbut how can we solve it if we can't reliably reproduce the bug?
16:36:34evanunless you actually do something about it
16:36:45evanyou try and make it reliable
16:36:50evanie, remove the .rbc file
16:36:53evansee if it happens again.
16:37:09seydargood thinking
16:37:10evanthats the only thing that changes between runs.
16:37:38bougymani didn't know shit about an .rbc
16:37:47bougymani sisn't know I was using python now
16:37:50bougymanducks
16:37:52seydarbougyman: rm app.rbc
16:38:07evanbougyman: :/
16:38:38bougymanlisp does it, too, just kidding y'know.
16:38:46bougymani'll try and see if I can get it again.
16:40:43evank
16:41:29seydarbougyman: what's the word! duplicated?
16:41:51bougymanthe word is beer
16:41:55bougymani'm still at lunch.
16:42:41seydarLUNCH?!
16:42:49jeremyevansevan: Did you have a chance to look at the patch I sent yesterday for rb_str_set_len?
16:43:02evannope.
16:43:39jeremyevansevan: http://pastie.org/1089381.txt
16:43:52jeremyevansevan: I'm not sure if it's correct, though it does make the spec pass
16:44:00bougymanis there a facility or utility built in to rbx to do the equiv of bougyman@zero:~/g/nrs_ic$ find . -name "*.rbc" -exec rm {} \;
16:44:04bougyman?
16:44:24evanfind . -name "*.rbc" -delete
16:44:28bougymanyes, duplicated.
16:44:28jeremyevansevan: Does string->num_bytes(state, len) increase the size of the buffer if it is bigger then the current size?
16:44:29evanbtw.
16:44:39evanjeremyevans: no.
16:44:58evanit simply sets the virtual size
16:45:19jeremyevansevan: Then it probably isn't right. I think that string->data()->size() might not be right then
16:45:38bougymanevan: oh neat, i don't man find much these days cause it screws me up on solaris and aix, i don't think either of them would accept that.
16:45:38evanwell, thats the size of the backing buffer.
16:45:44bougymani'll be very happy when our aix boxes are gone.
16:45:45jeremyevansevan: Because moving it out of the if statement fixes the spec, even though it should take the if branch
16:45:57evanwell, moving it out is wrong.
16:46:39seydargoes to lunch
16:46:43jeremyevansevan: It's interesting that it doesn't take the if branch if the len is more than 4, since the buffer size should be at least 128
16:46:56evanyou need to figure out why that is.
16:47:10jeremyevansevan: I'll give it a shot :)
16:47:11bougymanevan: you want the code that made this error (it's a small ramaze/sequel tree)?
16:47:26evanbougyman: i'd prefer if you could isolate it
16:47:40bougymanevan: will do
16:47:44evansince i'll have to do it if you don't.
16:48:22bougymanmanveru will likely help, i'll get it to you as soon as I can isolate
16:49:45noogahey
16:49:55noogai'm having problems with compiling
16:49:57noogamelbourne.so: [BUG] Segmentation fault
16:50:36evannooga: thats under 1.8 I'm assuming?
16:50:38noogarbx exec is ready in bin/ but i can't run it because of Runtime exception: Unable to load /home/nooga/ruby/rubinius/runtime/platform.conf, it is missing
16:50:53noogaevan: yes, 1.8.7, i failes for other reasons under 1.9.1
16:50:55evannooga: please provide more context to getting that.
16:51:00noogafailed*
16:51:03evanie
16:51:06noogaokay, sec
16:51:09evanwhat command you were running
16:51:21evana terminal backtrace
16:51:24evansomething.
16:52:31noogahttps://gist.github.com/26c234f1002d2d2d427f
16:52:33noogahere
16:52:56evan...
16:53:03evanrvm has likely completely confused things
16:53:06evanrun 'rake distclean'
16:53:07evanand try again.
16:53:53noogaunder the same rvm state ?
16:54:00evanyeah
16:54:17evanyou could also use rvm to build rubinius
16:57:32noogatrued
16:57:34noogait fails :D
16:57:37noogatried*
16:58:01evanwell then
16:58:04evanyou've got other problem.s
16:58:51jeremyevansevan: string->data()->size() is always 4 according to some printf debugging
16:59:05evan....
16:59:23evanhow are you creating the string passed to set_len?
16:59:31jeremyevansevan: rb_str_buf_new
16:59:40evanit must be broken.
16:59:43jeremyevansevan: I don't modify that function :)
16:59:59dbussinkevan: you can't compile rbx with an rvm ruby version active in general
17:00:06brixenjeremyevans: do you have a spec that illustrates the expected behavior?
17:00:15noogaha
17:00:22dbussinkevan: because it will link melbourne against the system ruby version and loads it in the rvm version then
17:00:25noogaevan: it seems that everything is okay now
17:00:28jeremyevansbrixen: Yes http://pastie.org/1089312.txt
17:00:39evandbussink: ah ok.
17:00:46jeremyevansbrixen: It's just a stroke of luck that the spec caught it
17:01:21brixenjeremyevans: let's do one c-api function per describe
17:01:22jeremyevansevan: Nothing jumps out to me as obviously wrong in rb_str_buf_new
17:01:30brixenI'll take a look
17:01:38jeremyevansbrixen: It's very hard to test rb_str_buf_new in isolation
17:01:44jeremyevansbrixen: You'll always get the empty string
17:02:02jeremyevansbrixen: It only makes sense in conjunction with rb_str_set_len
17:02:07brixenI'm not saying you need to try it in isolation
17:02:58jeremyevansbrixen: So you just want the description changed, even though it tests both?
17:03:16brixenI'm applying and working with your patch now
17:03:18brixengive me a second
17:04:03noogathat's strange
17:04:32noogaafter rake distclean && rake everything runs smoothl
17:04:34noogay
17:05:23evannooga: not really
17:05:29evannooga: you had artifacts from a previous compile
17:05:40evanspecificly an extension compiled against another version of MRI
17:08:21noogahaaa, rubinius haven't got `->' sugar for lambda :C
17:08:50evancourse not.
17:08:52evanit's not 1.9
17:11:35bougymanthat's one I never liked.
17:11:40evanditto.
17:14:36jeremyevansevan: brixen I'm a C++ newb, but perhaps rb_str_buf_new should be using create_pinned or create_reserved? Not sure what the difference is between those and create
17:14:53evanno
17:14:55evanit should not.
17:15:05brixenjeremyevans: let me fix the spec first
17:15:10jeremyevansbrixen: OK
17:15:27evanactually, it could use create_reserved
17:15:40evanbut it's basically the same as create with a Fixnum
17:15:53brixenthis will be really easy when we have a real spec
17:15:55brixenpromise
17:16:02evan:)
17:16:04brixenI'm looking at the mri code
17:16:05jeremyevansbrixen: I believe you :)
17:16:16brixenit's not that hard ™
17:16:18brixen:)
17:18:14brixenjeremyevans: could you show me the C or Ruby code that illustrated this problem?
17:18:52jeremyevansbrixen: Doesn't the spec do that? It passes the first line and fails the second
17:18:57brixenrb_str_buf_new is indistinguishable from String.new
17:19:05brixenit's all implementation details
17:19:18brixenjeremyevans: that spec is completely busted sorry
17:19:36jeremyevansbrixen: rb_str_buf_new is a little different. It makes sure there are at least the given number of bytes to write into
17:19:57evanbrixen: rb_str_buf_new reserves the space and sets the virtual size to 0
17:20:01jeremyevansbrixen: Basic idea is in that spec.
17:20:02evanit's not a blank fill.
17:20:08brixenyes, I know what it does
17:20:11evanok
17:20:15evanjust checking!
17:20:16brixenthat's not the point
17:20:30brixenI'm trying to understand where it was actually used
17:20:31jeremyevansbrixen: I'm not sure how it's busted, since it works in ruby 1.8 and 1.9 :)
17:20:51brixenjeremyevans: do you have app code or not?
17:21:09jeremyevansbrixen: I've seen the technique in a few ruby extensions, and I'm using it in my own extension for all string creation
17:21:20brixenok, could you point me to that?
17:21:36brixenI actually don't know what your code is :)
17:21:53jeremyevansbrixen: I haven't yet published it, but let me pastie a typical function
17:21:58brixeno
17:21:59brixenk
17:23:29jeremyevansbrixen: http://pastie.org/1090768.txt
17:23:56jeremyevansbrixen: The reason for using it is that avoids a copy (in MRI)
17:24:24brixenum...
17:24:32brixenok
17:24:34jeremyevansbrixen: the alternative is writing into your own C buffer, and creating a ruby string copy from that
17:24:40brixenyes
17:30:45jeremyevansevan: brixen: Found the problem
17:31:02evanand?
17:31:18jeremyevansIn rb_str_buf_new, calling str->num_bytes with a 0 length shrinks the buffer size to 4
17:31:31evanit fucking better not.
17:31:35thelinuxlichhmm ruby-oci8 gem doesn't install on rbx-head
17:31:36jeremyevansSorry, just me being stupid
17:31:44jeremyevanscan't read my own debug output
17:32:13evanthelinuxlich: ok, file a ticket.
17:32:14jeremyevansAs best as I can see, somewhere between buf_new and set_len, the buffer size shrinks
17:32:37evanoh, i'll bet I know.
17:32:50evanthe capi handle is caching info about the string
17:33:07evanand confusing it.
17:33:46jeremyevansevan: That makes sense to me. Is the fix just to stop caching?
17:33:53evannope.
17:33:56evanwe must cache.
17:34:06evanbecause we have to expose a RString*
17:34:32jeremyevansevan: So we'd have to update the handle when the C++ object changed?
17:34:51thelinuxlichevan, done :)
17:35:05evanjeremyevans: yeah, i need to think about what order to do this in.
17:35:08evanso we don't loose the change.
17:35:23jeremyevansevan: Would a workaround be getting a new handle?
17:35:27evannope
17:35:32evanthats completely invalid
17:35:35evanone handle, one object.
17:36:14jeremyevansevan: OK.
17:37:42brixenrb_str_set_len is an incredibly unsafe function
17:37:53brixenI can't believe it exists actually
17:38:00jeremyevansbrixen: It's safe if used as designed :)
17:38:03brixenit does no bounds checks
17:38:13brixenjeremyevans: yeah, sure
17:38:30jeremyevansbrixen: My original implementation used rb_str_resize
17:38:49jeremyevansbrixen: But it didn't work on 1.9, and the ruby developers told me to use rb_str_set_len
17:39:11brixenjeremyevans: honestly, I'm surprised you're not doing this all in asm ;)
17:39:57jeremyevansbrixen: The benefits are great, especially on 1.8: over 200x improvement in some functions
17:40:03brixenthe point is, memcpy is incredibly fast
17:40:26brixenwriting to your own buf and calling rb_str_new variant is the way to write portable code
17:40:50brixenbut since MRI's functions just hang out, that's not an often-used approach
17:40:52jeremyevansbrixen: This will be portable once rbx supports it :)
17:41:14brixenjeremyevans: the issue is these functions have no semantics in Ruby code
17:41:18jeremyevansbrixen: And it's a technique used in other ruby libraries and encouraged by ruby-core, so rbx should support it
17:41:30brixenso writing reasonable, non-confounded specs for them is hard
17:41:44brixenjeremyevans: I'm not arguing about support
17:41:57brixenbut don't tell me that "the way it's done in MRI" is good software engineering
17:42:07brixenthat will just make me glare at you :)
17:42:44jeremyevansbrixen: Point taken
17:43:31jeremyevansbrixen: I didn't say it was good software engineering. However, I believe my use of it is safe.
17:43:51brixenprobably is
17:45:18evanbrixen: it's safe enough, we can bounds check that the size doesn't exceed the backing storage
17:45:30brixenours would, of course
17:45:36brixenMRI's does not
17:45:58evanright.
17:45:58jeremyevansbrixen: I think it does now, with the if block in set_len
17:46:15brixennow == ?
17:46:21brixenI'm looking at 1.8.7 code
17:46:22evanrb_str_set_len, Caveat emptor.
17:46:42jeremyevansbrixen: now meaning in rbx
17:46:51brixenI'm not there yet
17:46:58brixenstill writing these specs
17:56:59evanso confusing.
17:57:03evan2 CompiledMethods
17:57:11evanfor the same method in source
17:57:21brixenhuh?
17:57:25evanboth mature (so one isn't a pre GC version of the other)
17:57:33brixenoh, in hydra?
17:57:37evanyea
17:57:39brixenhmm
17:59:52brixenand fun, rb_str_set_len is a 1.8.7+ function
18:00:04jeremyevansbrixen: Yep. I still use rb_str_resize on 1.8.6
18:00:11brixenok, tire fixed, I have to go for a bit
18:00:29jeremyevansbrixen: I think rb_str_resize works on 1.8.7, but on 1.9 due to internal changes
18:00:55brixensounds like a bug in MRI to me
18:00:58brixenbbiab...
18:01:24jeremyevansbrixen: I reported it as a bug, with a one character fix that worked for me. They rejected it
18:06:11seydarhah why?
18:06:37jeremyevansseydar: It may cause problems I guess. They didn't go into detail
18:07:17jeremyevansseydar: http://redmine.ruby-lang.org/issues/show/3652
18:08:37evanlooks like they did apply your change.
18:08:45jeremyevansevan: and then reverted it
18:09:08evan:/
18:09:28jeremyevansAnd they may be right that it causes problems in some cases
18:09:39jeremyevansI don't know enough to say that it does not
18:19:15brixenarg, man
18:19:30brixenyui is changing capi specs without even reading the spec
18:21:59evanchanging specs without reading the spec thats being changed?
18:22:41brixenugh ugh
18:22:50brixensigh
18:23:41seydaryo dude... if you want... i know a guy...
18:28:07evanOO_OO
18:28:28evanI might know the issue, though it's confusing.
18:28:39evanmy using of InlineCaches isn't thread safe.
18:28:43evanusage.
18:38:04seydarwhat is it you do to make InlineCaches threadsafe?
18:40:48brixenyou apply ScotchGuard so the threads don't get frayed
18:48:25seydarah, thank you master brixen for enlightening me
18:54:37brixenseydar: anytime, and I mean, anytime, for you sir
18:55:26seydarwe should go to a conference together and both where suits
18:55:38brixenthat is an excellent idea
18:55:41brixenI like suits
18:55:45seydarme too
18:55:48brixenthe clothing that is
18:56:01seydarit'd be weird to say "i like card suits"
18:56:49brixenwell, "suit" is also a (sometimes desparaging) reference to a bigwig or establishment man
18:58:24cremesbut you wouldn't wear one of those, would you? how do you wear an establishment man?
18:58:46brixencremes: and I quote (myself) "I like suits"
18:58:52brixenI was disambiguating
18:59:01cremesheh
19:08:12brixenI want to see a diff inline with my code, is there a vim plugin for this?
19:11:00seydarbrixen: i had to do that for work, but i wasn't smart enough to make a vim plugin
19:11:39seydarbut you could try sed 's/> /> ooo/' to see the lines being added
19:11:52seydarlet me know if you find a plugin that does that
19:16:09brixenit would make my life 100x easier dealing with rubyspec
19:16:23brixenI'll see if I can find something
19:21:13BrianRice-worktosses a dime at brixen. "Here, kid. Go buy yourself a real editor."
19:24:26brixenbrianmario: oh? what would I buy?
19:24:29brixenack
19:24:33brixenBrianRice-work: ?
19:24:56brixenbrianmario: lurk on, sorry to disturb :)
19:36:32BrianRice-workbrixen: teasing
19:36:45BrianRice-workbrixen: emacs. ediff-mode for example
19:36:51seydardamn son
19:36:54BrianRice-workor annotate mode within vcs-mode
19:37:36BrianRice-workI was of course just making a reference to noir/gangster films of the 40s
19:37:51brixenBrianRice-work: ok, I'm pretty sure something exists, but I'll take a look at those if not
19:40:17seydarbrixen: vim -d might do the trick
19:41:58seydarholy shit this thing is magical
19:42:24seydarbrixen try vim -d everyone else is doing it and you should too
19:43:11BrianRice-workheh
19:43:27brixenseydar: okie
19:43:45brixenjeremyevans: I have specs that I'm reasonably happy with and 3 failures in rbx
19:44:09brixenjeremyevans: grabbing some lunch and a train ride back to pdx proper, so bbl...
19:53:27seydarholy shit vim -d is exactly it
19:53:35seydaryou can expand the parts that diff hides
19:53:37seydarand holy shit
19:53:40seydaryou just have to try it
19:53:43seydaroh my god
19:57:36BrianRice-workit's full of stars
19:57:50BrianRice-work:)
20:09:41dbussinkevan: is that inline cache issue the same i was seeing yesterday?
20:17:50brianmariobrixen: heh
20:18:05brianmariobrixen: you just reminded me I need to add rb_obj_dup still...