[#39810] 2.0 feature questionnaire — SASADA Koichi <ko1@...>

I made a questionnaire "What do you want to introduce in 2.0?" in my

59 messages 2011/10/01
[#39822] Re: 2.0 feature questionnaire — Jeremy Kemper <jeremy@...> 2011/10/02

2011/10/1 SASADA Koichi <ko1@atdot.net>:

[#39827] Re: 2.0 feature questionnaire — Yukihiro Matsumoto <matz@...> 2011/10/02

Hi,

[#40324] Re: 2.0 feature questionnaire — Charles Oliver Nutter <headius@...> 2011/10/25

2011/10/1 SASADA Koichi <ko1@atdot.net>:

[#39823] Discussion results — SASADA Koichi <ko1@...>

Hi,

34 messages 2011/10/02
[#39840] Re: Discussion results — Intransition <transfire@...> 2011/10/02

I did not have the fortune of attending the discussion, but I would

[#39844] Re: Discussion results — Yukihiro Matsumoto <matz@...> 2011/10/02

Hi,

[#39851] Re: Discussion results (here documents with indents) — "Martin J. Dürst" <duerst@...> 2011/10/03

Hello Matz,

[#39862] Re: Discussion results (here documents with indents) — Yusuke Endoh <mame@...> 2011/10/03

Hello,

[#39874] Re: Discussion results (here documents with indents) — Trans <transfire@...> 2011/10/03

On Mon, Oct 3, 2011 at 8:16 AM, Yusuke Endoh <mame@tsg.ne.jp> wrote:

[#39915] [Ruby 1.9 - Feature #5400][Open] Remove flip-flops in 2.0 — Magnus Holm <judofyr@...>

29 messages 2011/10/04

[#39957] [Ruby 1.9 - Bug #5407][Open] Cannot build ruby-1.9.3-rc1 with TDM-GCC 4.6.1 on Windows XP SP3 — Heesob Park <phasis@...>

11 messages 2011/10/05

[#39993] [Ruby 1.9 - Feature #2348] RBTree Should be Added to the Standard Library — David Graham <david.malcom.graham@...>

10 messages 2011/10/06

[#40037] [Ruby 1.9 - Bug #5422][Open] File.fnmatch != Dir.glob # {no,sets} — Suraj Kurapati <sunaku@...>

14 messages 2011/10/07

[#40073] [Ruby 1.9 - Feature #5427][Open] Not complex patch to improve `require` time (load.c) — Yura Sokolov <funny.falcon@...>

31 messages 2011/10/09

[#40090] [Ruby 1.9 - Bug #5433][Open] PTY.spawn Kernel panic on macos lion — Gamaliel Toro <argami@...>

14 messages 2011/10/10

[#40188] [Ruby 2.0 - Feature #5454] keyword arguments — Yukihiro Matsumoto <matz@...>

16 messages 2011/10/17
[#40189] Re: [Ruby 2.0 - Feature #5454] keyword arguments — Evan Phoenix <evan@...> 2011/10/17

This looks very interesting=21 Would someone be willing to translate to e=

[#40191] Re: [Ruby 2.0 - Feature #5454] keyword arguments — Yutaka Hara <yutaka.hara@...> 2011/10/18

Hi,

[#40192] Re: [Ruby 2.0 - Feature #5454] keyword arguments — Yukihiro Matsumoto <matz@...> 2011/10/18

Hi,

[#40259] Counseling — Perry Smith <pedzsan@...>

Ruby and I are back in counseling... Its always the same thing with =

21 messages 2011/10/21
[#40263] Re: Counseling — "Haase, Konstantin" <Konstantin.Haase@...> 2011/10/21

What's your $LC_CTYPE? What OS are you on?

[#40264] Re: Counseling — Gon軋lo Silva <goncalossilva@...> 2011/10/21

Hi all,

[#40266] Re: Counseling — Bill Kelly <billk@...> 2011/10/21

Gon軋lo Silva wrote:

[#40271] Can rubygems save us from "binary-compatibility hell"? — Yusuke Endoh <mame@...>

Hello, rubygems developers --

17 messages 2011/10/22

[#40290] [ruby-trunk - Feature #5474][Assigned] keyword argument — Yusuke Endoh <mame@...>

36 messages 2011/10/23
[#40298] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Yukihiro Matsumoto <matz@...> 2011/10/24

Hi,

[#40414] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Charles Oliver Nutter <headius@...> 2011/10/26

More refinement below. I think we're on a good path here.

[#40416] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Yukihiro Matsumoto <matz@...> 2011/10/26

Hi,

[#40418] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Joshua Ballanco <jballanc@...> 2011/10/26

On Wed, Oct 26, 2011 at 2:08 PM, Yukihiro Matsumoto <matz@ruby-lang.org>wrote:

[#40425] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Yukihiro Matsumoto <matz@...> 2011/10/27

Hi,

[#40311] [ruby-trunk - Feature #5478][Open] import Set into core, add syntax — Konstantin Haase <Konstantin.Haase@...>

33 messages 2011/10/24

[#40312] [ruby-trunk - Feature #5479][Open] import StringIO into core, add String#to_io — Konstantin Haase <Konstantin.Haase@...>

9 messages 2011/10/24

[#40316] [ruby-trunk - Feature #5481][Open] Gemifying Ruby standard library — Hiroshi Nakamura <nakahiro@...>

86 messages 2011/10/24
[#40334] [ruby-trunk - Feature #5481] Gemifying Ruby standard library — Lucas Nussbaum <lucas@...> 2011/10/25

[#40322] [ruby-trunk - Feature #5482][Open] Rubinius as basis for Ruby 2.0 — Thomas Sawyer <transfire@...>

19 messages 2011/10/25

[#40356] JIT development for MRI — Carter Cheng <cartercheng@...>

Hello,

25 messages 2011/10/25
[#40390] Re: JIT development for MRI — SASADA Koichi <ko1@...> 2011/10/26

Hi,

[#40394] Re: JIT development for MRI — Carter Cheng <cartercheng@...> 2011/10/26

Dear Koichi SASADA,

[#40395] Re: JIT development for MRI — Carter Cheng <cartercheng@...> 2011/10/26

I noticed that you used context threading in YARV. Do you have some analysis

[#40417] Re: JIT development for MRI — SASADA Koichi <ko1@...> 2011/10/26

Thanks for reference.

[#40423] Re: JIT development for MRI — Carter Cheng <cartercheng@...> 2011/10/26

Thanks Koichi.

[#40412] [ruby-trunk - Bug #5486][Open] rb_stat() doesn’t respect input encoding — Nikolai Weibull <now@...>

15 messages 2011/10/26

[#40462] [ruby-trunk - Bug #5492][Open] MinGW Installation with Ruby 1.9.3rc1 Broken — Charlie Savage <cfis@...>

14 messages 2011/10/27

[#40573] [ruby-trunk - Bug #5530][Open] SEEK_SET malfunctions when used with 'append' File.open mode — "Joshua J. Drake" <ruby-lang.jdrake@...>

17 messages 2011/10/31

[#40586] [ruby-trunk - Feature #5531][Open] deep_value for dealing with nested hashes — Kyle Peyton <kylepeyton@...>

19 messages 2011/10/31

[ruby-core:40269] Re: Counseling

From: Joshua Ballanco <jballanc@...>
Date: 2011-10-22 02:26:06 UTC
List: ruby-core #40269
To try and cut to the core of the issue: in Ruby 1.8 it was common practi=
ce to use the String class to represent both =22proper strings=22 as well=
 as a =22bag-o-bytes=22. In Ruby 1.9, you can only properly use the Strin=
g class to represent =22proper strings=22. =46or a =22bag-o-bytes=22 we'r=
e left with Array, but there are times when Array is not the right abstra=
ction (e.g. reading data from a socket, identifying a start and stop toke=
n, and writing the bytes between to a file on disk). Also, the =22BINARY=22=
 encoding is not the right abstraction, because you still have an object =
which will worry about encodings and, due to Ruby always trying to do =22=
the right thing=22, bugs can be very difficult to track down. Consider:

    > a =3D =22test=22.force=5Fencoding('BINARY')
    > b =3D =22=5Cx=46=46=22.force=5Fencoding('BINARY')
    > a << =22test=22
    =22testtest=22
    > b << =22test=22
    =22=5Cx=46=46test=22
    > a << =22t=C3=A9st=22
    =22testt=C3=A9st=22
    > b << =22t=C3=A9st=22
    Encoding::CompatibilityError: incompatible character encodings: ASCII=
-8BIT and UT=46-8

What Ruby needs (IMHO), is the equivalent of Obj-C's NSData class. That i=
s, something which can hold a contiguous span of raw bytes without encodi=
ng, but with the ability to access ranges and iterate over the data like =
a String. I regret that I did not recall this desire of mine for the orig=
inal Ruby 2.0 feature list (I originally encountered the need for this wh=
en writing the ControlTower server for MacRuby; which, consequently, does=
 make use of NSData). I would, however, like to propose such a class for =
Ruby 2.0. =20


On =46riday, October 21, 2011 at 9:45 PM, Eric Hodel wrote:

> On Oct 21, 2011, at 9:43 AM, Perry Smith wrote:
> > Rails, thin, rvm, almost nothing is really and truly ruby 1.9 complia=
nt -- not really. Not when you include all the encoding problems that are=
 still very common in my life and I assume in the life of anyone trying t=
o use Ruby in any serious fashion.
> =20
> In order to generate correct documentation RDoc may need to transcode y=
our source files into the output encoding you desire.
> =20
> > Is there a compile time option (or can one be added) that says =22I d=
on't care=21=21=21 -- just cram the two strings together and eat your spi=
nach=21=22
> =20
> Mashing strings of different encodings together destroys data, but Ruby=
 will automatically handle compatible encodings. You can concatenate a UT=
=46-8 string with a US-ASCII string, for example.
> =20
> > Because, ultimately, I've yet to find anything except ruby that actua=
lly cares.
> =20
> I care, because I hate to see text like 'This =C3=A2=E2=82=AC=C5=B8enco=
ding=C3=A2=E2=82=AC=C2=9D stuff is =E2=80=A6' on a website. (Yeah, I know=
 fancy-quotes are an equal abomination, but it's not that hard to be awar=
e of encodings, is it=3F)
> =20
> On Oct 21, 2011, at 5:52 PM, Perry Smith wrote:
> > Just as good of an alternative would be to change my default to UT=46=
-8 instead of US-ASCII.
> =20
> This will not fix your problem, nor will -KU fix your problem. They'll =
only mask your problem.
> =20
> The correct solution is to add the encoding magic comment to files that=
 matches the expected encoding of the strings they create. Blindly forcin=
g all strings to UT=46-8 will break libraries that depend on their string=
s being in US-ASCII encoding.
> =20
> See:
> =20
> https://github.com/rdoc/rdoc/commit/ca7651a8b9e6ef32dfa56f4ca618d9cff6b=
a8b74
> =20
> https://github.com/rdoc/rdoc/issues/63
> =20
> You will need to send patches to the library maintainers to mark their =
required encodings correctly, or file tickets.
> =20
> > My first attempt to solve this was to put a UT=46-8 coding into all m=
y ruby files. This appeared to help but upon reflection, I don't think it=
 really did. Adding the -KU in scripts like thin's startup script helps m=
ore. In fact, I think it solves 99.99% of my problems. But when I update =
thin (for example) I forget to add the -KU to the script and hit errors u=
ntil I add the -KU back.
> =20
> Let's get concrete.
> =20
> Show us an error you get when running thin without any modification and=
 I can help you and the maintainer of thin (or whatever other library) fi=
nd the appropriate changes to make for it to work correctly.
> =20
> Through our combined efforts at a concrete task we may even be able to =
make it easier for authors to avoid such a pitfall.
> =20
> > One recent saga involved memcache-client (which I've mentioned). memc=
ache-client tries to concatenate a command, key, and Marshall'ed data. If=
 the Marshalled data really is ASCII-8BIT, then the concatenation dies.
> =20
> Marshal data is always ASCII-8BIT. If memcache-client doesn't set the e=
ncoding to US-ASCII (compatible with ASCII-8BIT) then -KU will break it:
> =20
> =24 ruby19 -e 'a =3D =22text=22; b =3D =22=5Cx=46=46=22; a.force=5Fenco=
ding Encoding::US=5FASCII; b.force=5Fencoding Encoding::BINARY; p (a + b)=
.encoding'
> =23<Encoding:ASCII-8BIT>

In This Thread