[#51834] [ruby-trunk - Bug #7780][Open] Marshal & YAML should deserialize only basic types by default. — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>
[#51864] [ruby-trunk - Bug #7784][Open] [mingw] r39055 creates test failures and functionality loss — "jonforums (Jon Forums)" <redmine@...>
[#51870] [Backport93 - Backport #7786][Assigned] fix for abstract namespace — "shugo (Shugo Maeda)" <redmine@...>
[#51897] [ruby-trunk - Feature #7791][Open] Let symbols be garbage collected — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
(2013/02/06 22:50), shyouhei (Shyouhei Urabe) wrote:
A slightly different idea, closer to the existing garbage collection:
I think Koichi's approach is a better one. I don't think there are any
(2013/02/07 20:25), Rodrigo Rosenfeld Rosas wrote:
On Wed, Feb 6, 2013 at 2:37 PM, rosenfeld (Rodrigo Rosenfeld Rosas)
[#51898] [ruby-trunk - Feature #7792][Open] Make symbols and strings the same thing — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
On 8 February 2013 03:01, jeremyevans0 (Jeremy Evans) <
Em 07-02-2013 19:15, Matthew Kerwin escreveu:
Hi,
Em 07-02-2013 21:58, Yukihiro Matsumoto escreveu:
You don't need to hijack any code for it, you'd just use it as
Em 06-02-2013 12:36, Yorick Peterse escreveu:
I don't think I'm following you, can you explain what's supposedly
Em 06-02-2013 13:25, Yorick Peterse escreveu:
> What I'm trying to say is that the main reason why symbols exist in
Em 06-02-2013 16:22, Yorick Peterse escreveu:
> And "growing until you hit your memory limit" is actually only valid
On 7 February 2013 20:46, rosenfeld (Rodrigo Rosenfeld Rosas) wrote:
Em 07-02-2013 10:04, Matthew Kerwin escreveu:
On 7 February 2013 23:09, Rodrigo Rosenfeld Rosas wrote:
On Feb 7, 2013, at 10:43, David MacMahon <davidm@astro.berkeley.edu> wrote:
Issue #7792 has been updated by dsferreira (Daniel Ferreira).
[#51965] [ruby-trunk - Feature #7795][Open] Symbol.defined? and/or to_existing_symbol — "Student (Nathan Zook)" <blogger@...>
[#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@...>
[#52042] [ruby-trunk - Bug #7805][Open] ruby 2.0rc2 core on solaris — "groenveld@... (John Groenveld)" <groenveld@...>
[#52048] [ruby-trunk - Bug #7806][Open] inconsistency between Method#inspect and Method#name — "Hanmac (Hans Mackowiak)" <hanmac@...>
[#52073] [ruby-trunk - Bug #7815][Open] Backport: Warning about TracePoint events to 2.0.0 — "zzak (Zachary Scott)" <zachary@...>
[#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@...>
[#52077] [ruby-trunk - Bug #7817][Open] (Unable to compile Ruby 2.0.0-rc2 on OSX (clang version 2.1) — "injekt (Lee Jarvis)" <ljjarvis@...>
[#52087] [ruby-trunk - Bug #7820][Assigned] Let's decide Ruby 2.0 supported platform list — "mame (Yusuke Endoh)" <mame@...>
Dne 10.2.2013 13:01, mame (Yusuke Endoh) napsal(a):
[#52130] [ruby-trunk - Bug #7829][Open] Rounding error in Ruby Time — "loirotte (Philippe Dosch)" <loirotte@...>
2013/2/22 David MacMahon <davidm@astro.berkeley.edu>:
2013/4/4 David MacMahon <davidm@astro.berkeley.edu>:
2013/4/5 David MacMahon <davidm@astro.berkeley.edu>:
[#52131] [ruby-trunk - Bug #7830][Open] Ruby packages should not build with -Werror when distributed — "kremenek (Ted Kremenek)" <kremenek@...>
[#52165] [ruby-trunk - Feature #7839][Open] Symbol.freeze_symbols — "tenderlovemaking (Aaron Patterson)" <aaron@...>
[#52206] [ruby-trunk - Bug #7842][Assigned] An alias of a "prepend"ed method skips the original method when calling super — "mame (Yusuke Endoh)" <mame@...>
[#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@...>
[#52254] p385 breaks bakward compatibility — V咜 Ondruch <v.ondruch@...>
Hi,
On 02/14 06:06, V?t Ondruch wrote:
[#52267] [ruby-trunk - Feature #7854][Open] New method Symbol[string] — "Student (Nathan Zook)" <blogger@...>
[#52371] Broken email notification from Redmine? — =?ISO-8859-2?Q?V=EDt_Ondruch?= <v.ondruch@...>
Hi,
[#52492] Redmine & utf in title bug — Marc-Andre Lafortune <ruby-core-mailing-list@...>
I notice a lot of
[#52495] [ruby-trunk - Bug #7879][Open] File.readable? fails when ruby runs as root — "balbi (Feliple Balbi)" <balbif@...>
[#52508] Should I document refinements in a PickAxe update? — Dave Thomas <dave@...>
Gentle core folk:
On Feb 18, 2013, at 19:58, Dave Thomas <dave@pragprog.com> wrote:
> I think a document in a PickAxe update with appropriate warnings would
2013/2/19 Dave Thomas <dave@pragprog.com>:
[#52581] Fwd: Fixnum: freeze status on ruby 2.0.0 rc2 — Ryan Davis <ryand-ruby@...>
[#52596] [CommonRuby - Feature #7895][Open] Exception#backtrace_locations to go with Thread#backtrace_locations and Kernel#caller_locations — "headius (Charles Nutter)" <headius@...>
(2013/02/21 6:02), headius (Charles Nutter) wrote:
On Thu, Feb 21, 2013 at 8:36 AM, SASADA Koichi <ko1@atdot.net> wrote:
[#52701] [ruby-trunk - Feature #7914][Open] Case for local class methods — "trans (Thomas Sawyer)" <transfire@...>
[#52704] Feature Request w/ Patch: CSV::Row, adds ".each_pair" as an alias for ".each" — Ryan Dowell <ssstarduster@...>
A very simple patch. Adds ".each_pair" as an alias to ".each" in
[#52722] [ruby-trunk - Bug #7917][Open] Can't write to a Logger in a signal handler — "mperham (Mike Perham)" <mperham@...>
"mperham (Mike Perham)" <mperham@gmail.com> wrote:
[#52723] Improving order of NEWS — Marc-Andre Lafortune <ruby-core-mailing-list@...>
I feel the NEWS are in the wrong order: C API, builtin classes, std-lib,
[#52727] [ruby-trunk - Feature #7918][Open] Create Signal.in_trap?() — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>
(2013/02/23 11:31), kosaki (Motohiro KOSAKI) wrote:
[#52737] What's the *right* way to build Ruby from source on a Linux system that doesn't yet have Ruby? — Paul Sherwood <paul.sherwood@...>
We'd like to add Ruby support in a clean Linux environment which has
On Sat, Feb 23, 2013 at 9:38 AM, Paul Sherwood
On 23/02/2013 13:16, Luis Lavena wrote:
> On 23/02/2013 13:16, Luis Lavena wrote:
[#52876] [ruby-trunk - Bug #7957][Open] rb_str_modify() does not prevent shared string from rb_str_set_len() — "normalperson (Eric Wong)" <normalperson@...>
[#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
On Monday, February 25, 2013, Rodrigo Rosenfeld Rosas wrote:
Em 25-02-2013 10:47, Jeremy Kemper escreveu:
(2013/02/26 0:22), Rodrigo Rosenfeld Rosas wrote:
(2013/02/26 2:34), SASADA Koichi wrote:
Em 26-02-2013 15:14, SASADA Koichi escreveu:
(2013/02/27 4:19), Rodrigo Rosenfeld Rosas wrote:
Em 26-02-2013 17:23, SASADA Koichi escreveu:
I rewrite a debugger for Ruby 2.0.
Thank you very much, Koichi, but I couldn't get it to work yet:
[#52997] [ruby-trunk - Feature #7978][Open] boolean to_i — "alexeymuranov (Alexey Muranov)" <redmine@...>
[#53017] [ruby-trunk - Bug #7982][Open] rb_raise segfaults on %lli format with (0xffffffff + 1) — "erik.s.chang (Erik Chang)" <erik.s.chang@...>
[#53035] [ruby-trunk - Feature #7986][Open] Custom case statement comparison method — "trans (Thomas Sawyer)" <transfire@...>
[ruby-core:51981] Re: [ruby-trunk - Feature #7792] Make symbols and strings the same thing
Em 07-02-2013 10:04, Matthew Kerwin escreveu:
> On 7 February 2013 20:46, rosenfeld (Rodrigo Rosenfeld Rosas) wrote:
> > I agree that a string is what I want in all cases. That is exactly why I
> > don't feel the need for symbols. If symbols are just really required as
> > a fundamental implementation detail of the MRI implementation, then I
> > don't think it is a good reason to justify keeping them in the language
> > level. Just find other ways to optimize methods/etc lookup in the
> > internal MRI code. This should be a separate discussion from the
> language
> > design itself.
> >
> > I'd really prefer you to think if symbols are really a good thing to
> > have in the design of the Ruby language if you forget about all
> > performance impacts it might have on the MRI implementation details.
>
> Ok, methods. They have a bucket of queriable information (a Method
> instance), and they have a symbolic representation (a Symbol). I
> don't want to have to instantiate an entire Method object (or a whole
> bunch of them) every time I want to talk to an object abouts its
> methods; I just want a single, simple, universal token that represents
> that (or those) method(s).
Like a string?
> Sorry, that's a performance optimisation detail.
Before I continue with my arguments and could focus solely on the
performance issue I'd like to confirm that there is no other reason why
symbols do exist. If performance is the sole reason and if I can make
the point that symbols actually degrades most Ruby programs rather than
improve the overall performance then I can still maintain my hopes for
this ticket.
> ...
> And for the record: "I don't ever want to use ClassX so let's remove
> it" is, frankly, silly.
This is clearly not the reason here. That's why I'm asking: what Symbols
are useful for? Is it performance the only reason why symbols exist?
Symbols cause lots of confusion as I showed in previous examples. That's
why I want to remove it, but I didn't ask to remove it in this ticket
anyway. Just to make it behave exactly like strings.
> ...Ok, completely philosphically, without any reference to performance
> or implementation details, why is a Java enum not equivalent to (or
> auto-cast to and from) a Java string?
Java, C and C++ have different goals then Ruby. They aim at the best
possible performance given their constraints. They are also statically
typed. Enums have two goals in such languages. Improving performance and
reducing memory footprint is one of them. The other one is to help the
compiler to find errors at compile time by restricting the input type in
some functions/methods and variables. I don't really understand how this
is relevant to this discussion.
> I, too, have been using Ruby for several years now; and I, too, have
> seen a lot of people wanting Symbol and String to behave the same.
> Hells, at times even I have wanted that. But the simple fact is:
> those people (myself included) are wrong. If they want a String, use
> a String. If they want to force a Symbol-shaped peg into a
> String-shaped hole, then they'll have to do whatever hoop-jumping is
> required; exactly as if you want a Java enum to support implicit
> coercion to and from a string.
I don't want that for Java enums and I don't really understand how Java
enums relate to the string vs symbols debate in Ruby.
> > People just don't know when to use symbols and strings.
>
> Bingo. Your solution is: hide Symbols from those people.
Yes!
> My solution is: don't change anything; maybe eventually enough people
> will learn that the two classes are, in fact, different.
They won't.
> > Take the Sequel library for instance.
>
> No thanks, apparently the authors don't know the difference between
> Symbols and Strings.
But I really love the library. Should I really stop using it just
because it returns an array of hashes indexed by symbols? And Sequel is
not the only library doing so. Should I stop using all gems out there
because the authors don't understand they should be always using strings
instead of symbols in such cases?
You should ask yourself: why are authors so confusing about whether to
use strings or symbols? Are they all just stupid? Isn't it clear in all
Ruby books? No, it isn't! It is just really confusing. I'm yet to read
some book that does a strong argument whether you should be using
symbols or strings. They just say that symbols perform better than
strings so authors think: "hey, then I'll just use symbols everywhere
and my gems will perform the best possible way!". But this thinking is
plain wrong because you'll need extra steps for conversions among those
types very often. The fact is that most authors don't really care about
symbols or strings at all. They don't spend their time thinking about
whether they should be using symbols or strings. They don't WANT to
worry about it! And they're not wrong! Since they don't want someone
looking at their code and telling them that their gem could perform
better if they used symbols instead of strings they will just use
symbols everywhere! This reality won't change. That is why I think
programmers shouldn't have to worry about any performance difference
that might exist between using symbols or strings in their code.
If there is a real boost using symbols internally in MRI then this
should be an implementation detail only, not exposed to Ruby programs.
That is why I suggested the optimizations to care if the string is
frozen or not (like other compilers will optimize constants) instead of
creating a new concept (symbols) just for that. They could keep the
:symbol syntax as an alias to 'symbol'.freeze.
> ...
> > I'd prefer that you focus on explaining why you think keeping symbols a
> > separate beast is of any usefulness
>
> I'll choose to interpret that as "... why I think keeping symbols at
> all ...". Simply: because they're already here.
This is not a good argument in my opinion. If you want to keep the
syntax :name as an alias to 'name'.freeze I believe most current Ruby
programs wouldn't be affected by such change.
> ... Personally I've never used HashWithIndifferentAccess, or needed to.
Me neither. But for different reasons. I need the behavior but I don't
think it worths the extra dependencies in my code (ActiveSupport) nor
the cumbersome of writing such a big class name everytime I want my hash
to behave like HWIA. I prefer to take some time to investigate if all my
hash keys are really strings than to just instantiate HWIA all over the
places.
> Incidentally those people don't want a Hash at all. They want an
> associative array, one that uses something like <=> or === to compare
> keys (instead of #hash and #eql?).
:a === 'a' is not true so I don't understand how such suggested
associative array would help here.
> ...
> This is true of _any_ issue in a library. If you think the library's
> benefits outweigh its costs, then you use the library. If the fact
> that the authors erroneously conflate Symbols and Strings is
> outweighed by the fact that it's otherwise extremely useful, it's up
> to you to work around the shortcomings. Just like if some otherwise
> brilliant library uses 0 instead of nil, or something.
Again, please don't pretend that the confusion between strings and
symbols are similar to confusions between 0 and nil.
> The general syntax served us well enough through 1.8 and 1.9.
Actually I never liked writing hashes as {key => value} in all years
I've been working with Ruby. But I won't stop using Ruby just because I
don't like its hash declaration syntax just the way I won't replace
Sequel just because they return hashes indexed by symbols instead of
strings.
> ...
> > The difference is that in the other languages a string is used since
> they don't have the symbols concept.
>
> That's a good point. I'd love to be able to change the new syntax so
> {a:1} meant {'a'=>1}, but that's not going to happen.
I agree it is unlike to happen. What about another syntax: {{a: 1}} =>
{'a' => 1}? Maybe it would worth trying to ask for some syntax change
like this one. We could even add interpolation to it: {{"value
#{computed}": 1}}.