[#44861] Ruby 1.9のARGVのエンコーディング — rubikitch@...

るびきちです。

17 messages 2008/04/26
[#44862] Re: Ruby 1.9のARGVのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/04/26

まつもと ゆきひろです

[#44863] Re: Ruby 1.9のARGVのエンコーディング — "NARUSE, Yui" <naruse@...> 2008/04/26

成瀬です、パッチ用意してから投げようと思ったら出遅れた、

[#44864] Re: Ruby 1.9のARGVのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/04/26

まつもと ゆきひろです

[#44865] Re: Ruby 1.9のARGVのエンコーディング — "U.Nakamura" <usa@...> 2008/04/28

こんにちは、なかむら(う)です。

[#44866] Re: Ruby 1.9のARGVのエンコーディング — "NARUSE, Yui" <naruse@...> 2008/04/28

成瀬です。

[#44868] Re: Ruby 1.9のARGVのエンコーディング — "U.Nakamura" <usa@...> 2008/04/30

こんにちは、なかむら(う)です。

[ruby-list:44850] Re: [Q] Ruby のパーサについて

From: Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date: 2008-04-21 06:21:30 UTC
List: ruby-list #44850
斎藤と申します。hackyなお話を。

On Sun, 20 Apr 2008 23:43:43 +0900
"Makoto Kuwata" <kwa@kuwata-lab.com> wrote:

> 予約語を追加するとか、PHP における QIQ のように、拡張ライブラリで
> パーサ関数を乗っ取るようなことはできないかと考えています。
> そこで冒頭のような質問をさせていただきました。

もしかしたらご存知の上でメールを投げられたのかもしれませんが、UNIX系OSでは
$LD_PRELOAD で ruby_yyparse を「乗っ取る」事はできると思います。
……という BinaryHacks#60 の超受け売りですが、

  LD_PRELOAD=./myparser.so ruby

で、rubyはlibruby.so以前にmyparser.so内からシンボルを解決しようと
するので、この中にruby_yyparseを定義して置けば乗っ取れます。

> (初心者にこそ使ってもらいたいパッチなので、導入の敷居をなんとか
>  下げられないものかと検討しています。)

とのことですが、上記シェルスクリプトを"ruby"として保存し、本物のrubyよりも
先の$PATHに置いておけば、透過的に自前パーザを起動できるでしょう。この辺は
インストール時に仕込めるはずです。

Windowsでの同様の方法は存じませんが、似たようなhackで実現できるかもしれません。
この場合もやはり、.batを準備するという手段が使える、かもしれません。

以下は余談ですが、

> 予約語を追加するとか、PHP における QIQ のように、拡張ライブラリで

QIQという物は始めて知りました。なんの略か? と思ったのですが、きっと
  "PHP".scan(/./).map(&:succ).join
なんでしょうね。

-- 
斎藤ただし

In This Thread