Index

Show enters and exits. Hide enters and exits.

00:13:21evanbrixen: i'm making mkmf into a library :/
00:13:35brixenheh
00:13:37brixenok
00:13:50evanmkmf sets up -D defines when you call have_func
00:13:59evanand they're checked for all over the openssl code
00:14:02evanso there is really no gettting around it
00:14:09brixenright
00:14:10evanunless I go through openssl tediously
00:14:15evanand i'm feeling extra lazy today
00:14:19brixenok
00:34:45evanBLARG.
00:34:52evanit's a black hole of tedium.
00:34:57evangives up for now.
00:40:54brixenyeah, it's such a pita
00:43:53evani'm pushing the work i've done thus far to a branch
00:46:10boyscoutFix invalid method - bcc24f0 - Evan Phoenix
00:46:10boyscoutSimplify checking for modification - 7db7249 - Evan Phoenix
00:46:24evanthose were 2 other commits
00:46:30evanthe openssl branch is pushed now
00:46:33evanif you wanna check it out
00:47:27brixenok
00:48:14brixenI'm fixing some 1.8.7 specs, then I'm going to sync the specs
00:48:25brixenthen fix some mspec stuff and sync that
00:48:55boyscoutCI: 7db7249 success. 3004 files, 11486 examples, 35631 expectations, 0 failures, 0 errors
00:49:35evancool.
00:51:45brixenman, what *is* it with ppl and whitespace
00:52:04brixen"if I pack this into one tiny line it will be golden...."
00:54:42BrianRice-workbrixen: they fear staring into the unknown in the gaps between the characters
00:54:50brixenBrianRice-work: haha
00:54:52brixenmust be....
00:55:07brixenfear the void... it'll eat you alive
00:55:08brixenmuhahah
00:56:52brixenBrianRice-work: btw, I think I forgot to introduce you...
00:56:52brixenevan: BrianRice-work is the Slate guy
00:56:52BrianRice-workoh, no worries. I'm still at a lurking stage
00:56:52brixenBrianRice-work: evan is the rubinius guy...
00:56:52evanah!
00:56:52brixenhehe
00:56:52evanBrianRice-work: your reputation preceeds you.
00:56:52BrianRice-workSlate is under heavy hacking at this point. we have a lot of ground to make up
00:56:52brixenBrianRice-work: nothing like putting you on front street huh? :)
00:56:52BrianRice-workwow, I hope not :)
00:57:00evanBrianRice-work: i hear you guys are considering using LLVM then?
00:57:21BrianRice-workevan: sure, and we do have an unfinished plugin for using it. at least our instruction set is SSA (memory-managed)
00:57:37BrianRice-worksrc/unfinished/llvm iirc
00:57:57BrianRice-worknope, it's src/llvm/
00:58:46evanyeah, i was checking it out
00:58:56evanlooks like you have bound to LLVM via the C bindings
00:59:12BrianRice-worklately I've been just attacking the performance and usability issues. I *need* a real module system for slate before I do a bunch of other things. right now we just have a load: method for files which just exec's stuff
00:59:17evanthose tend to be a bit cumbersome compared to the C++ API
00:59:26BrianRice-workright. although we changed our VM from C->C++ since that was written
00:59:37BrianRice-workso I guess that could also be fixed now
00:59:48BrianRice-workwrites a google code issue
00:59:55evan:)
01:00:11evanthe only downside is that your JIT is in C++ then
01:00:23evanor at least custom IR to LLVM IR step is.
01:01:17BrianRice-worknods
01:04:12BrianRice-workactually, I forgot to ask brixen, but do you guys have the equivalent of pyc?
01:04:31BrianRice-work(take a file, compile it, save a version of it that can be fast-loaded next time)
01:04:31brixenyeah
01:04:38brixenrbc
01:04:41brixen:)
01:04:58BrianRice-workis there a little spec on it? I'm curious about certain issues like linking up symbols
01:05:04BrianRice-workgoogles
01:05:07brixenit's a \n delimited ascii file essentially
01:05:11brixenone sec..
01:05:24evanthe format is documented in our ruby code that reads and writes it :)
01:06:17BrianRice-workwell that might be fine
01:06:17BrianRice-workhuh
01:06:30brixendoc/vm/rbc_files.txt also
01:06:49brixenalthough that could be a bit dated..
01:07:28BrianRice-workit's sufficient to grok it
01:07:39brixenBrianRice-work: http://github.com/evanphx/rubinius/blob/cfb2726da00b8c5a76c87a0f31f784b6daa16430/lib/compiler/comp iled_file.rb#L247
01:07:48BrianRice-workok
01:07:59evanthere is no symbol linking in there really
01:08:04evanbecause ruby is so dynamic
01:08:39evanall method calls just reference the Symbol in the literals table for the name of the method to look for
01:08:43evanexactly like ST-80.
01:08:47BrianRice-workok. we do have an interning step
01:09:20evanwhat does that step do?
01:09:23BrianRice-workwhich this kind of scheme should handle. I think I'll make this my next short-term project; we've been missing this
01:09:43BrianRice-workoh, just store 'symbolname' -> #symbolinstance in a Symbols table :)
01:10:18BrianRice-work(that's slate lexical notation of course)
01:10:37BrianRice-workI just have to stitch up the users of the symbol as the load happens
01:10:38evanah
01:10:45evanyeah, .rbc's handle that automatically
01:10:48BrianRice-workas long as it's 4x faster than parsing, I'll be satisfied
01:10:53BrianRice-workthanks, guys
01:11:04evanthe literals table contains direct references to Symbol objects
01:11:08evannp.
01:11:54BrianRice-workalright, time to head home. I've got these urls noted for review probably tonight but maybe tomorrow
01:14:28jaribhey guys
01:14:41jaribi have a small patch
01:14:43jaribhttp://gist.github.com/252155
01:16:21jariblet me know if i should post that somewhere else
01:16:29brixenjarib: you can open an issue
01:16:37brixenjarib: you should just use Type.coerce_to
01:16:46brixenor StringValue
01:17:02brixengrep for how those are used
01:17:55brixenalthough, a case may be a better idea
01:18:32brixenhrm, I guess you can't just use Type.coerce_to
01:18:46jptixi saw this being done in kernel/common/signal.rb:8
01:19:02jaribyeah, exactly
01:19:08brixenyeah, I forgot about that
01:20:52evanthat change is fine
01:21:01evanthis is a place where the method really takes either
01:21:05evana String or Symbol
01:21:17evanand needs to convert the Symbol to string if it got one
01:21:25evanrather than saying "I need a String like thing"
01:22:03evanie, the type signature would be "kill(Fixnum, String|Symbol)"
01:22:17evanthat code probably does need a Type.coerce_to
01:22:22evanif the arg is neither a String nor a Symbol.
01:22:58brixenseems like it should probably test if Integer, else StringValue
01:23:08brixenbut, there should be specs... or specs written
01:23:21jptixi have a spec for the symbol case
01:23:25brixens/written/need to be written/
01:23:36evanbrixen: you can't call StringValue on a symbol
01:23:36evanyou get an exception
01:24:11brixenwell, Type.coerce_to
01:25:03evannah
01:25:08evanbecause if someone does
01:25:17evanProcess.kill 8, Object.new
01:25:23jaribhow is Type.coerce_to different from to_s?
01:25:38evani don't think they they'd want us to try and send signal "#<Object:0x...>"
01:25:52brixengood point
01:25:56evanjarib: they're the same
01:26:02evanType.coerce_to uses to_s if you tell it to
01:26:10evanbut it also makes sure that the return value of to_s is a String
01:26:17evanType.coerce_to obj, String, :to_s
01:26:25evancall to_s, and makes sure the return value is a String
01:26:33evanit's such a common pattern
01:26:34jaribah, i see
01:26:35evanwe put it into a method.
01:27:04evanok, well, i'm going to head home.
01:27:05evanbbiab.
01:27:09rueIt is a common silly requirement to be compliant with MRI, to be precise
01:28:15jaribrue: and Process.kill taking a Symbol is what made you come to this conclusion? :)
01:28:43jaribor are you talking about Type.coerce_to
01:29:00jaribthe latter makes more sense
03:02:16BrianRicewow, yeah .rbc is pretty damn simple
03:03:23BrianRicealthough one method per file seems a bit limiting
03:04:37BrianRiceoops, I was looking at specs :)
06:44:24brixenBrianRice: yeah, an rbc is really a tree of compiled methods, serialized
07:44:36dbussinkevan: still there?
07:44:47evanfor 2 minutes
07:45:13dbussinkevan: ah ok, i saw you closed #114, which seems a bit weird for me, since i actually confirmed the issue there
07:45:31evanperhaps I read it wrong
07:45:34evani can't repro it
07:45:40evanand no additional details were provided
07:45:43evanlike platform, etc.
07:46:44evanoh
07:46:52evani misread your comment
07:46:59evani got it
07:47:05evani'll try on linux tomorrow
07:49:15evanoff to bed.
08:34:39boyscoutUpdated CI frozen specs to RubySpec 06112c74. - c16673f - Brian Ford
08:34:40boyscoutComment out super spec that causes compilation failure. - fed372e - Brian Ford
08:34:40boyscoutUpdated CI tags for specs. - 53ad731 - Brian Ford
08:37:40boyscoutCI: 53ad731 success. 3018 files, 11551 examples, 35627 expectations, 0 failures, 0 errors
16:46:21brixenmorning
16:50:46evangood morning.
16:50:59agardinerafternoon here! :-)
16:51:51brixenafternoon agardiner!
16:52:09agardinerhiya brixen!
16:53:48brixenevan: git show fed372e
16:53:56brixenevan: what's the plan for this?
16:54:26brixenyou'll need to pull
16:55:47evanoh
16:55:50evandid I not fix that?
16:55:52evanI thought I did.
16:56:03evanthose should work fine
16:56:50brixenok, I'll look into it
16:56:54brixenthey do not compile atm
16:57:38evanhm.
16:57:41evanlets see..
16:58:57evanhuh. a bug.
16:59:43evanlikely related to my block change
16:59:46evani'll fix it.
17:02:32brixenok
17:04:40evanhm, fugitive is nice once I remember to use it
17:05:12brixenfugitive?
17:05:33evanhttp://github.com/tpope/vim-fugitive
17:05:55brixenahh yes, forgot about it
17:06:15brixencreative, got fu and git all into a noun
17:06:46brixenheh, I have it installed, never used it
17:07:27evanyeah, I hadn't either
17:07:34evanthought I'd give it a shot.
17:07:42evanGblame is decent
17:07:50evanthough it uses a vertical split
17:08:01evanso you have to have the window super wide
17:11:10evanah ah
17:11:13evani think we had this before
17:11:28evanyes, I recall now.
17:11:38evanI hadn't yet done support for this one
17:11:42evanlets see how hard it would be...
17:12:13evanhm
17:12:25evanok, there is no way for the compiler to know where the args are
17:12:26evanin this case.
17:12:54brixenyeah, we talked about needing to do this in the vm
17:12:58evanbecause it's the args in the || that we need
17:12:59evanyep
17:13:02brixenok
17:13:02evanso lets see.
17:13:19evanI could add a push_args opcode
17:13:29evanthat packages up the args into an array
17:13:33evanand pushes it
17:13:42evanthen ZSuper could use send_stack_with_splat
17:14:07evantherealadam.
17:14:34evanbrixen: we'll have to do that for any zsuper in a block
17:14:39brixenok
17:14:47evanwhich isn't that big of a deal
17:14:49therealadamevan: has notre dame tried to recruit you as coach yet?
17:14:57evani got the call yesterday
17:15:14evanI said "can I run the program straight into the ground?"
17:15:23evanthey said "sure, as long as you say nice things and don't swear"
17:15:32evanme: "ah fuck it."
17:16:11therealadamhaha
17:16:29therealadamsome things are just too much to ask
17:16:34evanexactly.
17:17:01evani also inquired about being able to paint charlie weis' face on the field during a game
17:17:04evanso we could run all over it
17:17:07evanthey seemed ok with that
17:17:15therealadamgood idea
17:18:16evanhave they called you about the future Cowboys coaching vacancy?
17:18:22evancan't be long now.
17:19:22therealadamI've been coaching flozell adams on the subtleties of offsides
17:19:35therealadambut, apparently we need to work on "not grabbing guys by the face at half-time" now
17:19:41therealadams/offsides/false start/
17:19:55evanha
17:20:11evanbaby steps
17:21:12therealadamalso finishing my proposal to put some real, real teeth on holding calls so it's not just called when the refs feel like it
17:21:51evani find it funny the number of holdings that go uncalled
17:21:54evanin all games.
17:22:03therealadamyeah, it's totally lame
17:22:19evanthe subtle of the hold i think is beginning to negate the ability to call fairly.
17:22:26evansubtlety
17:22:31therealadamit's dumb that the call that has the most effect on games is not reviewable
17:22:50evanesp. given it's a 10 yard penalty
17:22:53therealadam*calls (holding and interference)
17:25:27evanhm, i wonder what this rb_raise buried deep in MRI zsuper logic is for......
17:31:25evanif anyone wants a challenge
17:31:45evanfigure out what code causes line 3533 of eval.c in 1.8 to run
17:31:53evanit's the rb_raise with "super: specify arguments explicitly" as a message
17:32:06evanhere is something to get you started: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/3874
17:34:47brixenum..
17:36:06brixenin 1.9 it should raise RuntimeError in this case
17:36:11brixenbut this code is old...
17:37:14evani'm trying to figure out the condition.
17:49:57evanbrixen: huh
17:50:11evanso, headius showed me that zsuper in a define_method isn't valid in 1.9 even.
17:50:23brixenyeah
17:50:26brixenthere is a spec for that
17:50:34brixenI'm trying to follow the convo hehe
17:50:38evanoh oh
17:50:39evanyes
17:50:41evander.
17:50:46Zoxcwhat's zsuper?
17:50:53evanZoxc: super without args
17:50:54brixenZoxc: super with no arguments
17:51:07evanmeaning to pass the arguments that were passed into the current method to the super method
17:51:43Zoxchow do you call super with no arguments then?
17:51:58evansuper()
17:52:07evanyou explicitly pass no args
17:52:16brixendef foo(a,b) super end; calls foo in a super class passing a, b
17:52:36rueShazam
17:52:45evanjazz hands!
17:52:58Zoxcshould implement the argument passing after he finds out what causes the segfault in mirb
17:58:30rueWTF Firefox is completely screwed up...refusing to close tabs, blank preference pane
17:58:57rueScrollbar on the left..??
18:00:36evanmaybe I should just add a zsuper opcode
18:06:08brixenseems like it would be easier
18:06:29evanyeah
18:06:35evani'm almost done doing a little fixup
18:06:50evanso that we properly track the Arguments* for a CallFrame*
18:06:54evanand GC it
18:07:01evanwell, GC the contents
18:07:17evanso that it can be used anytime in a method
18:07:23evani'll use that to implement a zsuper opcode.
18:07:28brixencool
18:15:16evana secret little part of me wants to say "well, 1.9 doesn't support this, so you probably shouldn't do it in real code now anyway"
18:16:56Zoxcthe rest of you should post a ticket ;D
18:18:25brixenevan: yeah, not_compliant_on is reasonable, except we need the compiler not to choke
18:18:39evanwell thats easy to fix! :D
18:18:49brixenheh
18:19:04evanhrmph
18:19:05evanno no
18:19:13evani'll just add the zsuper instruction
19:19:37em-dashare there known issues with building rubinius on Mac OSX 10.6.2 using the instructions in docs/getting_started.txt?
19:19:55em-dash(because it seems to build, but then fails when running the VM tests)
19:20:10evannope
19:20:19evanopen an issue with the problem you're having.
19:20:30em-dashok, will do
19:22:34em-dashmore important: congratulations on RC1!
19:23:22brixenem-dash: thanks!
20:48:09rueFor a bit, I wondered how someone's nick was "more important"
22:05:12evanhttps://gist.github.com/0a2662f390388d7b10ee
22:05:16evanlook at that wacky shit.
22:07:20brixenwow
22:07:27evanrun it.
22:07:30brixenI did
22:07:40evanif a is an array, it's sent up like a splat
22:07:43evanif i do a = 8
22:07:43brixenon 1.8.6 1.8.7 1.9 and rbx
22:07:57evanthen just 8, unwrapped, is sent up.
22:08:40evani'm not even sure how we support that currently
22:08:46brixenhehe
22:08:47evanjust lucky i guess.
22:08:51brixenI guess so
22:08:55brixenthat's funny
22:09:05brixenI was expecting rbx not to work
22:09:12evanme too.
22:09:18brixenbut I keep getting the same results as mri
22:10:09rueIt is one of the less POLS
22:10:51rueBut same even with a simpler example
22:12:31evanPOLS?
22:12:47evanoh
22:12:49evanleast surprise.
22:21:55brixenevan: headed to a shop of coffee... bbiab..
22:22:01evannp.
22:39:58rueevan: Yeah, insofar as I recall, super will use the variable names in their state at the time of the call regardless of situation
22:40:10rueI have to say, I have tried to avoid having to test this extensively
22:40:23evanheh
22:42:09Zoxcwhy does *a = 6 turn into 6 on 1.9 btw?
22:42:20evan*shrug*
22:44:10evanall the masgn edge cases suck ass.
22:44:13evanthey're all useless
22:44:26evani'd prefer if they were just syntax errors.
23:10:35rueZoxc: The most common use case, I suppose
23:12:00Zoxcwouldn't you do a = 6 then?
23:16:34rueMore that you end up differentiating between single-element and not
23:16:45rueMaybe even for nil specifically. Who knows
23:17:15evanI can't see any use for *a = ....
23:24:23brixenman tiny coffee shop and like 20 people all showed up at the same time
23:24:31evanhehe
23:24:41brixenI think everyone is sick of freezing heh
23:24:51brixenit was like 8 deg F this morning
23:24:58evan:(
23:25:00evanwowzers.
23:25:06brixenyeah crazy
23:25:18brixenI'm just glad there's no precip
23:25:25evanit's -1 in Bozeman right now
23:25:29evanthats where we're going for xmas
23:25:53brixenfun
23:25:59brixenat least you'll be skiing
23:26:03brixenI imagine
23:35:35evannearly got zsuper working
23:38:03slavawhat's new in the world of rbx?
23:38:11evanoh, fixin' super.
23:38:51brixenhi slava