summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: eac8efba2a6a0eea9587286b6fb7c9ae98f2dfe7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
Wed Mar 15 14:59:18 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.69

	* eval.c(method_missing): unknownから名称変更.

	* eval.c(single_method_added): 特異メソッドが定義された時に呼ばれ
	  るメソッド.hookとして使える.実際に定義される直前に呼ばれる.

Tue Mar 14 14:46:44 1995  Yukihiro Matsumoto  (matz@ix-02)

	* ruby.c(proc_options): 引数の解析を自分でやることにより引数指定の
	  方法がperlに近付いた.getopt_longはもう使わない.

	* dir.c(glob): `{}'のネストを許すようにした.

Mon Mar 13 17:56:25 1995  Yukihiro Matsumoto  (matz@ix-02)

	* glob.c: Glob(ワイルドカードオブジェクト)はなくなった.ワイルドカー
	  ドの展開はDir.glob(文字列)を使う.ワイルドカードのマッチは正規表
	  現で代用.

Fri Mar 10 18:35:46 1995  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c: Mathのようなモジュールは自分自身でextendする.

	* eval.c: クラスやモジュールを定義した既に同名のものがあれば追加定
	  義となるように.ただし.superクラスの違いなどはチェックする.

	* regex.c: debug.

	* math.c: 定数PIとEを定義.

Thu Mar  9 21:35:12 1995  Yukihiro Matsumoto  (matz@ix-02)

	* regex.c: EUC,SJISモードでは0x80以上の8進,16進リテラルを禁止.

	* regex.c: クラス内でも数値リテラル・文字クラスが使えるようした.

Wed Mar  8 17:39:05 1995  Yukihiro Matsumoto  (matz@ix-02)

	* regex.c: \200など括弧の数以上の表現は8進リテラルと解釈する.ただ
	  し,\1から\9までは例外.

	* regex.c: \9以上のリファレンスも有効にした.

Tue Mar  7 14:26:01 1995  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c(public/private): スコープ制御メソッドの名称変更.静的なア
	  クセスも出来るようにしてみたが,不採用.

Mon Mar  6 19:34:32 1995  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c(inlcude): メソッド化.動的にモジュールをインクルードでき
	  るように.さらに任意のオブジェクトにもモジュールをインクルードで
	  きるメソッド `extend'も用意した.

	* parse.y: 文法からincludeを削除.メソッド化.

Tue Feb 28 15:35:10 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: 配列,連想配列の最後に`,'をおけるように.

Fri Feb 24 13:15:43 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.68

Thu Feb 23 11:19:19 1995  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c: resque節のselfの値が間違っていた.

	* eval.c(rb_clear_cache): キャッシュのクリアし忘れがあった.

	* eval.c: 定数のスコープをクラス内の静的スコープに変更した.これに
	  よって,特異メソッドからは参照される定数は,レシーバのクラスでは
	  なく,定義されたスコープのクラスの定数となる.

Wed Feb 22 00:51:38 1995  Yukihiro Matsumoto  (matz@dyna)

	* regex.c: ignorecaseを正規表現のコンパイル前に指定しないと正しく
	  動作しない.修正.

	* string.c(toupper,tolower): bug fix.

	* ENV,VERSION: readonly変数から定数へ.

Tue Feb 21 18:56:56 1995  Yukihiro Matsumoto  (matz@ix-02)

	* io.c(STDIN, STDOUT, STDERR): 定数として定義.今までの$stdinなど
	  は将来なくなるかも知れない.

	* io.c(select): bug fix.

	* version 0.67

Mon Feb 20 16:10:14 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y(yylex): 定数を`%識別子'から,第1文字が大文字の識別子に変
	  更.それにともないクラスは定数となった.

	* eval.c: クラス定義内のselfがクラス定義外部のthe_classだった.

	* variable.c(rb_name_class): クラス名をインスタンス変数に格納する.

Thu Feb 16 15:36:17 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: BLOCKをbraceで表現する文法に変更したものを作ってみる.
	  MLに提示してみるが反応がない.

	* object.c(do,forever): なくした.

Wed Feb 15 13:20:49 1995  Yukihiro Matsumoto  (matz@ix-02)

	* re.c(new): 第2引数が与えられて,かつnilでないときだけ設定するよ
	  うに(以前はnilの時にも設定を行なっていた).

	* parse.y(parse_regexp): 正規表現リテラルで大文字小文字を無視する
	  かどうか指定できるように.

Tue Feb 14 00:55:33 1995  Yukihiro Matsumoto  (matz@dyna)

	* parse.y: (compexpr) -> (expr).

Fri Feb 10 16:30:00 1995  Yukihiro Matsumoto  (matz@ix-02)

	* ruby.c(load_file): scriptを読み込む時だけ"#!"の解析を行うように.

	* ruby.c(readin): ファイル読み込み時に先頭に"#!"があり,rubyに引数
	  が与えられていれば,その引数も有効になる.

	* parse.y(yylex): コメント行の終りが`\'であった時,次の行に継続し
	  ているとみなすようにした.

Thu Feb  9 16:18:37 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.66

	* parse.y: protectをbeginに変更.begin..endは例外処理だけでなく,
	  文括弧としても働くことになった.

Wed Feb  1 19:48:24 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.65

	* string.c(str_replace): 置き換える文字列の長さが等しい時メモリコ
	  ピーをしない.

	* string.c(rindex): バグ修正.

Mon Jan 30 11:23:05 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y(value_expr): ifのチェックを追加.

	* gc.c(gc_mark): free cellの扱いにバグ.

	* parse.y: 文法の変更(よりシンプルに).例外を減らした.

Thu Jan 26 00:52:55 1995  Yukihiro Matsumoto  (matz@dyna)

	* parse.y: 引数として連想配列を置くことができるように.この場合,
	  連想配列リテラルが最終引数となる.

	* parse.y: 配列参照の`[]'内が空でもよいことにした.

Tue Jan 24 14:45:15 1995  Yukihiro Matsumoto  (matz@ix-02)

	* class.c(rb_include_module): `-v'を指定した時にはincludeしたモジュー
	  ルとクラス定数が衝突していないかチェックする.

Mon Jan 23 10:42:09 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y(rb_class2name): メタクラスに関するbug fix.

	* dict.c: Dict[..]で辞書の生成が出来るように.

	* array.c: Array[..]で配列の生成が出来るように.

	* parse.y: 辞書の表現として{a,b,..}という形式も許すように.

Fri Jan 20 10:28:38 1995  Yukihiro Matsumoto  (matz@ix-02)

	* re.c(Regexp.quote): 正規表現をエスケープするメソッド.

	* 無駄なrb_intern()を減らした.

	* parse.y: `!', `!=', `!~'を特殊演算子にする.よってこれらは再定義
	  できなくなった.

Wed Jan 18 13:20:41 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: 文法の整理(unless,untilをなくした).

Tue Jan 17 11:11:27 1995  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c: defでメソッド再定義時にはスーパークラスのメソッドの可視
	  性を継承する.最初の定義の時は今までと同じデフォルト(トップレベ
	  ルで関数的,クラス定義内で通常メソッド).

	* object.c(Class::new): オブジェクトの生成時に関数的メ
	  ソッドinit_objectが必ず呼ばれるように変更.

	* eval.c: 未定義のメソッドに対してunknownメソッドが呼ばれるように
	  なった.エラー表示が今までと同じになるようにenvを調節している.

Fri Jan 13 14:40:30 1995  Yukihiro Matsumoto  (matz@ix-02)

	* gc.c: gcを若干書き換えて整理した.が,あまり変化はなかったようだ.

	* parse.y(yylex): symbolを\symから:symに変更した.

Thu Jan 12 01:39:28 1995  Yukihiro Matsumoto  (matz@dyna)

	* eval.c: 新規関数 rb_eval_string().

	* gc.c: gc_mark()を一部非再帰化.

	* variable.c(rb_ivar_{get,set}): インスタンス変数のアクセス周りで
	  チェックが足りなかった.

	* variable.c: クラス定数とインスタンス変数でハッシュテーブルを共有
	  するようにした.

	* ruby.h: iv_tblをRBasicからRObjectとRClassへ移動した.これにより,
	  ObjectとClass,Moduleしかインスタンス変数を持てなくなる.が,メモ
	  リ効率は若干向上する.

Tue Jan 10 00:58:20 1995  Yukihiro Matsumoto  (matz@dyna)

	* 0.64 released

	* eval.c: レシーバと引数は常にiterではない.

	* cons.c(aref,aset): negative offset対応.

Mon Jan  9 14:40:39 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: foo{..}の形式において,fooをローカル変数やクラス名では
	  なく,引数なしの関数型メソッド呼び出しとみなすようにした.

	* list.c -> cons.c: 名称変更(クラス名も).

	* list.c: a::b::c::nilをリスト(a b c)とみなすlisp形式から,a::b::c
	  をリスト(a b c)とみなすruby形式に変更.[], []=, eachもそれに会わ
	  せた仕様とする.

	* list.c: consペアとしての機能を強調.仕様変更.

Sat Jan  7 01:26:26 1995  Yukihiro Matsumoto  (matz@dyna)

	* eval.c: 自己代入の不具合修正.

	* eval.c(masign): 多重代入が配列もリストもとれるようにした.

	* list.c: assocを2要素の配列からList(CONSペア)に変更した.

Fri Jan  6 13:42:12 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: a[b]+=cやa.b+=cなどの自己代入形式で,aやbを2度評価しな
	  くなった.

	* eval.c: iterator設定のバグフィックス.

	* list.c: Listクラスを新設.

Thu Jan  5 13:55:00 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: SCOPEのメモリリークをなくした.

	* eval.c: built-inメソッドへの引数の引き渡し方を変更して,配列の生
	  成数を減らした.

	* re.c: match-dataを毎回生成することをやめた.`$~'をアクセスした時
	  にon-demandで生成する.

	* string.c etc: 不必要なmemmoveをmemcpyに置換.

	* parse.y: =~, !~は副作用があるのでコンパイル時に展開できない.

Tue Jan  3 02:04:36 1995  Yukihiro Matsumoto  (matz@dyna)

	* eval.c: rest引数のbug fix.

	* eval.c,gc.c: scopeをオブジェクトにした.

	* eval.c: envとscopeの扱いを変更した.

Wed Dec 28 09:46:57 1994  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: evalでローカル変数が追加された場合に対応した.

	* parse.y: 演算子を含むaliasのbug fix.

Tue Dec 27 16:45:20 1994  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: def A Bをalias A Bに変更.

	* eval.c: alias関係のbug修正.nodeをオブジェクト化した時にenbugし
	  たようだ.

	* signal.c: システムコールの再定義を止めた.

	* io.c(select): write/exceptのフラグ設定にバグ.

	* Makefile.in: static link用オプションをMake変数として独立させた.

Tue Dec 20 00:46:19 1994  Yukihiro Matsumoto  (matz@dyna)

	* 0.63 released

	* eval.c(rb_call): superの呼び出しで落ちる.argc, argvの設定を忘れ
	  ていた.

	* parse.y(read_escape): 展開エラー.

	* variable.c: 定義済みの変数のhookを変更しないように.

Mon Dec 19 12:01:10 1994  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y(cond): 条件式に代入式が置かれた場合,`-v'オプションで警
	  告が出るように.

	* parse.y(**): 冪乗演算子`**'の優先順位を単項演算子より高くした.

	* parse.y(and,or): 優先順位の低い演算子`and', `or'.

	* 0.62 released.

	* eval.c: 不必要になったPUSH_ENV, POP_ENVを減らした.

	* env.h: ENVIONからselfをはずした.PUSH_ENVはsuperの準備のためだけ
	  に用いることにした.

	* eval.c: 下記のオブジェクト化で遅くなった実行速度をもとに戻した.

Mon Dec 17 23:01:10 1994  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c: env.{argv,argc}とscope.local_varsのオブジェクト化.

	* eval.c: 1スコープ内で複数Blockを生成したときのバグを修正.

Fri Dec 16 15:52:06 1994  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: `&&'と`||'の両辺はいつでも条件式とした.

Thu Dec 15 00:16:04 1994  Yukihiro Matsumoto  (matz@dyna)

	* eval.c(Block): Blockオブジェクトを実現.

	* node.h: NODE_QLISTはなくなった.

	* eval.c(rb_call): 引数への代入を名前で一つずつ代入するのをやめて,
	  一度にコピーするようにした.

	* eval.c(rb_call): rubyで記述されたメソッドへの引数渡しをinline化.

	* eval.c: イテレータ判定処理の全面書き換え.不適切なイテレータ呼び
	  出しをなくした.例えば「[foo(),bar()]{i|baz(i)}」でfooもbarもイ
	  テレータとして呼び出され*ない*.

	* eval.c(rb_call): SCOPE処理をinline化.メソッド呼び出しの若干の高
	  速化.

Wed Dec 14 18:09:33 1994  Yukihiro Matsumoto  (matz@ix-02)

	* node.h: nodeもオブジェクトにする.よってGCで回収される.

Thu Dec  8 14:17:29 1994  Yukihiro Matsumoto  (matz@ix-02)

	* 0.60 released - alpha test baseline.