[#42311] [ruby-trunk - Feature #5958][Open] ThreadGroup#join — Masaki Matsushita <glass.saga@...>
[#42329] [RFC/PATCH] reinit signal_thread_list_lock atfork — Eric Wong <normalperson@...>
This issue was found under Ruby 1.9.3 (-p0 presumably), but probably
> signal_thread_list_lock may be held in the timer thread during
KOSAKI Motohiro <[email protected]> wrote:
2012/2/2 Eric Wong <[email protected]>:
[#42344] [ruby-trunk - Feature #5964][Open] Make Symbols an Alternate Syntax for Strings — Tom Wardrop <tom@...>
[#42361] 1.9.3's 1st patch release — "NARUSE, Yui" <naruse@...>
Hi,
[#42391] I'll reject stalled feature tickets — Yusuke Endoh <mame@...>
(Japaneser later; 日本語は後で)
[#42404] [ruby-trunk - Bug #5978][Open] YAML.load_stream should process documents as they are read — Thomas Sawyer <transfire@...>
[#42443] [ruby-trunk - Bug #5985][Open] miniruby skews "make benchmark" results — Eric Wong <normalperson@...>
"ko1 (Koichi Sasada)" <[email protected]> wrote:
Issue #5985 has been updated by Eric Wong.
[#42444] [ruby-trunk - Bug #5986][Open] Segmentation Fault — Luis Matta <levmatta@...>
[#42448] [ruby-trunk - Bug #5988][Open] Time class interprets "2012-02-30" as "2012-03-01" — Dylan Markow <dmarkow@...>
[#42471] [ruby-trunk - Feature #5995][Open] calling io_advise_internal() in read_all() — Masaki Matsushita <glass.saga@...>
[#42480] [ruby-trunk - Feature #5999][Open] Optimize for faster loading time and win32/file.c refactoring — Hiroshi Shirosaki <h.shirosaki@...>
[#42500] Question on getting the receiver class information from a RUBY_EVENT_CALL event hook (1.9.2) — Daniel Cadenas <dcadenas@...>
Hi all, I hope someone can help me with this problem I'm having on a
[#42523] [ruby-trunk - Bug #6008][Open] {a: 1}.hash not consistent over VM restarts — Jens Berlips <jens@...>
[#42550] [ruby-trunk - Feature #1400] Please add a method to enumerate fields in OpenStruct — Yusuke Endoh <mame@...>
On Mon, Feb 13, 2012 at 4:08 PM, Yusuke Endoh <[email protected]> wrote:
[#42564] some questions about nesting/constants — Xavier Noria <fxn@...>
Hello,
[#42579] [ruby-trunk - Bug #6012][Open] Proc#source_location also return the column — Roger Pack <rogerpack2005@...>
[#42607] [ruby-trunk - Bug #6020][Open] Unexpected is_a/kind_of behaviour — Alex N <masterlambaster@...>
[#42613] [ruby-trunk - Bug #6021][Open] TestDBM#test_aref test fails — Vit Ondruch <v.ondruch@...>
[#42630] [ruby-trunk - Feature #6023][Open] Add "a ?= 2" support for meaning "a = a.nil? ? 2 : a" — Rodrigo Rosenfeld Rosas <rr.rosas@...>
[#42672] strange 1.9.3 GC issue with Nokogiri — Eric Wong <normalperson@...>
Hello ruby-core,
On Wed, Feb 15, 2012 at 4:39 PM, Eric Wong <[email protected]> wrote:
[#42682] Ruby 1.9.3 patchlevel 125 released — "NARUSE, Yui" <naruse@...>
-----BEGIN PGP SIGNED MESSAGE-----
> Ruby 1.9.3-p125 is released.
On Thu, Feb 16, 2012 at 11:19 AM, Jon <[email protected]> wrote:
[#42685] [ruby-trunk - Bug #6036][Open] Test failures in Fedora Rawhide/17 — Bohuslav Kabrda <bkabrda@...>
[#42697] [ruby-trunk - Bug #6040][Open] Transcoding test failure: Big5 to UTF8 not defined (MinGW) — Luis Lavena <luislavena@...>
On Fri, Feb 17, 2012 at 7:47 PM, Yui NARUSE <[email protected]> wrote:
[#42715] Classes as pure mixin conatiners — trans <transfire@...>
Some time ago, I suggested that it might be worth considering a design
[#42755] [ruby-trunk - Bug #6048][Open] {Unbound}Method#hash doesn't always return the right value — Marc-Andre Lafortune <ruby-core@...>
[#42777] 500 reputation stackoverflow question about Ruby GIL — Grigory Petrov <grigory.v.p@...>
Hello.
2012/2/21 Grigory Petrov <[email protected]>:
No, it fails same way on all my OSX versions from 10.5 to 10.7
[#42789] [ruby-trunk - Bug #6057][Open] URI - Nonsensical Behavior — Scott Gonyea <scott@...>
[#42813] [ruby-trunk - Feature #6065][Open] Allow Bignum marshalling/unmarshalling from C API — Martin Bosslet <Martin.Bosslet@...>
Hello,
[#42843] [ruby-trunk - Feature #6070][Open] The scope of for loop variables — Shugo Maeda <redmine@...>
[#42857] [ruby-trunk - Feature #6074][Open] Allow alias arguments to have a comma — Thomas Sawyer <transfire@...>
[#42870] [ruby-trunk - Feature #6079][Open] Hash#each_sorted — Walter Urbaniak <mondgrav-ruby@...>
[#42891] [ruby-trunk - Feature #6083][Open] Hide a Bignum definition — Koichi Sasada <redmine@...>
> Target version changed from 2.0.0 to next minor
[#42906] [ruby-trunk - Bug #6085][Open] Treatment of Wrong Number of Arguments — Marc-Andre Lafortune <ruby-core@...>
[#42972] 50$ for answering my stackoverflow question about Ruby GIL 500 reputation stackoverflow question about Ruby GIL 50$ for answering my stackoverflow question. — Grigory Petrov <grigory.v.p@...>
Hello.
[#42981] 50$ for answering my stackoverflow question about Ruby and GIL — Grigory Petrov <grigory.v.p@...>
Thanks.
On Feb 27, 2012, at 9:54 AM, Grigory Petrov wrote:
I'm not so sure about that.
On Feb 27, 2012, at 12:10 PM, Grigory Petrov wrote:
> This test code doesn't show switch time, it shows how fast two ruby threa=
[#42989] Re: [ruby-cvs:42007] nobu:r34829 (trunk): * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): since methods — Eric Hodel <[email protected]>
On Feb 27, 2012, at 12:03 AM, [email protected] wrote:
[#43012] [ruby-trunk - Bug #6103][Open] Build failure on trunk 34850 with VC 2010 — Heesob Park <phasis@...>
[#43021] English instructions for setting up chkbuild? — Luis Lavena <luislavena@...>
Hello,
[#43030] return values of methods on String subclasses — Aaron Patterson <tenderlove@...>
It pains me to ask about this, but since Rails subclasses String, I need
[ruby-core:42718] [ruby-trunk - Feature #5964] Make Symbols an Alternate Syntax for Strings
Issue #5964 has been updated by Kurt Stephens.
On 16/02/2012, at 12:28 PM, Charles Oliver Nutter wrote:
> ... someone might rely on the same symbol having
> the same ID forever.
The only "safe" object_id is a monotonic one that is not tied to a memory address; by definition, a collector will reuse it. :)
I resort to this:
(a_cache[obj.object_id] ||= [ obj.some_cacheable_value, obj ]).first
----------------------------------------
Feature #5964: Make Symbols an Alternate Syntax for Strings
https://bugs.ruby-lang.org/issues/5964
Author: Tom Wardrop
Status: Open
Priority: Normal
Assignee:
Category: core
Target version:
Or, to put it another way, make Symbols and Strings one and the same - interchangeable and indistinguishable from the other.
This may seem odd given that the whole point of Symbols is to have a semantically different version of a string that allows you to derive different meaning from the same data, but I think we have to compare the reason why Symbol's exist and the benefits they offer, to how their use has evolved and the problems that has introduced. There are a few main points I wish to make to begin what could be a lengthy discussion.
(1) Most people use Symbols because they're prettier and quicker to type than strings. A classic example of this is demonstrated with the increasing use of the short-hand Hash syntax, e.g. {key: 'value'}. This syntax is not supported for strings, and therefore only further encourages the use of symbols instead of strings, even where semantics and performance are not contributing factors.
(2) While the runtime semantics of Symbols will be lost, such as where the type of an object given (Symbol or String) determines the logical flow, the syntactic semantics will remain. Or in other words, Symbols will still be able to convey programmer intent and assist in code readability, for example, where strings are used for Hash keys and values, one may wish to use the symbolic syntax for the keys, and the traditional quoted syntax for the values.
(3) Runtime semantics are of course beneficial, but the cons are an unavoidable consequence. I mention this because I thought for a brief moment, of the possibility of introducing an alternate means of injecting semantics into strings, but I quickly realised that any such thing would take you back to square one where you'd have to be aware of the context in which a string-like object is used. It goes against the duck-typing philosophy of Ruby. If it walks and quacks like a string, why treat Symbols and Strings any differently.
(4) Performance is the other potential benefit of Symbols. It's important to note that the symbolic String syntax can still be handled internally in the same way as Symbols. You could still compare two strings created with the symbolic syntax by their object ID.
By removing the semantic difference between Strings and Symbols, and making Symbols merely an alternate String literal syntax, you eliminate the headache of having to coerce Strings into Symbols, and vice versa. I'm sure we've all written one of those methods that has about 6 #to_sym and #to_s calls. The runtime semantics that are lost by making Symbols and Strings one and the same, can be compensated for in other ways.
I like to think of the case of the #erb method in the Sinatra web framework, where it assumes a symbol is a file path to the markup, and that a string is the actual markup. This method could either be split into two, e.g. #erb for string, and #erbf for path to file. Or, you could include a string prefix or suffix, e.g. #erb './some_file' to indicate it's a file path. Or as my final example, you could simply go with an options hash, e.g. #erb 'some string' for a string, or #erb file: './some_file'. It all depends on the circumstance.
The whole point is to have only one object for strings, and that's the String object. Making Symbol a subclass of String wouldn't solve the problem, though it may make it more bearable.
I'm hoping those who read this consider the suggestion fairly, and don't automatically defend Symbols on merit.
--
http://bugs.ruby-lang.org/