[#41916] Proposal: Bitmap Marking GC — Narihiro Nakamura <authornari@...>

Hi.

18 messages 2012/01/05

[#41941] [ruby-trunk - Bug #5851][Open] make check fails when compiling with GCC 4.7 - *** longjmp causes uninitialized stack frame *** — Vit Ondruch <v.ondruch@...>

12 messages 2012/01/06

[#41979] [ruby-trunk - Bug #5865][Open] Exception#== should return false if the classes differ — Hiro Asari <asari.ruby@...>

10 messages 2012/01/08

[#42003] [ruby-trunk - Bug #5871][Open] regexp \W matches some word characters when inside a case-insensitive character class — Gareth Adams <gareth@...>

14 messages 2012/01/09

[#42016] [ruby-trunk - Feature #5873][Open] Adopt FFI over DL — Heesob Park <phasis@...>

15 messages 2012/01/10

[#42149] [ruby-trunk - Feature #5899][Open] chaining comparsions. — Ondrej Bilka <neleai@...>

12 messages 2012/01/16

[#42164] [ruby-trunk - Feature #5903][Open] Optimize st_table (take 2) — Yura Sokolov <funny.falcon@...>

18 messages 2012/01/17

[ruby-core:42224] Re: [ruby-trunk - Bug #5925] Lazy initialization is not thread safe.

From: Aaron Patterson <tenderlove@...>
Date: 2012-01-24 01:50:29 UTC
List: ruby-core #42224
On Tue, Jan 24, 2012 at 10:06:21AM +0900, Hiroshi Nakamura wrote:
> 
> Issue #5925 has been updated by Hiroshi Nakamura.
> 
> 
> =begin
> I think the author expected that Hash#replace is thread-safe, and it surely is in CRuby. (see rescue for double freeze)
> 
>   TBLENCWWWCOMP_ = {} # :nodoc:
>   ...
>   def self.encode_www_form_component(str)
>     if TBLENCWWWCOMP_.empty?
>       tbl = {}
>       256.times do |i|
>         tbl[i.chr] = '%%%02X' % i
>       end
>       tbl[' '] = '+'
>       begin
>         TBLENCWWWCOMP_.replace(tbl)
>         TBLENCWWWCOMP_.freeze
>       rescue
>       end
>     end
>     ...
> 
> Someone can rewrite this with singleton.rb.  Challenger?

Why don't we just do it when the file is required?  I know it adds
overhead when the file is required, but that seems minimal when compared
to the runtime savings.

I made a patch here:

  https://gist.github.com/1667280

-- 
Aaron Patterson
http://tenderlovemaking.com/

In This Thread