[#36034] [Backport92 - Backport #4651][Open] Bus Error using continuation on x86_64-darwin11.0.0 (Lion) — Erik Michaels-Ober <sferik@...>

17 messages 2011/05/07

[#36058] draft schedule of Ruby 1.9.3 — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

18 messages 2011/05/09

[#36131] Re: [ruby-cvs:38172] Ruby:r30989 (trunk): * include/ruby/win32.h: define WIN32 if neither _WIN64 nor WIN32 defined. it forces to use push/pop for pack(4) pragma. — "Yuki Sonoda (Yugui)" <yugui@...>

Hi arton,

7 messages 2011/05/12

[#36156] [Ruby 1.9 - Bug #4683][Open] [PATCH] io.c: copy_stream execute interrupts and retry — Eric Wong <normalperson@...>

11 messages 2011/05/12

[#36316] [Ruby 1.9 - Bug #4731][Open] ruby -S irb fails with mingw/msys vanilla builds — Roger Pack <rogerpack2005@...>

12 messages 2011/05/18

[#36329] [Ruby 1.9 - Bug #4738][Open] gem install fails with "Encoding::ConverterNotFoundError" on windows 7 greek — Ilias Lazaridis <ilias@...>

11 messages 2011/05/19

[#36390] [Ruby 1.9 - Feature #4766][Open] Range#bsearch — Yusuke Endoh <mame@...>

23 messages 2011/05/22

[#36406] 1.8.7 release next month — Urabe Shyouhei <shyouhei@...>

Hello core people,

18 messages 2011/05/23
[#36414] Re: 1.8.7 release next month — Luis Lavena <luislavena@...> 2011/05/23

2011/5/23 Urabe Shyouhei <shyouhei@ruby-lang.org>:

[#36487] Re: 1.8.7 release next month — Urabe Shyouhei <shyouhei@...> 2011/05/26

Hi Luis,

[#36488] Re: 1.8.7 release next month — Hidetoshi NAGAI <nagai@...> 2011/05/26

From: Urabe Shyouhei <shyouhei@ruby-lang.org>

[#36496] Re: 1.8.7 release next month — Hidetoshi NAGAI <nagai@...> 2011/05/26

From: Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>

[#36712] Re: 1.8.7 release next month — Urabe Shyouhei <shyouhei@...> 2011/06/03

Ping Luis, how's it going?

[#36748] Re: 1.8.7 release next month — Luis Lavena <luislavena@...> 2011/06/05

On Fri, Jun 3, 2011 at 5:18 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

[#36434] [Ruby 1.9 - Feature #4774][Open] User Friendly Handling of "Encoding::ConverterNotFoundError" — Lazaridis Ilias <ilias@...>

11 messages 2011/05/24

[#36447] [Ruby 1.9 - Bug #4777][Open] Ruby 1.9.2-p180 ignoring INT, TERM, and QUIT until it receives CONT — Nathan Sobo <nathansobo@...>

10 messages 2011/05/25

[#36559] [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Tom Wardrop <tom@...>

48 messages 2011/05/30
[#36560] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Yukihiro Matsumoto <matz@...> 2011/05/30

Hi,

[#36571] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Anurag Priyam <anurag08priyam@...> 2011/05/30

> Iff 'key': 'value'} means {:key => 'value'} I have no objection.

[#36573] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Yukihiro Matsumoto <matz@...> 2011/05/30

Hi,

[#36578] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Cezary <cezary.baginski@...> 2011/05/30

On Mon, May 30, 2011 at 04:21:32PM +0900, Yukihiro Matsumoto wrote:

[#36580] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2011/05/30

Em 30-05-2011 07:58, Cezary escreveu:

[#36581] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Michael Edgar <adgar@...> 2011/05/30

Since :"#{abc}" is allowed in Ruby, I imagine that any such substitute syntax would preserve that property.

[#36587] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Cezary <cezary.baginski@...> 2011/05/30

On Mon, May 30, 2011 at 09:05:04PM +0900, Michael Edgar wrote:

[ruby-core:36520] [Ruby 1.9 - Feature #4774] User Friendly Handling of "Encoding::ConverterNotFoundError"

From: Lazaridis Ilias <ilias@...>
Date: 2011-05-27 23:47:37 UTC
List: ruby-core #36520
Issue #4774 has been updated by Lazaridis Ilias.


=begin
Yui NARUSE wrote:

> > The basic action would be to extend the error message "Encoding::ConverterNotFoundError" like this:

> In current situation, users can do nothing, so such message is useless.

This is not exactly true.
 * I did something (filed issue #4738), and my problem was solved.
 * even if the user can do nothing: he should be informed

> Or such message is associated with the rdoc of the method which raises Encoding::ConverterNotFoundError.

A new user does not know about rdoc.

Possibly he could be pointed to an issue here.

> > A developer locates the relevant missing file, e.g.: "ibm737-tbl.rb", and place it into the sources for the next release. 

> We don't recommend such hack even if people may do it.

This is what the developer has done in my case: #4738


> > The existent installation of the user has still the problem - he has to wait for the next release.

> He should report it before 1.9.2 is released.

Nobody knows when a user hits on a "ConverterNotFoundError".

> Especially IBM737, it is unintended missing file and should be reported.

I've reported it already, and the file was added to the repo: #4738

But I invest some time, thus ruby becommes better.

A new ruby user should be informed about this problem.

Imagine this scenario:

* Someone downloads and installs ruby, python and perl on his windows laptop.
* he starts to look around a little, and installs some software for all the 3 systems
* the ruby installation hits on the "ConverterNotFoundError"

He continues with perl and python, and finally gets exited about python, or:

* He follows the link in the error messages, follows the instructions, the team reacts and adds the missing transcoder
* He gets exited about how well organized all this, and gets exited about ruby.

The ruby team cannot leave users alone with this. The current design has a weakness (none knows on which machine the error will happen). 

So, filing an issue (or pointing to a webpage) with information, and pointing to this from the error message, this is the very first step.

> > The final possible implementation (and possibly the most elegant one) would be, to have the preliminary encoding-translations within a gem.

> It is sometimes discussed, but not implemented yet.

> We consider it is possible but not easy.

You are language developers, so things can be difficult.

Am easy extension of the existent system could(!) be:

(I don't know the name, I call it "transcode-library" for now)

Status:

* The transcode-library has an include path, where it fetches the transcoder *.so's (e.g. enc/trans)

Changes:

* The transcode-library is modified, thus it can look for the *.so's in multiple paths/locations
* The transcoder gem would add itself to the include path when installed (and remove itself, when deinstalled)
  * e.g. whilst calling "transcoder.add_path"

(I can take the time to look deeper into this, if there's a possibility that it will be implemented) 

=end

----------------------------------------
Feature #4774: User Friendly Handling of "Encoding::ConverterNotFoundError"
http://redmine.ruby-lang.org/issues/4774

Author: Lazaridis Ilias
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


Based on my own (user) experience with issue [#4738] (which was solved), I suggest the following enhancement.

=== 1st Step - Minimum ===

The basic action would be to extend the error message "Encoding::ConverterNotFoundError" like this:

"
Converter XXXX to XXXX not found. 
More information on: http://ruby-lang.org/encoding-converter.html
"

The document would explains why this error happened, and what the user can do now.

Example: 

  please run "ruby --encode-sanity" and send the output to ...
  Search in "http://redmine.ruby-lang.org" for "converter XXX to XXX"

(something like that, that give a process to follow)

A developer locates the relevant missing file, e.g.: "ibm737-tbl.rb", and place it into the sources for the next release. 

The existent installation of the user has still the problem - he has to wait for the next release.

=== 2nd Step - Preliminary Encoders ===

The user would have the possibility to drop-in a translation table file. The file "ibm737-tbl.rb" is published on the "encoding-converter" page, the user gets it and drops it into it's local installation, e.g.:

ruby192/lib/enc/trans/preliminary/

The exception (Encoding::ConverterNotFoundError) tries to resolve the missing translation table with a lookup to a preliminary/*.rb table (which has lower speed, but it works).

With the next release, the file would become redundant, because it was compiled in. A message could inform the user about it.

-

=== Alternative - By Compilation ===

If the compilation of the translation tables is unavoidable by design, then the site 

http://ruby-lang.org/encoding-converter.html

could point to the relevant compiled *.so files

In this case, the missing *.so file would be generated out of "ibm737-tbl.rb", and provided for download (for the major OS, Win, Mac etc.!)

The files could be "stolen" from actual automated builds (don't know if currently available for ruby).

=== gem based ===

The final possible implementation (and possibly the most elegant one) would be, to have the preliminary encoding-translations within a gem.

So, in this example, ibm737-tbl.rb would have been placed into the ruby sources, and the actual "trans" gem would have been updated and uploaded (with native versions for the major OS's).

The user would update his local installation by:

chcp 850 => change codepage to 850 or something else, thus gem works
gem install encoders => installs the encoding-translation which was just updated with ibm737-tbl.rb
chcp 737 => change back to original codepage

This way the user can continue with his install ruby immediately, and the sources are updated

-

(please note: I'm not familiar with the ruby sources. I've invested some hours to write this down, thus a core developer with the relevant domain knowledge can verify and possibly implement this.)




-- 
http://redmine.ruby-lang.org

In This Thread