[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>

Before the release of Ruby 1.9.2 it was decided that Ruby releases

59 messages 2011/09/04
[#39276] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/05

2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:

[#39325] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/07

I'll jump in with some context from the JRuby perspective.

[#39335] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/07

2011/9/7 Charles Oliver Nutter <headius@headius.com>:

[#39365] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39366] Re: RubySpec vs CRuby's test/... — Yukihiro Matsumoto <matz@...> 2011/09/08

Hi,

[#39370] Re: RubySpec vs CRuby's test/... — Michael Klishin <michael.s.klishin@...> 2011/09/08

Yukihiro Matsumoto:

[#39374] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/08

(2011/09/09 1:29), Michael Klishin wrote:

[#39376] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39379] Re: RubySpec vs CRuby's test/... — Masaya TARUI <tarui@...> 2011/09/08

Hello Luis,

[#39382] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <tarui@prx.jp> wrote:

[#39386] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <luislavena@gmail.com> wrote:

[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>

14 messages 2011/09/04

[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>

27 messages 2011/09/09

[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>

13 messages 2011/09/13

[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>

26 messages 2011/09/14

[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <drbrain@...7.net>

18 messages 2011/09/19

[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>

10 messages 2011/09/20

[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>

13 messages 2011/09/22

[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>

20 messages 2011/09/25

[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>

18 messages 2011/09/27
[#39743] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Aaron Patterson <aaron@...> 2011/09/27

On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:

[#39754] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...> 2011/09/27

On 27/09/2011 19:46, Aaron Patterson wrote:

[#39807] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Eric Hodel <drbrain@...7.net> 2011/10/01

On Sep 27, 2011, at 6:52 PM, Alex Young wrote:

[#39751] [Ruby 1.9 - Bug #5375][Open] [mingw32] segfault on WinXP SP3 with 1.9.3dev@33347 — Jon Forums <redmine@...>

26 messages 2011/09/27

[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>

Hi,

13 messages 2011/09/29
[#39774] Re: ObjectSpace.reference_form(obj) #=> references_array — Nobuyoshi Nakada <nobu@...> 2011/09/29

Hi,

[#39796] [Ruby 1.9 - Bug #5384][Open] Ruby 1.9.3-RC1 Fails to Compile on Solaris — Cyrus Lopez <cyrus@...>

11 messages 2011/09/30

[ruby-core:39489] Re: File::BINARY does not behave as advertised

From: mathew <meta@...>
Date: 2011-09-12 22:04:21 UTC
List: ruby-core #39489
On Mon, Sep 12, 2011 at 16:00, Cameron Pope <camerooni@gmail.com> wrote:
> Here is a simple example of the problem that I am seeing:
>
> =C2=A0#/usr/bin/env ruby
> =C2=A0Encoding.default_internal =3D 'UTF-8'
>
> =C2=A0File.open('test',File::CREAT | File::RDWR | File::BINARY) do |f|
> =C2=A0 # This should be ASCII-8BIT, right? At least according to io.c, li=
ne 10792
> =C2=A0 puts "Integer Flags Encoding: #{f.external_encoding.to_s}"
> =C2=A0end

File::BINARY is passed to the open() or creat() calls as O_BINARY (as
opposed to O_TEXT). It means that the operating system will not
perform any character translation. It only applies to Windows, as Unix
and Linux don't perform character translation at OS level and don't
distinguish between binary and text files.

Opening a file in binary mode should make no difference to whatever
Ruby's internal character set choice is, and how Ruby chooses to
translate that (or not) when writing data to the file.

To put it another way: Opening a file in binary mode determines
whether *Windows* performs character translations to data written to,
or read from, the file. It makes no difference to the transformations
*Ruby* performs.

I would expect Ruby to mark the file's encoding according to
default_external, not default_internal. It apparently does so, if you
use integer flags:

Encoding.default_internal =3D 'UTF-8'
Encoding.default_external =3D 'ASCII'

File.open('test', File::CREAT | File::RDWR | File::BINARY) do |f|
  puts "Integer Flags Encoding: #{f.external_encoding.to_s}" # =3D> US-ASCI=
I
end

Encoding.default_internal =3D 'ASCII'
Encoding.default_external =3D 'UTF-8'

File.open('test2', File::CREAT | File::RDWR | File::BINARY) do |f|
  puts "Integer Flags Encoding: #{f.external_encoding.to_s}" # =3D> UTF-8
end

> =C2=A0File.open('test2','w+b') do |f|
> =C2=A0 # This actually is ASCII-8BIT
> =C2=A0 puts "String Mode Encoding: #{f.external_encoding.to_s}"
> =C2=A0end

...so I think this is the buggy behavior. It looks as if 'w+b' always
results in ASCII-8BIT external encoding, whatever the value of
Encoding.default_external.

> As one can see above, first of all, File::BINARY will be zero in every
> case that I can suss out in the Ruby source code - there is nowhere in
> the 1.9.x codebase I can see that defines O_BINARY to be anything but
> zero

I guess you're not running Ruby on Windows?

O_BINARY is defined by the OS, if the feature exists, in <fcntl.h>.
Hence the ifdefs in the Ruby source code.

(Ruby has its own fcntl library, which I documented a while back, but
that doesn't include O_BINARY because it's not a POSIX thing, just one
of those unfortunate details Windows users have to worry about.)

> So my second thought is that this is an issue with the PStore library,
> and that it would be appropriate to modify the file bottlenecks so
> they explicitly specify ASCII-8BIT as the file encoding.

If PStore wants binary read/write, it ought to be specifying that Ruby
should open the files as binary character encoding; opening them in OS
binary mode is not sufficient to do that (and will be a null op on
Unix).


mathew
--=20
<URL:http://www.pobox.com/~meta/>

In This Thread