[#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:39873] Windows IO and multi-platform MRI (was: 2.0 feature questionnaire)

From: Jon <jon.forums@...>
Date: 2011-10-03 14:23:57 UTC
List: ruby-core #39873
Hi Matz,

Forking this platform specific subtopic so as to not clutter responses to Koichi-san's original request.


> |One issue that continually fails to gain sustainable traction is identifying
> |the root causes and fixing the 1.9.x IO performance regressions on Windows.
>
> Besides I've heard that the IO performance has been improved on 1.9.3;

This is true and the performance improvement is much appreciated progress.


> Complaining motivates us opposite way.

You're mistaken; it was no complaint. Like feedback on any other important issue, I simply requested that this issue be tracked and prioritized against the others in order that it be resolved in a timely manner. Mislabeling 'feedback' as 'complaint' demotivates legitimate feedback.


> We need more contributors with deep knowledge of C programming on Windows.

Generally speaking, I agree. But I did not give generalities for this issue or the time before

  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/38342 

The specific issue I've raised is: resolving long-standing 1.9 IO performance problems on Windows given the current resourcing realities.

Ruby-core already has deeply experienced contributors very capable of solving hard multi-platform issues. Usa, Nobu, Yusuke, Aaron, and others do so on a regular basis.

The contributors I mention are more than capable of identifying and fixing the Windows IO issue which will likely turn out to be caused by incorrect API choice (msvcrt rather than Win32) and unoptimized algorithms. These contributors may need to spend a little time experimenting with the Windows APIs, but the Windows API is no match for their deep C, Ruby, and system expertise.

In fact, any tenacious developer with strong C skills, time, and interest in seeing a strong multi-platform MRI can contribute to solving this issue. For example, there's enough profiling experiments and API tracing to keep us busy for awhile. And the more eyes looking over the current implementation the better. That said, spelunking through io.c (~276K) and file.c (~125K) requires determination.

If part of the issue is setting up a Windows environment for interested ruby-core devs, let's discuss how to make that happen. In today's world of VMs like VirtualBox and our DevKit toolchain, the main issue is the Windows license. If the licenses are an issue, it's time to decide how to approach MSFT on how they can help an influencial language run better on Windows.


> Currently we have only one volunteer (with no payment).  I sympathize his burden and stress.

Yes and no.  While Luis is quite visible in the MRI on Windows space and has contributed greatly (some claim he's superhuman) with the RubyInstaller, rake-compiler and other projects, there are a number of others who have helped keep the MRI on Windows torch burning by contributing their free time in key areas.

What's needed is to take a step back and investigate ways to re-energize their efforts and better enable their contributions.


In closing, I ask that you consider the following two suggestions. One longer term, and one shorter term:

1. As the father of Ruby, consider more consistently and vocally promoting Ruby as a multi-platform language. People need to repeatedly hear from you that Ruby is a great language for developing real-world solutions regardless of whether they're using *nix, OSX, or Windows. This message also has very real business implications.

Hearing this message directly from you reiterates your commitment to Ruby the language, provides critically important tone for MRI (and non-MRI) development, and helps attract knowledgable platform contributors.

IMO, it's mistake if Ruby becomes (mis)perceived as a "*nix/OSX-only" language, or MRI on Windows becomes (mis)perceived as "a science fair project" (overemphasis for effect all mine).


2. Commit to prioritizing resources to solve the Windows IO performance issues. This challenge needs additional experienced developer horsepower and I don't see any shortcuts or magic bullets.

Specifically, consider:

a) discussing the following with the most experienced cross-platform ruby-core devs:

   * Should MRI be a best-of-breed, multi-platform Ruby implementation or not?
   * Is the Windows IO performance issue a real problem, or a nice-to-have "Dream" for MRI?
   * If it is a problem, do we care?
   * If we care, are we willing to divert limited resources to determine and fix the root causes?
   * For how long are we willing to divert resources?
   * If we're not willing to divert resources, what other creative options do we see?
   * If we don't diminish this technical debt now, when?
   * How should this issue be prioritized against the other 2.0 "Requirements"?
   * Once root cause is found, are we OK with a short-term patch if longer term IO refactoring is needed?

b) depending upon the outcome from (a) ask whether any ruby-core contributor is interested enough in a multi-platform MRI to "adopt" the issue and add horsepower to Luis' efforts (and hopefully others) to resolve. 


If you've slogged through this far and still are not persuaded, let's see if I can make it more personal for you ;)

Here's my challenge in hopes that you more clearly see why I as an Arch/Ubuntu/Windows user am fighting so verbosely for this issue:

  * download either our installer or 7z archive from http://rubyinstaller.org/downloads/
  * glance over http://rubyonwindowsguides.github.com/book/ch02-01.html if needed
  * install our MSYS/MinGW DevKit toolchain https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
  * install some gems (binary and source) and start playing with MRI on Windows

While not perfect, I think you'll find that the MRI on Windows experience is quite nice due to the hard work of all the RubyInstaller contributors and ruby-core devs who have committed Windows specific patches over the years.  MRI on Windows deserves ruby-core resourcing to quickly help resolve this key issue.

If you have any problems, don't waste a single second fighting them. Post a question to our ML http://groups.google.com/group/rubyinstaller or send a private email to both Luis and me. I'm not going to make commitments for Luis, but I think all of us RubyInstaller committers are interested in making enhancements that make easier for others to join in and quickly resolve this problem.


Obviously there are other options and perspectives for discussion, but for now let's see where this leads.

Thank you for your time, insight, and consideration.

Jon

---
blog: http://jonforums.github.com/
twitter: @jonforums

Most people die of a sort of creeping common sense, and discover when it
is too late that the only things one never regrets are one's mistakes.
                                                           - Oscar Wilde

In This Thread

Prev Next