Index

Show enters and exits. Hide enters and exits.

00:22:26evanyay.
00:22:35evanfixed the exception bug that my new code fixed.
00:22:46evannow need to validate that it fixes the hang bug still (it should)
00:23:47dwaiteIPARSWGD
00:24:13dwaitebtw, is my vote
00:24:52evanheh
00:25:21dwaiteor, just IPA, so then I can think of beer when I think of ruby syntax
00:26:50dwaiteruby-std (pronounced perhaps "ruby stud") would be a good choice, seeing how it already is in the domain name
00:27:04dwaitebut until its a standard it will be a specification, so there will be a naming conflict
00:28:25evanruby-std is probably the proper name
00:28:27evanyou're right
00:28:47brixenyeah, ruby-std sounds good
00:28:53brixenexcept for the std part haha
00:28:56brixenbut yeah
00:28:57evanhah
00:29:01evanyeah, thats a bummer
00:29:03evanbut they picked it
00:29:05evannot us.
00:30:44brixenas long as they don't mess up the capitalization I guess
00:30:53brixenruby-STD heh
00:35:14evanhehe
00:35:25dwaitehopefully there is never anything like a ruby vm definition
00:35:53evanyes, hopefully not.
00:37:08dwaiteI'm curious just how far off annex a is
00:37:39dwaite(well, the BNF in general)
00:40:09dwaiteI was frustrated enough today that I wrote tools to pull in and convert a wikimedia table into a tab-delimited file to use a real table editor
00:46:28evanman, I really broke exception handling before
00:46:35evani'm surprised it worked as long as it did.
00:58:25boyscoutRework exception handler discovery in the JIT - cf3cb55 - Evan Phoenix
00:58:27evanhuzzah!
01:01:30boyscoutCI: cf3cb55 success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
17:25:21brixenmorning
17:26:32rue*wave
17:41:10evanallo
17:41:19evandoing some JIT refactoring/cleanup this morning.
17:41:28rueYou guys have syncronised alarm clocks, right?
17:41:30evantrying to remove the JITWorkhorse class
17:41:32evansince, well, it's silly.
17:41:37evanname and organizationally.
17:41:41rueYes, no horsey
17:43:27brixenJITPony... much better
17:43:29brixenhehe
17:43:35evanhehe
17:50:24dwaitegood morning
17:51:15dwaiteJITWorkhorse -> JITPlethora ?
17:53:08rueMu
18:02:38dbussinkevan: too bad the workhorse is leaving us...
18:03:09evanheh
18:05:17dbussinkevan: hmm, does it ring any bell for you that the build in gems can't be found if i try to use them with -S ?
18:05:28evanhm. no.
18:05:38evanmaybe the stubs aren't going in the proper place
18:05:45evanare you running installed or out of the source directory?
18:07:23dbussinkevan: from the source dir
18:07:29evanhm, check gems/bin
18:07:32evanare the stubs there?
18:08:04dbussinkthey are in gems/rubinius/bin
18:08:10evanthats wrong.
18:08:25evaneither that needs to be fixed
18:08:33evanor kernel/loader.rb needs to check that directory
18:08:35dbussinkevan: well, the bin scripts are picked up
18:08:43dbussinkthe error is "Could not find RubyGem rake (>= 0)"
18:08:52evanis there anything in gems/bin
18:08:52evan?
18:09:05dbussinkhmm, i might have some other stale stuff
18:09:15brixenthere's a problem copying the pre-installed gems
18:09:19evanfeels like the prefix stuff confused things
18:09:22brixenthe rake task checks for gem/rubinius
18:09:26brixenthat existed before
18:09:38brixenthat task needs to be more robust
18:09:48brixengems/rubinius rather
18:10:07evanbrixen: feels like something changed and thats why rubygems is using gems/rubinius/bin
18:10:11evanit was using gems/bin
18:10:16evanbefore your install changes
18:10:19brixenI don't thing so
18:10:31brixendbussink: rm your gems/rubinius dir
18:10:37brixenand run rake gem_bootstrap
18:10:41evannuke the whole gems dir
18:10:50dbussinkbrixen: already removed that, but i cleaned out some stuff in bin/ too
18:10:56evanget rid of the whole directory.
18:10:58evanstart over.
18:10:59dbussinkapparently i still had a rake there, maybe that's it
18:11:02dbussinkevan: already tried that
18:11:20dbussinkevan: now trying with a nuked bin/ directory and checkout of that dir
18:11:25dbussinkclean checkout
18:11:35evanbrixen: did you change Rubinius::GEMS_PATH ?
18:11:57evanit appears so.
18:12:05rueMaybe the non-sudo Gem change?
18:12:15brixenevan: it shouldn't be different
18:12:19brixenI added a constant
18:12:26brixeninstead of building the same value in 5 places
18:12:26evandbussink: check your vm/gen/config.h
18:12:33evanwhat is RBX_GEM_PATH
18:12:51brixendbussink: ./configure --show
18:12:53brixenpaste
18:12:54dbussinkRBX_GEMS_PATH "/Users/dirkjan/Documents/projects/rubinius/gems"
18:13:00evanok, thats right.
18:13:32evandbussink: after you nuked gems and did build again
18:13:38evando you have gems/bin now?
18:13:50dbussinkevan: nope
18:13:56evanok, thats the breakage.
18:14:03evanyou should
18:14:13evanpreinstalled-gems/bin should become gems/bin
18:14:33evanoh
18:14:40evangem_bootstrap got change.d
18:14:41dbussinkevan: ok, so something is probably missing from the build steps i guess?
18:14:42evanincorrectly.
18:14:55evanit's putting preinstalled-gems to gems/rubinius
18:14:58evanthats not correct.
18:15:47evanactually, if that happens
18:15:53evanthen preinstalled gems don't work at all
18:15:57evanbecause then there will be
18:16:02evangems/rubinius/rubinius/...
18:16:08brixenwell, it should copy the bin dir fine, but the rubinius/0.13/ won't be right
18:16:20evanwell, the current task is wrong anyway.
18:16:22brixenoh yeah, extra rubinius
18:16:32evanone sec
18:16:34evanlet me just fix this.
18:16:42evanbecause it's laid out wrong anyway
18:16:48evaneveryone full stop on this for the next 5 minutes.
18:22:08boyscoutFix preinstalled gems directory layout (version proof) - 264af55 - Evan Phoenix
18:22:13evanok, there ya go.
18:22:17evanthats also version proof.
18:22:34evangems/rubinius/preinstalled is where the data for the gems goes now
18:22:41evangems/bin is where the stubs go (and are found)
18:24:04evanyou know
18:24:16evanthis is probably why people said that they couldn't run any gem stubs under rubinius in rc1
18:24:55evanwell, actually no.
18:25:22boyscoutCI: 264af55 success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
18:26:07brixenthe gems worked if you installed
18:26:12brixenI checked that
18:26:14evanright
18:26:19evani think the preinstalled ones just didn't
18:26:26evanwhich actually you might not be able to see
18:26:34evanbecause -S has an interesting property
18:26:39evanmost people already have rake installed
18:26:46evanand there is a gem stub for it in /usr/bin/rake
18:26:52evanand -S will pick that up
18:27:02brixenah yeah
19:13:42dbussinkevan: cool, i just built rubinius with itself :)
19:13:53evanAWESOME!
19:14:41dbussinkevan: ./bin/rbx -S rake to test whether it worked inside the rbx dir
19:14:49dbussinkand it just happely did it's job :)
19:14:56evanrad
19:14:58evansuper rad.
19:15:04brixenheh
19:15:16brixenI did that by accident working on rake install
19:15:27brixenbut I didn't check everything yet
19:15:32brixenpretty cool though
19:16:37DefilerThat is rad
19:16:55dbussinkbrixen: didn't check everything either, but it completed, so it must have done something right :)
19:17:14brixendbussink: heh, yeah
19:17:36brixennow we just need binaries for all platforms and bootstrapping on MRI will be history!
19:17:39brixenheh
19:18:01dbussinkbrixen: maybe we can do fallback on mri for not available binaries ;)
19:18:08brixendbussink: of course
19:18:15brixenI was just joking
19:18:17dbussinkbit like how there are llvm prebuilds
19:18:23brixenyeah
19:18:59Defilerbrixen: Dude, just port compiler-ng to make
19:19:18Defileror m4; autoconf can build the kernel
19:23:25rueBest idea ever
19:25:33brixenDefiler: Dude, I'll come spend a weekend with you and we'll do it! haha
19:25:51DefilerIt's on; Let's Software!
19:25:55brixenhaha
19:26:26brixenDefiler: I'm hoping to be in nyc for a week in january, you better be there
19:26:35dbussinkfeels happy he can see long running configure output then
19:26:36DefilerI will be, definitely
19:26:41brixenawesome
19:26:48DefilerActually, we should just contribute a Makefile back-end for LLVM
19:27:00brixendbussink: I can give you long running configure output :P
19:27:17brixenDefiler: haha, oh man, stop
19:27:21brixenyou are killing me
19:27:29DefilerDude, you know that would be awesome
19:27:34dbussinkbrixen: will it also check the size of every available type on my system?
19:27:41brixenwhy stop with Makefile, we could do QBasic too
19:28:15DefilerI wonder what the most ubiquitous tool is, actually
19:28:29DefilerIt would have to be something in common between windows and *nix.. hrm..
19:28:30brixendbussink: if you insist... I can grab configure output and just lines.each { |x| sleep 0.3; puts x }
19:29:00dbussinkbrixen: awesome!
19:29:06brixenhah
19:29:13brixenman, the things ppl wish for
19:29:15evanhm
19:29:20evana make+shell backend for LLVM IR
19:29:26evancompile your C to shell!
19:29:34brixenindeed
19:30:11Defilerpushd popd
19:30:43evangive it a root directory
19:30:51evanand it creates a directory for every function call
19:31:05evanand uses files to store locals, etc.
19:31:14evaneasy to implementation continuations then!
19:32:57dbussinkanyone ever seen this? https://gist.github.com/97740af10c3f917ff71b
19:33:31evannope
19:34:31evanopen an issue
19:34:33evanor fix it!
19:34:36evanyour choice.
19:35:53dbussinkevan: i'm trying to see if i can reproduce it reliably, but doesn't look like it :S
19:36:03evank
19:36:10evanstill open it
19:36:18evanso there is a log of it occuring.
19:39:02Defilerdbussink: put :verbose: really in your .gemrc
19:39:28rue:verbose: no, seriously
19:39:28Defilerand :backtrace: true
19:41:21Defiler:verbose: tell-me-what-you-are-doing-aaaaaah
19:43:05evan:pants_mode: mega
19:43:05rueHm, is that "function lock()", or "function lock-ed up" ?
19:52:09evangood question.
19:53:27boyscoutJIT Refactoring phase 1: No more workhorse - ec65b4b - Evan Phoenix
19:54:19boyscoutCI: Build ec65b4b failed. http://ci.rubini.us/rubinius/builds/ec65b4b37ae8f3a3a6e56497fdd1b51095a180fb
19:54:24evan:/
19:54:51evanack.
19:59:43boyscoutConditionalize the LLVM .cpp files - d9fc56b - Evan Phoenix
20:02:45boyscoutCI: d9fc56b success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
20:05:51yipdwhey evan - I read on ruby-lang that you were thinking about using GPUs to accelerate method dispatch
20:05:59yipdwcan you elaborate on that? it seems interesting
20:09:31DefilerThat's a pretty old thread as I recall heh
20:09:41rueIt seems far-fetched mainly :)
20:09:43yipdwI've been out of the loop :P
20:10:03DefilerIt seems to me that the bus bottleneck would be pretty much impossible to overcome
20:10:14yipdwI'm mostly curious about how one would map method dispatch to something suitable for a GPU work unit
20:10:34Defilerwell, dispatching methods is basically just looking things up in tables
20:10:46Defilerand you can do a lot of lookups in parallel on a GPU
20:11:00slavaevan: I got my literal table removal working, the GC now traces machine code using relocation info
20:11:03DefilerSo you could, say, look for a matching symbol in every method table in the lookup chain at once
20:11:09yipdwoh, so it comes down to matrix math
20:11:11Defilerand then pick up the one closest to the call site
20:11:31Defilerit's just that that is such a small unit of work for a GPU
20:11:46Defileryou'd probably spend all your time phrasing those questions to the GPU, rather than waiting for answers
20:11:55yipdwyeah, you'd flood the bus
20:11:57yipdwhmm
20:12:58DefilerI was really disappointed to see how explicit the resource allocation is in OpenCL
20:13:19DefilerIt would be fun to be able to rewrite that part and then try it on various kinds of hardware to see where it was worth the trouble
20:13:30evanyipdw: where on ruby-lang
20:13:32Defilerbut you have to manually loop over the detected devices and assign them to tasks
20:13:35evani recall making a passing remark about it
20:13:41evanbut it was just that, a passing remark.
20:13:45Defilerhttp://www.ruby-forum.com/topic/165155
20:13:53yipdwyeah, that thread
20:14:03yipdwI was looking for CUDA or OpenCL bindings for Ruby, came across that
20:14:07Defilerand I think that refers to an interview with you
20:14:12Defilermaybe on on-ruby?
20:14:17evanah, via tarcieri.
20:14:28evanyeah, i think i made some funny remark about it in here one day.
20:16:03yipdwwell, even if not in method dispatch it seems like it'd be fun to write a numerics library for Rubinius that could make use of that
20:16:23DefilerYeah, but you might as well write it for all Rubies
20:16:26yipdwright
20:16:45yipdwrubinius seems more...hmm
20:16:45Defilerruby could definitely use something as nice as numpy
20:16:46yipdwhackable
20:16:47yipdw:P
20:16:56evanwith everyone having multiple cores now
20:16:58evanit's less useful
20:17:05evanrubinius makes good multicore usage atm
20:17:13evanbecause the JIT runs in it's own thread
20:37:36boyscoutJIT Refactoring 2: extracted compiler driver - 63d830b - Evan Phoenix
20:41:37boyscoutCI: 63d830b success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
22:14:22boyscoutRemove MachineMethod - 7de812a - Evan Phoenix
22:21:04boyscoutCI: 7de812a success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
22:33:12evanhehe
22:33:28evanBlankSlate = Class.new(nil)
22:33:28evanp BlankSlate.instance_methods # => []
22:33:44brixennice
22:34:04evanI wonder if remote alias still works...
22:35:37evanhehe
22:35:39evanone small fix
22:35:46evanand instant awesome:
22:35:56evanBlankSlate = Class.new(nil)
22:35:56evanp BlankSlate.instance_methods # => []
22:36:18evanBlankSlate.remote_alias :__send__, Kernel, :__send__
22:36:18evanp BlankSlate.instance_methods # => ["__send__"]
22:39:35brixensweet
22:43:03evanwhy are people using erb in yaml
22:43:07evanthat seems so silly.
22:44:15boyscoutFix Module#remote_alias - db36a01 - Evan Phoenix
22:44:15boyscoutAllow a Class to be created with nil as the superclass - 2da2ea4 - Evan Phoenix
22:44:53dgtizederb in yaml?
22:45:27evanyeah
22:45:37evanpeople are making config files that use erb in yaml
22:46:09dgtizedwait they are using yaml as there config file
22:46:16dgtizedbut they are generated the yaml using erb?
22:46:34evanno
22:46:37evanthe yaml has erb in it
22:46:41evanso they run it through ERB first
22:46:46evanthen call YAML.load on the output from ERB
22:47:14dgtizedyea that's kinda weird, just process that stuff after they do YAML::load
22:47:23dgtizedand not with erb
22:47:29evanor
22:47:29yipdwit's a not-too-uncommon Railsism as far as I can tell
22:47:32evandon't use yaml!
22:47:35evanuse a .rb file.
22:47:36yipdwpopular in database.yml
22:50:28boyscoutCI: 2da2ea4 success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
23:04:29weepyyeah - i could never figure out why people use yaml, when an rb file is easier and more powerful
23:11:41evanMMMMM
23:11:45evanchained exceptions
23:11:52evano/~ rooooock o/~
23:12:07evana perfect way to properly communicate compiler errors.
23:12:24weepyim just compiling now ....
23:12:46benschwarzevan: did you see the donations total?
23:12:51evannope
23:13:01benschwarz1395..
23:13:22evanwow!
23:13:23evanawesome
23:13:31benschwarznot bad :)
23:14:55weepyjust compiled - the tests ran ok, then i got a runtime exception:
23:14:57weepyRuntime exception: Unable to open file to run: /Users/jonahfox/src/rubinius/runtime/bootstrap/machine_method.rbc
23:15:14weepyshall i make a ticket ?
23:15:27evanfuck.
23:15:30evanone sec.
23:15:30evanno
23:15:32evani just did that.
23:15:38weepyah ok
23:15:42weepyi just cloned
23:15:47weepymust've picked it up
23:16:04evanyeah, it's a trivial fix
23:16:05evanone sec
23:16:31boyscoutRemove old .rbc file from being loaded - e131ce9 - Evan Phoenix
23:16:35evanthere ya go
23:16:37evanupdate please
23:16:55weepygit pull
23:16:57weepy...
23:16:59weepyi did
23:17:00weepyRuntime exception: Unable to open file to run: /Users/jonahfox/src/rubinius/runtime/bootstrap/machine_method.rbc
23:17:02weepyoops
23:17:05weepysorry i mean i did
23:17:14weepy./configure --enable-llvm --prefix=/usr/local/bin
23:17:26evanok...
23:17:30weepydo i have to rebuild from scratch
23:17:34evani don't know what you're trying to communicate
23:17:37evanno
23:17:41evanjust run rake build again
23:17:46weepyok kewl
23:18:21weepylast line is : Building Melbourne for Rubinius
23:18:33evanok..
23:18:33evan?
23:18:38weepyis that right ?
23:18:39brixenweepy: you need to run rake install
23:18:44weepyok
23:18:56brixenyou can pull into the build dir and run rake to build and run the tests
23:19:06brixenbut you have to install if you have configured a prefix
23:19:14weepyi see
23:19:26boyscoutCI: e131ce9 success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors
23:19:27brixenotherwise, how will the files get there? haha
23:20:01weepyomg it appears to work
23:20:33brixenomg haha
23:21:38weepyok pls excuse my n00bness - how do i install gems
23:21:47weepyis it : sudo rbx gem install XXX ?
23:22:00evanyes.
23:22:46weepyhmm it seems to be super slow, but i think you know that already
23:23:47evangem installation is slow atm.
23:24:18brixenhmm, gem install doesn't precompile does it?
23:24:50brixencus that will suck if you install to sudo and rbx can't save rbc files
23:25:00brixens/to sudo/with sudo/
23:25:29evanno
23:25:30evanit doesn't
23:25:33evanwe'll need to fix that
23:25:35brixenyeah
23:25:36evanadds it to the list
23:26:03brixenno sure if there's a simple way to precompile
23:26:13brixenI guess it can work just like installing lib now
23:30:12evanit won't be too hard
23:30:18evani'll work on getting the hooks into rubygems for it.
23:30:26evani've gotten a few patches into rubygems lately
23:30:32evanso should be able to get that in.
23:31:04evanso, wierdly
23:31:04evanhttps://gist.github.com/2cef54fc10270dfa3565
23:31:05evanthat file
23:31:24evanthe rescue is being parsed as having...
23:31:25evanoh nm.
23:36:40evanbrixen: poke
23:37:09brixensup
23:37:24evanline 173 of compiler/ast/exceptions.rb
23:37:37evanactually 172
23:37:49evanwhy is it detecting a literal array and extracting from it?
23:38:25brixenbecause an ArrayLiteral is not an Array
23:38:31evanno no
23:38:33evanwhy detect at all
23:38:37evanwhats that code doing
23:38:46brixenit was a form I saw I suppose
23:38:52evanit blows up
23:38:54evanon
23:38:55evanbegin 1
23:38:57evanbegin
23:38:57evan 1
23:38:59evanrescue
23:39:01evan [2]
23:39:03evanend
23:39:15brixenahh fun
23:39:26brixenresbody's are teh suck
23:39:36evani think that condition should go
23:39:39dwaiteobviously brixen is trying to discourage pointless examples like that
23:39:41evani don't see what code form it's supporting
23:39:41dwaitegood job.
23:40:00dwaite;-)
23:40:03brixenevan: whatever works, just be sure to add compiler specs
23:40:08dwaitewasn't to support rescue splats, was it?
23:40:11evanbrixen: ok
23:40:21brixenI'm absolutely sure I didn't put it in there for the hell of it
23:40:30evanfeels like that! :D
23:40:33brixenheh
23:40:39brixenI guess we'll see when you change it
23:40:56evanoh
23:40:59evani think it's just a bug
23:41:08evanthe assignment is in the condition
23:41:10evanconditional
23:41:12evannot the body
23:41:30evanit's there to support
23:41:32evanrescue A, B => e
23:41:40evanno wait.
23:41:43evanit's not in there.
23:41:50evangee this is confusing.
23:44:36evani'm changing the AST printer
23:44:55evanit doesn't say what ivar is being referenced when the ivar points to another node
23:45:00evanso i can't tell whats what.
23:46:22brixenyeah, I was going to do that too
23:46:36brixenat first I thought the nodes would be descriptive enough
23:46:41brixenbut obviously they are not
23:47:00evanyeah
23:47:18evani'm printing
23:47:21evan@body: \
23:47:24evanBlock
23:47:25evanetc.
23:47:30brixensure
23:48:23evanok
23:48:26evanno clue what this code does
23:48:30evangoing to add a couple specs
23:48:31evanand remove it.
23:49:00evanmaybe this code was supposed to be checking for Block
23:49:03evanrather than ArrayLiteral