Index

Show enters and exits. Hide enters and exits.

00:20:53rbxbotWhen a cricket is quiet, it is digging.
00:32:42brixenah rbxbot is a philosopher now :)
00:34:14evanhehe
00:34:51slavahi guys
00:35:09brixenhey slava
00:37:29brixenevan: are we on the same page here now? https://gist.github.com/1001094
00:42:09evanyep
00:42:12evanlooks good.
00:42:43brixenok, thanks
00:42:47brixenwayneeseguin: have at it! :)
00:46:16evanok, i'm off to dinner and nerd club.
00:58:22murphy_karasui can't rvm install --branch hydra rbx-nhydra at the moment…is this a known problem?
00:58:55murphy_karasusomething about runtime/platform.conf not being found…
00:59:33brixenmurphy_karasu: we saw that on CI today once, not sure what it is
01:00:03brixenmurphy_karasu: try going to ~/.rvm/src/ and rm'ing your rbx-head-hydra dir
01:00:09brixenand try installing again
01:00:11murphy_karasuk
01:05:43murphy_karasubrixen: no joy
01:06:16brixenmurphy_karasu: ok, let me try it here and see if I can figure it out
01:07:00murphy_karasuI think it happens while trying to build Melbourne
01:07:25brixenshouldn't
01:07:31brixenhas nothing to do with building melbourne
01:07:55brixenand I built from a clean repo earlier
01:14:24brixenmurphy_karasu: rvm install --branch hydra rbx-nhydra worked fine here
01:14:30brixenare you sure you rm'd your src dirs?
01:16:23brixenfor that command, you'll need to rm ~/.rvm/src/rbx-head-nhydra I guess
01:16:35brixenthat's what it created here
01:16:43murphy_karasuyes, I did that…strange
01:21:21srawlinswhoa. that is ready right now (rvm install --branch hydra rbx -nhydra)? should we test our gems?
01:21:43brixenhydra is not 2.0.0pre
01:21:51brixenhydra has been around for a few months ;)
01:22:13brixenyou can test your 1.8.7 compatible code for any threading issues
01:22:21srawlinsright right, but i didnt know if it was still "alpha" or... not prod-ready, etc
01:22:28brixenah yeah
01:22:37brixenwe've been wanting people to test on it
01:22:41srawlinswill do
01:22:45brixensweet
01:24:02brixenlove watching people drive the wrong way on a one way
01:24:28cmathesonhey, just trying to get into rubinius. do most people use rvm or just build rubinius manually as detailed on the website?
01:24:38brixencmatheson: it's really up to you
01:24:52brixencmatheson: if you want to dev on rubinius itself, build from a clone
01:25:08brixenyou can put the rbx_clone/bin dir in your PATH and run rbx like MRI
01:25:19brixenwithout needing to "install" anything
01:25:35brixenrbx runs from the source/build dir just fine
01:25:53brixenand we have symlinks in the bin dir for 'ruby', 'gem', 'ri' etc
01:26:10cmathesonbrixen: ok cool, i was doing that last night. how does that work with rubygems? does it conflict with my regular ruby install?
01:26:20brixencmatheson: not at all
01:26:29brixengems are installed in an rbx specific dir
01:26:52cmathesonbrixen: awesome, thanks
01:26:52brixenyou should either run bin/rbx -S gem or use the 'gem' symlink in bin/
01:27:03cmathesonok that makes sense
01:27:20brixencmatheson: in fact, gems that have C ext cannot be shared by rbx/mri
01:27:36brixenbecause they are not ABI compatible, ie they must be built against rbx specifically
01:27:44brixenthe C-API is only source compatible
01:27:54cmathesonok, right
01:46:26cmathesonhmm, i got a segfault when building rubinius-1.2.3 (this is happening on two different ubuntu boxes). what's the best way debug this?
01:46:47cmathesonoh, it's actually when running "bin/mspec ci --background --agent"
01:50:58srawlinscmatheson: so you chose the compile-it-yourself way? where did u grab the source from?
01:52:56cmathesonsrawlins: yes, i'm just building from the source i got on the rubinius homepage ("1.2.3 Archive" link)
01:55:05srawlinsah i see... can you post a gist or pastie of the segfault?
01:55:12srawlinsand actually
01:55:30srawlinscan you rake clean first
01:55:35srawlinsi think its 'rake clean'...
01:57:24cmathesonsrawlins: rake clean worked. the pre-clean segfault output is here: https://gist.github.com/1001657 . rebuilding now
02:01:22srawlinssuper interesting... i wonder if it is a problem that has been fixed since the 1.2.3 release
02:02:01srawlinsyou might grab the source from github https://github.com/evanphx/rubinius with git or grab a zip
02:03:15cmathesonsrawlins: cool, i'll build from git (i just got the segfault again after i finished building clean)
02:04:01srawlinsrubinius is pretty crazy; building from HEAD is usually perfectly stable
02:06:25cmathesonoh great, am i better off just using head for non-production stuff then?
02:08:05matthewdcmatheson: Yes, latest master is recommended
02:08:35matthewd(and latest from the hydra branch is encouraged for testing at the moment)
02:11:42cmathesonmatthewd: ok cool, thanks
02:13:30murphy_karasubrixen: hydra install from src worked
02:15:27murphy_karasuso it might be a problem related to rvm.
02:30:16cmathesonwell dang, same segfault from the git version. the weird thing is that i didn't have this issue when i built at work this morning (also an ubuntu box), but these two computers i'm working with now are both behaving the same. i'll try to figure out what the difference between them is
02:31:17murphy_karasuhydra is noticeably slower than head, for general single-thread tasks. does anybody know why?
02:39:42dwaitemurphy_karasu: whats rbx -v report?
02:40:22murphy_karasurubinius 2.0.0dev (1.8.7 5529d479 yyyy-mm-dd JI) [x86_64-apple-darwin10.7.4] vs. rubinius 1.2.4dev (1.8.7 25a8922d yyyy-mm-dd JI) [x86_64-apple-darwin10.7.4]
02:42:14dwaitehmm that looks right
02:42:44dwaiteodd that you have 10.7.4 while I have 10.7.0
02:43:18murphy_karasu10.7.0 would be quite old…
02:44:36murphy_karasuno wait…that's not the OS X version…
02:44:52murphy_karasuwth ^^
02:46:58dwaitewhich compiler/xcode version are you using?
02:47:38murphy_karasuoh, maybe this is because I have a recent MBP
02:48:13murphy_karasugcc version 4.2.1 (Apple Inc. build 5666), XCode 3.2.6 (1761)
02:52:27murphy_karasudoes XCode 4 or a recent GCC make rubinius faster?
02:55:40dwaiteI don't believe that would be it, I was asking for version strings just to make sure JIT was enabled on both builds, and was curious about the 10.7.4 version string
02:58:07murphy_karasuI see
03:03:27murphy_karasuneed to sleep a bit. bye!
03:13:35boyscoutAdded directory 'runtime' dependency for platform.conf. Fixes #950. - 3f8b920 - Brian Ford (hydra)
03:16:17scoutmasterrubinius#51: SUCCESS in 2 min 37 sec
03:44:38argent-smith'twas quite a commitous day in LA :-)
03:45:27argent-smithsays all good ru moin!
03:47:04argent-smithhas a good idea to hack the docs while all devs are asleep >:-E~
04:32:04rbxbotWho stays quiet agrees.
04:32:29evanhaha
04:43:19alexsuraciguess he talks when the channel's being quiet
04:56:46alexsuraciis slowly getting atomy running with 0 runtime macroexpansion
04:59:23alexsuraciyay! got'er going. two tests failing, but close enough for tonight.
04:59:31brixennice!
05:08:51alexsuracifuuuuuuuuuuuu. bad: seeing spider in your bathroom, out of reach. worse: coming back later, and it's moved somewhere.
05:08:59alexsuraciit was right above me :<
05:09:16alexsuraciwelp, time to go take a shower with that beast lingering.
05:13:00tarcieriI have rubinius stickers! :O
05:13:59brixentarcieri: woohoo! :)
05:14:27brixentarcieri: take 'em to karaoke
05:15:02tarcierihaha
05:15:25tarcieriI gave one of the big bumper sticker sized ones to one of my friends who wants to put it on his snowboard
05:15:51brixenhah nice!
05:15:59brixenRubinius hits the slopes
05:16:03tarcieriheh
05:19:32tarcieribelieve it or not they're still open
05:19:35tarcieriand it's june :O
05:30:58alexsuracimy birthday this friday :O
05:36:37alexsuracik, bed time.
05:37:47Gibheerevan: can you give me the ssh key for ci?
06:22:47rbxbotWho stays quiet agrees.
08:02:20ezmobiusevan https://gist.github.com/1001954
08:02:25ezmobiusbrixen ^^
08:07:00dbussinkezmobius: cool :)
08:07:09ezmobiusyeah fun
08:07:27ezmobiushttp://rbx-sinatra.gfgf.aws-brba.org/
08:07:30ezmobiusthere it is live
08:07:37dbussinkah ok, cool :)
08:07:43dbussinkhow is it performing?
08:08:30ezmobiusseems good
08:08:46ezmobiushttps://gist.github.com/40b83808a3326f20d4ad
08:10:44ezmobiusgets better the longer it runs
08:10:48ezmobiusas it jits etc.
08:11:29ezmobiustook me all of 1 hour to add to the platform
08:11:31ezmobiusawesome
08:11:36ezmobiusadded lua as well
08:11:40ezmobiusluajit i mean
08:15:01dbussinkezmobius: ah, luajit is pretty awesome :)
08:15:30dbussinkezmobius: you can add hydra too as an experiment ;)
08:15:36dbussinkit's been pretty stable for me actually
08:15:37ezmobiuswhats hydra?
08:15:47ezmobiusoh the non gil branch?
08:15:51dbussinkyeah
08:15:54ezmobiusyeah maybe not tonight but ill try it tomorrow
08:16:03dbussinkguess it's sleep time over there :P
08:18:52ezmobiushttps://gist.github.com/7322f90c7cea347b35d9
08:18:54ezmobiusthis is cool
08:19:07ezmobiussuper easy to compare the perf of different runtimes side by side on the same app
08:19:55dbussinkrbx needs some work there it looks like
08:20:05ezmobiusyeah
08:20:48ezmobiusfun to hack around on
08:20:54ezmobiusthis is on a single instance microcloud too
08:20:57dbussinkezmobius: true yeah :)
08:20:58ezmobiusnot a full blown cloud
08:21:26dbussinkezmobius: btw, going to do a guest lecture here at university, for the compiler / language construction course next week :)
08:21:37dbussinkrbx evangalism :)
08:22:36ezmobiusnice
08:24:20dbussinkso that means adding a bunch of work for the weekend, but hey, should be fun :)
08:25:39ezmobius;)
08:39:09Gibheerdbussink: do you need the freebsd box at the moment? i want to shut it down
09:14:30txusanyone read "language implementation patterns" by Terence Parr?
09:24:02matthewdscrolls through 34 pragprog books... nope, sorry :P
09:33:10argent-smithsilent irc
09:33:26argent-smithi've got a clue
09:33:42argent-smithRussian day is American night!
09:47:41hosiawakargent-smith: wherabouts in Russia are you ?
09:52:14argent-smithMSD timezone, ~100miles north from Moscow
10:08:20txusargent-smith: yeah, most of my workday is rubinius-silent too :)
10:24:39banisterfiendhey guys, you have source_location on Method, do you think you'll put source_location on Proc any time soon too? :P
10:32:32dbussinkbanisterfiend: https://github.com/evanphx/rubinius/pull/897
10:36:12banisterfienddbussink: i dont quite get that...there jsut seems to be specsthere no actual code, and any way the ticket was closed?
10:36:26banisterfienddbussink: is there any trick i can use to get Proc#source_location in the mean time?
10:38:25robgleesonbanisterfiend: Proc.new {}.block.file/line
10:38:27robgleesonsee the commit :)
10:39:30banisterfiendah i looked at the wrong commit
10:39:31banisterfiendthanks
10:43:18robgleesonno worries :p
12:30:32banisterfiendok guys
12:30:57banisterfiendhow do i go from method(:puts).source_location => ["kernel/common/kernel.rb", 189]
12:31:18banisterfiendto locate that actual file kernel.rb ?
12:33:49hosiawakbanisterfiend: what do you mean by locate ? the path to the file is the first element of the array returned by source_location, the second is the line number
12:34:29banisterfiendhosiawak: but that's not a complete path
12:34:41radarekhosiawak: I guess he want to do File.open(that_file) but it's relative path not absolute
12:34:44matthewdbanisterfiend: For kernel files... hmm... not sure how easily you'll map that to a real file
12:35:04banisterfiendyeah
12:36:12banisterfiendanyone knwo how to complete the path?
12:36:15banisterfiendbasically
12:36:50radarekbanisterfiend: maybe with one of them?
12:36:52radarek>> Rubinius.constants.grep /path/i
12:36:52radarek=> ["BIN_PATH", "LIB_PATH", "EXT_PATH", "HDR_PATH", "GEMS_PATH", "SITE_PATH", "VENDOR_PATH"]
12:37:11banisterfiendgreat
12:37:12banisterfiendthanks
12:37:15banisterfiendill have a play
12:44:51hosiawakbanisterfiend: File.join(Rubinius::BIN_PATH, "..", "kernel/common/kernel.rb") - something like this should work, not sure if that's the best way to do it though
12:46:19banisterfiendhosiawak: thanks man!!
12:47:27hosiawakbanisterfiend: what are you writing ? looks like some semantic autocomplete or a ctags replacement :)
12:48:03banisterfiendhosiawak: adding better support for rubinius for this: http://rdoc.info/github/banister/pry/master/file/README.markdown
12:48:37banisterfiendi want: show-method puts to retrieve sourcecode for rbx core methods
12:48:44banisterfiendi have it showing C source for MRI core already
12:49:35hosiawakbanisterfiend: coolio
13:30:23tjgillieswhat does it mean by 'embedding more than one interpreter in an application'?
13:32:45banisterfiendhosiawak: i dont appear to have a kernel/ folder in my rbx
13:33:59hosiawakbanisterfiend: weird, it's there https://github.com/evanphx/rubinius
13:34:12hosiawakbanisterfiend: using rvm or cloned copy of rbx ?
13:34:16banisterfiendhosiawak: i installed via rvm, coulld that be why?
13:34:19banisterfiendrvm
13:35:48hosiawakbanisterfiend: hmm, rvm stores the source in ~/.rvm/src/rbx*
13:36:07banisterfiendhosiawak: ouch
13:36:34lamnki want to learn debugging with rbx
13:36:40lamnkis there any tutorial for newbie ?
13:37:06hosiawaklamnk: http://rubini.us/doc/en/tools/debugger/
13:37:07lamnkfound http://rubini.us/doc/en/tools/debugger/ but the page doesn't explain much
13:38:28Gibheerlamnk: you can start the debugger by rbx -Xdebug or with the ruby code
13:38:49Gibheerwhen you are in the debugger, type help and you will get a list of all commands
13:38:49lamnki started it
13:39:02lamnkproblem is that i don't know how to use the debugger
13:39:23banisterfiendhosiawak: i guess i have to look for /\.rvm/ inside the BIN_PATH
13:39:34banisterfiendhosiawak: and if it exists then access it via ~/.rvm/src
13:40:04Gibheerlamnk: as far as i can say, it works like gdb
13:40:07lamnki don't know how to debug a program at all
13:40:21lamnkthat's why i asked for a tutorial for beginner
13:40:43Gibheerhmmm
13:41:10hosiawakbanisterfiend: I guess yeah, there might be a better way though, try asking wayneeseguin or evan when they're up
13:41:38banisterfiendhosiawak: this is turning out to be quite complicated
13:41:50dreinulllamnk: you might want to read up on debuggers in general. like gdb
13:41:52hosiawakbanisterfiend: ~/.rvm/rubies/rbx-head/runtime contains that kernel directory but it's all compiled to *.rbc so it's no good for you
13:41:53Gibheerrubinius itself has nothing like that, but in essence you use a debugger, when you want to take a look at the state of something in a running application
13:42:07banisterfiendhosiawak: yeah i was exploring there before
13:42:26dreinullor use something like eclipse with the ruby debug gem but I havent tried that for a very long time
13:45:02matthewdbanisterfiend: Out of curiosity, how do you locate the MRI source?
13:45:34banisterfiendmatthewd: i extract it using YARD and bundle the database in a gem ;)
13:45:40banisterfiend(dont tell anybody :P)
13:47:27banisterfiendi mean, i download teh ruby sources first, run YARD on it to generate a database with the source code and documentation
13:47:34banisterfiendand then put that database in a gem
13:47:48banisterfiendit's around 5 megs i think
13:48:12banisterfiendi have separate databases for 1.8 and 1.9
13:48:27banisterfiendso it'll return teh appropriate source for whatever version of MRI your'e using
13:52:31hosiawakbanisterfiend: Pry looks super cool
13:53:41banisterfiendcheers, the version we're working on now brings it all to the next level, we've been working on it for about a month now
13:54:04banisterfiendjust doing litlte tings now like trying to improve rbx and jruby support
13:54:44hosiawakbanisterfiend: I think I'm going to integrate it with rbxbot when you finish adding support for source browsing on rbx
13:55:09banisterfiendcool
13:55:32hosiawakbanisterfiend: so that rbxbot could not only run code but also display source (or actually gist the source)
13:56:01banisterfiendsounds awesome
13:56:05banisterfiendrbxbot help
13:56:12banisterfiendah, he's not here
13:56:36hosiawakbanisterfiend: it's offline atm because I'm reinstalling a vm, virtualbox managed to crash my system a few times so I'm trying out qemu ;)
13:56:52banisterfiendah :)
14:24:26giuseppehi everyone!
14:24:29giuseppequestion:
14:24:45giuseppeI want to add an italian translation of the documentation
14:25:27giuseppeso, I'm going to fork the project on github
14:25:45giuseppeand then ask the pull
14:26:19giuseppeshould I commit only once?
14:26:58Cadwalliongiuseppe_: commit locally, rebase, then push the rebase to your fork
14:27:06Cadwallionthen it comes up as only one commit for the pull request
14:27:44matthewdBut feel free to make a pull request once you've got a few pages translated; no need to wait until it's all done
14:28:07Cadwallion^
14:29:30giuseppeok!
14:29:48giuseppeI'm lookin' at the 'git rebase' doc tryin' to figure out how it works :)
14:30:44matthewdgiuseppe_: You can actually ignore most of that... just use 'git pull --rebase' to avoid needless merges
14:32:34giuseppematthewd: ok, fine, doing that way git updates my copy to the latest version and the applies my commits to it
14:33:04giuseppeI don't get how it will make my commits look as one
14:36:30hosiawakgiuseppe_: when working on your local copy after you've committed a few changes you can "merge" all your commits into 1 commit with git rebase -i
14:37:04hosiawakgiuseppe_: -i stands for interactive rebase which lets you pick the commits you want to keep
14:38:25hosiawakgiuseppe_: usually you'd pick the first commit and set all the others to "fixup" or "squash" it'll discard that commit's message and create 1 commit
14:38:48hosiawakgiuseppe_: and then you can push to your github account and create a pull request
14:39:31hosiawakgiuseppe_: best to try how rebasing works on a test project
14:39:37giuseppehosiawak: thanks, I found what I was lookin' for :D http://book.git-scm.com/4_interactive_rebasing.html
14:49:23giuseppebye guys, thanks for your help
14:49:43giuseppehope to have something ready soon :)
14:58:10banisterfiendhosiawak: got it working ;)
14:58:23banisterfiendand more to the point, i implemented it while in a pry session, using repl oriented development :D
14:58:30banisterfiendreally fun
14:59:30shevyhmm
14:59:31hosiawakbanisterfiend: awesome, repl programming ftw
14:59:35shevybanisterfiend is scaring me :/
15:01:26hosiawakshevy: in the 70's they would send rockets into space and run slime to reprogram them live, don't be scared ;)
15:01:47banisterfiendhosiawak: https://gist.github.com/1002473
15:04:01hosiawakbanisterfiend: wonderful
15:17:46alexsuracibanisterfiend: is that on rbx?
15:17:52alexsuraci(guessing so)
15:17:58banisterfiendyeah
15:18:08alexsuracinice, how's it finding the code?
15:18:21banisterfiendMethod#source_location
15:18:29alexsuraciah
15:18:29banisterfiendbut correcting the path
15:19:32matthewdDoes that mean it only works when rbx is installed using rvm?
15:20:42banisterfiendmatthewd: currently yes, but ill add support for other install methods too. I have an rvm_ruby?() method that checks for /\.rvm/ in the path, but i can have other checks for other configs, like when you clone direc from github or whatever
15:20:48banisterfiendit's a bit messy but i think it's doable
15:21:54matthewdWell there are three possibilities, AFAICS... rvm, running from a local checkout (easy enough; relative to bin or something), and installed-not-using-rvm
15:22:39banisterfiendyeah the first 2 are easy enough, and the 3rd i think will work the same as the 2nd? there will be a BIN_PATH/../kernel/ folder
15:22:51matthewdThe latter, I don't see how you'd get the source any more easily than you would for MRI
15:22:57banisterfiendah
15:23:03matthewdI'm pretty sure than an installed rbx doesn't include kernel sources at all
15:23:04banisterfiendyeah you're probably right
15:23:10banisterfiendah ok
15:23:35banisterfiendwell in that case i'd probably have to package teh sources in a gem like u say
15:23:50matthewdAt which point I'd at least consider arguing that however you solve that should solve for all... similarly, I don't imagine you're checking .rvm for MRI sources?
15:24:19banisterfiendno im not
15:24:45matthewdExtra corner case, I suspect one could use rvm to install, then delete the source/build directory
15:25:00banisterfiendproblem with the database approach though is that the source goes out of date
15:25:08banisterfiendor doesnt match the version they have installed
15:25:25banisterfiendwith MRI this is less of an issue as the source doesnt change that much from versino to version
15:25:38matthewdYeah
15:25:40banisterfiendbut i guess it's a bigger deal for rbx,so that's why i'd prefer the .rvm/src/ approach if possible for rbx
15:25:40alexsuracibanisterfiend: pry could probably work real well with atomy, which keeps method bodies stored in-memory on the classes :P
15:25:52alexsuraci(as AST nodes, though, not strings)
15:26:05alexsuraci(which can be pretty-printed easily)
15:26:09banisterfiendalexsuraci: cool
15:26:48banisterfiendyeah i talked to evan about it a while ago and he said there may be some way of keeping the rbx source around
15:26:57banisterfiendbut i havent heard back from him since
15:46:40evanbanisterfiend: hi!
15:46:46evanwhat did I promise myself to? :D
15:47:06banisterfiendhehe you didnt promise :P you just said you'd look into it
15:47:21banisterfiendbut it's ok i understand it's pretty low priority :)
15:47:27evanah, the kernel/ paths for kernel methods
15:47:38evanare you fixing them up now?
15:47:52banisterfiendim just tring to extract the source
15:48:02matthewdbanisterfiend: Presumably your particular use case could be addressed by just installing the kernel source next to lib/ or something
15:48:11banisterfiendim successful so far with rvm installs: https://gist.github.com/1002473
15:50:29banisterfiendmatthewd: ah ok, you mean my gem locates and installs the source in the gem's lib/ ?
15:51:52banisterfiendwow it's late
15:51:56banisterfiendi better hit the sack
15:52:01banisterfiendthanks for your help guys
15:52:07alexsuracig'night
15:52:53alexsuracioo, someone got rubinius going on cloudfoundry
15:53:02evannot just someone
15:53:03evanezra.
15:53:55alexsuracioh, just checked, neat :P
15:54:46alexsuracidamn, i was gonna work on that when i was there
15:55:15evan:)
15:55:21evani'm sure they could use more help
15:55:27alexsuraciguess i could play with getting vcap/vmc/etc. themselves working on rubinius :P
16:03:22tjgillieshow do i test actors?
16:03:28scoutmasterrubinius-freebsd#1: FAILURE in 2 min 53 sec: http://ci.rubinius.net/job/rubinius-freebsd/1/
16:19:37brixentjgillies: well, first you need a stage, some lighting, a script... :)
16:19:47tjgilliesbrixen: lol
16:20:01tjgilliestried looking in source
16:20:11tjgilliesbut got overwhelmed by all the mspec stuff
16:20:13brixenjaimef: here's a recent post http://blog.carbonfive.com/2011/04/19/concurrency-with-actors/
16:20:21brixener tjgillies
16:20:25tjgilliesbrixen: thnx
16:20:52brixentjgillies: if you're just getting started with actors, this is a pretty excellent resource http://www.dalnefre.com/wp/
16:21:07tjgilliesi know actors
16:21:12tjgilliesive used them in scala
16:21:14brixentjgillies: there hasn't been tons of usage in Ruby yet, even though rbx has had them since like 2007
16:21:17tjgilliesim wondering how to write tests
16:21:18brixenah cool
16:21:30brixenwell, good question
16:21:45brixenin rubyspec, the basic principle is computing a value and checking it
16:22:04tjgilliesits asynchronus though
16:22:16brixenfor actors, you'd probably use ScratchPad to record a value, eg a message that was sent, and test it at the end of the "operation"
16:22:30brixenthere's always pretty much a beginning, middle, end
16:22:52tjgilliesim looking at https://github.com/joshbuddy/em-spec
16:22:54brixenasync doesn't imply undetermined running time :)
16:23:04tjgilliesbrixen: thnx
16:23:38brixenseems to me that testing Actors would be a little different than EM
16:23:45brixenie, you don't have the loop to really consider
16:24:33tjgilliesgood point
16:24:49brixen1. setup - create one or more actors in some configuration; 2 action - send some messages; 3 recording - when messages are sent or processed, record some state in ScratchPad
16:25:02brixen4. testing - make some expectations about state
16:25:23brixen5. teardown - close/exit actors
16:26:04tjgilliesbrixen: what is ScratchPad?
16:26:25brixentjgillies: it's a helper in mspec
16:26:41brixenif rbx repo, see mspec/lib/mspec/helpers/scratch.rb
16:26:49tjgilliesbrixen: thanks
16:26:50brixengrep for ScratchPad in spec/ to see usage
16:27:10brixensweet, ez has rbx running in cloud foundary I guess
16:27:24evanyep!
16:27:26evanpretty awesome.
16:28:14alexsuracii guess he works in that division
16:33:08brixenbanister`sleep: when you're awake, let's talk about kernel source
16:33:30brixenevan: what do you say about installing the rb kernel source, so stuff like banister's tool can easily display it?
16:33:44evansure.
16:33:58brixenI can add Rubinius::KERNEL_PATH along with our other _PATH constants
16:34:01brixensounds like a great idea
16:34:36brixensounds like we need a "How to debug a Ruby program" screencast featuring Rubinius!
16:34:39evansounds good.
16:42:17tjgilliesis it just me or does ruby-debug-ide and ruby-debug-base not work in rubinius?
16:45:39evanthey do not.
16:45:46evannone of ruby-debug does.
16:45:54hosiawakwhy isn't "send()" listed here http://rubini.us/doc/en/virtual-machine/instructions/ ?
16:45:57evanbecause they're tied very closely with the 1.8 runtime
16:46:05evanhosiawak: there is no send instruction
16:46:23brixenhosiawak: because it is a helper function only defined on Generator
16:46:39hosiawakevan: so what does a send do in the asm block ?
16:46:51evanone of the specific send instructions
16:46:52evansend_stack
16:46:57evansend_stack_with_block
16:46:59evansend_stack_with_splat
16:47:00evanetc.
16:47:04hosiawakah, ok
16:58:36tjgilliesbrixen: how do i require scratchpad?
16:59:02brixentjgillies: you don't if you are using mspec
16:59:09brixenwhere are you trying to write specs?
16:59:11tjgilliesoh im using rspec
16:59:24brixenthen you'll need to make something like scratchpad to use in your specs
16:59:40tjgilliesi can just use mspec, they're similar aren't they?
16:59:48brixenI recommend doing that versus using a bunch of ad hoc locals/globals/etc
16:59:59brixenmspec isn't intended to be used in normal projects
17:00:06brixenit's specially built for RubySpec
17:01:16tjgillies"doing that" meaning using mspec, or making my own scratchpad?
17:04:12tjgilliesheh: https://gist.github.com/65e0c673a3f9f0ccea73
17:24:12srawlinsi haven't seen this discussed here, but i'm unable to install hydra with `rvm install --branch hydra rbx-nhydra`. I see this exception: no such file to load -- /home/sam/.rvm/rubies/rbx-head-nhydra/lib/ext/melbourne/rbx/melbourne (LoadError)
17:24:19srawlinsshould i make a gist with the whole log?
17:25:24brixensrawlins: is your rvm current?
17:25:36srawlinsoops, as of 2 weeks maybe
17:26:05brixenok, could you just rm anything with rbx in it in ~/.rvm/src ~/.rvm/rubies ~/.rvm/repos
17:26:07brixenand try again
17:26:25srawlinsincluding my base rbx-1.2.3?
17:26:40brixentjgillies: yeah, it's a really simple helper but makes spec code much better
17:27:19brixensrawlins: well, run 'rvm install rbx-head-nhydra' and see if that works
17:27:40brixenI don't know why 1.2.3 would install by not hydra
17:31:28tjgilliesbrixen: is the sleep a good idea? https://gist.github.com/ee890f09de8f4bc6532e
17:34:02brixentjgillies: sleeps are generally not good in specs
17:34:12brixenyou should use some sort of explicit synchronization if you need it
17:36:17tjgilliesbrixen: what is an example of explicit syncronization?
17:37:02srawlinsi upgraded rvm from 1.6.15 to 1.6.18, and it works with `rvm install rbx-head-nhydra` i'm not going to try with `--branch` again
17:38:20brixentjgillies: depends what you need :P
17:39:00tjgilliesbrixen: im just practicing writing tests. in this simple example, what would you use other than a 'sleep'?
17:39:57brixentjgillies: are you guaranteed the operation you're waiting on will complete in N secs?
17:40:08brixenwhere N may be <= 1.0
17:40:09tjgilliesbrixen: no :(
17:40:22brixenright, that's why you need something else
17:41:03brixenyou may need to write a helper to synchronize
17:41:19brixenie, the actor you are testing may need to signal after completing the work you are requesting
17:42:36dwaitegood morning!
17:43:04tjgillieswhat about while not ScratchPad.recorded == :msg
17:43:29tjgilliesbut that makes my test loop forever if actor never gets the message
17:43:32tjgilliesdwaite: mornin
17:44:44brixenhello dwaite
17:45:10brixentjgillies: I'd suggest reading through the blog I linked you
17:45:24tjgilliesbrixen: im on it right now
17:45:28brixenI've never used scala so I can't say what resources they have as docs for actors
17:46:06brixenunfortunately, there's not a vast quantity of good documentation about actors
17:46:24brixenalthough, the ideas are rather simple
17:46:27tjgilliesok
17:46:43brixentjgillies: there's another Ruby actor implementation called dramatis
17:46:54brixenI haven't looked to see if there are tests though
17:47:27brixenhttp://www.techscreencast.com/language/ruby/dramatis-actors-for-ruby---steven-parkes/1482
17:47:55tjgilliesbrixen: thnx
17:47:58brixenn/p
17:48:35tjgilliesoooh
17:48:36tjgillieshttps://github.com/tarcieri/celluloid/blob/master/spec/actor_spec.rb
17:48:38tjgilliesnice
17:48:48brixenah yes, and celluloid
17:49:00brixentarcieri is in channel if you have questions for him :)
17:49:12tjgilliesoutstading
17:49:17tjgilliesoustanding*
17:49:55brixentarcieri did http://revactor.github.com/ way back in the day
17:50:41tjgilliesoh he did both?
17:50:43tjgilliescool
17:52:35brixenyeah, and he's really good at karaoke :)
17:53:53tarcieriI think actor_spec has some sleeps in it :/
17:54:02brixenlol
17:54:11tarcieri sleep 0.1 # hax
17:54:15tarcieriat least it's labeled as hax!
17:54:17brixenhah
17:54:36tarcieriI dunno, it's testing shit like telling actors to shut down
17:54:41brixenis saddened that tarcieri has fallen from his pedestal
17:55:08brixentests are hard, let's go drink beers
17:55:11tarcieriin the celluloid branch of girl_friday I was actually using queues
17:55:25tarcierithe problem was if you didn't pass the test it deadlocked
17:55:57tarcierineeds to add deadlock detection for a particular case in celluloid
17:56:13brixenor add a supervisor
17:56:18tarcierinamely A calls B calls A
17:56:37tarcierithere are supervisors, but they probably do something different from what you want
17:56:40tarcierithey're more like watchdogs
17:56:59brixenwell, I mean as a test helper
17:57:08brixenbasically, put a bound on execution
17:57:11brixentime
17:57:33tarcieriyeah, add a timeout after an arbitrary period!
17:57:42tarcieriit's like sleep, only more complicated :)
17:57:47brixenbut a little more regimented than ad hoc sleeps :P
17:57:49brixenyes
17:57:53tarcieriheh, yeah
17:58:00tarcierithat's what I wanted to end up doing
18:02:55srawlinshow are benchmarks outside of benchmark/core/ run? like benchmark/rbs/garbage_collection/* ?
18:03:11srawlins using bin/benchmark -t x benchmark/garbage_collection/bm_gc_100mb.rb is not correct
18:10:44tjgilliesdoes each actor spawn its own thread?
18:11:19tarcieriyeah
18:11:21tarcieriwell
18:11:24tarcierion celluloid
18:11:28tarcieriand rbx actors too, I think
18:13:22brixensrawlins: I don't have a benchmark/garbage_collection/bm_gc_100mb.rb
18:13:39tjgilliestarcieri: thnx
18:14:06srawlinsbrixen: sorry typo. using bin/benchmark -t x benchmark/rbs/garbage_collection/bm_gc_100mb.rb is not correct
18:14:29dbussinkevening ppl
18:14:38brixensrawlins: ah, that's the imported rbs stuff
18:14:48brixenthat hasn't been converted to use bin/benchmark afaik
18:14:53brixenhey dbussink
18:15:16srawlinsbrixen: oh i see. its reference for now? i'll try to convert...
18:15:18brixensrawlins: see rakelib/bench.rake for the rbs stuff
18:15:41brixensrawlins: better would be to pull in relevant stuff to core or rubinius or tiers
18:15:49brixenrather than messing with rbs at all
18:15:58srawlinsah i see. keep rbs/ a reference directory?
18:16:05brixenpretty much
18:16:14brixenbesides, many of the rbs benchmarks are just bogus
18:16:20srawlinshaha
18:16:22brixenI think
18:17:08brixenour benchmark dir needs a missive cleaning / threshing
18:17:33brixen+ organization
18:17:52brixensrawlins: check out tiers and see if you can't add some relevant benchmarks
18:18:08brixentiers will be the best way to compare perf among ruby implementations
18:18:37brixenalso, the idea of tiers was to show where perf at certain levels of an implementation translate up or not
18:21:03srawlinsbrixen: ah ok, interesting stuff in tiers/ thanks!
18:22:39wayneeseguins/g brixen
18:22:46wayneeseguinDOH
18:24:10brixenwayneeseguin: hah
18:24:15brixenwayneeseguin: I can't keep up!
18:24:25brixenw/u s/g what next?!
18:24:31wayneeseguin::Grin::
18:24:57wayneeseguinKeeping you in suspense
18:24:57wayneeseguinor suspenders
18:25:07brixenand I have to keep making stuff up... let's see, with underlings... super great?
18:25:25brixenreads well in s/g brixen :)
19:01:55srawlinsNeat! tiers/0 performance between rbx-1.2.3, 1.8.7, 1.9.2, jruby-1.6: http://tinyurl.com/3vetyp7
19:02:52brixennice
19:02:59srawlinsrbx kicks butt, with 1.9.2 close on its heels in just a few cases
19:03:14brixenthe core VM operations are really fast
19:03:25brixenwhat's the label for the Y axis?
19:03:51srawlinsthats iterations per second, taken from the rubinius comparison lines
19:03:59brixenah ok
19:04:01brixencould you label it?
19:04:09brixenor did I miss the label?
19:04:26srawlinsits not labelled. and the bottom label of each chart is "Bench" hehe
19:04:35srawlinsyeah, i think im going to move away from Google Charts API, its not too flexible
19:05:02srawlinsi want the mouseover of each bar to say the bit about "3.18x slower" etc
19:05:44brixenah yeah, that'd be neat
19:06:26brixenflot worked pretty well for me
19:06:32srawlinsi'd like a js charting library, rather than a flash one (sooo many are flash, like YUI), and rather than a ruby one. i just want to spit out an html file that generates the chart
19:06:36brixensee benchmark/results
19:06:42srawlinsyeah i've use flot before... i'll llook at that
19:06:46brixencool
19:08:27alexsuracithose are some pretty wild results
19:09:08srawlinsyeah, i feel badly for mri 1.8.7 :/
19:09:31alexsuracisrawlins: are these chosen at random or are they the ones where rbx blows away everyone else? :P
19:09:54srawlinshahaha, no they are all the benchmarks in benchmark/tiers/0
19:09:54brixenalexsuraci: they are really low level vm operations
19:10:11brixenalexsuraci: the point of the tiers system is to go from really low level up by tiers to app-like benchmarks
19:10:11alexsuraciah, nice
19:10:18alexsuracimakes sense
19:10:33brixento see the difference in the levels and see where lower level perf translates up, if at all
19:10:37alexsuracisomething like http://speed.pypy.org/timeline/ would be crazy cool
19:10:52brixenyeah, some folks are working on getting something like that up
19:11:03brixenwe'll try to accelerate that
19:11:11alexsuracirad
19:11:28brixenthe challenge is that benchmarks don't necessarily translate to *your* apps perf
19:11:56brixenbut that's a long education process that hasn't faired well in any language for as long as I've been writing software
19:11:59alexsuraciany big open-source ruby-powered sites?
19:12:08alexsuracimaybe add a "github load time" benchmark or something ;)
19:12:19brixenwhat would that be?
19:12:39alexsuracitesting a big honkin' real-world app
19:12:44brixenoh sure
19:13:03brixenwell, we hope that folks with big honkin apps will have benchmarks from doing performance tuning
19:13:10brixenand they can use those
19:13:53ezmobiusbrixen https://gist.github.com/7322f90c7cea347b35d9
19:14:07ezmobiusrbx is doing pretty good but still about 60% as fast as 1`.8.7
19:14:26ezmobiusthis is a cool way to compare side by side interpreters with the same app on the same hardware though
19:14:48brixenezmobius: nice! how hard is it for me to set that up here so I can look into it?
19:14:59brixenezmobius: or just the app that is being ab'd
19:16:03ezmobiusits a super simple app. i can give you an account on my microcloud though
19:16:07ezmobiuswhats your email address?
19:17:40ezmobiusbrixen here is the app. cant get mnuch simpler: https://gist.github.com/6fd074d42edc86d27fab
19:17:59brixenezmobius: ah cool, thanks
19:18:23brixenENV is probably pretty heavy there
19:18:26brixenI'll play around
19:18:27ezmobiusgive me a˜email addy and ill give you an account on my microcloud so you can run apps
19:18:41brixenezmobius: bford at you know where :)
19:19:24brixenezmobius: are you working from home these days?
19:19:28brixenI should come hang out
19:19:35ezmobiusyeah, definitely!
19:19:41ezmobiusi have a nice home office with plenty of room
19:19:45ezmobiusid love to see you
19:19:47brixensweet!
19:19:52brixenmaybe friday?
19:19:55dbussinksrawlins: brixen: hmm, on that bm_vm2_case.rb benchmark rbx is 3 times slower than 1.9 :s
19:20:48brixendbussink: where?
19:20:56dbussinkbrixen: on my machine here
19:21:04brixenhead or 1.2.3?
19:21:16dbussinkhttps://gist.github.com/8b829e65d7474f1e7591
19:21:18dbussinkhydra
19:21:21dbussinkbut head also has this
19:21:28dbussinkhead shows the same numbers
19:21:40brixenare you by chance using a debug build?
19:21:55dbussinkhaven't done a DEV=1 build
19:22:04brixenyou should try with 1.2.3 to compare
19:22:18brixenactually, you should run the whole set on 1.2.3 to confirm
19:22:25brixenthen compare with head
19:24:30ezmobiusbrixen you see my pm?
19:38:17dbussinkbrixen: hmm, seeing wildly varying numbers: https://gist.github.com/6eaa05931398c0bbc435
19:38:20dbussinkevan: ^^
19:38:39evanweird.
19:39:05brixendbussink: that's it, we're kicking you out of the benchmarking club :P
19:39:26dbussinkevan: that was what i was thinking
19:39:31dbussinkbrixen: just because i see weirdness? :P
19:40:27brixendbussink: the party line, get with it :)
19:40:55brixendbussink: what system are you running on?
19:41:04dbussinkbrixen: os x
19:41:26dbussinkbrixen: nothing exotic really
19:43:28brixendbussink: well, you're in EU, that's exotic
19:44:01dbussinkbrixen: thing is that mri's performance is consistent
19:44:08brixenhmm
19:44:14dbussinkbrixen: you're not seeing this i guess?
19:44:23dbussinkevan: or you for that matter?
19:44:30brixendbussink: did you try on 1.2.3?
19:44:39brixendbussink: I'm not running it, I may later if I have time
19:44:46brixenother stuff to work on atm ;)
19:51:34evanditto, not running it atm.
19:52:53srawlinsdbussink: fyi mine were on a 64-bit Linux (Ubuntu 10.10, kernel 2.6.35), core i5
20:37:54rbxbotSilent tongue and hempen heart often go together.
20:38:53brixen@slap rbxbot
20:38:53rbxbotis overcome by a sudden desire to hurt rbxbot
20:40:12hosiawakbrixen: banister inspired me today to add method source linking to rbxbot, almost ready :)
20:40:20brixenhosiawak: nice
20:40:31brixenhosiawak: I'm going to add some stuff to make that easier
20:42:51boyscoutRemoved trailing space, again. - 4015e94 - Brian Ford
20:42:51boyscoutFixed warning. - 0bbe48a - Brian Ford
20:46:05scoutmasterrubinius#52: SUCCESS in 3 min 9 sec
21:04:19hosiawak@source puts
21:04:19rbxbothttps://github.com/evanphx/rubinius/tree/master/kernel/common/kernel.rb#L185
21:04:26tarcieriwhoa
21:04:34tarcieriis that like a hook to git grep?
21:05:00hosiawak@source Array#reduce
21:05:01rbxbothttps://github.com/evanphx/rubinius/tree/master/kernel/common/enumerable.rb#L182
21:05:07tarcieriheh it appears a bit more semantically aware
21:05:22tarcieri@source IO.select
21:05:23rbxbothttps://github.com/evanphx/rubinius/tree/master/kernel/common/io.rb#L559
21:05:55tarcieriuhh
21:05:58tarcieriam I missing something
21:06:00hosiawaktarcieri: no, that's getting a method object and calling source_location on it
21:06:07tarcierior can that code be DRYed out quite a bit
21:06:11dbussinkhosiawak: hm, it's doing a redirect
21:06:11tarcierithe IO.select code
21:06:17dbussinkto blob instead of tree
21:06:23dbussinkand the line number is therefore cut off
21:07:15hosiawakdbussink: hmm
21:09:26hosiawakdbussink: is github using "tree" for directories and "blob" for files ? it appears so
21:09:37dbussinkhosiawak: appears so yeah
21:09:52hosiawakdbussink: what do you mean by line number getting cut off ?
21:10:10hosiawakdbussink: it's doing the redirect but highlighting the line on mine
21:10:17dbussinkhosiawak: because of the redirect, the #L185 is lost
21:10:25dbussinkso i don't see it jump the given line number
21:10:54hosiawakdbussink: what browser ?
21:11:01dbussinkhosiawak: safari
21:11:07srawlinsit jumped to #L185 for me; firefox
21:11:08hosiawakdbussink: I'm not seeing that on FF/Chrome
21:11:09dbussinkjust checked, chrome behaves different
21:11:44hosiawakdbussink: I'll update it to blob so safari is happy
21:11:48dbussinkhosiawak: apparently something not consistent over different browsers
21:13:16hosiawakdbussink: looks like safari is omitting the hash tag when receiving a 301
21:17:33dbussinkhosiawak: yeah
21:17:38dbussinkbut i'm off to sleep
21:17:38dbussinknite!
21:17:39srawlinsis rbxbot on github somewhere?
21:18:23hosiawaksrawlins: http://github.com/hosiawak/rbxbot
21:19:00hosiawak@source Class#superclass
21:19:00rbxbothttps://github.com/evanphx/rubinius/blob/master/kernel/common/class.rb#L88
21:19:12hosiawakit's blobbing now
21:21:57dbussinkhosiawak: yay!
21:21:59dbussinkworks nicely
21:22:11dbussinksleeps
21:22:14srawlinshosiawak: thanks! (still works in ff)
21:22:57hosiawak@hug banisterfiend
21:22:58rbxbotwraps banisterfiend in a hug
21:23:08srawlinshosiawak: this is a fork of TryRuby? do you work with the people who did TryRuby at all?
21:23:19tarcieri*boggle* @ this logic
21:23:57hosiawaksrawlins: no, I just forked that project, stripped almost all of it just leaving the eval part of tryruby.rb
21:24:20robgleesonhosiawak: did you get Barney working btw?
21:24:20srawlinshaha, ah i see
21:25:19hosiawakrobgleeson: I did but stumbled into another issue which was: when you fork before you eval you loose all locals and changes between calls
21:25:31hosiawakrobgleeson: so if you a = 1 in one message it's gone in another
21:25:59robgleesonhosiawak: yeah, it doesn't keep state, although a Binding is serializable by rbx ;)
21:26:04hosiawakrobgleeson: I would have to fork only once and then monitor the forked process, didn't get that far :)
21:26:22robgleesonhosiawak: you shouldn't - just share a Binding, and use that to eval.
21:27:09hosiawakrobgleeson: ah, cool, didn't know about it :)
21:27:32robgleesonhosiawak: didn't test it, but: share :TOPLEVEL_BINDING should work.
21:27:45hosiawakrobgleeson: I'll try it the next time someone hurts rbxbot
21:27:54robgleesonthen TOPLEVEL_BINDING.eval "fuzzy rabbits" or w/e.
21:28:04robgleesonsure no
21:28:04hosiawakrobgleeson: ok, thanks
21:28:06robgleesonoops
21:28:08robgleesonsure np*
21:30:31robgleesonhosiawak: it has some limitations tho, lvars aren't kept by the binding & if the binding has a reference to a proc, you can't marshal.
21:41:36tarcieri:O tests are passing
21:41:42tarcieridare I commit this?
21:42:05robgleesoni dare you to :p
21:46:30boyscoutDRY out IO.select - d8e53c8 - Tony Arcieri
21:46:58tarcieri:O
21:49:14scoutmasterrubinius#53: SUCCESS in 2 min 38 sec
21:49:29tarcieri:D
21:50:40evantarcieri: I don't like that last line.
21:50:46evanlast 2 lines
21:50:48evanof the diff.
21:51:08tarcieriyay, evan's here to double check my work
21:51:23evanspecificly
21:51:28tarcierievan: yeah it'd be cool if I could use a splat there :/
21:51:28evanyour new code is harder to understand imho.
21:51:35evanthe args map!
21:51:42tarcierithat it is, I could unpack the map as variables and rebind them
21:51:44evanis harder to undersand than the unrolled version
21:52:19tarcierihow about readables, writables, errorables = [readables, writables, errorables].map do |set| ?
21:52:28evanno.
21:52:36tarcierithat is kind of ugly
21:52:39evanmore confusing.
21:52:40tarcierido you want me to just revert it?
21:53:12evani'd like you to do readable, writable, and errorable as seperate steps
21:53:18evanit's only a tiny bit more code
21:53:22evanand much easier to understand.
21:53:30tarcierithat's how it was before
21:53:42evanwell
21:53:47evanyou also removed the extra kind_of check.
21:53:53evanin readable.
21:54:08evanyou can do that with writable and errorable too.
21:54:10meh`what does `Tried to use object of type PackedObject (45) as type ByteArray (11)` mean?
21:54:21evanmeh`: means we need to see the backtrace.
21:54:30meh`evan, lol, ok wait
21:55:46tarcierievan: it's still doing a kind_of? for all 3
21:56:04meh`evan, the ruby backtrace, right?
21:56:04evanle sigh.
21:56:07evanmeh`: yes.
21:56:12tarcierievan: the first loop scans readables to see if any of them have buffered data
21:56:24meh`evan, https://gist.github.com/1003426 (the gem is here https://github.com/meh/versionub)
21:56:40meh`it works on 1.8.7-p334
21:56:43evanoh fun.
21:56:50evangotta check the code.
21:57:16evanmeh`: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARG
21:57:25meh`D:
21:57:29meh`what did i do?
21:57:33evanyou subclassed String
21:57:36evanand called something @data
21:57:44meh`ooh
21:57:45evanwhich is the ivar String uses to store it's ByteArray
21:57:49meh`lol
21:57:52meh`ok, renaming it
21:58:03evanbetter yet!
21:58:07evandon't
21:58:08evansubclass
21:58:09evanString
21:58:19meh`that's an option too
21:58:19tarcierinote to self: don't let core types be subclassed in any language I design
21:58:29alexsuraciwhat if i want to implement Rope? ;)
21:58:38evanalexsuraci: totally fine
21:58:39meh`i'll compose it and forward stuff to an internal string
21:58:40evanthats
21:58:41evana
21:58:42evanseperate
21:58:43evanclass
21:58:51evanmeh`: just define #to_str
21:59:05evanand everything that needs to treat it like a String can
21:59:42evantarcieri: if you do, add protected ivar names or something.
22:00:44tarcierithinks people should use the core types to compose things and objects should serialize in a way that can be represented with the core types alone
22:00:56evantarcieri: you want to fix select
22:00:57evanor should I?
22:01:14tarcierievan: what can be done to fix it besides reverting it?
22:01:22evanoh actually
22:01:24evannothing
22:01:26evanyou have to revert it
22:01:33tarcieriyeah
22:01:37evanbecause you busted Read
22:01:40evanreadable
22:01:45tarcierihow so?
22:01:46evanby removing the extra kind_of
22:01:56tarcieriI didn't remove an extra kind_of
22:02:07evansee
22:02:11evanthis is why i don't like this code
22:02:15evani don't get the intention
22:02:17tarcieriI moved the eager return for data in a read buffer into its own loop
22:02:23evanare you intending to check readable twice?
22:02:27tarcieriyes
22:02:33evanplease revert.
22:02:36tarcieriok
22:02:40meh`evan, ok thanks, now it works on rubinius too :)
22:03:11boyscoutRevert "DRY out IO.select" - b062129 - Tony Arcieri
22:03:31evantarcieri: sorry bro :(
22:03:40tarcierievan: was it performance or clarity that was the problem?
22:03:50evanmostly clarity
22:03:59evanI couldn't figure out why the next was there at all.
22:04:01tarcieriI thought that version was actually clearer, aside from the end
22:04:14tarcieriIO.primitive_select(*sets, timeout) would be nice
22:04:15evani think I do now
22:04:21evanbut it was still more confusing.
22:04:32evanDRY has to improve understanding
22:04:33evannot hurt it.
22:04:51evanDRY that does not improve understanding is called golfing.
22:05:40tarcierithe type conversions for all 3 sets are the same... it's just the read also had a check for if any of the IO objects had data in their buffer
22:05:51scoutmasterrubinius#54: SUCCESS in 2 min 34 sec
22:06:44evantarcieri: right.
22:07:15evanthis might be one of those places where duplicate code is fine.
22:07:34tarcieriyeah, it's only actually repeated twice verbatim
22:07:36tarcieri*shrug*
22:10:21meh`does -Xrbc.db still work?
22:13:04evanyep
22:13:22meh`mmh, then i'm failing somewhere
22:58:22rbxbotOne who keeps silent, endures.
22:58:59brixenwe should really add a bot that talks to rbxbot
22:59:16dwaitehmm
22:59:25evanhehe
23:02:58alexsuracisweet, just got my housing info for the internship. i'll be staying in menlo park.
23:03:28dwaitenice, where are you interning?
23:03:58alexsuracidwaite: vmware, for cloudfoundry
23:05:17dwaitenice!
23:05:32dwaitesearches for more caffeine around the house
23:05:42dwaite5 pm is a bit late to drink an espresso, but I'm considering it
23:06:28brixenI'm drinking a latte
23:06:32brixenit's 4 here
23:06:48dwaiteso are you saying 5 is not too late?
23:06:58brixenmy cutoff for coffee is about 9-10
23:07:03alexsuraciany airline recommendations btw? or are they mostly the same
23:07:25brixenalexsuraci: pretty much anything besides US Airways
23:07:39dwaiteI'd say avoid united first, us air second
23:07:49tarcieriSouthwest is rolling out WiFi, which is awesome
23:07:55dwaitebut denver is a united hub, so I get more bad experiences with them due to more experiences in general
23:07:57brixenmy experience with united is 10000% better than US air
23:08:03alexsuraciheh, alright. my options are united airlines, continental, and american airlines. and delta.
23:08:04tarcieriNetflix worked on Southwest's wifi
23:08:06tarcierithat was dope
23:08:08alexsuracileaning towards continental
23:08:19tarcieriContinental is United
23:08:29brixenexcept where it's not, like tickets
23:08:34alexsuraciobviously doesn't fly much
23:08:47alexsuracii had wifi on my delta flight last time. on the long part of it, anyway.
23:08:48brixenI almost got stranded in NOLA with one leg on united and one on continental
23:08:59brixenstupid stupid airline companies
23:09:08dwaite*nod*
23:09:23dwaitehmm, 14 days left to come up with any rubyconf proposals
23:09:25brixenthey wouldn't issue my ticket at the united desk because the 2nd leg was continental
23:09:39brixendwaite: I'm submitting 3-4 :)
23:09:43brixenwant to borrow one?
23:10:04evanhm, how come transchronographic isn't a word?
23:10:26brixenevan: since when has that stopped you! :)
23:10:34evanpretty much never.
23:10:36brixenjust make it a word
23:10:37brixenheh
23:11:07brixendoes it mean, "across clocks"?
23:11:10petercooperIt worked for authgasm
23:11:11petercooperImagery that shows the progression of time?
23:11:36dwaiteI love using nouns as verbs
23:11:41petercooperDemonstrating the progression of time visually. That's what I'm going with <g>
23:11:43dwaiteI refer to it as nouning words
23:11:51brixendwaite: lovify?
23:11:59dwaiteoh wait, verbing words
23:12:03dwaiteI like nouning words too
23:12:11petercooperdwaite: Or gerunds? :)
23:12:17dwaitetries some diet mountain dew to wake up
23:13:19dwaitegerunding is good too
23:13:24alexsuraciugh, i hate expiring sessions
23:13:28alexsuracitime to re-search
23:14:07brixenalexsuraci: airline ticketing systems are one of two or there computer systems that will cause you to lose faith in humanity
23:14:19brixenbanking and hotel reservations being the other two
23:14:24alexsuraciagreed
23:14:29dwaiteI wish github's pricing was based on sharing of private projects exclusively and not also number of private projects
23:14:31alexsuracithat blew an entire day here when we were booking
23:15:21dwaitethe number of small historic projects I would want to check in is price prohibitive
23:15:53brixendwaite: you should get it under alkaline solutions and write it off as a biz expense
23:15:54dwaite(and don't really feel like sharing my college homework assignments and the like to the world)
23:16:28brixendwaite: I'll subcontract with you
23:16:44dwaitebrixen: I do have them under alksol, I already have it all set up. But it means a paid github account for me is now more of a github sponsorship, unless I want to pick and choose which projects to share
23:17:09dwaiteI could make scripts to check them all in as branches under one project, but that hardly seems like a good use of time