Show enters and exits. Hide enters and exits.
| 00:20:53 | rbxbot | When a cricket is quiet, it is digging. |
| 00:32:42 | brixen | ah rbxbot is a philosopher now :) |
| 00:34:14 | evan | hehe |
| 00:34:51 | slava | hi guys |
| 00:35:09 | brixen | hey slava |
| 00:37:29 | brixen | evan: are we on the same page here now? https://gist.github.com/1001094 |
| 00:42:09 | evan | yep |
| 00:42:12 | evan | looks good. |
| 00:42:43 | brixen | ok, thanks |
| 00:42:47 | brixen | wayneeseguin: have at it! :) |
| 00:46:16 | evan | ok, i'm off to dinner and nerd club. |
| 00:58:22 | murphy_karasu | i can't rvm install --branch hydra rbx-nhydra at the moment…is this a known problem? |
| 00:58:55 | murphy_karasu | something about runtime/platform.conf not being found… |
| 00:59:33 | brixen | murphy_karasu: we saw that on CI today once, not sure what it is |
| 01:00:03 | brixen | murphy_karasu: try going to ~/.rvm/src/ and rm'ing your rbx-head-hydra dir |
| 01:00:09 | brixen | and try installing again |
| 01:00:11 | murphy_karasu | k |
| 01:05:43 | murphy_karasu | brixen: no joy |
| 01:06:16 | brixen | murphy_karasu: ok, let me try it here and see if I can figure it out |
| 01:07:00 | murphy_karasu | I think it happens while trying to build Melbourne |
| 01:07:25 | brixen | shouldn't |
| 01:07:31 | brixen | has nothing to do with building melbourne |
| 01:07:55 | brixen | and I built from a clean repo earlier |
| 01:14:24 | brixen | murphy_karasu: rvm install --branch hydra rbx-nhydra worked fine here |
| 01:14:30 | brixen | are you sure you rm'd your src dirs? |
| 01:16:23 | brixen | for that command, you'll need to rm ~/.rvm/src/rbx-head-nhydra I guess |
| 01:16:35 | brixen | that's what it created here |
| 01:16:43 | murphy_karasu | yes, I did that…strange |
| 01:21:21 | srawlins | whoa. that is ready right now (rvm install --branch hydra rbx -nhydra)? should we test our gems? |
| 01:21:43 | brixen | hydra is not 2.0.0pre |
| 01:21:51 | brixen | hydra has been around for a few months ;) |
| 01:22:13 | brixen | you can test your 1.8.7 compatible code for any threading issues |
| 01:22:21 | srawlins | right right, but i didnt know if it was still "alpha" or... not prod-ready, etc |
| 01:22:28 | brixen | ah yeah |
| 01:22:37 | brixen | we've been wanting people to test on it |
| 01:22:41 | srawlins | will do |
| 01:22:45 | brixen | sweet |
| 01:24:02 | brixen | love watching people drive the wrong way on a one way |
| 01:24:28 | cmatheson | hey, just trying to get into rubinius. do most people use rvm or just build rubinius manually as detailed on the website? |
| 01:24:38 | brixen | cmatheson: it's really up to you |
| 01:24:52 | brixen | cmatheson: if you want to dev on rubinius itself, build from a clone |
| 01:25:08 | brixen | you can put the rbx_clone/bin dir in your PATH and run rbx like MRI |
| 01:25:19 | brixen | without needing to "install" anything |
| 01:25:35 | brixen | rbx runs from the source/build dir just fine |
| 01:25:53 | brixen | and we have symlinks in the bin dir for 'ruby', 'gem', 'ri' etc |
| 01:26:10 | cmatheson | brixen: ok cool, i was doing that last night. how does that work with rubygems? does it conflict with my regular ruby install? |
| 01:26:20 | brixen | cmatheson: not at all |
| 01:26:29 | brixen | gems are installed in an rbx specific dir |
| 01:26:52 | cmatheson | brixen: awesome, thanks |
| 01:26:52 | brixen | you should either run bin/rbx -S gem or use the 'gem' symlink in bin/ |
| 01:27:03 | cmatheson | ok that makes sense |
| 01:27:20 | brixen | cmatheson: in fact, gems that have C ext cannot be shared by rbx/mri |
| 01:27:36 | brixen | because they are not ABI compatible, ie they must be built against rbx specifically |
| 01:27:44 | brixen | the C-API is only source compatible |
| 01:27:54 | cmatheson | ok, right |
| 01:46:26 | cmatheson | hmm, 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:47 | cmatheson | oh, it's actually when running "bin/mspec ci --background --agent" |
| 01:50:58 | srawlins | cmatheson: so you chose the compile-it-yourself way? where did u grab the source from? |
| 01:52:56 | cmatheson | srawlins: yes, i'm just building from the source i got on the rubinius homepage ("1.2.3 Archive" link) |
| 01:55:05 | srawlins | ah i see... can you post a gist or pastie of the segfault? |
| 01:55:12 | srawlins | and actually |
| 01:55:30 | srawlins | can you rake clean first |
| 01:55:35 | srawlins | i think its 'rake clean'... |
| 01:57:24 | cmatheson | srawlins: rake clean worked. the pre-clean segfault output is here: https://gist.github.com/1001657 . rebuilding now |
| 02:01:22 | srawlins | super interesting... i wonder if it is a problem that has been fixed since the 1.2.3 release |
| 02:02:01 | srawlins | you might grab the source from github https://github.com/evanphx/rubinius with git or grab a zip |
| 02:03:15 | cmatheson | srawlins: cool, i'll build from git (i just got the segfault again after i finished building clean) |
| 02:04:01 | srawlins | rubinius is pretty crazy; building from HEAD is usually perfectly stable |
| 02:06:25 | cmatheson | oh great, am i better off just using head for non-production stuff then? |
| 02:08:05 | matthewd | cmatheson: Yes, latest master is recommended |
| 02:08:35 | matthewd | (and latest from the hydra branch is encouraged for testing at the moment) |
| 02:11:42 | cmatheson | matthewd: ok cool, thanks |
| 02:13:30 | murphy_karasu | brixen: hydra install from src worked |
| 02:15:27 | murphy_karasu | so it might be a problem related to rvm. |
| 02:30:16 | cmatheson | well 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:17 | murphy_karasu | hydra is noticeably slower than head, for general single-thread tasks. does anybody know why? |
| 02:39:42 | dwaite | murphy_karasu: whats rbx -v report? |
| 02:40:22 | murphy_karasu | rubinius 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:14 | dwaite | hmm that looks right |
| 02:42:44 | dwaite | odd that you have 10.7.4 while I have 10.7.0 |
| 02:43:18 | murphy_karasu | 10.7.0 would be quite old… |
| 02:44:36 | murphy_karasu | no wait…that's not the OS X version… |
| 02:44:52 | murphy_karasu | wth ^^ |
| 02:46:58 | dwaite | which compiler/xcode version are you using? |
| 02:47:38 | murphy_karasu | oh, maybe this is because I have a recent MBP |
| 02:48:13 | murphy_karasu | gcc version 4.2.1 (Apple Inc. build 5666), XCode 3.2.6 (1761) |
| 02:52:27 | murphy_karasu | does XCode 4 or a recent GCC make rubinius faster? |
| 02:55:40 | dwaite | I 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:07 | murphy_karasu | I see |
| 03:03:27 | murphy_karasu | need to sleep a bit. bye! |
| 03:13:35 | boyscout | Added directory 'runtime' dependency for platform.conf. Fixes #950. - 3f8b920 - Brian Ford (hydra) |
| 03:16:17 | scoutmaster | rubinius#51: SUCCESS in 2 min 37 sec |
| 03:44:38 | argent-smith | 'twas quite a commitous day in LA :-) |
| 03:45:27 | argent-smith | says all good ru moin! |
| 03:47:04 | argent-smith | has a good idea to hack the docs while all devs are asleep >:-E~ |
| 04:32:04 | rbxbot | Who stays quiet agrees. |
| 04:32:29 | evan | haha |
| 04:43:19 | alexsuraci | guess he talks when the channel's being quiet |
| 04:56:46 | alexsuraci | is slowly getting atomy running with 0 runtime macroexpansion |
| 04:59:23 | alexsuraci | yay! got'er going. two tests failing, but close enough for tonight. |
| 04:59:31 | brixen | nice! |
| 05:08:51 | alexsuraci | fuuuuuuuuuuuu. bad: seeing spider in your bathroom, out of reach. worse: coming back later, and it's moved somewhere. |
| 05:08:59 | alexsuraci | it was right above me :< |
| 05:09:16 | alexsuraci | welp, time to go take a shower with that beast lingering. |
| 05:13:00 | tarcieri | I have rubinius stickers! :O |
| 05:13:59 | brixen | tarcieri: woohoo! :) |
| 05:14:27 | brixen | tarcieri: take 'em to karaoke |
| 05:15:02 | tarcieri | haha |
| 05:15:25 | tarcieri | I gave one of the big bumper sticker sized ones to one of my friends who wants to put it on his snowboard |
| 05:15:51 | brixen | hah nice! |
| 05:15:59 | brixen | Rubinius hits the slopes |
| 05:16:03 | tarcieri | heh |
| 05:19:32 | tarcieri | believe it or not they're still open |
| 05:19:35 | tarcieri | and it's june :O |
| 05:30:58 | alexsuraci | my birthday this friday :O |
| 05:36:37 | alexsuraci | k, bed time. |
| 05:37:47 | Gibheer | evan: can you give me the ssh key for ci? |
| 06:22:47 | rbxbot | Who stays quiet agrees. |
| 08:02:20 | ezmobius | evan https://gist.github.com/1001954 |
| 08:02:25 | ezmobius | brixen ^^ |
| 08:07:00 | dbussink | ezmobius: cool :) |
| 08:07:09 | ezmobius | yeah fun |
| 08:07:27 | ezmobius | http://rbx-sinatra.gfgf.aws-brba.org/ |
| 08:07:30 | ezmobius | there it is live |
| 08:07:37 | dbussink | ah ok, cool :) |
| 08:07:43 | dbussink | how is it performing? |
| 08:08:30 | ezmobius | seems good |
| 08:08:46 | ezmobius | https://gist.github.com/40b83808a3326f20d4ad |
| 08:10:44 | ezmobius | gets better the longer it runs |
| 08:10:48 | ezmobius | as it jits etc. |
| 08:11:29 | ezmobius | took me all of 1 hour to add to the platform |
| 08:11:31 | ezmobius | awesome |
| 08:11:36 | ezmobius | added lua as well |
| 08:11:40 | ezmobius | luajit i mean |
| 08:15:01 | dbussink | ezmobius: ah, luajit is pretty awesome :) |
| 08:15:30 | dbussink | ezmobius: you can add hydra too as an experiment ;) |
| 08:15:36 | dbussink | it's been pretty stable for me actually |
| 08:15:37 | ezmobius | whats hydra? |
| 08:15:47 | ezmobius | oh the non gil branch? |
| 08:15:51 | dbussink | yeah |
| 08:15:54 | ezmobius | yeah maybe not tonight but ill try it tomorrow |
| 08:16:03 | dbussink | guess it's sleep time over there :P |
| 08:18:52 | ezmobius | https://gist.github.com/7322f90c7cea347b35d9 |
| 08:18:54 | ezmobius | this is cool |
| 08:19:07 | ezmobius | super easy to compare the perf of different runtimes side by side on the same app |
| 08:19:55 | dbussink | rbx needs some work there it looks like |
| 08:20:05 | ezmobius | yeah |
| 08:20:48 | ezmobius | fun to hack around on |
| 08:20:54 | ezmobius | this is on a single instance microcloud too |
| 08:20:57 | dbussink | ezmobius: true yeah :) |
| 08:20:58 | ezmobius | not a full blown cloud |
| 08:21:26 | dbussink | ezmobius: btw, going to do a guest lecture here at university, for the compiler / language construction course next week :) |
| 08:21:37 | dbussink | rbx evangalism :) |
| 08:22:36 | ezmobius | nice |
| 08:24:20 | dbussink | so that means adding a bunch of work for the weekend, but hey, should be fun :) |
| 08:25:39 | ezmobius | ;) |
| 08:39:09 | Gibheer | dbussink: do you need the freebsd box at the moment? i want to shut it down |
| 09:14:30 | txus | anyone read "language implementation patterns" by Terence Parr? |
| 09:24:02 | matthewd | scrolls through 34 pragprog books... nope, sorry :P |
| 09:33:10 | argent-smith | silent irc |
| 09:33:26 | argent-smith | i've got a clue |
| 09:33:42 | argent-smith | Russian day is American night! |
| 09:47:41 | hosiawak | argent-smith: wherabouts in Russia are you ? |
| 09:52:14 | argent-smith | MSD timezone, ~100miles north from Moscow |
| 10:08:20 | txus | argent-smith: yeah, most of my workday is rubinius-silent too :) |
| 10:24:39 | banisterfiend | hey guys, you have source_location on Method, do you think you'll put source_location on Proc any time soon too? :P |
| 10:32:32 | dbussink | banisterfiend: https://github.com/evanphx/rubinius/pull/897 |
| 10:36:12 | banisterfiend | dbussink: i dont quite get that...there jsut seems to be specsthere no actual code, and any way the ticket was closed? |
| 10:36:26 | banisterfiend | dbussink: is there any trick i can use to get Proc#source_location in the mean time? |
| 10:38:25 | robgleeson | banisterfiend: Proc.new {}.block.file/line |
| 10:38:27 | robgleeson | see the commit :) |
| 10:39:30 | banisterfiend | ah i looked at the wrong commit |
| 10:39:31 | banisterfiend | thanks |
| 10:43:18 | robgleeson | no worries :p |
| 12:30:32 | banisterfiend | ok guys |
| 12:30:57 | banisterfiend | how do i go from method(:puts).source_location => ["kernel/common/kernel.rb", 189] |
| 12:31:18 | banisterfiend | to locate that actual file kernel.rb ? |
| 12:33:49 | hosiawak | banisterfiend: 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:29 | banisterfiend | hosiawak: but that's not a complete path |
| 12:34:41 | radarek | hosiawak: I guess he want to do File.open(that_file) but it's relative path not absolute |
| 12:34:44 | matthewd | banisterfiend: For kernel files... hmm... not sure how easily you'll map that to a real file |
| 12:35:04 | banisterfiend | yeah |
| 12:36:12 | banisterfiend | anyone knwo how to complete the path? |
| 12:36:15 | banisterfiend | basically |
| 12:36:50 | radarek | banisterfiend: maybe with one of them? |
| 12:36:52 | radarek | >> Rubinius.constants.grep /path/i |
| 12:36:52 | radarek | => ["BIN_PATH", "LIB_PATH", "EXT_PATH", "HDR_PATH", "GEMS_PATH", "SITE_PATH", "VENDOR_PATH"] |
| 12:37:11 | banisterfiend | great |
| 12:37:12 | banisterfiend | thanks |
| 12:37:15 | banisterfiend | ill have a play |
| 12:44:51 | hosiawak | banisterfiend: 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:19 | banisterfiend | hosiawak: thanks man!! |
| 12:47:27 | hosiawak | banisterfiend: what are you writing ? looks like some semantic autocomplete or a ctags replacement :) |
| 12:48:03 | banisterfiend | hosiawak: adding better support for rubinius for this: http://rdoc.info/github/banister/pry/master/file/README.markdown |
| 12:48:37 | banisterfiend | i want: show-method puts to retrieve sourcecode for rbx core methods |
| 12:48:44 | banisterfiend | i have it showing C source for MRI core already |
| 12:49:35 | hosiawak | banisterfiend: coolio |
| 13:30:23 | tjgillies | what does it mean by 'embedding more than one interpreter in an application'? |
| 13:32:45 | banisterfiend | hosiawak: i dont appear to have a kernel/ folder in my rbx |
| 13:33:59 | hosiawak | banisterfiend: weird, it's there https://github.com/evanphx/rubinius |
| 13:34:12 | hosiawak | banisterfiend: using rvm or cloned copy of rbx ? |
| 13:34:16 | banisterfiend | hosiawak: i installed via rvm, coulld that be why? |
| 13:34:19 | banisterfiend | rvm |
| 13:35:48 | hosiawak | banisterfiend: hmm, rvm stores the source in ~/.rvm/src/rbx* |
| 13:36:07 | banisterfiend | hosiawak: ouch |
| 13:36:34 | lamnk | i want to learn debugging with rbx |
| 13:36:40 | lamnk | is there any tutorial for newbie ? |
| 13:37:06 | hosiawak | lamnk: http://rubini.us/doc/en/tools/debugger/ |
| 13:37:07 | lamnk | found http://rubini.us/doc/en/tools/debugger/ but the page doesn't explain much |
| 13:38:28 | Gibheer | lamnk: you can start the debugger by rbx -Xdebug or with the ruby code |
| 13:38:49 | Gibheer | when you are in the debugger, type help and you will get a list of all commands |
| 13:38:49 | lamnk | i started it |
| 13:39:02 | lamnk | problem is that i don't know how to use the debugger |
| 13:39:23 | banisterfiend | hosiawak: i guess i have to look for /\.rvm/ inside the BIN_PATH |
| 13:39:34 | banisterfiend | hosiawak: and if it exists then access it via ~/.rvm/src |
| 13:40:04 | Gibheer | lamnk: as far as i can say, it works like gdb |
| 13:40:07 | lamnk | i don't know how to debug a program at all |
| 13:40:21 | lamnk | that's why i asked for a tutorial for beginner |
| 13:40:43 | Gibheer | hmmm |
| 13:41:10 | hosiawak | banisterfiend: I guess yeah, there might be a better way though, try asking wayneeseguin or evan when they're up |
| 13:41:38 | banisterfiend | hosiawak: this is turning out to be quite complicated |
| 13:41:50 | dreinull | lamnk: you might want to read up on debuggers in general. like gdb |
| 13:41:52 | hosiawak | banisterfiend: ~/.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:53 | Gibheer | rubinius 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:07 | banisterfiend | hosiawak: yeah i was exploring there before |
| 13:42:26 | dreinull | or use something like eclipse with the ruby debug gem but I havent tried that for a very long time |
| 13:45:02 | matthewd | banisterfiend: Out of curiosity, how do you locate the MRI source? |
| 13:45:34 | banisterfiend | matthewd: i extract it using YARD and bundle the database in a gem ;) |
| 13:45:40 | banisterfiend | (dont tell anybody :P) |
| 13:47:27 | banisterfiend | i mean, i download teh ruby sources first, run YARD on it to generate a database with the source code and documentation |
| 13:47:34 | banisterfiend | and then put that database in a gem |
| 13:47:48 | banisterfiend | it's around 5 megs i think |
| 13:48:12 | banisterfiend | i have separate databases for 1.8 and 1.9 |
| 13:48:27 | banisterfiend | so it'll return teh appropriate source for whatever version of MRI your'e using |
| 13:52:31 | hosiawak | banisterfiend: Pry looks super cool |
| 13:53:41 | banisterfiend | cheers, 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:04 | banisterfiend | just doing litlte tings now like trying to improve rbx and jruby support |
| 13:54:44 | hosiawak | banisterfiend: I think I'm going to integrate it with rbxbot when you finish adding support for source browsing on rbx |
| 13:55:09 | banisterfiend | cool |
| 13:55:32 | hosiawak | banisterfiend: so that rbxbot could not only run code but also display source (or actually gist the source) |
| 13:56:01 | banisterfiend | sounds awesome |
| 13:56:05 | banisterfiend | rbxbot help |
| 13:56:12 | banisterfiend | ah, he's not here |
| 13:56:36 | hosiawak | banisterfiend: 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:52 | banisterfiend | ah :) |
| 14:24:26 | giuseppe | hi everyone! |
| 14:24:29 | giuseppe | question: |
| 14:24:45 | giuseppe | I want to add an italian translation of the documentation |
| 14:25:27 | giuseppe | so, I'm going to fork the project on github |
| 14:25:45 | giuseppe | and then ask the pull |
| 14:26:19 | giuseppe | should I commit only once? |
| 14:26:58 | Cadwallion | giuseppe_: commit locally, rebase, then push the rebase to your fork |
| 14:27:06 | Cadwallion | then it comes up as only one commit for the pull request |
| 14:27:44 | matthewd | But 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:07 | Cadwallion | ^ |
| 14:29:30 | giuseppe | ok! |
| 14:29:48 | giuseppe | I'm lookin' at the 'git rebase' doc tryin' to figure out how it works :) |
| 14:30:44 | matthewd | giuseppe_: You can actually ignore most of that... just use 'git pull --rebase' to avoid needless merges |
| 14:32:34 | giuseppe | matthewd: ok, fine, doing that way git updates my copy to the latest version and the applies my commits to it |
| 14:33:04 | giuseppe | I don't get how it will make my commits look as one |
| 14:36:30 | hosiawak | giuseppe_: 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:04 | hosiawak | giuseppe_: -i stands for interactive rebase which lets you pick the commits you want to keep |
| 14:38:25 | hosiawak | giuseppe_: 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:48 | hosiawak | giuseppe_: and then you can push to your github account and create a pull request |
| 14:39:31 | hosiawak | giuseppe_: best to try how rebasing works on a test project |
| 14:39:37 | giuseppe | hosiawak: thanks, I found what I was lookin' for :D http://book.git-scm.com/4_interactive_rebasing.html |
| 14:49:23 | giuseppe | bye guys, thanks for your help |
| 14:49:43 | giuseppe | hope to have something ready soon :) |
| 14:58:10 | banisterfiend | hosiawak: got it working ;) |
| 14:58:23 | banisterfiend | and more to the point, i implemented it while in a pry session, using repl oriented development :D |
| 14:58:30 | banisterfiend | really fun |
| 14:59:30 | shevy | hmm |
| 14:59:31 | hosiawak | banisterfiend: awesome, repl programming ftw |
| 14:59:35 | shevy | banisterfiend is scaring me :/ |
| 15:01:26 | hosiawak | shevy: in the 70's they would send rockets into space and run slime to reprogram them live, don't be scared ;) |
| 15:01:47 | banisterfiend | hosiawak: https://gist.github.com/1002473 |
| 15:04:01 | hosiawak | banisterfiend: wonderful |
| 15:17:46 | alexsuraci | banisterfiend: is that on rbx? |
| 15:17:52 | alexsuraci | (guessing so) |
| 15:17:58 | banisterfiend | yeah |
| 15:18:08 | alexsuraci | nice, how's it finding the code? |
| 15:18:21 | banisterfiend | Method#source_location |
| 15:18:29 | alexsuraci | ah |
| 15:18:29 | banisterfiend | but correcting the path |
| 15:19:32 | matthewd | Does that mean it only works when rbx is installed using rvm? |
| 15:20:42 | banisterfiend | matthewd: 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:48 | banisterfiend | it's a bit messy but i think it's doable |
| 15:21:54 | matthewd | Well 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:39 | banisterfiend | yeah 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:51 | matthewd | The latter, I don't see how you'd get the source any more easily than you would for MRI |
| 15:22:57 | banisterfiend | ah |
| 15:23:03 | matthewd | I'm pretty sure than an installed rbx doesn't include kernel sources at all |
| 15:23:04 | banisterfiend | yeah you're probably right |
| 15:23:10 | banisterfiend | ah ok |
| 15:23:35 | banisterfiend | well in that case i'd probably have to package teh sources in a gem like u say |
| 15:23:50 | matthewd | At 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:19 | banisterfiend | no im not |
| 15:24:45 | matthewd | Extra corner case, I suspect one could use rvm to install, then delete the source/build directory |
| 15:25:00 | banisterfiend | problem with the database approach though is that the source goes out of date |
| 15:25:08 | banisterfiend | or doesnt match the version they have installed |
| 15:25:25 | banisterfiend | with MRI this is less of an issue as the source doesnt change that much from versino to version |
| 15:25:38 | matthewd | Yeah |
| 15:25:40 | banisterfiend | but 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:40 | alexsuraci | banisterfiend: pry could probably work real well with atomy, which keeps method bodies stored in-memory on the classes :P |
| 15:25:52 | alexsuraci | (as AST nodes, though, not strings) |
| 15:26:05 | alexsuraci | (which can be pretty-printed easily) |
| 15:26:09 | banisterfiend | alexsuraci: cool |
| 15:26:48 | banisterfiend | yeah 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:57 | banisterfiend | but i havent heard back from him since |
| 15:46:40 | evan | banisterfiend: hi! |
| 15:46:46 | evan | what did I promise myself to? :D |
| 15:47:06 | banisterfiend | hehe you didnt promise :P you just said you'd look into it |
| 15:47:21 | banisterfiend | but it's ok i understand it's pretty low priority :) |
| 15:47:27 | evan | ah, the kernel/ paths for kernel methods |
| 15:47:38 | evan | are you fixing them up now? |
| 15:47:52 | banisterfiend | im just tring to extract the source |
| 15:48:02 | matthewd | banisterfiend: Presumably your particular use case could be addressed by just installing the kernel source next to lib/ or something |
| 15:48:11 | banisterfiend | im successful so far with rvm installs: https://gist.github.com/1002473 |
| 15:50:29 | banisterfiend | matthewd: ah ok, you mean my gem locates and installs the source in the gem's lib/ ? |
| 15:51:52 | banisterfiend | wow it's late |
| 15:51:56 | banisterfiend | i better hit the sack |
| 15:52:01 | banisterfiend | thanks for your help guys |
| 15:52:07 | alexsuraci | g'night |
| 15:52:53 | alexsuraci | oo, someone got rubinius going on cloudfoundry |
| 15:53:02 | evan | not just someone |
| 15:53:03 | evan | ezra. |
| 15:53:55 | alexsuraci | oh, just checked, neat :P |
| 15:54:46 | alexsuraci | damn, i was gonna work on that when i was there |
| 15:55:15 | evan | :) |
| 15:55:21 | evan | i'm sure they could use more help |
| 15:55:27 | alexsuraci | guess i could play with getting vcap/vmc/etc. themselves working on rubinius :P |
| 16:03:22 | tjgillies | how do i test actors? |
| 16:03:28 | scoutmaster | rubinius-freebsd#1: FAILURE in 2 min 53 sec: http://ci.rubinius.net/job/rubinius-freebsd/1/ |
| 16:19:37 | brixen | tjgillies: well, first you need a stage, some lighting, a script... :) |
| 16:19:47 | tjgillies | brixen: lol |
| 16:20:01 | tjgillies | tried looking in source |
| 16:20:11 | tjgillies | but got overwhelmed by all the mspec stuff |
| 16:20:13 | brixen | jaimef: here's a recent post http://blog.carbonfive.com/2011/04/19/concurrency-with-actors/ |
| 16:20:21 | brixen | er tjgillies |
| 16:20:25 | tjgillies | brixen: thnx |
| 16:20:52 | brixen | tjgillies: if you're just getting started with actors, this is a pretty excellent resource http://www.dalnefre.com/wp/ |
| 16:21:07 | tjgillies | i know actors |
| 16:21:12 | tjgillies | ive used them in scala |
| 16:21:14 | brixen | tjgillies: there hasn't been tons of usage in Ruby yet, even though rbx has had them since like 2007 |
| 16:21:17 | tjgillies | im wondering how to write tests |
| 16:21:18 | brixen | ah cool |
| 16:21:30 | brixen | well, good question |
| 16:21:45 | brixen | in rubyspec, the basic principle is computing a value and checking it |
| 16:22:04 | tjgillies | its asynchronus though |
| 16:22:16 | brixen | for 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:30 | brixen | there's always pretty much a beginning, middle, end |
| 16:22:52 | tjgillies | im looking at https://github.com/joshbuddy/em-spec |
| 16:22:54 | brixen | async doesn't imply undetermined running time :) |
| 16:23:04 | tjgillies | brixen: thnx |
| 16:23:38 | brixen | seems to me that testing Actors would be a little different than EM |
| 16:23:45 | brixen | ie, you don't have the loop to really consider |
| 16:24:33 | tjgillies | good point |
| 16:24:49 | brixen | 1. 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:02 | brixen | 4. testing - make some expectations about state |
| 16:25:23 | brixen | 5. teardown - close/exit actors |
| 16:26:04 | tjgillies | brixen: what is ScratchPad? |
| 16:26:25 | brixen | tjgillies: it's a helper in mspec |
| 16:26:41 | brixen | if rbx repo, see mspec/lib/mspec/helpers/scratch.rb |
| 16:26:49 | tjgillies | brixen: thanks |
| 16:26:50 | brixen | grep for ScratchPad in spec/ to see usage |
| 16:27:10 | brixen | sweet, ez has rbx running in cloud foundary I guess |
| 16:27:24 | evan | yep! |
| 16:27:26 | evan | pretty awesome. |
| 16:28:14 | alexsuraci | i guess he works in that division |
| 16:33:08 | brixen | banister`sleep: when you're awake, let's talk about kernel source |
| 16:33:30 | brixen | evan: what do you say about installing the rb kernel source, so stuff like banister's tool can easily display it? |
| 16:33:44 | evan | sure. |
| 16:33:58 | brixen | I can add Rubinius::KERNEL_PATH along with our other _PATH constants |
| 16:34:01 | brixen | sounds like a great idea |
| 16:34:36 | brixen | sounds like we need a "How to debug a Ruby program" screencast featuring Rubinius! |
| 16:34:39 | evan | sounds good. |
| 16:42:17 | tjgillies | is it just me or does ruby-debug-ide and ruby-debug-base not work in rubinius? |
| 16:45:39 | evan | they do not. |
| 16:45:46 | evan | none of ruby-debug does. |
| 16:45:54 | hosiawak | why isn't "send()" listed here http://rubini.us/doc/en/virtual-machine/instructions/ ? |
| 16:45:57 | evan | because they're tied very closely with the 1.8 runtime |
| 16:46:05 | evan | hosiawak: there is no send instruction |
| 16:46:23 | brixen | hosiawak: because it is a helper function only defined on Generator |
| 16:46:39 | hosiawak | evan: so what does a send do in the asm block ? |
| 16:46:51 | evan | one of the specific send instructions |
| 16:46:52 | evan | send_stack |
| 16:46:57 | evan | send_stack_with_block |
| 16:46:59 | evan | send_stack_with_splat |
| 16:47:00 | evan | etc. |
| 16:47:04 | hosiawak | ah, ok |
| 16:58:36 | tjgillies | brixen: how do i require scratchpad? |
| 16:59:02 | brixen | tjgillies: you don't if you are using mspec |
| 16:59:09 | brixen | where are you trying to write specs? |
| 16:59:11 | tjgillies | oh im using rspec |
| 16:59:24 | brixen | then you'll need to make something like scratchpad to use in your specs |
| 16:59:40 | tjgillies | i can just use mspec, they're similar aren't they? |
| 16:59:48 | brixen | I recommend doing that versus using a bunch of ad hoc locals/globals/etc |
| 16:59:59 | brixen | mspec isn't intended to be used in normal projects |
| 17:00:06 | brixen | it's specially built for RubySpec |
| 17:01:16 | tjgillies | "doing that" meaning using mspec, or making my own scratchpad? |
| 17:04:12 | tjgillies | heh: https://gist.github.com/65e0c673a3f9f0ccea73 |
| 17:24:12 | srawlins | i 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:19 | srawlins | should i make a gist with the whole log? |
| 17:25:24 | brixen | srawlins: is your rvm current? |
| 17:25:36 | srawlins | oops, as of 2 weeks maybe |
| 17:26:05 | brixen | ok, could you just rm anything with rbx in it in ~/.rvm/src ~/.rvm/rubies ~/.rvm/repos |
| 17:26:07 | brixen | and try again |
| 17:26:25 | srawlins | including my base rbx-1.2.3? |
| 17:26:40 | brixen | tjgillies: yeah, it's a really simple helper but makes spec code much better |
| 17:27:19 | brixen | srawlins: well, run 'rvm install rbx-head-nhydra' and see if that works |
| 17:27:40 | brixen | I don't know why 1.2.3 would install by not hydra |
| 17:31:28 | tjgillies | brixen: is the sleep a good idea? https://gist.github.com/ee890f09de8f4bc6532e |
| 17:34:02 | brixen | tjgillies: sleeps are generally not good in specs |
| 17:34:12 | brixen | you should use some sort of explicit synchronization if you need it |
| 17:36:17 | tjgillies | brixen: what is an example of explicit syncronization? |
| 17:37:02 | srawlins | i 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:20 | brixen | tjgillies: depends what you need :P |
| 17:39:00 | tjgillies | brixen: im just practicing writing tests. in this simple example, what would you use other than a 'sleep'? |
| 17:39:57 | brixen | tjgillies: are you guaranteed the operation you're waiting on will complete in N secs? |
| 17:40:08 | brixen | where N may be <= 1.0 |
| 17:40:09 | tjgillies | brixen: no :( |
| 17:40:22 | brixen | right, that's why you need something else |
| 17:41:03 | brixen | you may need to write a helper to synchronize |
| 17:41:19 | brixen | ie, the actor you are testing may need to signal after completing the work you are requesting |
| 17:42:36 | dwaite | good morning! |
| 17:43:04 | tjgillies | what about while not ScratchPad.recorded == :msg |
| 17:43:29 | tjgillies | but that makes my test loop forever if actor never gets the message |
| 17:43:32 | tjgillies | dwaite: mornin |
| 17:44:44 | brixen | hello dwaite |
| 17:45:10 | brixen | tjgillies: I'd suggest reading through the blog I linked you |
| 17:45:24 | tjgillies | brixen: im on it right now |
| 17:45:28 | brixen | I've never used scala so I can't say what resources they have as docs for actors |
| 17:46:06 | brixen | unfortunately, there's not a vast quantity of good documentation about actors |
| 17:46:24 | brixen | although, the ideas are rather simple |
| 17:46:27 | tjgillies | ok |
| 17:46:43 | brixen | tjgillies: there's another Ruby actor implementation called dramatis |
| 17:46:54 | brixen | I haven't looked to see if there are tests though |
| 17:47:27 | brixen | http://www.techscreencast.com/language/ruby/dramatis-actors-for-ruby---steven-parkes/1482 |
| 17:47:55 | tjgillies | brixen: thnx |
| 17:47:58 | brixen | n/p |
| 17:48:35 | tjgillies | oooh |
| 17:48:36 | tjgillies | https://github.com/tarcieri/celluloid/blob/master/spec/actor_spec.rb |
| 17:48:38 | tjgillies | nice |
| 17:48:48 | brixen | ah yes, and celluloid |
| 17:49:00 | brixen | tarcieri is in channel if you have questions for him :) |
| 17:49:12 | tjgillies | outstading |
| 17:49:17 | tjgillies | oustanding* |
| 17:49:55 | brixen | tarcieri did http://revactor.github.com/ way back in the day |
| 17:50:41 | tjgillies | oh he did both? |
| 17:50:43 | tjgillies | cool |
| 17:52:35 | brixen | yeah, and he's really good at karaoke :) |
| 17:53:53 | tarcieri | I think actor_spec has some sleeps in it :/ |
| 17:54:02 | brixen | lol |
| 17:54:11 | tarcieri | sleep 0.1 # hax |
| 17:54:15 | tarcieri | at least it's labeled as hax! |
| 17:54:17 | brixen | hah |
| 17:54:36 | tarcieri | I dunno, it's testing shit like telling actors to shut down |
| 17:54:41 | brixen | is saddened that tarcieri has fallen from his pedestal |
| 17:55:08 | brixen | tests are hard, let's go drink beers |
| 17:55:11 | tarcieri | in the celluloid branch of girl_friday I was actually using queues |
| 17:55:25 | tarcieri | the problem was if you didn't pass the test it deadlocked |
| 17:55:57 | tarcieri | needs to add deadlock detection for a particular case in celluloid |
| 17:56:13 | brixen | or add a supervisor |
| 17:56:18 | tarcieri | namely A calls B calls A |
| 17:56:37 | tarcieri | there are supervisors, but they probably do something different from what you want |
| 17:56:40 | tarcieri | they're more like watchdogs |
| 17:56:59 | brixen | well, I mean as a test helper |
| 17:57:08 | brixen | basically, put a bound on execution |
| 17:57:11 | brixen | time |
| 17:57:33 | tarcieri | yeah, add a timeout after an arbitrary period! |
| 17:57:42 | tarcieri | it's like sleep, only more complicated :) |
| 17:57:47 | brixen | but a little more regimented than ad hoc sleeps :P |
| 17:57:49 | brixen | yes |
| 17:57:53 | tarcieri | heh, yeah |
| 17:58:00 | tarcieri | that's what I wanted to end up doing |
| 18:02:55 | srawlins | how are benchmarks outside of benchmark/core/ run? like benchmark/rbs/garbage_collection/* ? |
| 18:03:11 | srawlins | using bin/benchmark -t x benchmark/garbage_collection/bm_gc_100mb.rb is not correct |
| 18:10:44 | tjgillies | does each actor spawn its own thread? |
| 18:11:19 | tarcieri | yeah |
| 18:11:21 | tarcieri | well |
| 18:11:24 | tarcieri | on celluloid |
| 18:11:28 | tarcieri | and rbx actors too, I think |
| 18:13:22 | brixen | srawlins: I don't have a benchmark/garbage_collection/bm_gc_100mb.rb |
| 18:13:39 | tjgillies | tarcieri: thnx |
| 18:14:06 | srawlins | brixen: sorry typo. using bin/benchmark -t x benchmark/rbs/garbage_collection/bm_gc_100mb.rb is not correct |
| 18:14:29 | dbussink | evening ppl |
| 18:14:38 | brixen | srawlins: ah, that's the imported rbs stuff |
| 18:14:48 | brixen | that hasn't been converted to use bin/benchmark afaik |
| 18:14:53 | brixen | hey dbussink |
| 18:15:16 | srawlins | brixen: oh i see. its reference for now? i'll try to convert... |
| 18:15:18 | brixen | srawlins: see rakelib/bench.rake for the rbs stuff |
| 18:15:41 | brixen | srawlins: better would be to pull in relevant stuff to core or rubinius or tiers |
| 18:15:49 | brixen | rather than messing with rbs at all |
| 18:15:58 | srawlins | ah i see. keep rbs/ a reference directory? |
| 18:16:05 | brixen | pretty much |
| 18:16:14 | brixen | besides, many of the rbs benchmarks are just bogus |
| 18:16:20 | srawlins | haha |
| 18:16:22 | brixen | I think |
| 18:17:08 | brixen | our benchmark dir needs a missive cleaning / threshing |
| 18:17:33 | brixen | + organization |
| 18:17:52 | brixen | srawlins: check out tiers and see if you can't add some relevant benchmarks |
| 18:18:08 | brixen | tiers will be the best way to compare perf among ruby implementations |
| 18:18:37 | brixen | also, the idea of tiers was to show where perf at certain levels of an implementation translate up or not |
| 18:21:03 | srawlins | brixen: ah ok, interesting stuff in tiers/ thanks! |
| 18:22:39 | wayneeseguin | s/g brixen |
| 18:22:46 | wayneeseguin | DOH |
| 18:24:10 | brixen | wayneeseguin: hah |
| 18:24:15 | brixen | wayneeseguin: I can't keep up! |
| 18:24:25 | brixen | w/u s/g what next?! |
| 18:24:31 | wayneeseguin | ::Grin:: |
| 18:24:57 | wayneeseguin | Keeping you in suspense |
| 18:24:57 | wayneeseguin | or suspenders |
| 18:25:07 | brixen | and I have to keep making stuff up... let's see, with underlings... super great? |
| 18:25:25 | brixen | reads well in s/g brixen :) |
| 19:01:55 | srawlins | Neat! tiers/0 performance between rbx-1.2.3, 1.8.7, 1.9.2, jruby-1.6: http://tinyurl.com/3vetyp7 |
| 19:02:52 | brixen | nice |
| 19:02:59 | srawlins | rbx kicks butt, with 1.9.2 close on its heels in just a few cases |
| 19:03:14 | brixen | the core VM operations are really fast |
| 19:03:25 | brixen | what's the label for the Y axis? |
| 19:03:51 | srawlins | thats iterations per second, taken from the rubinius comparison lines |
| 19:03:59 | brixen | ah ok |
| 19:04:01 | brixen | could you label it? |
| 19:04:09 | brixen | or did I miss the label? |
| 19:04:26 | srawlins | its not labelled. and the bottom label of each chart is "Bench" hehe |
| 19:04:35 | srawlins | yeah, i think im going to move away from Google Charts API, its not too flexible |
| 19:05:02 | srawlins | i want the mouseover of each bar to say the bit about "3.18x slower" etc |
| 19:05:44 | brixen | ah yeah, that'd be neat |
| 19:06:26 | brixen | flot worked pretty well for me |
| 19:06:32 | srawlins | i'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:36 | brixen | see benchmark/results |
| 19:06:42 | srawlins | yeah i've use flot before... i'll llook at that |
| 19:06:46 | brixen | cool |
| 19:08:27 | alexsuraci | those are some pretty wild results |
| 19:09:08 | srawlins | yeah, i feel badly for mri 1.8.7 :/ |
| 19:09:31 | alexsuraci | srawlins: are these chosen at random or are they the ones where rbx blows away everyone else? :P |
| 19:09:54 | srawlins | hahaha, no they are all the benchmarks in benchmark/tiers/0 |
| 19:09:54 | brixen | alexsuraci: they are really low level vm operations |
| 19:10:11 | brixen | alexsuraci: the point of the tiers system is to go from really low level up by tiers to app-like benchmarks |
| 19:10:11 | alexsuraci | ah, nice |
| 19:10:18 | alexsuraci | makes sense |
| 19:10:33 | brixen | to see the difference in the levels and see where lower level perf translates up, if at all |
| 19:10:37 | alexsuraci | something like http://speed.pypy.org/timeline/ would be crazy cool |
| 19:10:52 | brixen | yeah, some folks are working on getting something like that up |
| 19:11:03 | brixen | we'll try to accelerate that |
| 19:11:11 | alexsuraci | rad |
| 19:11:28 | brixen | the challenge is that benchmarks don't necessarily translate to *your* apps perf |
| 19:11:56 | brixen | but 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:59 | alexsuraci | any big open-source ruby-powered sites? |
| 19:12:08 | alexsuraci | maybe add a "github load time" benchmark or something ;) |
| 19:12:19 | brixen | what would that be? |
| 19:12:39 | alexsuraci | testing a big honkin' real-world app |
| 19:12:44 | brixen | oh sure |
| 19:13:03 | brixen | well, we hope that folks with big honkin apps will have benchmarks from doing performance tuning |
| 19:13:10 | brixen | and they can use those |
| 19:13:53 | ezmobius | brixen https://gist.github.com/7322f90c7cea347b35d9 |
| 19:14:07 | ezmobius | rbx is doing pretty good but still about 60% as fast as 1`.8.7 |
| 19:14:26 | ezmobius | this is a cool way to compare side by side interpreters with the same app on the same hardware though |
| 19:14:48 | brixen | ezmobius: nice! how hard is it for me to set that up here so I can look into it? |
| 19:14:59 | brixen | ezmobius: or just the app that is being ab'd |
| 19:16:03 | ezmobius | its a super simple app. i can give you an account on my microcloud though |
| 19:16:07 | ezmobius | whats your email address? |
| 19:17:40 | ezmobius | brixen here is the app. cant get mnuch simpler: https://gist.github.com/6fd074d42edc86d27fab |
| 19:17:59 | brixen | ezmobius: ah cool, thanks |
| 19:18:23 | brixen | ENV is probably pretty heavy there |
| 19:18:26 | brixen | I'll play around |
| 19:18:27 | ezmobius | give me a˜email addy and ill give you an account on my microcloud so you can run apps |
| 19:18:41 | brixen | ezmobius: bford at you know where :) |
| 19:19:24 | brixen | ezmobius: are you working from home these days? |
| 19:19:28 | brixen | I should come hang out |
| 19:19:35 | ezmobius | yeah, definitely! |
| 19:19:41 | ezmobius | i have a nice home office with plenty of room |
| 19:19:45 | ezmobius | id love to see you |
| 19:19:47 | brixen | sweet! |
| 19:19:52 | brixen | maybe friday? |
| 19:19:55 | dbussink | srawlins: brixen: hmm, on that bm_vm2_case.rb benchmark rbx is 3 times slower than 1.9 :s |
| 19:20:48 | brixen | dbussink: where? |
| 19:20:56 | dbussink | brixen: on my machine here |
| 19:21:04 | brixen | head or 1.2.3? |
| 19:21:16 | dbussink | https://gist.github.com/8b829e65d7474f1e7591 |
| 19:21:18 | dbussink | hydra |
| 19:21:21 | dbussink | but head also has this |
| 19:21:28 | dbussink | head shows the same numbers |
| 19:21:40 | brixen | are you by chance using a debug build? |
| 19:21:55 | dbussink | haven't done a DEV=1 build |
| 19:22:04 | brixen | you should try with 1.2.3 to compare |
| 19:22:18 | brixen | actually, you should run the whole set on 1.2.3 to confirm |
| 19:22:25 | brixen | then compare with head |
| 19:24:30 | ezmobius | brixen you see my pm? |
| 19:38:17 | dbussink | brixen: hmm, seeing wildly varying numbers: https://gist.github.com/6eaa05931398c0bbc435 |
| 19:38:20 | dbussink | evan: ^^ |
| 19:38:39 | evan | weird. |
| 19:39:05 | brixen | dbussink: that's it, we're kicking you out of the benchmarking club :P |
| 19:39:26 | dbussink | evan: that was what i was thinking |
| 19:39:31 | dbussink | brixen: just because i see weirdness? :P |
| 19:40:27 | brixen | dbussink: the party line, get with it :) |
| 19:40:55 | brixen | dbussink: what system are you running on? |
| 19:41:04 | dbussink | brixen: os x |
| 19:41:26 | dbussink | brixen: nothing exotic really |
| 19:43:28 | brixen | dbussink: well, you're in EU, that's exotic |
| 19:44:01 | dbussink | brixen: thing is that mri's performance is consistent |
| 19:44:08 | brixen | hmm |
| 19:44:14 | dbussink | brixen: you're not seeing this i guess? |
| 19:44:23 | dbussink | evan: or you for that matter? |
| 19:44:30 | brixen | dbussink: did you try on 1.2.3? |
| 19:44:39 | brixen | dbussink: I'm not running it, I may later if I have time |
| 19:44:46 | brixen | other stuff to work on atm ;) |
| 19:51:34 | evan | ditto, not running it atm. |
| 19:52:53 | srawlins | dbussink: fyi mine were on a 64-bit Linux (Ubuntu 10.10, kernel 2.6.35), core i5 |
| 20:37:54 | rbxbot | Silent tongue and hempen heart often go together. |
| 20:38:53 | brixen | @slap rbxbot |
| 20:38:53 | rbxbot | is overcome by a sudden desire to hurt rbxbot |
| 20:40:12 | hosiawak | brixen: banister inspired me today to add method source linking to rbxbot, almost ready :) |
| 20:40:20 | brixen | hosiawak: nice |
| 20:40:31 | brixen | hosiawak: I'm going to add some stuff to make that easier |
| 20:42:51 | boyscout | Removed trailing space, again. - 4015e94 - Brian Ford |
| 20:42:51 | boyscout | Fixed warning. - 0bbe48a - Brian Ford |
| 20:46:05 | scoutmaster | rubinius#52: SUCCESS in 3 min 9 sec |
| 21:04:19 | hosiawak | @source puts |
| 21:04:19 | rbxbot | https://github.com/evanphx/rubinius/tree/master/kernel/common/kernel.rb#L185 |
| 21:04:26 | tarcieri | whoa |
| 21:04:34 | tarcieri | is that like a hook to git grep? |
| 21:05:00 | hosiawak | @source Array#reduce |
| 21:05:01 | rbxbot | https://github.com/evanphx/rubinius/tree/master/kernel/common/enumerable.rb#L182 |
| 21:05:07 | tarcieri | heh it appears a bit more semantically aware |
| 21:05:22 | tarcieri | @source IO.select |
| 21:05:23 | rbxbot | https://github.com/evanphx/rubinius/tree/master/kernel/common/io.rb#L559 |
| 21:05:55 | tarcieri | uhh |
| 21:05:58 | tarcieri | am I missing something |
| 21:06:00 | hosiawak | tarcieri: no, that's getting a method object and calling source_location on it |
| 21:06:07 | tarcieri | or can that code be DRYed out quite a bit |
| 21:06:11 | dbussink | hosiawak: hm, it's doing a redirect |
| 21:06:11 | tarcieri | the IO.select code |
| 21:06:17 | dbussink | to blob instead of tree |
| 21:06:23 | dbussink | and the line number is therefore cut off |
| 21:07:15 | hosiawak | dbussink: hmm |
| 21:09:26 | hosiawak | dbussink: is github using "tree" for directories and "blob" for files ? it appears so |
| 21:09:37 | dbussink | hosiawak: appears so yeah |
| 21:09:52 | hosiawak | dbussink: what do you mean by line number getting cut off ? |
| 21:10:10 | hosiawak | dbussink: it's doing the redirect but highlighting the line on mine |
| 21:10:17 | dbussink | hosiawak: because of the redirect, the #L185 is lost |
| 21:10:25 | dbussink | so i don't see it jump the given line number |
| 21:10:54 | hosiawak | dbussink: what browser ? |
| 21:11:01 | dbussink | hosiawak: safari |
| 21:11:07 | srawlins | it jumped to #L185 for me; firefox |
| 21:11:08 | hosiawak | dbussink: I'm not seeing that on FF/Chrome |
| 21:11:09 | dbussink | just checked, chrome behaves different |
| 21:11:44 | hosiawak | dbussink: I'll update it to blob so safari is happy |
| 21:11:48 | dbussink | hosiawak: apparently something not consistent over different browsers |
| 21:13:16 | hosiawak | dbussink: looks like safari is omitting the hash tag when receiving a 301 |
| 21:17:33 | dbussink | hosiawak: yeah |
| 21:17:38 | dbussink | but i'm off to sleep |
| 21:17:38 | dbussink | nite! |
| 21:17:39 | srawlins | is rbxbot on github somewhere? |
| 21:18:23 | hosiawak | srawlins: http://github.com/hosiawak/rbxbot |
| 21:19:00 | hosiawak | @source Class#superclass |
| 21:19:00 | rbxbot | https://github.com/evanphx/rubinius/blob/master/kernel/common/class.rb#L88 |
| 21:19:12 | hosiawak | it's blobbing now |
| 21:21:57 | dbussink | hosiawak: yay! |
| 21:21:59 | dbussink | works nicely |
| 21:22:11 | dbussink | sleeps |
| 21:22:14 | srawlins | hosiawak: thanks! (still works in ff) |
| 21:22:57 | hosiawak | @hug banisterfiend |
| 21:22:58 | rbxbot | wraps banisterfiend in a hug |
| 21:23:08 | srawlins | hosiawak: this is a fork of TryRuby? do you work with the people who did TryRuby at all? |
| 21:23:19 | tarcieri | *boggle* @ this logic |
| 21:23:57 | hosiawak | srawlins: no, I just forked that project, stripped almost all of it just leaving the eval part of tryruby.rb |
| 21:24:20 | robgleeson | hosiawak: did you get Barney working btw? |
| 21:24:20 | srawlins | haha, ah i see |
| 21:25:19 | hosiawak | robgleeson: 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:31 | hosiawak | robgleeson: so if you a = 1 in one message it's gone in another |
| 21:25:59 | robgleeson | hosiawak: yeah, it doesn't keep state, although a Binding is serializable by rbx ;) |
| 21:26:04 | hosiawak | robgleeson: I would have to fork only once and then monitor the forked process, didn't get that far :) |
| 21:26:22 | robgleeson | hosiawak: you shouldn't - just share a Binding, and use that to eval. |
| 21:27:09 | hosiawak | robgleeson: ah, cool, didn't know about it :) |
| 21:27:32 | robgleeson | hosiawak: didn't test it, but: share :TOPLEVEL_BINDING should work. |
| 21:27:45 | hosiawak | robgleeson: I'll try it the next time someone hurts rbxbot |
| 21:27:54 | robgleeson | then TOPLEVEL_BINDING.eval "fuzzy rabbits" or w/e. |
| 21:28:04 | robgleeson | sure no |
| 21:28:04 | hosiawak | robgleeson: ok, thanks |
| 21:28:06 | robgleeson | oops |
| 21:28:08 | robgleeson | sure np* |
| 21:30:31 | robgleeson | hosiawak: 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:36 | tarcieri | :O tests are passing |
| 21:41:42 | tarcieri | dare I commit this? |
| 21:42:05 | robgleeson | i dare you to :p |
| 21:46:30 | boyscout | DRY out IO.select - d8e53c8 - Tony Arcieri |
| 21:46:58 | tarcieri | :O |
| 21:49:14 | scoutmaster | rubinius#53: SUCCESS in 2 min 38 sec |
| 21:49:29 | tarcieri | :D |
| 21:50:40 | evan | tarcieri: I don't like that last line. |
| 21:50:46 | evan | last 2 lines |
| 21:50:48 | evan | of the diff. |
| 21:51:08 | tarcieri | yay, evan's here to double check my work |
| 21:51:23 | evan | specificly |
| 21:51:28 | tarcieri | evan: yeah it'd be cool if I could use a splat there :/ |
| 21:51:28 | evan | your new code is harder to understand imho. |
| 21:51:35 | evan | the args map! |
| 21:51:42 | tarcieri | that it is, I could unpack the map as variables and rebind them |
| 21:51:44 | evan | is harder to undersand than the unrolled version |
| 21:52:19 | tarcieri | how about readables, writables, errorables = [readables, writables, errorables].map do |set| ? |
| 21:52:28 | evan | no. |
| 21:52:36 | tarcieri | that is kind of ugly |
| 21:52:39 | evan | more confusing. |
| 21:52:40 | tarcieri | do you want me to just revert it? |
| 21:53:12 | evan | i'd like you to do readable, writable, and errorable as seperate steps |
| 21:53:18 | evan | it's only a tiny bit more code |
| 21:53:22 | evan | and much easier to understand. |
| 21:53:30 | tarcieri | that's how it was before |
| 21:53:42 | evan | well |
| 21:53:47 | evan | you also removed the extra kind_of check. |
| 21:53:53 | evan | in readable. |
| 21:54:08 | evan | you can do that with writable and errorable too. |
| 21:54:10 | meh` | what does `Tried to use object of type PackedObject (45) as type ByteArray (11)` mean? |
| 21:54:21 | evan | meh`: means we need to see the backtrace. |
| 21:54:30 | meh` | evan, lol, ok wait |
| 21:55:46 | tarcieri | evan: it's still doing a kind_of? for all 3 |
| 21:56:04 | meh` | evan, the ruby backtrace, right? |
| 21:56:04 | evan | le sigh. |
| 21:56:07 | evan | meh`: yes. |
| 21:56:12 | tarcieri | evan: the first loop scans readables to see if any of them have buffered data |
| 21:56:24 | meh` | evan, https://gist.github.com/1003426 (the gem is here https://github.com/meh/versionub) |
| 21:56:40 | meh` | it works on 1.8.7-p334 |
| 21:56:43 | evan | oh fun. |
| 21:56:50 | evan | gotta check the code. |
| 21:57:16 | evan | meh`: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARG |
| 21:57:25 | meh` | D: |
| 21:57:29 | meh` | what did i do? |
| 21:57:33 | evan | you subclassed String |
| 21:57:36 | evan | and called something @data |
| 21:57:44 | meh` | ooh |
| 21:57:45 | evan | which is the ivar String uses to store it's ByteArray |
| 21:57:49 | meh` | lol |
| 21:57:52 | meh` | ok, renaming it |
| 21:58:03 | evan | better yet! |
| 21:58:07 | evan | don't |
| 21:58:08 | evan | subclass |
| 21:58:09 | evan | String |
| 21:58:19 | meh` | that's an option too |
| 21:58:19 | tarcieri | note to self: don't let core types be subclassed in any language I design |
| 21:58:29 | alexsuraci | what if i want to implement Rope? ;) |
| 21:58:38 | evan | alexsuraci: totally fine |
| 21:58:39 | meh` | i'll compose it and forward stuff to an internal string |
| 21:58:40 | evan | thats |
| 21:58:41 | evan | a |
| 21:58:42 | evan | seperate |
| 21:58:43 | evan | class |
| 21:58:51 | evan | meh`: just define #to_str |
| 21:59:05 | evan | and everything that needs to treat it like a String can |
| 21:59:42 | evan | tarcieri: if you do, add protected ivar names or something. |
| 22:00:44 | tarcieri | thinks 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:56 | evan | tarcieri: you want to fix select |
| 22:00:57 | evan | or should I? |
| 22:01:14 | tarcieri | evan: what can be done to fix it besides reverting it? |
| 22:01:22 | evan | oh actually |
| 22:01:24 | evan | nothing |
| 22:01:26 | evan | you have to revert it |
| 22:01:33 | tarcieri | yeah |
| 22:01:37 | evan | because you busted Read |
| 22:01:40 | evan | readable |
| 22:01:45 | tarcieri | how so? |
| 22:01:46 | evan | by removing the extra kind_of |
| 22:01:56 | tarcieri | I didn't remove an extra kind_of |
| 22:02:07 | evan | see |
| 22:02:11 | evan | this is why i don't like this code |
| 22:02:15 | evan | i don't get the intention |
| 22:02:17 | tarcieri | I moved the eager return for data in a read buffer into its own loop |
| 22:02:23 | evan | are you intending to check readable twice? |
| 22:02:27 | tarcieri | yes |
| 22:02:33 | evan | please revert. |
| 22:02:36 | tarcieri | ok |
| 22:02:40 | meh` | evan, ok thanks, now it works on rubinius too :) |
| 22:03:11 | boyscout | Revert "DRY out IO.select" - b062129 - Tony Arcieri |
| 22:03:31 | evan | tarcieri: sorry bro :( |
| 22:03:40 | tarcieri | evan: was it performance or clarity that was the problem? |
| 22:03:50 | evan | mostly clarity |
| 22:03:59 | evan | I couldn't figure out why the next was there at all. |
| 22:04:01 | tarcieri | I thought that version was actually clearer, aside from the end |
| 22:04:14 | tarcieri | IO.primitive_select(*sets, timeout) would be nice |
| 22:04:15 | evan | i think I do now |
| 22:04:21 | evan | but it was still more confusing. |
| 22:04:32 | evan | DRY has to improve understanding |
| 22:04:33 | evan | not hurt it. |
| 22:04:51 | evan | DRY that does not improve understanding is called golfing. |
| 22:05:40 | tarcieri | the 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:51 | scoutmaster | rubinius#54: SUCCESS in 2 min 34 sec |
| 22:06:44 | evan | tarcieri: right. |
| 22:07:15 | evan | this might be one of those places where duplicate code is fine. |
| 22:07:34 | tarcieri | yeah, it's only actually repeated twice verbatim |
| 22:07:36 | tarcieri | *shrug* |
| 22:10:21 | meh` | does -Xrbc.db still work? |
| 22:13:04 | evan | yep |
| 22:13:22 | meh` | mmh, then i'm failing somewhere |
| 22:58:22 | rbxbot | One who keeps silent, endures. |
| 22:58:59 | brixen | we should really add a bot that talks to rbxbot |
| 22:59:16 | dwaite | hmm |
| 22:59:25 | evan | hehe |
| 23:02:58 | alexsuraci | sweet, just got my housing info for the internship. i'll be staying in menlo park. |
| 23:03:28 | dwaite | nice, where are you interning? |
| 23:03:58 | alexsuraci | dwaite: vmware, for cloudfoundry |
| 23:05:17 | dwaite | nice! |
| 23:05:32 | dwaite | searches for more caffeine around the house |
| 23:05:42 | dwaite | 5 pm is a bit late to drink an espresso, but I'm considering it |
| 23:06:28 | brixen | I'm drinking a latte |
| 23:06:32 | brixen | it's 4 here |
| 23:06:48 | dwaite | so are you saying 5 is not too late? |
| 23:06:58 | brixen | my cutoff for coffee is about 9-10 |
| 23:07:03 | alexsuraci | any airline recommendations btw? or are they mostly the same |
| 23:07:25 | brixen | alexsuraci: pretty much anything besides US Airways |
| 23:07:39 | dwaite | I'd say avoid united first, us air second |
| 23:07:49 | tarcieri | Southwest is rolling out WiFi, which is awesome |
| 23:07:55 | dwaite | but denver is a united hub, so I get more bad experiences with them due to more experiences in general |
| 23:07:57 | brixen | my experience with united is 10000% better than US air |
| 23:08:03 | alexsuraci | heh, alright. my options are united airlines, continental, and american airlines. and delta. |
| 23:08:04 | tarcieri | Netflix worked on Southwest's wifi |
| 23:08:06 | tarcieri | that was dope |
| 23:08:08 | alexsuraci | leaning towards continental |
| 23:08:19 | tarcieri | Continental is United |
| 23:08:29 | brixen | except where it's not, like tickets |
| 23:08:34 | alexsuraci | obviously doesn't fly much |
| 23:08:47 | alexsuraci | i had wifi on my delta flight last time. on the long part of it, anyway. |
| 23:08:48 | brixen | I almost got stranded in NOLA with one leg on united and one on continental |
| 23:08:59 | brixen | stupid stupid airline companies |
| 23:09:08 | dwaite | *nod* |
| 23:09:23 | dwaite | hmm, 14 days left to come up with any rubyconf proposals |
| 23:09:25 | brixen | they wouldn't issue my ticket at the united desk because the 2nd leg was continental |
| 23:09:39 | brixen | dwaite: I'm submitting 3-4 :) |
| 23:09:43 | brixen | want to borrow one? |
| 23:10:04 | evan | hm, how come transchronographic isn't a word? |
| 23:10:26 | brixen | evan: since when has that stopped you! :) |
| 23:10:34 | evan | pretty much never. |
| 23:10:36 | brixen | just make it a word |
| 23:10:37 | brixen | heh |
| 23:11:07 | brixen | does it mean, "across clocks"? |
| 23:11:10 | petercooper | It worked for authgasm |
| 23:11:11 | petercooper | Imagery that shows the progression of time? |
| 23:11:36 | dwaite | I love using nouns as verbs |
| 23:11:41 | petercooper | Demonstrating the progression of time visually. That's what I'm going with <g> |
| 23:11:43 | dwaite | I refer to it as nouning words |
| 23:11:51 | brixen | dwaite: lovify? |
| 23:11:59 | dwaite | oh wait, verbing words |
| 23:12:03 | dwaite | I like nouning words too |
| 23:12:11 | petercooper | dwaite: Or gerunds? :) |
| 23:12:17 | dwaite | tries some diet mountain dew to wake up |
| 23:13:19 | dwaite | gerunding is good too |
| 23:13:24 | alexsuraci | ugh, i hate expiring sessions |
| 23:13:28 | alexsuraci | time to re-search |
| 23:14:07 | brixen | alexsuraci: airline ticketing systems are one of two or there computer systems that will cause you to lose faith in humanity |
| 23:14:19 | brixen | banking and hotel reservations being the other two |
| 23:14:24 | alexsuraci | agreed |
| 23:14:29 | dwaite | I wish github's pricing was based on sharing of private projects exclusively and not also number of private projects |
| 23:14:31 | alexsuraci | that blew an entire day here when we were booking |
| 23:15:21 | dwaite | the number of small historic projects I would want to check in is price prohibitive |
| 23:15:53 | brixen | dwaite: you should get it under alkaline solutions and write it off as a biz expense |
| 23:15:54 | dwaite | (and don't really feel like sharing my college homework assignments and the like to the world) |
| 23:16:28 | brixen | dwaite: I'll subcontract with you |
| 23:16:44 | dwaite | brixen: 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:09 | dwaite | I could make scripts to check them all in as branches under one project, but that hardly seems like a good use of time |