[#51792] [ruby-trunk - Bug #7768][Open] Inherited Array class missing — "england (Roman Ivanilov)" <englandpost@...>

14 messages 2013/02/01

[#51834] [ruby-trunk - Bug #7780][Open] Marshal & YAML should deserialize only basic types by default. — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

19 messages 2013/02/04

[#51897] [ruby-trunk - Feature #7791][Open] Let symbols be garbage collected — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

64 messages 2013/02/06
[#51899] [ruby-trunk - Feature #7791][Feedback] Let symbols be garbage collected — "shyouhei (Shyouhei Urabe)" <shyouhei@...> 2013/02/06

[#51909] Re: [ruby-trunk - Feature #7791][Feedback] Let symbols be garbage collected — SASADA Koichi <ko1@...> 2013/02/06

(2013/02/06 22:50), shyouhei (Shyouhei Urabe) wrote:

[#51898] [ruby-trunk - Feature #7792][Open] Make symbols and strings the same thing — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

86 messages 2013/02/06
[#51914] [ruby-trunk - Feature #7792] Make symbols and strings the same thing — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...> 2013/02/06

[#51916] Re: [ruby-trunk - Feature #7792] Make symbols and strings the same thing — Yorick Peterse <yorickpeterse@...> 2013/02/06

You don't need to hijack any code for it, you'd just use it as

[#51933] [ruby-trunk - Feature #7793][Open] New methods on Hash — "dsisnero (Dominic Sisneros)" <dsisnero@...>

20 messages 2013/02/06

[#51965] [ruby-trunk - Feature #7795][Open] Symbol.defined? and/or to_existing_symbol — "Student (Nathan Zook)" <blogger@...>

13 messages 2013/02/07

[#51977] [ruby-trunk - Feature #7797][Open] Hash should be renamed to StrictHash and a new Hash should be created to behave like AS HashWithIndifferentAccess — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

22 messages 2013/02/07

[#52042] [ruby-trunk - Bug #7805][Open] ruby 2.0rc2 core on solaris — "groenveld@... (John Groenveld)" <groenveld@...>

23 messages 2013/02/08

[#52049] [ruby-trunk - Bug #7807][Open] [PATCH] Remove duplicated load paths when empty version string is configured — "vo.x (Vit Ondruch)" <v.ondruch@...>

9 messages 2013/02/08

[#52075] [ruby-trunk - Feature #7816][Open] Don't invalidate method caches when defining a new method on a class without subclasses — "charliesome (Charlie Somerville)" <charlie@...>

17 messages 2013/02/09

[#52077] [ruby-trunk - Bug #7817][Open] (Unable to compile Ruby 2.0.0-rc2 on OSX (clang version 2.1) — "injekt (Lee Jarvis)" <ljjarvis@...>

10 messages 2013/02/09

[#52087] [ruby-trunk - Bug #7820][Assigned] Let's decide Ruby 2.0 supported platform list — "mame (Yusuke Endoh)" <mame@...>

15 messages 2013/02/10

[#52130] [ruby-trunk - Bug #7829][Open] Rounding error in Ruby Time — "loirotte (Philippe Dosch)" <loirotte@...>

25 messages 2013/02/11
[#52579] [ruby-trunk - Bug #7829] Rounding error in Ruby Time — "loirotte (Philippe Dosch)" <loirotte@...> 2013/02/20

[#52586] Re: [ruby-trunk - Bug #7829] Rounding error in Ruby Time — David MacMahon <davidm@...> 2013/02/20

[#52131] [ruby-trunk - Bug #7830][Open] Ruby packages should not build with -Werror when distributed — "kremenek (Ted Kremenek)" <kremenek@...>

21 messages 2013/02/11

[#52134] [ruby-trunk - Bug #7831][Open] Net::HTTP does not allow users to handle Content-Encoding in responses like 1.x — "drbrain (Eric Hodel)" <drbrain@...7.net>

10 messages 2013/02/11

[#52160] [ruby-trunk - Feature #7836][Open] Need a way to get Method and UnboundMethod objects to methods overridden by prepended modules — "banister (john mair)" <jrmair@...>

12 messages 2013/02/12

[#52165] [ruby-trunk - Feature #7839][Open] Symbol.freeze_symbols — "tenderlovemaking (Aaron Patterson)" <aaron@...>

23 messages 2013/02/12

[#52206] [ruby-trunk - Bug #7842][Assigned] An alias of a "prepend"ed method skips the original method when calling super — "mame (Yusuke Endoh)" <mame@...>

15 messages 2013/02/13

[#52215] [ruby-trunk - Bug #7845][Open] Strip doesn't handle unicode space characters in ruby 1.9.2 & 1.9.3 (does in 1.9.1) — "timothyg56 (Timothy Garnett)" <timothyg@...>

18 messages 2013/02/13

[#52267] [ruby-trunk - Feature #7854][Open] New method Symbol[string] — "Student (Nathan Zook)" <blogger@...>

22 messages 2013/02/14

[#52296] [ruby-trunk - Bug #7860][Open] Passing --libdir to ./configure causes Gem.ruby to point to an incorrect ruby interpreter path — "cwgem (Chris White)" <cwprogram@...>

11 messages 2013/02/15

[#52395] [ruby-trunk - Bug #7874][Open] multiarch support enhancements — "terceiro (Antonio Terceiro)" <terceiro@...>

16 messages 2013/02/17

[#52513] [ruby-trunk - Feature #7882][Open] Allow rescue/else/ensure in do..end — "charliesome (Charlie Somerville)" <charlie@...>

11 messages 2013/02/19

[#52514] [ruby-trunk - Feature #7883][Open] Add Regex#to_proc — "rklemme (Robert Klemme)" <shortcutter@...>

15 messages 2013/02/19

[#52537] [ruby-trunk - Bug #7886][Open] Not recognizing unix group permissions for Mac OS X (Mountain Lion) Active Directory (AD) mobile accounts — "afazio (Alfred Fazio)" <alfred.fazio@...>

12 messages 2013/02/19

[#52596] [CommonRuby - Feature #7895][Open] Exception#backtrace_locations to go with Thread#backtrace_locations and Kernel#caller_locations — "headius (Charles Nutter)" <headius@...>

18 messages 2013/02/20

[#52614] [ruby-trunk - Bug #7897][Open] rubygems 2.0 has an incompatibility about installation of extension libraries if gem package does not contain lib directory — "mrkn (Kenta Murata)" <muraken@...>

8 messages 2013/02/21

[#52727] [ruby-trunk - Feature #7918][Open] Create Signal.in_trap?() — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>

10 messages 2013/02/23

[#52742] [ruby-trunk - Bug #7921][Assigned] Cross-compiling ruby_2_0_0 to Windows is failing (rb_w32_pow) — "luislavena (Luis Lavena)" <luislavena@...>

19 messages 2013/02/23

[#52875] [ruby-trunk - Bug #7956][Open] Install fail with RVM — Sega100500 (Сергей Е) <Sergey.V.Ezhov@...>

14 messages 2013/02/25

[#52877] Any documentation about debugging in Ruby 2.0.0 — Rodrigo Rosenfeld Rosas <rr.rosas@...>

Hi, I couldn't find how to debug Ruby 2.0.0 programs, but only a few

14 messages 2013/02/25
[#52880] Re: Any documentation about debugging in Ruby 2.0.0 — Jeremy Kemper <jeremy@...> 2013/02/25

On Monday, February 25, 2013, Rodrigo Rosenfeld Rosas wrote:

[#52883] Re: Any documentation about debugging in Ruby 2.0.0 — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2013/02/25

Em 25-02-2013 10:47, Jeremy Kemper escreveu:

[#52886] Re: Any documentation about debugging in Ruby 2.0.0 — SASADA Koichi <ko1@...> 2013/02/25

(2013/02/26 0:22), Rodrigo Rosenfeld Rosas wrote:

[#52890] [ruby-trunk - Bug #7958][Open] include FileUtils::Verbose gives NoMethodError when installing files with a different mode — "drbrain (Eric Hodel)" <drbrain@...7.net>

12 messages 2013/02/25

[#52893] [ruby-trunk - Bug #7959][Open] configure contains non-portable shell code — "jeremyevans0 (Jeremy Evans)" <merch-redmine@...>

12 messages 2013/02/25

[#52936] [ruby-trunk - Bug #7968][Open] Poor UDPSocket#send performance in ruby 2.0.0 on windows — "cs96and (Alan Davies)" <alan.n.davies@...>

10 messages 2013/02/26

[#52997] [ruby-trunk - Feature #7978][Open] boolean to_i — "alexeymuranov (Alexey Muranov)" <redmine@...>

14 messages 2013/02/27

[#53017] [ruby-trunk - Bug #7982][Open] rb_raise segfaults on %lli format with (0xffffffff + 1) — "erik.s.chang (Erik Chang)" <erik.s.chang@...>

10 messages 2013/02/28

[#53025] [Backport 200 - Backport #7984][Open] Severe speed issues in 2.0.0 compiled with Clang — "jcole1989 (James Coleman)" <jtc331@...>

13 messages 2013/02/28

[ruby-core:51992] Re: [ruby-trunk - Feature #7797] Hash should be renamed to StrictHash and a new Hash should be created to behave like AS HashWithIndifferentAccess

From: Yorick Peterse <yorickpeterse@...>
Date: 2013-02-07 15:51:56 UTC
List: ruby-core #51992
> The only real reason I remember people mentioning is the performance
> thing and how they are different internally. It shouldn't really
> matter to the language design its implementation details (if they are
> different internally or not, for instance).

There are so many cases where the implementation of X does affect its
presentation. The way your database tables are layed out will ultimately
affect your views. Is this bad too? No, it's a fundamental part of how
things work.

While in many cases you can work around that and come up with a language
design that isn't too heavily influenced by its implementation it would
in this case fundamentally change the way MRI works. On top of that it
would mean that all the other Ruby implementations such as JRuby and
Rubinius had to be modified as well to be compatible with the Ruby
specification.

I think the latter is something a lot of people don't think about. A
change this big doesn't just affect the people using MRI, it affects
every developer and every implementation out there. It will also affect
existing resources such as books and tutorials as basically everything
has to be re-written from scratch. The amount of effort required for
this is way too much for it to make a change that can be solved in many
different (and much easier) ways.

> And for the performance argument I really believe symbols cause more
> harm than good to the overall performance given all conversions that
> it will require in most code bases (even if you don't do that directly
> it is likely that you rely on some gem that will do that).

I'd be interested in seeing the actual numbers for this. I also find it
interesting to see that your general opinion seems to be "the
performance overhead of this change is not important" yet you do seem to
care about the overhead of converting Symbols to Strings. I find this a
rather contradicting opinion but maybe I'm misunderstanding things.

> Have no idea! My suspect is that someone thought: "hey maybe it would
> be a great idea if we could optimize some constant strings - we could
> create a symbol for that - hey, look at my micro-benchmarks, it really
> is a great idea!".

Yes, Matz took some crystal meth one evening and decided to introduce
Symbols because he thought it was a fun idea to (apparently) piss people
off with it.

If you honestly believe choices like these were made randomly or because
of some hypothetical micro benchmark I suggest you actually spend some
time getting to know the MRI code base. As with many things getting to
know the inner workings of something will help you understand why
choices were made, in this case I think it can greatly help you clear up
your mind about making such a big change as well as understanding as to
why it's not going to happen any time soon.

> On micro-benchmarks I agree they may do some small difference. On real
> world-case apps though I'd suspect its presence is actually causing
> code to perform worse.

Based on what? The conversion of a Symbol to a String is no more
in-efficient than creating a String yourself. Again show a benchmark if
you're so convinced this is not the case.

> Why do you think that removing symbols would change Ruby in a
> fundamental way? I believe 99.9% of all Ruby code would still work
> without any changes if :symbol was the same as 'symbol'.freeze.

See my comment above about all the implementations and resources having
to be changed. It would also require substantial changes of the MRI
source code. This would be a non trivial change.

> This is your opinion. I don't agree.

Again take a look at the MRI code base before you disagree on this
matter.

On another note, you also seem to be unaware that it's not trivial to
suddenly replace the usage of Hash with LazyDeveloperHash. Yes, in the
Ruby source code it might be easier but at least in the C code it's
going to take time and effort for something that has little value.

In your other threads I gave you various examples on how you can work
around your issue and even do so in such a way that will save you a lot
of future work. However, it seems you're hell bent on ignoring that and
continue to argue about why you disagree with something you (at least
from my point of view) don't have a good understanding of.

This is also going to be my last Email for these 3 (or 4 now?)
discussions. I've given plenty of examples and explanations (and so have
others) and I have no interest anymore in trying to explain it.

Yorick

In This Thread