[#56333] [CommonRuby - Feature #8723][Open] Array.any? predicate returns true for empty array. — "nurettin (Nurettin Onur TUGCU)" <onurtugcu@...>

12 messages 2013/08/02

[#56368] [ruby-trunk - Bug #8730][Open] "rescue Exception" rescues Timeout::ExitException — "takiuchi (Genki Takiuchi)" <genki@...21g.com>

15 messages 2013/08/04

[#56407] [ruby-trunk - misc #8741][Open] email notification on bugs.ruby-lang.org is broken — "rits (First Last)" <redmine@...>

18 messages 2013/08/05

[#56524] [ruby-trunk - Bug #8770][Open] [PATCH] process.c: avoid EINTR from Process.spawn — "normalperson (Eric Wong)" <normalperson@...>

19 messages 2013/08/10

[#56536] [ruby-trunk - Feature #8772][Open] Hash alias #| merge, and the case for Hash and Array polymorphism — "trans (Thomas Sawyer)" <redmine@...>

24 messages 2013/08/11

[#56544] [ruby-trunk - Bug #8774][Open] rb_file_dirname return wrong encoding string when dir is "." — jiayp@... (贾 延平) <jiayp@...>

10 messages 2013/08/11

[#56569] [ruby-trunk - Feature #8781][Open] Use require_relative() instead of require() if possible — "ko1 (Koichi Sasada)" <redmine@...>

31 messages 2013/08/12
[#56582] [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — "drbrain (Eric Hodel)" <drbrain@...7.net> 2013/08/12

[#56584] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — SASADA Koichi <ko1@...> 2013/08/12

(2013/08/13 2:25), drbrain (Eric Hodel) wrote:

[#56636] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — Aaron Patterson <tenderlove@...> 2013/08/16

On Tue, Aug 13, 2013 at 07:38:01AM +0900, SASADA Koichi wrote:

[#56634] [ruby-trunk - Feature #8788][Open] use eventfd on newer Linux instead of pipe for timer thread — "normalperson (Eric Wong)" <normalperson@...>

11 messages 2013/08/16

[#56648] [ruby-trunk - Bug #8795][Open] "Null byte in string error" on Marshal.load — "mml (McClain Looney)" <m@...>

17 messages 2013/08/16

[#56824] [ruby-trunk - Feature #8823][Open] Run trap handler in an independent thread called "Signal thread" — "ko1 (Koichi Sasada)" <redmine@...>

14 messages 2013/08/27

[#56878] [ruby-trunk - misc #8835][Open] Introducing a semantic versioning scheme and branching policy — "knu (Akinori MUSHA)" <knu@...>

11 messages 2013/08/30

[#56890] [ruby-trunk - Feature #8839][Open] Class and module should return the class or module that was opened — "headius (Charles Nutter)" <headius@...>

26 messages 2013/08/30

[#56894] [ruby-trunk - Feature #8840][Open] Yielder#state — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

14 messages 2013/08/30

[ruby-core:56805] Re: [ruby-trunk - Feature #8579] Frozen string syntax

From: =?KOI8-R?B?4NLJyiDzz8vPzM/X?= <funny.falcon@...>
Date: 2013-08-26 04:10:13 UTC
List: ruby-core #56805
24.08.2013 23:55 ミマフリレマラチヤナフリ "kstephens (Kurt Stephens)" <
redmine@ruby-lang.org> ホチミノモチフ:
>
>
> Issue #8579 has been updated by kstephens (Kurt  Stephens).
>
>
> How about something more generic?  A prefix operator that memoizes and
freezes any expression result in a thread-safe manner on first eval:
>
>     %f'a frozen string'                 #
>     %f"a frozen #{interpolated} string" #
>     %f{a: 'frozen', :hash 'value'}      # A frozen, inline memoized Hash.
>     %f[:a, 'frozen', :array, 'value']   # A frozen, inline, memoized
Array.
>     %f(some(:method, 'call'))           # You get the idea.

Looks pretty! +1

> ----------------------------------------
> Feature #8579: Frozen string syntax
> https://bugs.ruby-lang.org/issues/8579#change-41341
>
> Author: charliesome (Charlie Somerville)
> Status: Open
> Priority: Normal
> Assignee: ko1 (Koichi Sasada)
> Category: syntax
> Target version: current: 2.1.0
>
>
> I'd like to propose a new type of string literal - %f().
>
> Because Ruby strings are mutable, every time a string literal is
evaluated a new String object must be duped.
>
> It's quite common to see code that stores a frozen String object into a
constant which is then reused for performance reasons. Example:
https://github.com/rack/rack/blob/master/lib/rack/methodoverride.rb
>
> A new %f() string literal would instead evaluate to the same frozen
String object every time. The benefit of this syntax is that it removes the
need to pull string literals away from where they are used.
>
> Here's an example of the proposed %f() syntax in action:
>
>     def foo
>       ["bar".object_id, %f(bar).object_id]
>     end
>
>     p foo # might print "[123, 456]"
>
>     p foo # might print "[789, 456]"
>
> These string literals could also be stored into a global refcounted table
for deduplication across the entire program, futher reducing memory usage.
>
> If this proposal is accepted, I can handle implementation work.
>
>
> --
> http://bugs.ruby-lang.org/

In This Thread