Index

Show enters and exits. Hide enters and exits.

00:00:01evanbecause it was doing the incrementing in C++?
00:00:06brixenyeah
00:00:22evangotcha
00:00:29evanyeah, i'm more inclided to put pressure on the JIT
00:00:36brixenI'd be happy to remove it
00:00:46evanalright, lets do that then.
00:00:48brixenk
00:00:51evanone less thing to maintain.
00:00:56brixenyep
00:02:02brixendo we have any array looping torture benches?
00:02:17brixenmight be cool to do a quick check that the jit is handling those cases well
00:02:30evani have over time
00:02:35evani don't think i have them saved
00:02:37brixenk
00:02:48brixenif you're pretty confident, that's good enough for me
00:02:57evanrelatively confident
00:03:00evanbut try it
00:03:03brixenok
00:03:12evani've been wrong before.
00:03:13evan:)
00:03:16brixenheh
00:03:43brixenI'll extract some cases from my use of Iterator
00:04:48evancool.
00:05:15evanbecause @tuple is an ivar for Array
00:05:21evanthe JIT loves that
00:05:28evanbecause it's got stuff to make tuple access fast
00:09:42brixenyeah
00:36:49boyscoutHandle tuple index boundaries better - 2ce324a - Evan Phoenix (native_int)
00:39:29evanbrixen: there ya go.
00:40:24brixensweet! thanks
05:07:39iccodesevening
05:12:10tarcieriohai
05:12:16tarcieriI'm writing a virtual machine
05:12:17tarcierilol
05:12:40slavawelcome to the club
05:12:49slavaI just found a pretty obscure bug in factor
05:12:53tarcierihehehe
05:12:59tarcierislava: you would laugh at mine
05:13:11tarcierifirst because the codebase is virtually nonexistent
05:13:11slavaon unix, subprocesses inherit the signal mask across an exec
05:13:19slavaso factor was setting SIGPIPE to SA_IGN
05:13:22tarcierioh god @ signal masks ;_;
05:13:23tarcierisay no more
05:13:28slavasince we detect closed sockets a different way
05:13:38slavanow if you ran a child process with io.launcher and it depended on SIGPIPE...
05:14:30tarcierislava: whenever I was writing network servers in C the first thing I'd do was ignore sigpipe, heh
05:14:41slavayeah
05:14:45slavaits useful for some things
05:14:52tarcieriI'm sure it is
05:14:53slavalike if you run 'myscript | head -n 10'
05:15:01slavayou want myscript to be killed and exit silently when head closes the fd
05:15:08tarcierislava: my virtual machine doesn't run on an OS so I don't have to worry about any outside bullshit, yay
05:15:09slavabut for network servers, yeah, its pointless
05:17:54tarcierislava: aren't you the least bit curious what my virtual machine is for?
05:17:54tarcieri:)
05:18:22tarcieriI've never tried to write one before
05:18:34tarcieriI never even considered writing one before!
05:19:00slavawhat is it for?
05:19:35tarcierihave you ever heard of Core Wars?
05:19:46slavayes
05:20:01tarcieriI'm trying to develop a distributed version of Core Wars suitable for microcontrollers
05:20:08slavatarcieri: http://twitter.com/slava_pestov/status/22862444215
05:20:10tarcieriembedded on Defcon badges
05:20:10slavacool
05:20:18tarciericommunicating over Zigbee
05:22:10tarcieriso it's a virtual machine for a minimalist set of instructions... with some funky instructions added
05:22:24tarcieria CPU with multiple program counters
05:22:25tarcieriheh
05:23:01tarcieriand one that functions on a ring buffer
05:26:44brixenvm's are easy, compilers are hard :)
05:27:19tarcieribrixen: yeah I've mainly been writing compilers, but ones that emit the parse tree for another language
05:27:24tarcieriwhere the languages are Erlang and JavaScript
05:27:40tarcierithis is a really easy VM to write
05:27:44tarcieriI've been testing it with Ruby, too
05:27:45tarcieriheh
05:27:56brixensounds fun! :)
05:28:00tarcieriit is!
05:28:01tarcieriheh
05:28:11tarcieriI wanted to get it on the official Defcon badge
05:28:18tarcieribut I asked and they don't want to do an electronic badge this year
05:28:18tarcieriwtf
05:28:19brixenI'm tearing out some perf shit I did before our jit was kicking so much ass
05:28:30tarcieriheh
05:28:33tarcieriyay deleting code
05:28:35tarcierialways fun
05:28:45brixenthe jit is now > 20% faster than some C++ primitives
05:28:52tarcierisweet :)
05:29:15tarcieriif my RubyConf talk gets approved you'll certainly be hearing about Rubinius
05:29:24brixenoh?! do tell
05:29:31tarcierior more specifically about how I missed evan's keynote at RubyConf 2006
05:30:02tarcieriwhich was bad and good :)_
05:30:17tarcierialso: actors
05:30:18brixenahh, I missed it too :(
05:30:25brixenbut heard about it 2 weeks later
05:30:48brixenI hope my RC talk gets accepted
05:30:54brixenit's about Poison
05:31:06brixenwhich will have no Threads, only Actors
05:31:42tarcierido tell!
05:31:59brixenheh, it's an interpretation of Potion
05:32:07tarcieriI see!
05:32:14brixenI'm taking some liberties
05:32:23brixenbut _why didn't finish it, so I get to do that
05:32:27tarcieriyay!
05:32:42brixenPotion is actually a very nice language so far
05:32:52brixenIMO of course :)
05:32:56tarcieriI never really looked at Potion in depth
05:33:04tarcieriit has prototype-based inheritance?
05:33:05brixenit segfaults a lot heh
05:33:07tarcierilol
05:33:08tarcieriyay!
05:33:09brixenno, classes
05:33:12tarcieriorly
05:33:12tarcierinoice
05:33:17tarcieriI am a fan of class-based inheritance
05:33:20tarcieriit's so... standard
05:33:22brixenbut you could do prototype pretty easy
05:33:26tarcieriand what people are used to
05:33:42brixenthere are no class methods, and I think that's a good thing
05:33:47brixenalso, everything is a function
05:33:53brixen1() => 1
05:34:05brixensome basic values have trivial default functions
05:34:10brixenbut it's an interesting idea
05:34:48tarcieriI like class methods
05:35:10brixenI'm not sure if _why didn't implement them, or didn't want to implement them
05:35:16brixenI'm seeing them as quite superfluous atm
05:35:26tarcieriReia doesn't have them but that's only because I'm lazy
05:35:29brixenI'm on the fence for singleton methods though
05:35:34tarcieriand have too many other projects and I'm all ADD
05:35:44brixensingleton methods imply class methods
05:35:46tarcieriwell yeah, talking about singleton methods
05:36:04tarcierispecifically for the purposes of dynamically generating instance methods before the class is "complete"
05:36:11tarcieriwhich Reia would have a very different sense of than Ruby
05:36:17brixenahh sure
05:36:25tarcieribuilt around Erlang-style code change
05:36:43brixenI was considering an immutable version of Poison, like Reia's immutable objects
05:36:49tarcieriyay!
05:36:55brixenit's really a tiny stretch
05:37:11brixenas long as you have good functional features
05:37:13tarcieribrixen: so like, the entire Ruby model of metaprogramming is completely fucking insane in a multithreaded environment
05:37:27brixenheh, yeah
05:37:32tarcieribecause other threads can have objects of a class that's dynamically changing
05:37:37tarcieriand possibly "incomplete"
05:37:37brixenyep
05:37:41brixenindeed
05:37:44tarcierino fucking way in Reia
05:37:45tarcieriheh
05:38:05tarcieriyou can dynamically assemble a module/cass
05:38:07brixenbut, I'm not sure yet if that's a problem
05:38:08tarciericlass...
05:38:17brixenthink of a class as a wait-free DT
05:38:19tarcieribut the incomplete version is local to a particular process
05:38:23brixenimplemented as*
05:38:25tarcieriand when it's complete, you send it to the code server
05:38:32tarcieriand then it takes over as the new version
05:38:37brixenif you can't look up a method, you get method_missing
05:38:44brixenwe already know how to deal with that in Ruby
05:38:54tarcieriyeah Reia has method_missing too
05:39:14brixenI think class building should be just a part of the environment
05:39:17tarcieribrixen: I think the best strategy in Ruby is to perform all code loading/modification in a single threaded environment, and only after it's all done and complete do you go multithreaded
05:39:24tarcieribrixen: which is very much NOT the approach I want to take in Reia
05:39:47brixenwell, you could have incubator enviros, like you describe
05:40:03brixenand fully baked classes get sent to production
05:40:08tarcieriyeah
05:40:13brixenstill not sure that distinction is necessary
05:40:17tarcieriwell the incomplete class is process-local and gets assembled there
05:40:24brixenespecially if you structure things with actors
05:40:29tarcieriand once it's fully assembled, it gets sent to the code server
05:40:33tarcieriwhich, yes, is a separate actor
05:41:06tarcieribut in the meantime, the rest of the processes aren't working off a half-assembled class that's dynamically changing
05:41:19tarcieribrixen: charlie was talking about using STM to manage this shit in Ruby, heh
05:41:22tarcieriI'm like *headache*
05:41:27brixenhmm
05:41:53brixenyeah, not sure I'd use that approach
05:42:08brixentarcieri: what scenario do you imagine for complex class creation?
05:42:53tarcierimetaprogramming DSLs, or however you'd describe that
05:43:00tarciericlass/singleton methods that generate instance methods
05:43:04brixenhmm
05:43:41tarcierihas_many, belongs_to, etc
05:43:41tarcieriheh
05:43:47brixenso, one of the things I've been pondering is Traits vs Uses (don't know what to call Uses)
05:43:58brixenie, Traits are things that on object provides
05:44:17tarcieriwhat's the difference between a method and a trait?
05:44:18brixenwhereas is_a -> inherits, has_a -> composes
05:44:40scooprdef method_missing s, *args ; eval("def #{s} ; #{compute_value(args)} ; end"); end
05:44:50brixena trait is an object added to an object independent of it's inheritance
05:44:59scooprI've seen that as "caching"
05:45:04brixener a method added to an object
05:45:10tarcieribrixen: *boggle*
05:45:12tarcierio
05:45:18tarcieriscoopr: ohgawd
05:45:28iccodesbrixen: hear of anyone getting rubinius working with unicorn? Google is letting me down
05:45:40brixeniccodes: it should, afaik
05:45:46tarcieriI've like... become super opinionated about code mangement in concurrent environments because of Reia
05:45:50brixeniccodes: what kind of failure are you getting?
05:46:00brixentarcieri: so the idea of Uses is something like a service
05:46:14tarcieribrixen: !
05:46:17tarcierisounding very familiar
05:46:18tarcieribut do go no
05:46:20tarcierierrrr
05:46:21tarcierion
05:46:21tarcierilol
05:46:31iccodesbrixen: just getting started, haven't run into errors
05:46:34brixentarcieri: canonical example, instance of ActiveRecord *uses* a persistence service rather than inheriting/overriding a #save method
05:46:50tarcieribrixen: brilliant! and exactly what I want to do as well
05:46:53iccodesI did run into errors getting passenger with nginx working but decided to focus on unicorn instead
05:47:03tarcieribrixen: but I want services to be semi-indistinguishable from objects
05:47:08brixenand it's not a cross cutting concern that you'd implement with a Trait or Mixin
05:47:09tarcieribrixen: or rather, I want them to quack like objects
05:47:19tarcieribrixen: except services are concurrent
05:47:35tarcierithat's actually a really good idea
05:47:37brixentarcieri: yeah, services =~ Actors here
05:47:40tarcieriI wanted the syntax to be "process class"
05:47:45tarcieribut maybe "service" is a better idea
05:47:47brixenhmm
05:47:49tarcierifor an analogue of gen_server
05:47:54brixenprocess class is interesting too
05:47:57tarcierithat quacks like an object
05:48:00brixenyeah
05:48:12tarcierithat's how *all* objects used to be in Reia
05:48:18tarcieribefore like... I was like "that's dumb"
05:48:19brixeniccodes: if you've got repro steps to an error, I can look at it
05:48:26tarcierineed immutable objects too
05:48:46iccodesbrixen: thanks, when I feel theres something worth your time I'll let you know
05:48:47brixentarcieri: yeah, I think inheritance, traits, and "Uses"/services are orthogonal
05:48:54tarcieriyeah totally
05:49:06brixentarcieri: whereas, most ppl try to implement services as one of the other two
05:49:09tarcieriwell Reia's actorobject thingies supported single inheritance
05:49:23tarcierithere's all sorts of complications
05:49:31tarcierilike circular call chains
05:49:34tarcieriresult in a deadlock
05:49:35tarcieriBUT
05:49:38brixeniccodes: ok, cool
05:49:39tarcieria detectable deadlock!
05:49:49tarcieriso you can detect it and crash the whole wring
05:49:51tarcierierr
05:49:53tarcieriwhole... ring
05:50:01brixenhm, yeah
05:50:27tarcieribrixen: those kind of nuances are why I want to push all that out to "Reia 2.0"
05:50:36tarcieriif Reia 1.0 ever happens :)
05:50:37brixensounds good
05:50:41brixendo it! :)
05:50:52tarcieriyeah I'll announce it at RubyConf or something
05:50:56tarcieri1.0 ready go!
05:50:59tarcierino wait, maybe 0.1
05:51:02brixenheh, sweet
05:51:21brixen0.1 is dyslexic 1.0 :)
05:51:24tarcieriyeah
05:51:26tarcieriI like 0.0
05:51:30brixenheh
05:52:36tarcieribrixen: so I know I talked to you about this before but do you get the whole idea that Ruby is object oriented Perl?
05:52:54tarcieriprovided I get a RubyConf talk accepted I need to make some slides that describe that concept
05:53:25tarcieripeople just don't get that and lots of Rubyists get offended
05:53:28tarcierior something
05:53:32tarcierimaybe they never used Perl
05:53:34iccodesbrixen: looks like I didn't get very far. Should I make a github issue?
05:53:50brixeniccodes: sure, with all your platform details and repro steps
05:54:13brixentarcieri: hm, in my experience, Ruby is much more consistent than Perl
05:54:22brixentarcieri: but, yes, they are not very far apart
05:54:41tarcieribrixen: well that, when Matz was developing Ruby, Perl was his reference
05:54:53tarcieribrixen: and Matz factored the flat namespace of Perl functions into Ruby classes
05:54:54brixenRuby has nice OO consistency, a la Smalltalk, and some terrible Perl features
05:54:56tarcieriand they're all there
05:54:59brixenyeah
05:55:02brixentell me about it
05:55:05tarcieriheh
05:55:13tarcieriyeah a lot of people just... don't get that
05:55:19brixenI've been implementing Array#pack and String#unpack for a month
05:55:20tarcieribut as a Ruby implementer, heh
05:55:23tarcieriyeah
05:55:23tarcieriheh
05:55:28tarcieriwith Ragel now, eh?
05:55:29brixenfucking. terrible
05:55:40brixenoh, it's pretty sweet with Ragel
05:55:55tarcieribrixen: did you ever see the shit I did with Mongrel + Ragel + Rubinius?
05:56:00brixenbut the Perl versions translated into Ruby == omgwtfseriously
05:56:03tarcierilol
05:56:09brixentarcieri: nope, where's that?
05:56:17tarcierilet's see if I can find it again
05:56:29brixentarcieri: there are literally 4 ways to coerce an object to a String
05:56:33brixen*four* ways
05:56:33tarcierioh here we go
05:56:35tarcierihttp://github.com/evanphx/rubinius/blob/7d246b17efc0ac37db6c241729f6b0e298f49950/lib/mongrel/http1 1_parser.rb.rl
05:56:52brixenahh this, cool
05:57:03tarcieribrixen: so Adrian Thurston half-ass implemented a Rubinius backend for Ragel without telling anyone or something wtf?
05:57:20brixenI think he was having fun
05:57:26brixenit was an academic project after all
05:57:35tarcieriI alerted evan to it and he submitted a patch which brought it up-to-par with shotgun circa about 2 years ago
05:57:48brixenyeah, I recall
05:57:56tarcieribut yeah... goto-driven FSMs... in Ruby
05:57:59tarcieripretty spiffy
05:58:02brixenheh yep
05:58:16tarcieribut it's like you may as well use C... FOR SPEED
05:58:23brixentarcieri: http://github.com/brixen/pegarus
05:58:24tarcieriso I gave up
05:58:33iccodescan rubinius do cow like ree?
05:58:33tarcieriorly
05:58:46tarcierinice readme
05:58:52iccodesand did I just write cow like ree
05:58:53tarcieribut the concept from the description seems interesting
05:59:06brixentarcieri: http://github.com/brixen/pegarus/blob/master/lib/pegarus/instructions.rb
05:59:26brixentarcieri: I'm adding a straight parsing machine in Ruby from LPEG
05:59:31tarcieribrixen: heh... getting far with that?
05:59:33tarcieri:)
05:59:33brixenand the rbx version will be a jit
05:59:38tarcierithat's badass though
05:59:39brixenit's pretty easy
05:59:56brixeniccodes: rbx has a copying garbage collector
06:00:07brixeniccodes: CoW isn't really appropriate
06:00:20brixeniccodes: and work is being done on making rbx fully concurrent
06:00:28brixenso CoW will be... irrelevant
06:00:36tarcieribrixen: it's kind of funny... Ruby traditionally embraces the Unix/Perl heritage of small simple scripts that do one thing and do it well and communicate with text streams
06:00:43tarcieribrixen: and Ruby is trying to grow into a very different role
06:00:45iccodessounds good to me, just trying to get rbx working with unicorn and its forking
06:00:54brixeniccodes: rbx should fork fine
06:01:23brixentarcieri: Perl completely ditched the Unix philosophy
06:01:29tarcieriiccodes: Unicorn itself should soon be irrelevant to something like rbx
06:01:30brixenit was an attempt to do *everything* well
06:01:33tarcieribrixen: haha
06:01:40tarcieribrixen: well originally people wrote small Perl scripts
06:01:51tarcierithey'd take text input and spit out text output
06:01:53brixenyeah, they didn't get Larry's vision is all :)
06:02:04tarcieriyeah people tried to write like... Scoop
06:02:05tarcieriand shit
06:02:23brixenI've heard 2 state of the onions now, I think Larry wanted to turn Unix philosophy on its head
06:02:26tarcieriMetasploit
06:02:48tarcieribrixen: Erlang is the Unix philosophy, with a few minor additios and a few major subtractions :)
06:02:57brixenheh
06:03:00brixenlike state :)
06:03:04tarcierinah
06:03:09tarcieriUnix philosophy is shared nothing
06:03:15tarcieribut like... signals
06:03:16tarcieripipes
06:03:18tarcierifuck that shit
06:03:36brixenyeah, I see the similarities
06:04:00brixenthe problem is when the boundaries are too coarse for the problem domain
06:04:00tarcieriUnix had the fundamentals right, but the actual implementation horribly wrong
06:04:03tarcieriTCP has the same problem
06:04:06tarcieristreams
06:04:10tarcieriinstead of messages
06:04:15brixenyeah
06:04:24tarcieriSCTP fixed that, but nobody cares
06:04:41iccodeswhats the github markup for wrapping code blocks? My rbx backtrace is looking unhelpful like this.
06:04:50brixeniccodes: use <pre>
06:04:53tarcieriiccodes: with markdown I believe it's <pre><code>
06:05:06brixenyou can just use <pre>
06:05:12iccodesdone and done
06:05:18tarcieriorly
06:05:20iccodeshttp://github.com/evanphx/rubinius/issues/issue/454
06:05:50brixenhmm, haven't see this one yet
06:06:01brixenIllegalSequence...
06:06:03iccodeshope that helps find something with Iconv
06:06:39iccodesback to testing passenger
06:07:04brixeniccodes: you're on the native_int branch?
06:07:18tarcieribrixen: so like yeah uhh do you remember the Joel Spoelsky post about Ruby and JIT stuffins?
06:07:24brixeniccodes: you should be on master
06:07:37brixentarcieri: nope
06:07:39iccodesI did an rvm install rbx-head
06:07:41tarcieribrixen: http://www.joelonsoftware.com/items/2006/09/12.html
06:07:52brixeniccodes: eeks, really?
06:07:55iccodesyessir
06:07:58brixenhum
06:08:05brixenthat's not good
06:08:11brixenfor rvm I mean
06:08:31brixeniccodes: would you mind cloning directly?
06:08:33tarcieribrixen: so like at RubyConf 2006 I got all drunk and shit at the open bar which I wasn't technically allowed to drink at cuz it was for people staying at the hotel, but I drank anyway
06:08:40tarcieribrixen: and they had this open question thing with Matz
06:08:44tarcieribrixen: and I brought up ^^^
06:08:48tarcieriWHY DOESN'T RUBY HAVE A JIT?
06:08:53iccodesI wouldn't mind
06:09:33tarcieribrixen: but I missed evan's keynote
06:09:56tarcieribrixen: and a few days later matz and ko1 etc had the "Denver Accord" or whatever they called it
06:10:02tarcierito merge yarv into trunk
06:10:24brixentarcieri: interesting
06:10:25tarcierihttp://www.artima.com/forums/flat.jsp?forum=123&thread=181698
06:10:35iccodesHow about an Evan based JIT where it FTPs your ruby code to evan and he converts it into asm and sends it back. Thoughts?
06:10:43brixentarcieri: so this joel article is typical IME, a bunch of blather
06:10:46tarcieriiccodes: lulz
06:11:04tarcieribrixen: yeah my main takeaway is "ruby is slow cuz it can't jit"
06:11:25tarcieribrixen: this was when I was trying to hack on MRI in C and getting really fucking pissed off
06:11:33tarcierilike OH MY GOD
06:11:35tarcieriTHIS IS HORRIBLE
06:11:36tarcieriMY EYES
06:11:40tarcieriTHEY ARE BURNING
06:11:43brixeniccodes: you can run rbx directly from the build dir, just clone; ./configure; rake
06:11:43tarcieriTHIS CODE IS SO BAD IT BURNS MY EYES
06:11:57brixentarcieri: yep
06:12:01iccodesk
06:12:08tarcieribrixen: it's also the day I met Zed
06:12:13brixenheh
06:12:18brixenbusy day :)
06:12:20tarcieribrixen: like he talked about Mongrel and Utu
06:12:29tarcieriand I talked to him briefly after that
06:12:36tarcieriand got up and, uhh yeah, kind of went off on Matz
06:12:41tarcieriand Zed's like "we should talk more"
06:12:42tarcierilol
06:12:48brixenheh
06:13:08tarcieriwe had also run into the cgi eof bug in production
06:13:19tarcieriwhich was like... at the time an undisclosed security vulnerability
06:13:23tarcieriand I was talking to him about that
06:13:27brixenwell, rbx shows that not only can Ruby be effectively JIT'd, but the payoff is significant
06:13:31tarciericuz it was a DoS against any Rails app
06:13:38tarcieribrixen: indeed, yeah like
06:13:58tarcierihad I seen evan's keynote, I probably wouldn't have gotten up and talked to Matz about the deplorable state of how Ruby code was getting executed :)
06:14:06brixenheh
06:14:07tarcieriand then like 2 days later it was "solved" with YARV
06:14:27brixenwell, yeah, and that's why the night I read about rbx I started contributing
06:14:29brixenpretty much
06:14:36tarcieriand IronRuby a.k.a. whatever it was called at the time, there was a talk on that too and a release announcement
06:14:38brixenI had tried to work on YARV
06:14:46tarcieriwell I did a ton of shit with YARV
06:14:48tarcieriand nobody cared
06:15:06tarcieriand now people are starting to care and igrigorik is starting to do shit half as cool as what I did
06:15:12tarcieriand people are like OMFG I CAN WRITE NODE IN RAILS
06:15:16brixenheh
06:15:45iccodeswhy did they have to call it node?
06:15:50tarcierithey?
06:15:50brixenthe achilles heel of good tech... marketing
06:15:51tarcieriry?
06:15:57iccodesyes
06:16:02tarcierinot like my names are much better
06:16:04tarcierirev?
06:16:04tarcieriheh
06:16:06iccodeshow many nodes do you run node on? wtf
06:16:07brixenheh
06:16:07tarcieriungooglable!
06:16:41tarcieriI talked with ry quite a bit when he was working on ebb
06:16:45brixengoogles going down anyway, check if it Bings :)
06:16:45tarcierihe gave me some pointers on rev
06:16:46iccodesthats what is great about rubinius. It compiles down to rbx but is still googlable before it gets JITed.
06:16:53tarcierihaha
06:17:18tarcierispecs out an opcode that does nothing
06:17:19tarcierilol
06:17:23tarcieriactually it does something
06:17:36tarcieriit kills a process, which means it increments a pointer
06:17:37brixenevery insn set needs a no-op!
06:17:46brixenoh, that's a lot of something
06:17:50tarcieribrixen: unknown instructions in core wars are noops
06:17:54iccodesmaybe rev was short for something? Revolution etc.
06:17:54tarcieribut there's an explicit noop
06:17:56brixenahh nice
06:18:14tarcieribrixen: it's a great way to support "secret" instructions
06:18:25tarcieribrixen: maybe the instruction was a noop or maybe it actually did something!
06:18:27iccodesdo I need to specify where llvm is or does rubinius pick that up now?
06:18:36brixenit should pick it up
06:18:52tarcieriiccodes: I didn't even name Rev
06:18:52brixenconfigure has some smarts about it
06:19:06iccodesoh
06:19:15tarcieriiccodes: this weird indian guy who could barely speak English was the one who was all pushing for it and named it
06:19:21iccodesit downloaded its own llvm
06:19:26tarcieriwrite the initial code and disappeared
06:19:28brixenI can't believe rvm install rbx-head picked up native_int branch
06:19:41tarcieribrixen: lol
06:19:50brixeniccodes: yeah, we have pre-builts for some platforms
06:19:50tarcieriworks with like... released versions and shit
06:19:53tarcierieven if they have bugs :)
06:19:54iccodesbrixen: I was about to go bitch to wayne but I'd like to get something that works first
06:20:14brixeniccodes: indeed, checking the direct clone is a good first step
06:20:18tarcierisince 1.0.1 I've only seen one random-seeming segfault
06:21:18iccodesmy girlfriend sent me a picture of food she made, how does she know I'm doing hunger inducing sysadmin work?
06:21:31brixeniccodes: they are mind readers :)
06:21:36tarcieriperhaps she doesn't... hence the problem
06:21:39brixenheh
06:21:48iccodeswell it is only a picture
06:21:59iccodesI'll eat my phone if I have to but that seems excessive
06:23:46brixenI love deleting code
06:23:48iccodesNow that rbx has reached 1.0 I think its time for it to be redone in Go. This is taking so long to compile and I heard Go fixes that. See you in 2 years for 1.1. K thanks
06:24:01brixenheh
06:24:14dwaiteseconded!
06:24:20brixenGo isn't really an appropriate language to write a language that needs a GC
06:24:29brixenhowever, evan is working on a real language we could use
06:24:39tarcieribrixen: haha nice
06:24:49tarcieribrixen: dude like... scientists need a new programming language
06:24:53iccodesmirah? Charles would never let him hear the end of it
06:24:59tarcieriand like Python + SciPy kinda fills that role
06:25:08tarcieribut like someone needs to fucking kill Fortran
06:25:11brixeniccodes: nah, different than Mirah, whatever that is :)
06:25:13tarcieriwhat a horrible fucking language
06:25:17iccodesheh
06:25:18brixentarcieri: indeed
06:25:30tarcieriI supported Fortran forever
06:25:31brixenMirah is like a limp handshake
06:25:37tarcieriwhere forever = 5 years
06:25:39tarcieribut like
06:25:41tarcieriugggggghhhhh
06:25:44brixendoesn't quite know which way it wants to go
06:25:44tarcieriMirah is badass
06:25:45iccodesoddly erotic?
06:25:51tarcieribut yeah
06:25:52brixeniccodes: indeed
06:25:58iccodeslol
06:26:03tarcieriI wish Charlie would stick to targeting the JVM with it
06:26:04brixentarcieri: it started out as a jvm thing, now it might be... anything?
06:26:09tarcieriinstead of trying to make it more abstract
06:26:13brixenyeah
06:26:17dwaiteobviously
06:26:21iccodesI forgot how much fun
06:26:22tarciericuz like
06:26:25iccodes#rubinius is
06:26:26tarcieriit needs GC
06:26:35tarcieriso where else are you going to use it?
06:26:43tarcierirbx I guess :)
06:26:43dwaitewhat you need to do is convince the fortran guys to replace their code with http://www.netcobol.com/products/Fujitsu-NetCOBOL-for-.NET/overview
06:26:56tarcieribut you have a dynamic language-oriented VM
06:26:57tarcieriso
06:26:59tarcieriyeah
06:27:02brixeniccodes: I have a hobby project to target Go to the rbx vm :)
06:27:07iccodesbrixen: rake aborted!
06:27:08iccodesuninitialized constant Rubinius::Compiler
06:27:10brixensince Go uses a (shitty) GC
06:27:11dwaitebrixen: I think you could write in Go, but would want to use Go's VM
06:27:19dwaiteerr, GC
06:27:22dwaite(tired here)
06:27:22tarcieribrixen: "we'll fix the GC later!" (famous last words)
06:27:28brixentarcieri: indeed
06:27:35brixeniccodes: gist me
06:27:38iccodesk
06:27:38tarcieribrixen: go needs exceptions
06:28:03dwaiteyeah mono showed me how bad an idea it is to say 'we'll fix GC later'
06:28:09brixentarcieri: evan added call_custom insn, so the compiler can emit static calls
06:28:10dwaiteunless you are also planning a rewrite later
06:28:16dwaiteits kinda more difficult than that
06:28:18tarcieribrixen: that's cool
06:28:22brixentarcieri: everything else is details
06:28:24iccodeshttp://gist.github.com/563506
06:28:40tarcieribrixen: but seriously my only interest in Mirah is writing the performance-critical components of an application for the JVM
06:28:45tarcieribrixen: for which Mirah is AWESOME
06:28:51brixeniccodes: erm
06:28:56brixeniccodes: that was with rake?
06:29:04iccodesyep
06:29:15iccodeswant me to run it with --trace?
06:29:24tarcieribrixen: I know Charlie has higher aspirations but... how?
06:29:27brixeniccodes: sure
06:29:36tarcieribrixen: LLVM + some GC?
06:29:49brixentarcieri: for?
06:30:04tarcieriI dunno, running Mirah without the JVM?
06:30:11brixenoh, yeah I guess
06:30:13brixenor just LLVM
06:30:20brixena good type system is hard
06:30:22tarcieribut Mirah is garbage collected
06:30:23iccodeshttp://gist.github.com/563507
06:30:30brixenfrom what I've read, Mirah ain't there yet ;)
06:30:42tarcieriI haven't tried to use it
06:30:51brixeniccodes: ugh
06:31:10brixeniccodes: you're trying to compile rbx with the rbx you're building I think
06:31:15brixeniccodes: rvm reset
06:31:18brixenthen try rake again
06:31:44brixenrvm is so ambitious
06:31:52brixenand painful :)
06:32:16iccodesah
06:32:20iccodesthat makes some sense
06:32:24tarcierirvm is my friend until it horks and fucks itself
06:32:50tarcieriit's mostly upgrading that's been a bit
06:32:51tarcieri+ch
06:33:15brixenwell, rbx requires a bootstrap impl to build
06:33:25brixenie, you have to build it with a fully functional ruby impl
06:33:28iccodesthe whole gemset thing has been great, wish bundler came out 2 years ago
06:33:46brixenI should make the build system try to detect building with itself
06:34:03iccodesI've been in rake:install circular dependency hell for years. RAILS!
06:36:07brixenhi ezmobius!
06:36:46ezmobiusyola
06:36:48ezmobiusready to grab lunch next week sometime?
06:36:51tarcierihaha
06:36:53tarcieriohai
06:36:57brixenezmobius: yep!
06:36:59ezmobiusyou're still in portland yes?
06:37:07brixenezmobius: I'm in socal right now training with my uncle
06:37:08ezmobiusyaya
06:37:13ezmobiusahh
06:37:13brixenezmobius: driving back on monday
06:37:19ezmobiuscool
06:37:27ezmobiusim leaving sf on sunday
06:37:27iccodesbrixen: what part of socal?
06:37:39brixenezmobius: cool, have a safe drive
06:37:45brixenezmobius: bummer about the car :(
06:37:45ezmobiusbut i have a wife, a 7 month old baby and two pugs so its going to be a long drive
06:37:53brixenheh, yeah, take your time
06:38:05ezmobiusespecially since the old pug is incontinennt and likes to crap without realizing it
06:38:07brixenezmobius: also, speed limit in oregon is 65 max
06:38:13brixenezmobius: don't even think about going 80
06:38:17ezmobiusi got my truck back today
06:38:19brixenthey'll haul you to jail
06:38:20iccodesezmobius: best of luck
06:38:20ezmobiusits so nice
06:38:26ezmobiusnicer then i remember
06:38:38brixeniccodes: escondido, san marcos
06:38:43ezmobiusi only got to drive it fro 6 days before it was in the shop for 35 days
06:38:48ezmobiusthx
06:39:37ezmobiusin their favor the body shop paid $750 out of %1500 deductables
06:39:42ezmobiusfor being so late
06:39:45brixenoh nice
06:39:52brixen35 days is a loong time
06:39:55iccodesbrixen: you're a bit too far south for a hang out
06:40:06brixeniccodes: where are you at?
06:40:09iccodesLA
06:40:11ezmobiusyeah no joke
06:40:16brixeniccodes: ahh yeah
06:40:17ezmobiusand it was just body work
06:40:23ezmobiusno engine or tranny or anything
06:40:31brixeniccodes: I was at RB.LA last week
06:40:35brixeniccodes: you should go
06:40:40iccodesbut I'm actually thinking about a portland trip in a few weeks
06:40:44iccodesI'm going to the meetup on the 9th
06:40:49iccodesyou going to be there?
06:40:49brixencool
06:41:05brixeniccodes: oh, rb.la is on tues
06:41:10brixenit's a hack night
06:41:14brixena la seattle,rb
06:41:17brixener s/,/./
06:41:25iccodesright
06:41:45brixentues is the 7th :)
06:41:51brixenI'll be in oregon
06:41:52iccodesI'd go if I didn't feel I would be getting in the way of the hacking
06:42:00brixenheh
06:42:05brixenhow does that work?
06:42:21iccodesI sit there and talk to you guys while you try to do cool stuff
06:42:30brixenahh, it's all good
06:42:46brixenthe ones who want to talk, talk, the rest code :)
06:42:48ezmobiuslooking at this house to buy http://www.rmlsweb.com/v2/public/PhotoViewer.asp?CRPT2=IXgUGzBIMaXZZBXpTAVNDNhxycXIhdSwPL3wAMh4CbA zDzDouiPtUnpYiyBWaBlqp3XbQzDzDdgh
06:43:09brixenezmobius: beautiful!
06:43:20iccodesezmobius: would you be up for lunch if I go up there? Sweet house
06:43:31ezmobiushas one of those little pools with the current in it so you can swim against the current
06:43:43tarcieriezmobius: noice
06:43:45ezmobiusiccodes yeah for sure
06:43:50iccodesthe open kitchen is hawt
06:43:51tarcierigawd buying a house lol
06:43:56tarcieriI just bought one
06:44:05tarcierifinally moving into it tomorrow
06:44:23ezmobiusthat gouse would be $2mill in SF but its only $429 in portland
06:44:31tarcieriyeah heh
06:44:36brixentarcieri: congrats!
06:44:37tarcieridealing with Boulder vs. Denver
06:44:55tarcierithe house I bought in Boulder for like $350k would be worth $1mil+ in Boulder
06:44:57tarcieribrixen: thanks
06:45:01tarcierierr
06:45:12ezmobiusim looking forward to buildign a glassblowing studio in the house i buy
06:45:12tarcieris/Denver/Boulder/ (one time substitution for the first match!)
06:45:18tarcieriezmobius: hell yeah
06:45:20ezmobiusanyone want to learn how to blow glass?
06:45:26iccodesezmobius: sign me up
06:45:30tarcierijust wants a hack room where he can work on various electronics-related projects
06:45:30ezmobiusits soo fun
06:45:31brixenezmobius: I'd love to
06:45:36iccodesI need a new career
06:45:44tarcieriezmobius: I would like to but I'm more into surface-mount soldering atm :)
06:45:52iccodesIts time for my 3rd career anyway
06:45:57iccodesa new one ever 7 years right
06:46:08brixensure, why not
06:46:18tarcieriezmobius: that's a badass looking house though
06:46:33iccodesezmobius: how hot does it get while blowing the glass?
06:46:37ezmobiusyeah and theres tons of others just as nice in portland
06:46:44tarcieriI just bought one with a horrible ass web site I don't even want to link but: 122ellsworth.com
06:47:00tarcieriI suggest turning down your volume before visiting
06:47:38ezmobiustheres 2 types of glassblowing. there is lampworking where you have a torch at a workbench with ventilation and you take cold tubes and rods of glasss and heat them up to shape them. beadmaking, marble making, goblets etc.
06:47:44iccodestarcieri: does that woman come with the house?
06:47:51tarcieriiccodes: lol
06:48:07ezmobiusthen there is soft glass with the big furnace full of molten glass and 5 foot metal tubes you pull it out with
06:48:18ezmobiussoft glass studios are more expensive and way hotter to work in
06:48:18iccodesezmobius: so I could make a series of tubes maybe? Oh the irony
06:48:29ezmobiusim building a lampworking studio at my house
06:48:41ezmobiusive built a hot shop though in bellingham in the 90's
06:49:06ezmobiusi ran an 18k sq/ft glassblowing studio/school up there for like 7 years
06:49:17tarcieriawesome
06:49:23tarcieriwhat else do you make besides lamps
06:49:23tarcieriheh
06:49:36ezmobiusyou can make any 3 demensional shape you can think of if you are patient enough
06:49:40ezmobiusand have the skills
06:49:53tarcieribut I can do that with a rapid prototyper!
06:50:03ezmobiusi like to make marbles and paperweights with a stumpsucker
06:50:04brixenezmobius: you'll have to come to the dorkbot meetups
06:50:18brixenezmobius: more electronics, but allso some 3d fab stuff
06:50:27brixencross-polination :)
06:50:39ezmobiusyou have this block of carbon thats like 8" cubed and you bore a cylynder all the way though the middle of it
06:50:42brixenput an IC in your lamps :)
06:51:03ezmobiusthen you put like a metal air hickey table type thing underneath it attached to a vacuum cleaner
06:51:28iccodesezmobius: ruby controlled arduino that makes glass shaped rubies. It turtles all the way down.
06:51:36brixenheh
06:51:46ezmobiusthen you make glass scultupres of whatever you want like sea life etc. you put it in the bored out hole. gather up a blob of glass and drip it over the top while you turn on the vaccuum
06:52:06ezmobiusit sucks all the air bubles out of it and you end up with your sculpture ecased in clear glass
06:52:09ezmobiusits awesome
06:52:25ezmobiustotally
06:52:59brixeniccodes: did your build work?
06:53:25iccodesbrixen: I totally forgot about it, getting entranced by all this talk of craftsmanship
06:53:30brixenhehe
06:53:40brixenwell, I'm going to be entranced by sleep soon
06:53:46brixenso if you could check... :)
06:54:03iccodesrubinius 1.0.1 (1.8.7 2ce324ae 2010-06-03 JI) [i686-pc-linux-gnu]
06:54:10iccodesit build it
06:54:27iccodesbut I'm getting the same version as the one built with rvm
06:54:31iccodesrubinius 1.0.1 (1.8.7 2ce324ae 2010-06-03 JI) [i686-pc-linux-gnu]
06:54:36brixenerm
06:54:39brixenwth...
06:55:21brixenI'm so confused...
06:55:53iccodessleep on it, I'm in no rush
06:56:08brixeniccodes: could you gist me: ruby -v; cd rubinius; git branch; git log -1
06:56:20brixenoops, and ./configure --show
06:57:34iccodeshttp://gist.github.com/563531
06:58:00iccodestarcieri: nice house, I'd cook a nice dinner in there
06:58:31tarcieriyeah the kitchen is dope
06:58:37dwaitebrixen, re: history of windows programming revolutions, ole and mfc were probably the two worst things they ever made
06:58:50iccodesthe music on the website is doing a weird remix with the mass effect 2 soundtrack I have going in the bg
06:59:04tarcieriiccodes: haha I can't stand that shit
06:59:13tarcieridwaite: yeah leave it to Apple to make d'ole
06:59:16tarcierierr
06:59:18tarcieriNeXT
06:59:19tarcieribut yeah
06:59:27tarcieriSTEVE JOBS
06:59:30tarcieriis both
07:00:56dwaiteerr?
07:01:02brixeniccodes: erg, well that's what rev git rev-list reports
07:01:22brixeniccodes: so seems like rvm was build rbx-head correctly
07:01:34brixeniccodes: I'll try to repro tomorrow
07:02:22iccodesbrixen: you rule and if you need anything else really really hesitate to ask
07:02:45brixeniccodes: cool, thanks for double checking for me
07:02:53iccodesnp
07:03:15iccodes"To Rubinius and Beyond!"
07:03:19brixenheh
07:04:15brixeniccodes: could you add your setup steps to the ticket, please
07:04:25brixenie what rails version, etc
07:06:09tarcieriUSE THE FORMAT
07:07:21iccodesbrixen: done with a twist
07:08:58brixeniccodes: sweet, thanks
07:09:33iccodestarcieri: were you talking to me about the format?
07:09:42tarcierilol sorry
07:10:00tarcieriI just got bombarded with that myself
07:10:29tarcierihttp://github.com/carlhuda/bundler/issues#issue/634/comment/386566
07:10:58tarcierikinda like fuck your metadata, I'll figure it out myself
07:11:01tarcieriinfinite weirdness
07:12:59iccodestarcieri: no problema
07:13:04tarcieriheh
16:02:16brixenevan: seen? http://code.google.com/p/picoc/
16:07:59ruebrixen: 'Cause C is popular because of its expressiveness?
16:09:35brixenum... I think so? :)
16:25:11dbussinkevening
16:25:26brixendbussink: howdy
16:25:31dbussinkwe're starting to look like belgium with our government formation :P
16:26:19brixenis that a good or bad thing?
16:26:27dbussinkhehe, a bad thing i guess
16:26:39dbussinkalthough i'm not sad this coalition blew up
16:27:06dbussinkelections where in june, second attempt of forming a coalition blew up now
16:27:42brixendbussink: count your blessings :P http://www.youtube.com/watch?v=ht8PmEjxUfg
16:28:01brixenyou could be living here with incredibly ignorant people
16:28:12dbussinkbrixen: one of the parties in the attempted coalition has similar followers
16:28:33brixenunsurprising
16:28:40dbussinkalthough these ralliers probably are even more retarded :P
16:28:41brixenyou probably have far fewer though
16:29:22dbussinklooking at how big the republican party still is, we must have yeah :P
16:30:41dbussinkbrixen: i've never met americans like these though
16:30:55brixendbussink: count yourself very lucky
16:31:10dbussinkonly been at the coasts though :P
16:31:35brixenwell, I'm just inland about 30 min in so cal atm, and I seem to be in a town full of them
16:32:33dbussinkbrixen: so cal?
16:33:18rueSouthern California
16:33:19brixensouthern califoria
16:33:27brixenyeah +n
16:35:32dbussinkbrixen: maybe i have some inate ability to avoid them :P
16:36:16brixendbussink: if you could put that in a bottle so we could crop spray the u.s. that'd be great :)
16:36:26dbussinkbrixen: i can send you some perhaps then
16:36:33brixenheh
16:36:50dbussinkjust split the usa in a coastal country and the middle
16:37:38brixensome of middle america is educated and informed
16:38:28dbussinki'm just overly generalizing :P
16:38:41brixenheh, yeah
16:39:27dbussinkjust as you think you're down to one issue, they keep popping up :)
16:39:33dbussinkon a more related note btw :P
16:42:04evanI see that people decided to test their code under rbx today!
16:42:13evanlots of new tickets
16:42:16evanmost of them easy too
16:42:16evanyay
16:42:51dbussinkusually people only start testing stuff after a release :)
16:42:57dbussinkso that's a good thing yeah :)
16:43:04evanyeah
16:43:19dbussinkevan: did you guys manage to finish the int usage audit?
16:43:29evanwe were last night
16:43:33evanbrixen was finishing it up
16:44:08evanoh man, we got a bug report about masgn not returning an array...
16:44:38dbussinkevan: and you were talking about easy ;)
16:44:46evanwell that one can be easy
16:44:52dbussinkhe does admit this was a dubious find
16:44:54evani can just say "yep! we don't support it returning an array"
16:44:55evan:)
16:46:21evanhm, you know
16:46:40evani could probably detect when the return value isn't used...
16:48:52brixenI'm benchmarking / removing Array::Iterator atm
16:49:31evancoolness
16:49:40brixenevan: when we inline a block like using Array#each, is the block overhead completely optimized away?
16:49:53evanwhen we inline the block, yes.
16:49:57brixenk
16:50:02evanthat optz still isn't on by default though.
16:50:06brixenhmm
16:50:19brixenI'd sure like to use Array#each in a lot of these methods
16:50:36brixenrather than littering the significant logic all over
16:50:46evanwell, use it and benchmark it
16:50:48brixenie, start, start + total, i < total, i+= 1
16:50:56brixenyeah, that's what I'm doing
16:50:59evanremember when I found that a block was faster than the Hash::Iterator thing
16:51:09evanwe can create blocks fast fast
16:51:13brixencool
16:51:23evanand invoking them isn't too slow
16:51:46evantotally agree about the iteration logic.
16:51:53evanwould be nice to not litter it around.
16:51:57evanthats just a bug waiting to happen.
16:52:00brixenyes
16:52:16brixenand most of the uses of #each would have really simple blocks
16:52:27brixenthat actually don't have any vars that escape the method scope
16:52:43brixenseems like they could be optimized away completely
16:52:46evani was talking with yehuda a couple days ago
16:52:54evani should add some more conditions to block inlining
16:53:04evanso that we can turn it on by default and not worry about the weird blocks
16:53:31brixenthat would be cool, yes
16:53:42evanok, i'll take a look at that this morning
16:53:47brixenawesome!
16:53:49brixenthanks!
16:53:52evani'm a little wary of doing it so late in the game release wise
16:53:56evanso we'll see.
16:53:58brixenok
17:08:53boyscoutAdd more docs for the Debugger and Debugger APIs - a07bdb3 - Evan Phoenix
17:18:46boyscoutCI: rubinius: a07bdb3 successful: 3522 files, 15318 examples, 43186 expectations, 0 failures, 0 errors
17:39:58dbussinkevan: btw, what was that security issue some time ago someone mailed you about?
17:40:04evanoh yeah!
17:40:07evanthanks for reminding me.
17:40:25dbussinkwe could set up something like security@rubini.us perhaps
17:41:01evanthis is it: http://www.ruby-lang.org/en/news/2010/08/16/xss-in-webrick-cve-2010-0541/
17:41:32evanit's a one line change
17:41:40evan- @header['content-type'] = "text/html"
17:41:40evan+ @header['content-type'] = "text/html; charset=ISO-8859-1"
17:41:48evani'll apply it now.
17:42:38evani don't see why thats the fix
17:42:40evanbut i trust them.
17:42:42brixenevan: I'm also removing this "too big for long" nonsense in Array#fill
17:42:51evanvunderful!
17:46:25dbussinkwunderbar!
18:01:18evanok, specs run fine with block inlining on
18:01:23evani added a few more restrictions
18:01:28evanperhaps I should just push this
18:01:36evanand we can hammer in next week before release
18:01:39evanyou guys fine with that?
18:02:18dbussinkcool, i can run some stuff
18:02:25evanok
18:02:29evanlets do it.
18:03:39evanboom.
18:03:51boyscoutIncrease restrictions on block inlining, enable it by default - f997d3f - Evan Phoenix
18:04:39evanok, hammer on that please!
18:05:00evanthe new restrictions are
18:05:13evan1) no yielding from inlined an inlined block
18:05:26evan2) no testing if there is a block inside an inlined block
18:05:34evan2) no exception handlers in an inlined block
18:05:52dbussinkevan: as in, it doesn't inlinein those cases?
18:05:57evanyep
18:06:02evanif it sees a block doing any of those hings
18:06:03evanthings
18:06:06evanit won't inline it.
18:06:16evanthe idea is to get it solid inlining simple blocks
18:06:19evanand work up from there.
18:07:11brixenhm, the yielding from an inlined block will prevent a lot of my cases here
18:09:31evanyou're doing "each { |x| yield x }" a bunch?
18:09:45evanwe could probably get that working
18:09:51evanlet me audit that code now
18:10:01evani disallowed it because i wasn't sure of the logic
18:10:05evani need to go over it again
18:10:07brixenwell, not a bunch
18:10:13brixenbut yes, in a few places
18:10:17evanlet me take a peek
18:10:23evanthat has actually worked in the past
18:10:27brixenk
18:10:28evani disallowed it to be conservative.
18:10:31brixensure
18:15:04boyscoutCI: rubinius: f997d3f successful: 3522 files, 15318 examples, 43186 expectations, 0 failures, 0 errors
19:03:20brixenevan: almost got all of Iterator torn out
19:03:25evancool.
19:03:34brixenI'm grabbing some lunch and then I'll work on getting it merged in
19:03:42brixenstill need to run some sanity benchmarks
19:03:44evansounds good.
19:53:13boyscoutAllow yield_stack to be used in an inlined block - d5723c7 - Evan Phoenix
20:03:06boyscoutCI: rubinius: d5723c7 successful: 3522 files, 15318 examples, 43186 expectations, 0 failures, 0 errors
20:09:03kstephensIs there a way to run mspec on a single file without having rake install rubinius?
20:18:11brixenyes
20:18:17brixenbin/mspec path/to/file
20:18:29brixenrbx runs fine from the build dir
21:04:12brixenwell, that's ironic
21:04:35brixenall the array specs pass, but rbx has some serious array bugs from ripping out Iterator
21:04:42brixenle sigh
21:05:46brixenahh, they are fake passing
21:51:28brixenok, much better
22:29:30evanbrixen: going ok?
22:42:34brixenyeah, just cleaning up failures
22:42:41brixenArray#fill is a nasty method
22:44:37evanyeah
22:45:25evangot my brazilian visa! yay!
22:46:30brixenyay!
22:48:36brixenhmm so, a Tuple of 3 elements on 32bit has a memory_size of 28, header of 12, body of 16 bytes
22:48:44brixenbut it only needs 12 bytes in the body
22:49:06evanmmm
22:49:14brixenoh, it need size
22:49:15brixennm
22:49:17evanyeah
22:49:20brixenthis boundary error is confusing
22:49:26brixenI should fix the error msg
22:49:31evansizeof(Tuple) == sizeof(Object) + sizeof(uint32)
22:49:34brixenyeah
22:49:42evanyeah
22:49:48evanplease fix that boundary exception message
22:49:49brixenI was thinking the size was in the header, incorrectly
22:49:50evani've been meaning to do that.
22:50:24evandid you see I commited code to allow yield inside an inlined block?
22:50:30brixenyes!
22:50:34evank
22:50:41brixenI haven't pulled master yet
22:50:46brixenbut I saw the commit
22:50:48evanwe need to hammer the shit out of that code through next week
22:50:52brixensure