tenderlove has quit [Read error: Connection reset by peer]
davidbalber|away is now known as davidbalbert
johndouthat has quit [Quit: johndouthat]
davidbalbert is now known as davidbalber|away
idkazuma has quit [Remote host closed the connection]
idkazuma has joined #ruby-core
idkazuma has quit [Ping timeout: 264 seconds]
tenderlove has joined #ruby-core
<znz_v> biff: [ruby-changes:27071] nobu:r39123 (trunk): test_basicinstructions.rb: fix typo - http://mla.n-z.jp/?ruby-changes=27071
<znz_v> biff: [ruby-changes:27072] nobu:r39124 (trunk): test_basicinstructions.rb: implementation defined - http://mla.n-z.jp/?ruby-changes=27072
carlosantonio has quit [Remote host closed the connection]
_br_ has quit [Excess Flood]
_br_ has joined #ruby-core
johndouthat has joined #ruby-core
_br_ has quit [Excess Flood]
_br_ has joined #ruby-core
<znz_v> biff: [ruby-changes:27073] nobu:r39125 (trunk): test_basicinstructions.rb: fix typo - http://mla.n-z.jp/?ruby-changes=27073
drbrain has quit [Remote host closed the connection]
nari has joined #ruby-core
marcandre has quit [Remote host closed the connection]
drbrain has joined #ruby-core
drbrain has quit [Remote host closed the connection]
drbrain has joined #ruby-core
xibbar has quit [Remote host closed the connection]
xibbar has joined #ruby-core
indirect_ has joined #ruby-core
indirect has quit [Ping timeout: 264 seconds]
indirect_ is now known as indirect
nokada has joined #ruby-core
nokada_ has quit [Read error: Connection reset by peer]
shirokuro11 has joined #ruby-core
kosaki8 has joined #ruby-core
<znz_v> biff: [ruby-changes:27074] drbrain:r39126 (trunk): * lib/rubygems/package.rb: Ensure digests are generated for signing. - http://mla.n-z.jp/?ruby-changes=27074
oscardelben has joined #ruby-core
<znz_v> biff: [ruby-changes:27075] nobu:r39127 (trunk): test_libs.rb: new test - http://mla.n-z.jp/?ruby-changes=27075
<znz_v> biff: [ruby-changes:27076] nobu:r39128 (trunk): mkmf.rb: fix merge_libs - http://mla.n-z.jp/?ruby-changes=27076
oscardelben has quit [Quit: oscardelben]
kosaki8 has quit [Ping timeout: 246 seconds]
charliesome has joined #ruby-core
vondruch has joined #ruby-core
<znz_v> biff: [ruby-changes:27077] nobu:r39129 (trunk): mkconfig.rb: fix concatenated lines - http://mla.n-z.jp/?ruby-changes=27077
<znz_v> biff: [ruby-changes:27078] nobu:r39130 (trunk): Makefile.sub: rubyarchdir in config.status - http://mla.n-z.jp/?ruby-changes=27078
shirokuro11 has quit [Remote host closed the connection]
<znz_v> biff: [ruby-changes:27079] nobu:r39131 (trunk): rbinstall.rb: CONFIG['arch'] not $arch - http://mla.n-z.jp/?ruby-changes=27079
judofyr has joined #ruby-core
johndouthat has quit [Quit: johndouthat]
heroux has quit [Ping timeout: 252 seconds]
<charliesome> _ko1: are you there?
nari has quit [Ping timeout: 276 seconds]
<_ko1> charliesome: yes
<charliesome> howdy!
<_ko1> hi
<charliesome> i was investigating ruby performance on a rails app i work on
<_ko1> cool
<charliesome> and i noticed that whenever we use OpenStruct, all the method caches are invalidated because it defines methods on its singleton class
<judofyr> charliesome: yes, I've also noticed *really* bad performance using OpenStruct
<charliesome> i thought about it for a bit and i think i have an idea to avoid invalidating the cache when defining singleton methods
<charliesome> we should store an inherited flag on RClass structs that is set to true when it is inherited
<charliesome> when defining a method, the vm state is only incremented if a) the method definition overrides an existing one or b) the class has subclasses (inherited flag is set)
<charliesome> _ko1: thoughts?
<charliesome> judofyr: yeah i was surprised as well
<_ko1> n-
<_ko1> not enough
<charliesome> is there a scenario where this causes incorrect behaviour, or do you not think this case is worthy of optimization?
<charliesome> because defining singleton methods on individual object is a *very* common operation
<_ko1> no doubt that it is worth
<_ko1> wait a morment
xibbar has quit [Remote host closed the connection]
<_ko1> it my mistake
<_ko1> your idea is good
<_ko1> the last problem is
<_ko1> set a flag correctly
<_ko1> set a `inherited' flag
xibbar has joined #ruby-core
<_ko1> big 2.1 feature :)
<_ko1> charliesome: do you have a patch?
<charliesome> _ko1: i have been experimenting, nothing working yet
<charliesome> _ko1: would you like me to work on a patch?
<charliesome> then i can submit it for your review
<_ko1> if you can :)
<charliesome> awesome
_br_ has quit [Excess Flood]
<_ko1> rails people like OpenStruct?
<charliesome> _ko1: not sure about rails itself, but openstruct is very commonly used
<_ko1> wow
<_ko1> why people don't use Hash
<_ko1> ...
<charliesome> _ko1: they like the method call syntax
<charliesome> i hacked my copy of ruby at work to print a star to the terminal every time the vm state was incremented
<charliesome> 200 vm state changes per request :\
<_ko1> LoL
<charliesome> many were from openstruct
<_ko1> good consideration
<_ko1> there are several ideas about inline cache invalidation protocol
<_ko1> (1) use only vm state (current)
<_ko1> (2) separate vm state (JRuby use)
<charliesome> _ko1: i noticed you have future support for only invalidating by a certain ID
<_ko1> (2) separate vm state by Classes/Modules (JRuby use)
<charliesome> as in, the function is there but at the moment it just invalidates everything
<_ko1> (3) separate vm state by method names (Rubinius use)
<_ko1> (4) more complex one
<charliesome> unfortunately different invalidation strategies might be better or worse for different apps
<charliesome> maybe in a future version we can use an env var to control invalidation strategy?
<charliesome> similar to gc tuning
<_ko1> charliesome: Yes. absolutely
_br_ has joined #ruby-core
<_ko1> what means "an env var to control invalidation "?
<_ko1> ah
<_ko1> ENV.
<_ko1> i understand
<_ko1> i'm not sure.
<_ko1> maybe not because invalidation code should be inlined into VM code
<charliesome> oh yes, that is a valid concern
<_ko1> should not add additional branch
<_ko1> build option is acceptable
<_ko1> for testing.
<charliesome> also since most people compile their own ruby, people can set the best option for their use
<_ko1> yes
<_ko1> it is good theme for under graduate students :)
<charliesome> _ko1: also, have you considered using -flto on compilers that support it?
<_ko1> i have no experience
<_ko1> could you try it?
<charliesome> i tried it, but there were crashes
<_ko1> ah.,,
<_ko1> my understanding
<charliesome> -flto enables some very aggressive optimizations at link time
<_ko1> LTO does not change any behavior
_br_ has quit [Excess Flood]
<_ko1> i see
<charliesome> i think ruby relies on a lot of undefined behaviour at the moment
<_ko1> may be it causes GC problem
<charliesome> _ko1: i think that might be the case
<_ko1> inlining some function causes mark miss.
_br_ has joined #ruby-core
carlosantonio has joined #ruby-core
_br_ has quit [Excess Flood]
_br_ has joined #ruby-core
xibbar has quit [Remote host closed the connection]
idkazuma has joined #ruby-core
carlosantonio has quit [Remote host closed the connection]
carlosantonio has joined #ruby-core
<charliesome> why do people use symbols where they should use strings :|
idkazuma has quit [Remote host closed the connection]
kosaki8 has joined #ruby-core
<znz_v> biff: [ruby-changes:27080] usa:r39132 (trunk): * win32/Makefile.sub (config.status): added variables which were - http://mla.n-z.jp/?ruby-changes=27080
kosaki8 has quit [Ping timeout: 256 seconds]
travis-ci has joined #ruby-core
<travis-ci> [travis-ci] The build has errored. by @usa: See http://travis-ci.org/ruby/ruby/builds/4639281
travis-ci has left #ruby-core [#ruby-core]
<znz_v> biff: [ruby-changes:27081] usa:r39133 (trunk): * test/rubygems/test_gem_config_file.rb - http://mla.n-z.jp/?ruby-changes=27081
<znz_v> biff: [ruby-changes:27082] nobu:r39134 (trunk): vpath.rb: no rbconfig.rb - http://mla.n-z.jp/?ruby-changes=27082
travis-ci has joined #ruby-core
travis-ci has left #ruby-core [#ruby-core]
<travis-ci> [travis-ci] The build passed. by @usa: See http://travis-ci.org/ruby/ruby/builds/4639632
idkazuma has joined #ruby-core
<znz_v> biff: [ruby-changes:27083] akr:r39135 (trunk): * configure.in: define linker for shared library on MirOS BSD. - http://mla.n-z.jp/?ruby-changes=27083
vondruch has quit [Quit: Ex-Chat]
<_ko1> charliesome: because it is more shoter ("foo" -> :foo) :)
<charliesome> _ko1: perhaps
<charliesome> in my language, i have symbols internally but not exposed to userland
<charliesome> i also have a 'string syntax that lets you quote identifiers similar to symbols in ruby
<_ko1> your language?
heroux has joined #ruby-core
<mame1> charliesome: hello
<charliesome> mame1: howdy
<charliesome> k
<mame1> r30148
<mame1> oops, there is no useful bot
<charliesome> the env one?
<mame1> some people complains to your r39004
<mame1> because it might be an intentional change by matz at r30148
<charliesome> oh
<mame1> * array.c (rb_ary_dup): should copy contents only. no instance
<mame1> variable, no class would be copied.
<nurse> The point is that don't change behavior without matz's accept
<mame1> however, matz is now saying the opposite opinion against himself
<charliesome> sorry for changing behaviour
<mame1> he now prefers the old 1.9.3 behavior
<charliesome> the bug looked like a regression, but i fixed the wrong place
<mame1> oops, 1.9.3 behavior -> 1.9.2 behavior
<mame1> indeed rb_ary_dup impacts too extensively a little
<mame1> then how do you fix?
<charliesome> so this was the bug http://bugs.ruby-lang.org/issues/7768
<mame1> fix only Array#uniq ?
<charliesome> mame1: that would be the least intrusive way
<charliesome> mame1: do you want me to do it?
<mame1> could you create a patch for the way?
<charliesome> sure, one moment
<mame1> just confirm: you didn't intend to change the behavior of other methods than Array#uniq, right?
<mame1> then, it looks good to me to choose "the least intrusive way"
<charliesome> mame1: i thought that perhaps there were other methods that would behave inconsistently in some cases like #uniq
<charliesome> but i will give you a patch that undoes it
<mame1> honestly i agree with you to some extent
<mame1> but the timing is bad a little
<charliesome> yes, i agree
<charliesome> sorry once again
<charliesome> something to discuss after 2.0 is released maybe?
<mame1> no prob, thank you for your cooperation
<mame1> no plan :-)
<mame1> ah, it may be difficult to change 2.0.0 after 2.0.0-p0 is released
<charliesome> for next minor, i mean
<mame1> 2.0.1 or 2.1.0 will include the change, which matz will decide
<mame1> yes
vondruch has joined #ruby-core
<charliesome> the test i added in r39004 still passes
<charliesome> so i think this is ok if you're happy to change Array#uniq's behaviour
<judofyr> why not changing rb_ary_dup?
<mame1> charliesome: it is really a regression, isn't it?
<charliesome> it looks like an attempt at an optimization
<charliesome> judofyr: too late to change Array#dup's behaviour
<judofyr> ah, right
<mame1> yeah, i've seen the diff, but i've not checked the other region of code
<charliesome> mame1: maybe the safest option is to revert r39004 completely?
<mame1> it returns a new object whose class is the same of the argument, say, when its length is >= 2?
<charliesome> mame1: yes
<mame1> hmm, thanks. let me consider for a minute :-)
<charliesome> no problem
<_ko1> charliesome, mame: could you file this discussion (summary) to bug ticket? we will lost progress only on IRC
<_ko1> after you finish discussion
carlosantonio has quit [Remote host closed the connection]
<charliesome> _ko1: should i open feature ticket for next minor for the singleton method cache optimization?
<_ko1> it is okay after your patch :)
<charliesome> ok, so i'll wait until i have a patch ready
__BigO__ has joined #ruby-core
<mame1> charliesome: sorry for let you wait
<mame1> i decided that i'll release rc2 with the *current* behavior
<charliesome> mame1: current as in trunk or current 1.9.3?
<mame1> because matz again prefered not only Array#uniq but also other Array methods to return the original class rather than Array
<mame1> current trunk
<mame1> iow your r39004 is accepted :-)
<charliesome> oh cool!
<mame1> sorry for let you write an extra unnecessary patch
<charliesome> that's ok, sorry for causing this whole issue in the first place
<charliesome> next time i'll be more careful
<mame1> don't mind, it was a good patch as a result :-)
<mame1> thanks again
<charliesome> i'll post the summary to #7768 as per _ko1's request
<_ko1> mame1: no need to post summary?
<charliesome> _ko1: oh well, posted summary anyway :p
<charliesome> it may be useful, it may not be
<mame1> it look a good idea to leave an evidence
<charliesome> mame1: btw i am excited for 2.0.0's release
<mame1> maybe it will be tomorrow unless there is no other incidents...
<_ko1> charliesome: :) thanks
<charliesome> anyway, good night
<_ko1> mame1: no plan delay?
charliesome has quit [Quit: Textual IRC Client: www.textualapp.com]
<mame1> _ko1: it has been already delayed enough
<_ko1> not an rc2, but about 2.0.0p0
<mame1> no plan
<mame1> do you think it should be delayed?
<_ko1> i don't have any idea
<mame1> i didn't know that charliesome is in as almost same time zone as Japan
<_ko1> me too
davidbalber|away is now known as davidbalbert
carlosantonio has joined #ruby-core
<znz_v> biff: [ruby-changes:27084] svn:r39137 (trunk): * 2013-02-08 - http://mla.n-z.jp/?ruby-changes=27084
<znz_v> biff: [ruby-changes:27085] akr:r39136 (trunk): * process.c (obj2gid): use getgrnum_r() only if getgrnam_r() and - http://mla.n-z.jp/?ruby-changes=27085
judofyr has quit [Ping timeout: 264 seconds]
judofyr has joined #ruby-core
oscardelben has joined #ruby-core
oscardelben has quit [Quit: oscardelben]
<znz_v> biff: [ruby-changes:27086] nagachika:r39138 (trunk): * ChangeLog: fix a typo for r39136. - http://mla.n-z.jp/?ruby-changes=27086
vondruch has quit [Quit: Ex-Chat]
oscardelben has joined #ruby-core
judofyr has quit [Remote host closed the connection]
johndouthat has joined #ruby-core
oscardelben has quit [Quit: oscardelben]
idkazuma has quit [Remote host closed the connection]
carlosan_ has joined #ruby-core
carlosantonio has quit [Ping timeout: 248 seconds]
_br_ has quit [Excess Flood]
_br_ has joined #ruby-core
judofyr has joined #ruby-core
_br_ has quit [Excess Flood]
_br_ has joined #ruby-core
marcandre has joined #ruby-core
__BigO__ has quit [Remote host closed the connection]
__BigO__ has joined #ruby-core
carlosantonio has joined #ruby-core
carlosan_ has quit [Ping timeout: 256 seconds]
wakoinc has joined #ruby-core
wakoinc has quit [Changing host]
wakoinc has joined #ruby-core
drbrain has quit [Remote host closed the connection]
_br_ has quit [Excess Flood]
wakoinc has quit [Read error: Connection reset by peer]
wakoinc has joined #ruby-core
judofyr has quit [Remote host closed the connection]
_br_ has joined #ruby-core
_br_ has quit [Excess Flood]
_br_ has joined #ruby-core
tenderlove has quit [Remote host closed the connection]
johndouthat has quit [Quit: johndouthat]
johndouthat has joined #ruby-core
johndouthat has quit [Remote host closed the connection]
drbrain has joined #ruby-core
tenderlove has joined #ruby-core
kosaki8 has joined #ruby-core
__BigO__ has quit [Remote host closed the connection]
wakoinc has quit [Quit: wakoinc]
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #ruby-core
hone has quit [Ping timeout: 276 seconds]
hone has joined #ruby-core
hone has quit [Ping timeout: 255 seconds]
hone has joined #ruby-core
idkazuma has joined #ruby-core
hone has quit [Ping timeout: 245 seconds]
hone has joined #ruby-core
__BigO__ has joined #ruby-core
xibbar has joined #ruby-core
drbrain has quit [Remote host closed the connection]
<znz_v> biff: [ruby-changes:27087] drbrain:r39139 (trunk): * lib/rubygems/dependency_installer.rb: Only install local gems if - http://mla.n-z.jp/?ruby-changes=27087
<znz_v> biff: [ruby-changes:27088] zzak:r39141 (trunk): * lib/net/http.rb (HTTP.post_form): Fix module scope in documentation - http://mla.n-z.jp/?ruby-changes=27088
<znz_v> biff: [ruby-changes:27089] zzak:r39140 (trunk): * compar.c (cmp_equal): Document ignored exception and return false - http://mla.n-z.jp/?ruby-changes=27089
<znz_v> biff: [ruby-changes:27090] drbrain:r39142 (trunk): * lib/rubygems/package/old.rb: Disallow installation of old-format - http://mla.n-z.jp/?ruby-changes=27090
nari has joined #ruby-core
drbrain has joined #ruby-core
__BigO__ has quit [Remote host closed the connection]
nari has quit [Ping timeout: 276 seconds]