Index

Show enters and exits. Hide enters and exits.

00:01:11brixenkronos_vano: I'll work on these strings a bit
00:01:25brixenkronos_vano: but a couple of things to think about...
00:01:28evanbrixen: check IM.
00:01:59tarcierihrmm
00:02:03tarcierirbx just segv'd on me
00:02:06tarcieriand I can't reproduce it
00:02:29evantarcieri: well, if you can work back to the crash in anyway, that would be great.
00:02:55brixenkronos_vano: think of describe as setting of the context for your expectations
00:02:56tarcieriI have the stack trace from the crash... that's about it :/
00:03:31boyscoutCI: rubinius: f79bf37 successful: 3460 files, 13708 examples, 41325 expectations, 0 failures, 0 errors
00:03:32brixenkronos_vano: anyway, I'll show you once I work on it a bit
00:04:02tarcierihttp://gist.github.com/407021 if you're curious *shrug*
00:04:25evantarcieri: hm, interesting ok
00:04:29evanbetter than nothing
00:04:30evan!
00:04:33tarcieriheh
00:04:35evanglad we added the backtrace on segfault code
00:05:33evantarcieri: oh, i fixed this one already.
00:05:34kronos_vanobrixen, ok. describing specs is very hard for me
00:05:40evantarcieri: it's fixed on head
00:05:42tarcierievan: ok
00:05:43tarciericool
00:05:58evan_ZN8rubinius13VariableScope4Info9auto_markEPNS_6ObjectERNS_10ObjectMarkE + 280
00:05:59evanis the key
00:06:03evanif you see a segfault with that in it
00:06:09evanthen thats the one I fixed.
00:06:16tarcieriaight
00:06:19evanVariableScope::auto_mark+280
00:06:38brixenkronos_vano: I know, I'm just trying to help you think about *how* to describe it
00:06:44evanI should fix the unmangler for linux
00:06:46brixenkronos_vano: I understand the language is a pain :)
00:18:10kronos_vanoNext week i want start experiment with improving performance of Packer. Is it ok? Fixing bugs is so boring. Making bugs is more funny :)
00:18:20evanhehe
00:18:22evango right ahead.
00:18:32evanif you're going to be experimenting though
00:18:38evanplease do it either on a fork or in a branch
15:41:44brixenDefiler: any luck with that const weirdness you were seeing?
15:44:01Defilerunfortunately I haven't had a chance to work on it again. crunch-tastic until next week
15:44:18Defilerbut I've got it saved off ready to look at when I can
15:44:41brixenok cool
15:57:07evanbrixen: the debugger is looking o/~ aaawwwesome o/~
15:57:23evana quick teaser:
15:57:32evan| Breakpoint: Blah#foo(name="evan") at scratch/breakpoint2.rb:6 (+9)
15:57:33evan| 6: puts "done"
16:01:45brixensweeeet!
16:02:14brixenI'm trying to track down a couple weird spec fails after syncing
16:02:26brixenI think I'm going to tag and push then work on them
16:02:54brixenalso, marcandre is fixing a bunch of Matrix bugs which causes us to fail the specs
16:03:03brixensince we are using the broken 1.8.7 stuff
16:03:21brixenwhat do you think about importing just the fixed Matrix from 1.9?
16:03:38evandepends on how big it is
16:03:42evanbut it's probably ok.
16:03:47brixenk
16:04:01brixenit's not that it is big, just that Matrix was riddled with bugs
16:04:10brixenI can't see any drawback to having the fixed version
16:04:11evanyeah, i recall.
16:04:23evanwell, other than if people use it then go back to MRI
16:04:26evanthey'll be sad.
16:04:30evan:)
16:04:33brixenheh
16:04:39brixenwhat a minus...
16:04:46slavathe matrix is riddled with bugs? who would've thought
16:05:49brixenheh
16:06:06brixenoh wolfram alpha, how much you have to learn...
16:06:25brixenRubinius vs Python returns results for... wait for it... snakes
16:06:47brixenRubinius vs MRI... an airport in Alaska
16:06:58brixenfrom which you can probably see Russia or something
16:07:46evanhah
16:07:58brixenheh, closest interpretation for Rubinius... Blennius: which is in the class of ray-finned fish!
16:08:05evanoh cool
16:08:13brixenRubinius 2.0 should be Blennius!
16:08:27evanlets get some other ideas first
16:08:31brixenheh
16:08:31evanbefore we settle on something
16:08:32evan:D
16:08:44evanRubinius started out as Rubinus
16:08:52brixenyeah
16:08:53evanso no surprise there are latin names that are close
16:11:44evanor maybe Vermilion
16:11:45evanhttp://en.wikipedia.org/wiki/Vermilion_Flycatcher
16:11:51evanlook at the latin name
16:15:20brixenheh, cool
16:27:00brixenhmm, this Float issue sucks
16:27:34evanFloat sucks in general.
16:27:40evani know i'm not helping.
16:28:28brixenmarcandre: ping
16:28:32DefilerFloats are great, people just use them too much :)
16:28:43brixenmarcandre: we need to discuss redmine #3273
16:30:04brixenRootbeer Floats are great
16:31:24brixenthe stupid thing is people will not give up the idea that floats should roundtrip in strings of some small # of characters
16:31:24slavaevan: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.1641
16:31:46slavaevan: this paper discusses a better approach to tracking local variables for GC than just dumping them to the operand stack at every subroutine call
16:31:59evanoh? whats their idea?
16:32:32slavacompute the set of live values at every gc point, store it in a map off to the side
16:32:49evanyou know something is up when yon go to a citeceer url and more than half of the citation links are the "you've visited this" color
16:32:55brixenmarcandre: http://gist.github.com/407768 and rubyspec commit 43bc4bae
16:32:56slavaheh
16:37:23evanslava: looks like it requires strict control of the stack layout
16:37:28evanand it's creating maps
16:38:02slavaI think llvm has a gc map facility though
16:38:05slavaor does that not work for jit?
16:38:20evanit has one someone hacked in for ocaml
16:38:33evanbut i found out it's really no better than dumping to the operand stack.
16:38:46evanbecause it still just dumps everything to the C stack
16:38:57evanand gives you a map of where the variables are in the C stack
16:39:41slavait gives the compiler more flexibility when performing optimizations
16:39:55evani think thats true hypothetically
16:40:01evanbut it's not true about LLVM atm.
16:41:08evandon't forget, i'm not dumping to the operand stack
16:41:24evansince i'm always reading and writing from teh operand stack
16:41:30evanit's the primary home of variables
16:41:40evanLLVM is free to optimize out redundent accesses
16:41:42evanwhich it does
16:41:50evanand when we cross a GC point
16:42:08evanit knows that it can't use the previous SSA variables for reads
16:42:31slavabut it should be able to use the previous SSA value
16:42:33slavathat's the point
16:42:54evanwhy?
16:42:58evanwhy would it be able to?
16:42:58slavayou'll get better optimizations by having operand stack entries become SSA values
16:43:01evanit's a GC variable
16:43:05evanit might have moved.
16:43:08slavainstead of factoring it into lots of small live ranges
16:43:28evanthe movement happens external to the optimizations, so the optimizations are conservative
16:43:29slavaso llvm's register allocator spills values to the C stac kacross calls
16:43:44slavaall you need to do is have the GC know which stack slots are GC roots
16:43:45slavaand update those
16:43:51evan"all you need"
16:43:52evan:/
16:44:03slavaheh
16:44:42evanso, assume no GC variables are in registers because LLVM spills them entirely
16:44:59evanthe only upside is that the GC would write to the stack location that LLVM would reload from
16:45:04slavaoh, I guess you also have the whole callee-save and caller-save register thing
16:45:17evanwhich actually doesn't work.
16:45:23slavahow so?
16:45:30evanbecause that would happen at the machine code gen/opt level.
16:45:45evanand LLVM would have to be told "anything at this stack position must be reread"
16:45:55slavawon't it be re-read anyway?
16:46:04slavawhen it retrns to executing that frame
16:46:07evanwell, no.
16:46:10evanbecause say I do.
16:46:16evan$klass = $obj->klass;
16:46:25evanoh, $klass would be updated too
16:46:30slavayeah, if its a gc root
16:46:40evanwell, anywho
16:46:52slavasee, having the same SSA value is stronger than ahving two SSA values which "must alias" or whatever
16:47:00evanthis requires me to have a very intimate knowledge of how the ocaml GC mapper works
16:47:10evanwhich I don't yet have.
16:47:19evanslava: sure.
16:47:27slavaI think most llvm-based jits take the 'operand stack' approach
16:48:05evanmacruby doesn't
16:48:13slavait uses the ocaml gc mappeR?
16:48:14evanit lowers everything to SSA variables
16:48:26evanno, it's using the objective-c 2.0 GC
16:48:29evanwhich is conservative.
16:48:34slavaoh, ok
16:48:40evanwhich doesn't count :)
16:49:16slavaI do the same thing yo udo at subroutine calls
16:49:25slavaat inline allocations I compute precise stack maps
16:49:25slavaright now I'm wo
16:49:31slavarking on computing stack maps for FFI call sites
16:49:35slavaand then normal call sites
16:49:50slavathe goal is to lower more stuff to SSA values
16:50:43evani do want to get more into how to push stuff into the lower LLVM levels
16:50:54evanso this is a good place for me to research.
16:54:13slavaone hard thing about using LLVM must be knowing how to get it to do what you want :)
16:55:04evanit's not too hard
16:55:09evanbecause the LLVM devs are really nice guys.
16:55:22evanso I just have to formulate my question properly
16:55:32evanto get pointed in the right direction
16:55:57slavahehe
17:13:17boyscoutUpdated CI specs to RubySpec 2396c9fe. - 87d498d - Brian Ford
17:13:17boyscoutUpdated CI tags for rubyspec sync. - c204c4f - Brian Ford
17:13:34brixenevan: so, I need to write some more Signal.trap specs
17:13:42brixenthen I'll fix that one tag
17:13:59brixenbasically, in mri, Signal.trap(:<SIG>, nil) is allowed
17:14:16brixenand Signal.trap returns "DEFAULT" instead of nil if no signal handler is set
17:14:39brixenSignal.trap(X, nil) actually sets it to "IGNORE"
17:15:02evan:/
17:15:06evanyeah, i noticed that we had none.
17:15:09brixenfirst I'm going to look into adding matrix and set
17:15:33evank
17:19:02brixenruby 1.8.8 :(
17:19:04brixenle sigh
17:19:26brixenbasically, not all the enumerator stuff got fixed in 1.8.7
17:19:33evanwhat?!
17:19:33brixenso eg Set is being fixed in 1.8.8
17:19:34evan:/
17:19:36brixenoh well
17:19:39brixenwhatevs
17:19:55brixenI'm just tagging these spurious "should raise LJE"
17:20:50brixenwhat I could do is convert all these version guards to with_feature(:enumerators)
17:20:55brixenthat would probably be the best
17:21:11evanwhere did you see the thing about 1.8.8
17:21:21boyscoutCI: rubinius: c204c4f successful: 3462 files, 13730 examples, 41332 expectations, 0 failures, 0 errors
17:21:26brixenI pulled set.rb from MRI
17:21:45brixenand marcandre added version guards for 1.8.8 to the specs
17:21:53evanyou're tagging what?
17:22:13brixensee spec/ruby/library/set/classify_spec.rb
17:22:29evanwhat do you mean LJE
17:22:33evanwe're don't have LJE anymore.
17:22:38brixenLocalJumpError
17:22:39evanLocalJumpError?
17:22:39evanok.
17:22:44evanthat means that code is crazy.
17:22:50evanin set
17:23:06brixenit's not crazy, it just got around to adding enumerator support
17:23:42brixenwhich is supposedly going to be in 1.8.8 for set.rb
17:23:56brixenwhereas everything else got it in 1.8.7 or some patchlevel thereof
17:24:22evanUG
17:24:37evanit's fucking STUPID that that set.rb won't run on 1.8.7 then.
17:24:40evanon MRI
17:24:50evanbecause it sounds like it's using loop stop iterations or something
17:25:55evanmaybe this will cheer you up
17:25:58brixenI think it's reasonable to use with_feature(:enumerators)
17:26:00evanhttps://gist.github.com/7c82130901c5a0868a01
17:27:10brixensweet!
17:27:30evan:)
17:28:05evani'm trying to decide if I should print out the values of the arguments in the main line for the frame
17:28:24evaninitially that seemed like a good idea, but it's problematic
17:28:25brixenI like how you have it there
17:28:27evanbecause it could get really big.
17:28:30brixenhmm
17:28:33evanmaybe just the names?
17:28:41evan#load_script(path)
17:28:51brixensure
17:29:45brixencould make it really fancy: if it's an immediate, print it; if an object, #inspect it and add ... after 20 chars or something
17:29:59evanyeah, that was my idea too
17:30:04evani'll leave that for the next go around.
17:30:04brixenof course, this could be a mode you toggle
17:30:18brixenby default, #load_script(path) would be great
17:34:25evanhttps://gist.github.com/5dd9742956f5083d3613
17:40:23brixenthat's cool
17:44:25evanrad
17:44:27evanadded frame
17:44:40evanso you can move around and inspect data at any frame along the backtrace
17:44:57evanok, I think this good enough to push.
17:47:40brixenthat is awesome
17:47:56evani'm adding a quick variable system
17:48:04evanto allow you to set variables
17:52:33brixenfsking mri, way to make everything 5x more complicated than it needs to be
17:52:58brixenevan: new set.rb with tags for stupid LJE errors or no new set.rb?
17:54:02evanwell
17:54:05evani'd say no new set.rb
17:54:09brixenk
17:54:14evancan we find a set.rb in the MRI source thats not for 1.8.8?
17:54:20evango back in time a little bit
17:54:28evanor did the bug fixes get made just for 1.8.8
17:54:53brixenthe bug fixes are for 1.8.8+
17:55:08brixenbug fixes plus enumerator support
17:55:19brixenwhich is a bug imo
17:55:32brixenif 1.8.7 added enumerators, it should have been done uniformly
17:57:20brixenfor the love of...
17:57:57brixenmatrix had ErrOperationNotDefined for ** with float arg, but changed it to ErrOperationNotImplemented
17:58:00brixenwhy?
17:58:19evanfor fun.
17:59:47brixenhttp://gist.github.com/407864
17:59:51brixenhopeless :/
18:00:17evan:/
18:00:22evanok, lets abort doing matrix for now
18:00:35evanwe're clearly going to need to take a long approach to it.
18:01:19brixenno, it's fine
18:01:22brixenthat was one failure
18:01:34brixenI'm just changing it back to the old exception for now
18:01:42brixenbetter that the stupid thing actually works
18:02:12brixenit's just the approach that is so... omgwhatwhyseriously
18:02:50evanok
18:03:07evanis it a big enough change that it should not go in 1.0.1?
18:04:39brixenI think it should go in 1.0.1 but you can look at it
18:04:42brixenI'm about to push it
18:05:10evank
18:11:52brixenyeah, this fixes like 72 bugs
18:12:01evanok
18:12:21spastorinohi guys ideas on what's going on here http://pastie.org/969839
18:12:57evanyikes
18:12:59evansomething very bad.
18:13:12evanRubinius has loaded an extension compiled for MRI
18:13:33evani wonder if this is another rvm bug.
18:13:34spastorino:D
18:13:35Defilerare you using bundler on that project, spastorino?
18:13:42spastorinoyes
18:13:45spastorinoit's rails
18:13:53Defilerrm -rf .bundle && bundle install
18:13:55evanbecause rbx-1.0.0-20100514/gems/json-1.4.3/ext/json/ext/json/ext/parser.so should not be calling rb_define_method in libruby1.8
18:13:56Defilertry that
18:14:07Defileryou probably have MRI c extensions built in there
18:14:11evanDefiler: it's not using a bundled json gem.
18:14:21evanDefiler: bundler is supposed to use a different directory for rbx
18:14:23evanis it not?
18:14:45Defilernot to my knowledge
18:14:53evanbad bad bad.
18:14:56spastorinoi deleted all
18:14:58Defileryou're meant to just do a 'bundle install' when you change architectures
18:14:58spastorinolet me see
18:15:04spastorinoi had done this
18:15:04Defilerand not check in the binaries
18:15:09spastorinobut let me check again
18:15:11evanDefiler: could you please double check the path bundler is putting stuff into?
18:15:14evani need to report than a bundler bug.
18:16:06Defilerchecking it now
18:18:28dbussinkevan: i've seen bundler use a different path for different impls
18:18:36DefilerI just did a 'bundle install' using rvm's rbx-head in a clean project
18:18:37dbussinkmaybe an older bundler version
18:19:04Defilerand it installs them properly to the rubygems dir
18:19:11wayneeseguinbug?
18:19:14evanDefiler: what dir?
18:19:22evanwayneeseguin: check out spastorino's pastie
18:19:46Defilere.g. /Users/wilson/.rvm/gems/rbx-head/gems/haml-3.0.4
18:19:58wayneeseguinspastorino: show me your 'rvm info'
18:20:00evanDefiler: ok.
18:20:26Defilerand "bundle exec gem which haml" reports /Users/wilson/.rvm/gems/rbx-head/gems/haml-3.0.4/lib/haml.rb
18:20:35Defilerso it is getting the proper path at execution time as well
18:20:36spastorinowayneeseguin: i'm reinstalling rbx
18:20:46spastorinoi think the problem was on bundler
18:20:51spastorinowhen i did bundle install
18:21:08spastorinoperhaps i get the gems from MRI copied on rbx gems
18:21:10wayneeseguinspastorino: ok, let me know. I'll adjust anything needed.
18:21:13spastorinochecking again
18:21:16Defileryeah, 'gem which haml' returns the same path both in and out of bundler
18:25:33Defilerthat's good; it has gotten simpler in the 0.9 era, definitely
18:26:17boyscoutMake sure the arguments are Strings. @bugfix - 94481ac - Evan Phoenix
18:26:18boyscoutSet the stack start and size properly in a thread. @bugfix - 7cff50f - Evan Phoenix
18:26:18boyscoutRewire debugger infrastructure, add new simple debugger. - 6035068 - Evan Phoenix
18:26:18boyscoutMerge branch 'debugger' - add9d4b - Evan Phoenix
18:26:48evanbrixen: http://gist.github.com/407903
18:26:54evanthats my sample script I was using to debug
18:27:03brixensweet
18:27:06evani'd set a breakpoint on as "b Blah#foo:6"
18:27:37brixenwhat is Debugger.here?
18:27:45evanthats like Kernel#breakpoint
18:27:48brixenok
18:27:53evansays "launch the debugger here"
18:27:57evanit's the same as .start currently
18:28:05brixenah ok
18:28:06evanbecause it's smart enough to not reinitialize itself
18:31:05evanplease put it through it's paces
18:31:12evansince i'm sure i've forgotten something
18:31:16evanother than control flow :)
18:34:18brixenis that a hint that you want me to fix a bunch of bugs? :)
18:34:35evannah
18:34:36evanjust tell me.
18:34:41evanyou can if you want
18:34:44brixenheh
18:34:46evanbut i want to hear about them
18:34:54evanbecause i don't know where the current scheme will fall down yet.
18:34:59brixenright
18:35:06brixenof course, I'd let you know :)
18:35:09evan:)
18:36:01brixenso, I think the best way to add this as -Xdebug is not to breakpoint the script, but just drop into the debugger as soon as it's feasible in loader.rb
18:36:09brixenthat gives the greatest flexibility
18:36:18brixenand you could debug -e lines then
18:36:49evanwell, we can do that if you'd like
18:36:57evanbut my feel was it's not very useful for real code
18:37:09evanbecause when you've got a whole mess of code
18:37:14evanyou don't want to stop before any is loaded
18:37:17evanyou want to stop after it's all loaded.
18:37:26brixencan you not br and cont?
18:37:35evanno
18:37:39brixenoh
18:37:41evanbecause there is nowhere to br to
18:37:47evanyou haven't loaded anything to set a breakpoint at.
18:37:59brixenwell!
18:38:06brixenfirst feature request then!
18:38:11brixendeferred br's
18:38:20brixengdb let's me do that :)
18:38:25evanthats what I was asking adam about yesterday
18:38:34evanwhen should I resolve any deffered br's?
18:38:42evanafter require returns?
18:38:44brixenwhen loading
18:38:45brixenyeah
18:38:47evani could add a hook in require for the debugger to use
18:38:51brixensure
18:39:05evanok, that should be easy
18:39:14evani'll do that after I cherry pick stuff into 1.0-bugfix
18:39:14brixenI bet you can find where to add it in 2 sec flat
18:39:18brixenok
18:39:25boyscoutCI: rubinius: add9d4b successful: 3462 files, 13730 examples, 41332 expectations, 0 failures, 0 errors
18:39:27brixenwhat with the fancy new codes and all
18:39:46evanmm nice
18:39:51evangitk lets me cherry pick.
18:39:56brixennice
18:40:16evanexcept the font blows
18:40:19evanhow do I fix that again..
18:41:14evanoh ha!
18:41:15spastorinoevan: wayneeseguin: all is working now
18:41:16evani have a .gitk
18:41:19evanhilarious.
18:41:24evanspastorino: oh good!
18:41:51spastorinomany things using bundler and rvm
18:41:59dbussinkevan: does this count as a bug? https://gist.github.com/5869393acae701f31f1a
18:42:21spastorino~/.gem ~/.bundle rails/.bundle and .rvm/(gems, bundle) dirs
18:42:21dbussinkevan: there a nice gitx branch
18:42:29evandbussink: eh?
18:42:34evangitx doesn't do cherry picks
18:42:51dbussinkevan: http://github.com/brotherbard/gitx
18:42:56evandbussink: sure, that counts as a bug AND counts as you being dumb
18:43:00evanyou didn't say what to print!
18:43:06dbussinkevan: i know :P
18:43:10dbussinkevan: but that's why i tried
18:43:16dbussinkbecause it's stuff i'd forget myself ;)
18:43:18dbussinkevan: "xperimental fork of Pieter's nice git GUI for OS X. Includes: sidebar, fetch, pull, push, add remote, merge, cherry-pick, rebase, clone, clone to"
18:43:30dbussinkit's a whole lot better than the standard gitx
18:43:40evanok, i'll try it.
18:43:53wayneeseguinspastorino: was it something I need to adjust for or ?
18:44:03dbussinkevan: want me to continue with my annoying testing? :P
18:44:09dbussinki'm good at monkey testing
18:44:18evandbussink: why do you go ahead and fix those annoying bugs too
18:44:19evan:)
18:45:28dbussinkevan: maybe i will ;)
18:45:39evanmaybe you will!
18:47:32evandbussink: oh wow.
18:47:37evanthis other gitx is totally different.
18:47:39dbussinkevan: how do i quit the debugger?
18:47:47evanhit c
18:47:49evanto continue
18:47:54evanand your script will run to the end.
18:48:00dbussinkah ok, cool
18:48:02spastorinowayneeseguin: i really don't know
18:48:07wayneeseguinlol *majik*
18:48:14spastorinowayneeseguin: let's private
18:48:20wayneeseguingiggity
18:49:15evanrad.
18:49:18evanthis new gitx is the bomb.
18:49:26evanmade doing these cherry pick trivial.
18:49:40dbussinkevan: good to hear :)
18:53:01dbussinkevan: better than poking around in ugly gitk ;)
18:53:08evanheh
18:53:12evani fixed the fonts in gitk at least
18:55:02evanI wish there was a way to associate cherry picked commits with their original.
18:56:27evanoh there is
18:56:32evan-x
18:56:36evantime to hack gitx!
18:56:59brixenhacker!
18:57:33evanwoop!
18:57:42evani do like that gitx just shells out to git
18:57:45evanmakes it easy to make these changes.
18:57:54brixenso, Kernel#private_methods is just terribly broken in 1.8?
18:58:02evanperhaps?
18:58:06brixenit does not respect the superclass flag
18:58:26evanin MRI it doesn't?
18:59:13brixenhttp://gist.github.com/407937
19:02:08brixenevan: hmm, do you want @bugfix tags in these matrix commits?
19:02:25evanif there is no ticket, yeah.
19:02:35brixenk
19:02:36evanmakes it easier for me to figure out how to pick them.
19:03:41brixenwell, I've got specs, new mspec matchers, etc here
19:03:49boyscoutMore specs for Bignum#divmod - 1d3fa56 - Ivan Samsonov (1.0-bugfix)
19:03:49boyscoutRepair Bignum#divmod for cases with negative numbers. Fixes #319. - d3a4259 - Ivan Samsonov (1.0-bugfix)
19:03:49boyscoutUpdated CI specs to RubySpec 2396c9fe. - 037ee04 - Brian Ford (1.0-bugfix)
19:03:49boyscoutUpdated CI tags for rubyspec sync. - 810232a - Brian Ford (1.0-bugfix)
19:03:49boyscoutMake sure the arguments are Strings. @bugfix - eb7145a - Evan Phoenix (1.0-bugfix)
19:03:49boyscoutSet the stack start and size properly in a thread. @bugfix - 1b57730 - Evan Phoenix (1.0-bugfix)
19:04:07evanboyscout: hm, ok.
19:04:18evanputting @bugfix on all of them is a pain
19:04:19evanhm
19:06:44brixengit rb -i ftw
19:09:21evani'm going to prune some of our public branches
19:10:02evana lot of them are stale and the work there is no longer useful.
19:10:09boyscoutImported lib/matrix.rb from 1.9 with many bug fixes. @bugfix - b240f79 - Brian Ford
19:10:09boyscoutRevert Matrix#** behavior for exception to 1.8 version. @bugfix - f718053 - Brian Ford
19:10:09boyscoutRemoved CI tags for passing Matrix specs. @bugfix - 2d9e2e5 - Brian Ford
19:10:09boyscoutAdded have_private_method matcher to mspec. @bugfix - 7dd37f0 - Brian Ford
19:10:09boyscoutFixed Matrix.new spec. @bugfix - 19957da - Brian Ford
19:10:12brixengood idea
19:11:18brixenso, what is the reason for bugfix releases?
19:11:45evanhuh?
19:11:50brixensounds like a silly question but it's not
19:12:08brixenfor example, are bug fix releases likely to get into a distro?
19:12:14brixennot likely
19:12:19evanwell
19:12:20brixenthey would be feature releases
19:12:28evanthe idea is to allow us to get bugfixes out faster
19:12:34evanwithout destabalizing
19:12:44brixenright
19:13:02brixenbut rather than any bug fix, maybe bugfix releases should only be for critical bugs
19:13:19brixenI'm trying to see where someone would install the bugfix release vs using master
19:13:28brixenthat use case would be the reason for a bugfix release
19:13:34evanwell, master is going to have new features
19:13:39brixenright
19:13:42brixenbut they should be sane
19:13:45evanit's more of a moving target
19:13:49brixenwe don't put unstable stuff in master
19:14:01evanwell, but it's hard for some no say "hey, we're in production, but we need to use master because thats where the bugfix is"
19:14:08evans/no/to/
19:14:21brixenfor using MRI's master, sure
19:14:28brixenours is quite a bit different
19:15:14brixenseems like too much emphasis on bugfix releases to me, at this point
19:16:24evanhm.
19:16:30evanok, i'm going to grab some lunch
19:16:33evanthen lets discuss this.
19:16:37brixenme too!
19:18:02boyscoutCI: rubinius: 19957da successful: 3462 files, 13782 examples, 41439 expectations, 0 failures, 0 errors
21:36:59dbussinkwhat % of rubyspec do we pass these days actually?
21:41:39brixen~96%
21:42:07brixenwe could gain on that number but we keep writing more specs :P
21:42:23brixenat least someone is... ;)
21:43:17dbussinkbrixen: i was looking a bit at failing stuff, but a lot is also stuff tagged as bugs in mri
21:43:57dbussinkbut i'm going to get some sleep :)
21:44:01dbussinknite!
21:45:11brixendbussink: nite!
21:48:44boyscoutCleanup and speed up Struct - cfd31fe - Evan Phoenix
21:48:47evanheh
21:49:04evanStruct.new on created Structs is now 10x faster.
21:51:23brixensweet
21:53:16boyscoutSpecialize Struct::Tms - e539ae0 - Evan Phoenix
21:54:21evanoops, that was premature.
21:56:33brixenman, wtf
21:56:41boyscoutCI: rubinius: cfd31fe successful: 3462 files, 13782 examples, 41439 expectations, 0 failures, 0 errors
21:56:53brixensetting a trap in 1.9 does not trap the signal in thet spec, but does on the cmd line
21:57:46evanug
21:57:54evanI think this is why I avoided doing Signal.trap
21:58:24brixenhere's what I have so far http://gist.github.com/408168
21:58:30brixenfeedback?
21:58:47boyscoutStaticly specialize Struct::Tms - 403295e - Evan Phoenix
21:59:04brixenI tried to avoid sending signals in the .trap specs, but it's the only way I could think of testing those that do
21:59:50evanwell
21:59:51evanyeah
21:59:56evanyou have to send signals
21:59:58evani think thats fine
22:00:04evani wouldn't go much further
22:00:18brixenyeah, this covers the cases I can think of
22:00:18evanbecause how you can spec that a signal is on the default or ignored.
22:00:24brixenright
22:01:28brixencool, only 2f/5e on rbx :)
22:02:00evanreally?
22:02:02evanwhich ones?
22:02:36evanoh hm
22:02:39brixenhttp://gist.github.com/408174
22:02:46evanprobably the tests for setting it to ignore, then the next one returning "IGNORE"
22:03:22brixenshouldn't be hard to fix these
22:03:28evan:/
22:03:31evani thought I just did
22:03:32evanis all.
22:03:37brixenheh
22:03:41brixenhard to know with no specs
22:03:49brixenI didn't know 1/2 of this
22:04:35evanoh der.
22:04:36evanyeah
22:04:36evanok
22:04:39evani can fix these
22:04:41evani was just in there.
22:04:59brixenok, I'll push the specs
22:05:01brixensec..
22:05:03evank
22:05:05brixener well, hm
22:05:11brixenshould I tag them then?
22:05:14evannah
22:05:15evani'll do it now.
22:05:52brixenSignal.trap is very easy to read actually
22:05:58brixenI already looked at it
22:06:06brixenpleasantly surprised
22:06:13brixensince I've been looking at MRI :/
22:06:42boyscoutCI: rubinius: 403295e successful: 3462 files, 13782 examples, 41439 expectations, 0 failures, 0 errors
22:06:46evanwell, you know who to thank for that
22:07:08brixenlebron?
22:07:23brixenwait, what am I thanking who for?
22:07:30evanno, he lebron doesn't task himself with such menial duties.
22:07:30brixenfor whom am I thanking what?
22:07:35brixenheh
22:07:49evan(i meant me, btw)
22:08:06brixenjvoorhis_: woot on the kong deal, just read about it :)
22:08:43brixenevan: ohhh, thank you indeed
22:09:54evanbrixen: i'm idle
22:09:57evanjust waiting on your specs
22:10:00evanand i'll fix trap.
22:10:04brixenhuh?
22:10:07brixenI pastied them
22:10:19brixenyou want me to commit a breaking set?!
22:10:22brixenwhat what what?
22:10:50brixenhttp://gist.github.com/408168
22:10:53evanoh ok
22:10:55evani'll do that.
22:10:57evansorry!
22:11:01brixenheh
22:11:01evanwe had a miscomm.
22:11:08brixenthat was my tag question
22:11:19evani'll apply that and commit the specs and the fixes
22:11:29brixenk
22:11:46brixenso, I want to start working on ragel pack
22:12:02brixenwhich means finally revising/rewriting the #pack/#unpack specs
22:12:27brixen3 parts bitter : 1 part sweet
22:12:28evanno prob.
22:12:30evanhah
22:12:32evanyeah :/
22:12:50brixenbut I have a great new tool! should be_computed_by
22:13:18brixenI'm going to break the specs out into files as well
22:13:30brixenarray/pack/a_spec.rb I think
22:13:51evanyeah, sounds much more managable that way.
22:15:59brixenevan: be sure to remove the Process.kill tag I added with the spec sync
22:16:12evanremove the tag?
22:16:26brixenI tagged a failing Process.kill spec
22:16:31brixenthat was caused by not accepting nil
22:16:35brixenin Signal.trap
22:17:01brixenso bin/mspec tag --del fails core/process/kill
22:17:03evanah ok
22:30:27boyscoutAdd spec for Signal.trap - 44474ff - Evan Phoenix
22:30:27boyscoutFix Signal.trap - 19bd359 - Evan Phoenix
22:34:01boyscoutUntag Process.kill/Signal.trap interaction spec - 58de1ad - Evan Phoenix
22:38:32boyscoutCI: rubinius: 19bd359 successful: 3462 files, 13794 examples, 41451 expectations, 0 failures, 0 errors
23:21:41brixenI am so glad our build is not like MRI's, that is all
23:22:33evanhah
23:22:40evani'm adding defered breakpoints.
23:22:45brixennice
23:22:51brixenI'm working on getting the build to run with 1.9
23:23:01brixenand *hating* mri
23:23:07brixenoh wait, I don't have to work on that...
23:23:32evanyeah
23:23:34evandon't work on that.
23:38:50evanha! they work.
23:38:53evanhilarious.
23:39:09brixensweet
23:39:28evanthe hooks at are when a file is done being require/loaded
23:39:36evanso you can't defer a breakpoint to later in a file
23:39:38evanwhich seems fine.
23:40:02evani'll go ahead and add Debugger.resolve!
23:40:14evanwhich will be an explicit way to ask for any defered breakpoints to be resolved
23:40:59brixensounds good
23:41:31brixena deferred breakpoint for a loaded file doesn't make sense
23:41:37brixenwhy would you do that?
23:42:13evanthe only way it could happen is if it's the same script
23:42:19evanie, you put Debugger.start at the top of a script
23:42:33evanand then create a class and use it below that in the script
23:42:44evanyou could call code that would normally have a breakpoint
23:42:56evanbut the debugger has had no chance to jump in there
23:42:57evanactually
23:43:07evani could put hooks in class creation and method addition
23:43:11evani've meant to do that anyways
23:43:30evanthen the debugger would have more points to try and resolve breakpoints.
23:44:31brixenthat sounds good
23:44:40jaribwas the build fixed on 1.9, or did you postpone it?
23:44:52brixenjarib: I'm looking at it now
23:45:02brixenjarib: is using rvm an issue for you?
23:45:15jaribyes, there's an issue with rvm on arch linux
23:45:21jaribopenssl related
23:45:24brixenbecause I'd like to defer this till we have the new build system
23:45:32jaribhaven't looked into it too closely
23:45:34brixenhow does rvm have an issue like that?
23:45:35jaribno worries
23:45:50evanbrixen: yes, i would too.
23:45:52jariblet me see what it was
23:45:52brixenrvm just builds mri or whatever
23:46:43brixenevan: you'd like to defer the 1.9 building?
23:47:00evanyeah
23:47:04brixenk
23:47:05evantil we have a better build system sorted.
23:47:13jaribbrixen: http://bbs.archlinux.org/viewtopic.php?id=95320
23:47:21jaribit's really not your problem. :)
23:47:23brixenyeah, the big problem is invoking rake via the ruby interp
23:47:36brixenmri doesn't support ruby -S rake correctly
23:47:43brixenafaics from trying to get this to work
23:50:18wayneeseguinjarib: I use arch linux for all my servers.
23:50:22wayneeseguinjarib: http://rvm.beginrescueend.com/packages/openssl/
23:50:57brixenbegin; wayneeseguin to the rescue; end :)
23:51:04wayneeseguinLOL
23:51:10brixenheh
23:51:14brixenwayneeseguin: thanks!
23:52:05jaribahh, great
23:52:08jaribthanks
23:53:14evanI didn't realize so many people used archlinux
23:53:21brixenme neither
23:53:30evandoes it still use the totally weird directory layout?
23:54:05brixenyou mean like: C:\System\Program Files\My Documents ?
23:54:09evanhah
23:54:12brixenheh
23:57:46evanmuhahah
23:57:47evanman
23:57:50evanthis is too easy.
23:57:56evanit would be such a fucking pain in C.