summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: ce97fa374c7286976adfb463741a79b624ff2f3d (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
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
Fri May 19 15:33:23 1995  Yukihiro Matsumoto  <matz@ix-02>

	* version 0.76

Fri May 19 00:48:08 1995  Yukihiro Matsumoto  (matz@dyna)

	* string.c (Fstr_each): イテレータブロック中で文字列の変更が行われ
	  たかどうかをチェック.ポインタの値が変わっていれば例外を発生する.

	* ruby-mode.el: ruby-electric-braceの新設.

Thu May 18 12:27:23 1995  Yukihiro Matsumoto  <matz@ix-02>

	* string.c (Fstr_tr): trの置換対象に`\0'を含む時に正しく置換を行わ
	  ないバグがあった.更に置換文字列をASCII順に指定しないと動作しな
	  い問題もあった.結果としてtrを書き換えたので,copyrightの問題は
	  無くなった(と思う).

	* gc.c (gc): the_scopeをマークしていなかったので,ローカル変数が間
	  違って開放される場合があった.

	* gc.c (mark_locations_array): 若干の高速化.

Mon May 15 11:43:49 1995  Yukihiro Matsumoto  <matz@ix-02>

	* ext/extmk.rb.in: Dynamic Loadモジュールのコンパイル用チェックを
	  行うruby script.autoconfに近い感覚で使える.新しいモジュールを
	  提供したい人はextの下にディレクトリを作るだけで良い.必須のファ
	  イルはファイル名の一覧を記録した`MANIFEST'というファイルのみ.必
	  要に応じて`depend'(ファイルの依存関係を記述するファイル gcc -MM
	  の出力),`extconf.rb'(コンパイル用にライブラリと関数の存在チェッ
	  クするファイル)を用意できる.

	* eval.c (rb_call): rubyメソッドの引数チェック時に未初期化の
	  jmp_bufを使用していた.

	* parse.y: `or'と`and'の優先順位を同じにした.

Wed May  3 18:21:36 1995  Yukihiro Matsumoto  (matz@dyna)

	* dln.c: Linuxでは`__.SYMDEF/'であった.

	* dln.c: system callのエラーチェックを忘れていた.

Wed Apr 26 09:50:56 1995  Yukihiro Matsumoto  (matz@ix-02)

	* parse.y: イテレータブロックの変数宣言を`|'で括るようにした.これ
	  でイテレータ変数がない時は宣言そのものを省略できる.文法の変更は
	  久しぶりだ.

Tue Apr 25 12:04:17 1995  Yukihiro Matsumoto  (matz@ix-02)

	* eval.c(require): loadからダイナミックロードの機能を移してきた.
	  さらに拡張子の補完機能を追加してユーザがdln/dlopenの差を意識する
	  必要のないようにした.

	* string.c(sub,sub): イテレータとしても動作するように.

	* object.c: init_object -> initialize.

Mon Apr 24 14:22:39 1995  Yukihiro Matsumoto  (matz@ix-02)

	* NEWS-OS 3.4対応

	* io.c: Solarisのstdioの動作が違うようだ.signalでEOFを返してしま
	  う….perlでも同様の問題がある.

Fri Apr 21 20:04:39 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.75

	* signal.c: trapがなくなっていた.うーむ.

	* configure: Solaris 2.3対応.

	* io.c: #elifのないcppもある.

	* dir.c: autoconf 2.xへの対応が不十分

Thu Apr 20 12:31:24 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.74

	* env.h, gc.c, regex.c: IRIXへの移植対応

	* configure: picを生成するoptionの検出のため,システムタイプをチェッ
	  クするように.

Tue Apr 18 19:08:17 1995  Yukihiro Matsumoto  (matz@ix-02)

	* gc.c(xrealloc): ptr=nilの時,malloc()と同じ働きを

	* array.c(astore): 空の配列の0番目の要素に代入するとsize=0で
	  realloc()を呼んでいた.

	* configure, glob.c: Solaris 2.xでコンパイルできるように

Mon Apr 10 18:36:06 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.73

Fri Apr  7 13:51:08 1995  Yukihiro Matsumoto  (matz@ix-02)

	* cons.c->assoc.c: consの余計な機能は外してpairとしての機能だけを
	  残した.enumerableをincludeするのもやめた.

	* string.c(esub): 文字列置換イテレータ.perlのs///eの相当する.

Wed Apr  5 11:35:21 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.72

	* EWS4800対応

	* file.c: utimesがない時はutimeを使うように.

Mon Apr  3 15:19:41 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.71

	* regexp.c(re_match): バグがあった.match_2を削除した時にenbugして
	  いたのだった.

Mon Mar 27 15:41:43 1995  Yukihiro Matsumoto  (matz@ix-02)

	* dict.c: Dict->Hashに全面的に移行.

Thu Mar 23 20:30:00 1995  Yukihiro Matsumoto  (matz@ix-02)

	* dbm.c,socket.c: extディレクトリに分離.

	* configure: dln周りのチェックの強化

	* dln.c: initの呼び出しをdlopen()版に合わせた.

Mon Mar 20 17:45:08 1995  Yukihiro Matsumoto  (matz@ix-02)

	* configure: autoconf 2.2に対応(一部).

Fri Mar 17 15:56:44 1995  Yukihiro Matsumoto  (matz@ix-02)

	* dln.c: dlopenのあるマシンではそちらを使うように.ただし,ちゃん
	  と動いているかどうかは自信がない.

	* regex.c: virtual concatinationをやめた.

Thu Mar 16 11:32:57 1995  Yukihiro Matsumoto  (matz@ix-02)

	* version 0.70

	* eval.c,regex.c: gccでのコンパイルエラー.

	* io.c: inplace-editで拡張子が指定されない場合,もとのファイルを削
	  除する.

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.