[#8820] BEGIN as stmt. ? — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
5 messages
2000/01/04
[#8824] [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro)
ごとけんです
38 messages
2000/01/05
[#8839] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/01/06
まつもと ゆきひろです
[#8842] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/01/06
ごとけんです
[#8843] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/01/06
まつもと ゆきひろです
[#8844] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/01/06
ごとけんです
[#8857] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— keiju@... (石塚圭樹)
2000/01/06
けいじゅ@日本ラショナルソフトウェアです.
[#8846] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/01/06
まつもと ゆきひろです
[#8847] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/01/06
ごとけんです
[#8890] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— Koji Arai <JCA02266@...>
2000/01/08
新井です。
[#8914] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/01/12
まつもと ゆきひろです
[#8968] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— Koji Arai <JCA02266@...>
2000/01/19
新井です。
[#8976] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/01/20
わたなべです.
[#9041] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/01/29
まつもと ゆきひろです
[#9045] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/01/30
ごとけんです
[#9061] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/02/02
ごとけんです
[#9077] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/02/04
まつもと ゆきひろです
[#9114] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/02/04
ごとけんです
[#9116] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— matz@... (Yukihiro Matsumoto)
2000/02/05
まつもと ゆきひろです
[#9119] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin
— gotoken@... (GOTO Kentaro)
2000/02/05
ごとけんです
[#8828] Re: [ruby-list:20054] Re: == === case — Shugo Maeda <shugo@...>
前田です。
11 messages
2000/01/05
[#8829] Re: [ruby-list:20054] Re: == === case
— matz@... (Yukihiro Matsumoto)
2000/01/05
まつもと ゆきひろです
[#8866] DoubleFloat — gotoken@... (GOTO Kentaro)
ごとけんです
13 messages
2000/01/07
[#8867] Re: DoubleFloat
— EGUCHI Osamu <eguchi@...>
2000/01/07
えぐち@エスアンドイー です。
[#8869] Re: DoubleFloat
— gotoken@... (GOTO Kentaro)
2000/01/07
In message "[ruby-dev:8867] Re: DoubleFloat"
[#8886] Complex#divmod — Masahiro TANAKA <masa@...>
田中@ISASです。ついでに気になっていることを。
11 messages
2000/01/08
[#8895] Re: Complex#divmod
— keiju@... (石塚圭樹)
2000/01/10
けいじゅ@日本ラショナルソフトウェアです.
[#8899] Re: Complex#divmod
— matz@... (Yukihiro Matsumoto)
2000/01/10
まつもと ゆきひろです
[#8893] Re: [ruby-list:20142] Re: Range expansion? — Akinori MUSHA aka knu <knu@...>
knuです。ruby-listから舞台を移しました。
13 messages
2000/01/09
[#8906] Re: [ruby-list:20142] Re: Range expansion?
— Shugo Maeda <shugo@...>
2000/01/11
前田です。
[#8924] Re: [ruby-list:20142] Re: Range expansion?
— matz@... (Yukihiro Matsumoto)
2000/01/13
まつもと ゆきひろです
[#8925] Re: [ruby-list:20142] Re: Range expansion?
— Shugo Maeda <shugo@...>
2000/01/13
前田です。
[#8926] Re: [ruby-list:20142] Re: Range expansion?
— matz@... (Yukihiro Matsumoto)
2000/01/13
まつもと ゆきひろです
[#8941] [BUG] recycle the ruby_dyna_vars — Koji Arai <JCA02266@...>
新井です。
9 messages
2000/01/16
[#8953] rb_str2inum() — "Shigeo Kobayashi" <shigeo@...>
小林です。
5 messages
2000/01/18
[#8980] 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...>
近い将来の{Net,Free,Open}BSDにはKAME IPv6 stackが統合されています。
17 messages
2000/01/20
[#8981] Re: 1.4.3 patch for near-future *BSD IPv6 support
— Jun-ichiro itojun Hagino <itojun@...>
2000/01/20
> それから、
[#8989] Re: 1.4.3 patch for near-future *BSD IPv6 support
— MIYAJIMA Mitsuharu <miya@...>
2000/01/21
[#8996] Re: 1.4.3 patch for near-future *BSD IPv6 support
— Jun-ichiro itojun Hagino <itojun@...>
2000/01/21
[#9049] Re: 1.4.3 patch for near-future *BSD IPv6 support
— Katsuyuki Komatsu <komatsu@...>
2000/02/01
小松です。
[#8986] sort — gotoken@... (GOTO Kentaro)
ごとけんです
13 messages
2000/01/20
[#9004] DEFAULT_KCODE in rbconfig.rb — OKUNISHI -GTO- Fujikazu <fuji0924@...>
OS/2 隠居の奥西@京田辺市です。
8 messages
2000/01/22
[#9005] Re: DEFAULT_KCODE in rbconfig.rb
— matz@... (Yukihiro Matsumoto)
2000/01/23
まつもと ゆきひろです
[#9008] [PATCH] Array#flatten! for recursive array — nobu.nakada@...
なかだです。
9 messages
2000/01/24
[#9011] Re: [PATCH] Array#flatten! for recursive array
— matz@... (Yukihiro Matsumoto)
2000/01/24
まつもと ゆきひろです
[#9024] Re: [ruby-math:00115] Re: precedence of ** — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
4 messages
2000/01/26
[#9048] [PATCH] OS/2 patch improved for 1.5.0 — kenn@...
長沢です。
6 messages
2000/01/31
[ruby-dev:8822] Re: BEGIN as stmt. ?
From:
EGUCHI Osamu <eguchi@...>
Date:
2000-01-04 17:23:42 UTC
List:
ruby-dev #8822
えぐち@エスアンドイー です。
>>> In message [ruby-dev:8821] Re: BEGIN as stmt. ?
On Tue, 4 Jan 2000 22:45:15 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) said:
matz> まつもと ゆきひろです
matz>
matz> In message "[ruby-dev:8820] BEGIN as stmt. ?"
matz> on 00/01/04, EGUCHI Osamu <eguchi@shizuokanet.ne.jp> writes:
matz> | % ruby -e 'BEGIN {} while true'
matz> | -e:1: [BUG] Segmentation fault
matz> | Abort (core dumped)
matz> |
matz> |となってしまいます。
matz>
matz> こりはバグです。BEGINでなくても
matz>
matz> () while true
matz>
matz> でも発生しますね。要するに修飾型whileのbody部のチェックを怠っ
matz> ていたわけです。修正します。末尾にパッチを添付します。
なるほど BEGIN ではなく、 while(と until)側の問題でしたか、
#そういえば、else のない if の else 側のノードは NULL ですものね。
そういう目で観ると、-@ と +@ にも同じバグがありますね、パッチつけます。
# () の値って nil 、ですよね、、、、他の言語みたいですけど(笑)
matz> |なんとなく気持は判るのですが、BEGIN (と END)が独自のスコープを持たずに
matz> |トップレベルで評価された方が、「なるべくグローバル変数は使いたくない」
matz> |という気持を満足できると思うのですが、如何でしょうか?
matz>
matz> ENDは独自のスコープを持ちません。BEGINだけです。なぜなら
matz> BEGINはプログラム全体が実行される前に実行されるので、その時
matz> 点では(トップレベルスコープも含めて)他のスコープはまだ存在し
matz> ませんが、ENDの場合には利用できる周囲にスコープが存在するか
matz> らです。
なるほど、END がスコープを独自に持たない理由は判りました。
matz> BEGINが外側のスコープを利用するのだとすると、それはどのスコー
matz> プであるべきなのでしょうか? いまだ存在しない周囲のスコープ
matz> を利用すると言うのもつらい話ですし、どこにあってもトップレベ
matz> ルスコープと言うのも(厳密な意味でのトップレベルスコープが存
matz> 在しないことを考えると)どこまで意味があるか疑問です。
BEGIN はてっきり、トップレベルで評価されるとばかり思っていました。
ruby -nle 'BEGIN {n = 0}; n += 1; END {print n}' /etc/passwd
こんな感じの、コードが通る事を期待していた訳です。
#実際は、n=0 の n は BEGIN ブロックの終了で消失するので
# n+=1 で、nの 未設定で undefined method `+' for nil (NameError)
周囲のスコープを利用すると言うのは、構文的にネストした場合だと思いますが、
いまのところ BEGIN はトップレベル以外には置けないので、
トップレベルスコープを仮定しても、問題はないと思います。
が、なんとなくネストしていても、動いてしまっているような気もする...
そもそも、スコープ以前にネストした BEGIN がどういう意味を持つべきか?
は微妙に思えます。(エラーでいいんだろうか?)
matz> 厳密な意味でのトップレベルスコープが存在しないというのは、た
matz> とえば、loadしたライブラリの評価時のスコープはトップレベルス
matz> コープのコピーだということです。ライブラリ実行中に BEGIN が
matz> 評価されたら、そのスコープはどのスコープであるべき?
たしかに load されたライブラリの中の BEGIN ブロックは悩ましいですね。
ところで、トップレベルのスコープの複製を作るのは何ででしたっけ?
#load されたライブラリはトップレベルではなさそなので BEGIN は
#使えないものだとばかり思ってました。 ^^;;
えぐち
Wed Jan 5 02:14:46 2000 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
* parse.y: Fix SEGV on empty parens with UMINUS or UPLUS.
Index: parse.y
===================================================================
RCS file: /usr/home/eguchi/cvs.netlab.co.jp/ruby/parse.y,v
retrieving revision 1.11
diff -d -u -r1.11 parse.y
--- parse.y 1999/12/14 06:49:47 1.11
+++ parse.y 2000/01/04 17:10:47
@@ -713,7 +713,7 @@
}
| tUPLUS arg
{
- if (nd_type($2) == NODE_LIT) {
+ if ($2 && nd_type($2) == NODE_LIT) {
$$ = $2;
}
else {
@@ -722,7 +722,7 @@
}
| tUMINUS arg
{
- if (nd_type($2) == NODE_LIT && FIXNUM_P($2->nd_lit)) {
+ if ($2 && nd_type($2) == NODE_LIT && FIXNUM_P($2->nd_lit)) {
long i = FIX2LONG($2->nd_lit);
$2->nd_lit = INT2FIX(-i);