[#31647] [Backport #3666] Backport of r26311 (Bug #2587) — Luis Lavena <redmine@...>

Backport #3666: Backport of r26311 (Bug #2587)

13 messages 2010/08/07

[#31666] [Bug #3677] unable to run certain gem binaries' in windows 7 — Roger Pack <redmine@...>

Bug #3677: unable to run certain gem binaries' in windows 7

10 messages 2010/08/10

[#31676] [Backport #3680] Splatting calls to_ary instead of to_a in some cases — Tomas Matousek <redmine@...>

Backport #3680: Splatting calls to_ary instead of to_a in some cases

10 messages 2010/08/11

[#31681] [Bug #3683] getgrnam on computer with NIS group (+)? — Rocky Bernstein <redmine@...>

Bug #3683: getgrnam on computer with NIS group (+)?

13 messages 2010/08/11

[#31843] Garbage Collection Question — Asher <asher@...>

This question is no doubt a function of my own lack of understanding, but I think that asking it will at least help some other folks see what's going on with the internals during garbage collection.

17 messages 2010/08/25
[#31861] Re: Garbage Collection Question — Roger Pack <rogerdpack2@...> 2010/08/26

> The question in short: when an object goes out of scope and has no

[#31862] Re: Garbage Collection Question — Asher <asher@...> 2010/08/26

Right - so how does a pointer ever get off the stack?

[#31873] Re: Garbage Collection Question — Kurt Stephens <ks@...> 2010/08/27

On 8/26/10 11:51 AM, Asher wrote:

[#31894] Re: Garbage Collection Question — Asher <asher@...> 2010/08/27

I very much appreciate the response, and this is helpful in describing the narrative, but it's still a few steps behind my question - but it may very well have clarified some points that help us get there.

[#31896] Re: Garbage Collection Question — Evan Phoenix <evan@...> 2010/08/27

You have introduced something called a "root node" without defining it. What do you mean by this?

[#31885] Avoiding $LOAD_PATH pollution — Eric Hodel <drbrain@...7.net>

Last year Nobu asked me to propose an API for adding an object to

21 messages 2010/08/27

[#31947] not use system for default encoding — Roger Pack <rogerdpack2@...>

It strikes me as a bit "scary" to use system locale settings to

19 messages 2010/08/30

[#31971] Change Ruby's License to BSDL + Ruby's dual license — "NARUSE, Yui" <naruse@...>

Ruby's License will change to BSDL + Ruby's dual license

16 messages 2010/08/31

[ruby-core:31963] Re: not use system for default encoding

From: Run Paint Run Run <runrun@...>
Date: 2010-08-31 00:31:55 UTC
List: ruby-core #31963
>> Well, firstly, that’s a pretty odd encoding to use. In general, you’ll have
>> a far easier time if you use UTF-8 for everything, and legacy encodings only
>> when necessary or, possibly, writing in a CJK script. In any case, even if
>> you continue using that encoding, the external encoding only needs to be
>> specified explicitly if the files contain non-ASCII characters. And if they
>> do, and interoperability is your goal, then why are you using IBM437 in the
>> first place?

> So are you saying that regardless of what
> Encoding.default_external is set to, if I read a file that only has ascii
> characters, it will always show up as the same string, regardless?
> Thanks!

Almost always. :-) Specifically, the encodings both need to be
ASCII-compatible, meaning their repertoire should consist of a superset of
ASCII. You can confirm with the Encoding#ascii_compatible? predicate, e.g.:

  >> Encoding::IBM437.ascii_compatible?  #=> true
  >> Encoding::UTF_8.ascii_compatible?   #=> true

The implication is that a file containing only ASCII is valid in any of these
encodings, i.e. a given ASCII character is represented by the same byte
sequence when transcoded to any ASCII-compatible encoding.

In practise, most of the encodings supported by Ruby are ASCII-compatible, with
the main exceptions being UTF-16 and UTF-32, in both their big- and
little-endian variants.

  Encoding.list.reject(&:ascii_compatible?)
  #=> [#<Encoding:UTF-16BE>, <Encoding:UTF-16LE>, #<Encoding:UTF-32BE>,
  #<Encoding:UTF-32LE>, <Encoding:ISO-2022-JP (dummy)>,
  #<Encoding:ISO-2022-JP-2 (dummy)>, <Encoding:CP50220 (dummy)>,
  #<Encoding:CP50221 (dummy)>, #<Encoding:UTF-7 (dummy)>,
  #<Encoding:ISO-2022-JP-KDDI (dummy)>]

For example, the first three encodings below are ASCII-compatible, so an
ASCII-only string is represented by the same set of bytes; the last three are
not ASCII-compatible, so the byte sequences differ:

  >> s="y%$;"
  >> pp %w{ibm437 utf-8 ascii utf-16le utf-16be utf-32le}.
  >>    map{|e| [e, *s.encode(e).bytes]}
  [
    ["ibm437", 121, 37, 36, 59],
    ["utf-8", 121, 37, 36,59],
    ["ascii", 121, 37, 36, 59],
    ["utf-16le", 121, 0, 37, 0, 36, 0, 59, 0],
    ["utf-16be", 0, 121, 0, 37, 0, 36, 0, 59],
    ["utf-32le", 121, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 59, 0, 0, 0]
  ]

In This Thread