Skip to content

Commit

Permalink
version 0.65
Browse files Browse the repository at this point in the history
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.65.tar.gz

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

	* 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しかインスタンス変数を持てなくなる.が,メモ
	  リ効率は若干向上する.
  • Loading branch information
matz authored and k0kubun committed Aug 17, 2019
1 parent 5d828b2 commit 897cf06
Show file tree
Hide file tree
Showing 59 changed files with 2,422 additions and 1,275 deletions.
35 changes: 17 additions & 18 deletions C-IF
Expand Up @@ -24,9 +24,6 @@ Ruby-C
�ѹ�������ϰʸ��self���ͤ��Τ�Τ��Ѥ�äƤ��ޤ��Τ�, ���̤ʻ���
���ʤ��¤��������ƤϤʤ�ʤ�.

����: �إå��ե�����"env.h"�򥤥󥯥롼�ɤ��Ƥ��ʤ��ե�����Ǥ�,
Qself������Ǥ���, ������ʸˡ���顼�Ȥʤ�.

TRUE

���: t���֥�������(���Υǥե������)
Expand All @@ -43,7 +40,7 @@ Ruby-C

VALUE rb_define_module(char *name)

Ruby�⥸�塼����������.
������Ruby�⥸�塼����������.

void rb_include_module(VALUE class, VALUE module)

Expand All @@ -67,8 +64,8 @@ Ruby-C

void rb_global_variable(VALUE *var)

GC�Τ���Ruby����ϥ�����������ʤ���, Ruby���֥������Ȥ�ޤ������
����ޡ�������.
GC�Τ��ᡤRuby�ץ�����फ��ϥ�����������ʤ���, Ruby���֥�������
��ޤ�����ѿ���ޡ�������.

void rb_read_only_hook()

Expand All @@ -87,33 +84,35 @@ Ruby-C

�᥽�åɤ��������. argc��self����������ο�. argc��-1�λ�, �ؿ���
�ϰ����ο�(self��ޤޤʤ�)����1����, �������������2�����Ȥ������
��Ϳ������. argc��-2�λ�, ������self, args(args�ϰ�����ޤ�ruby��
����)�Ȥ���������Ϳ������.
��Ϳ������(��3������self). argc��-2�λ�, ������self, args(args��
������ޤ�ruby������)�Ȥ���������Ϳ������.

rb_define_single_method(VALUE class, char *name, VALUE (*func)(), int argc)

�ðۥ᥽�åɤ��������. ������rb_define_method()��Ʊ��.

rb_scan_args(VALUE args, char *fmt, ...)
rb_scan_args(int atgc, VALUE *argv, char *fmt, ...)

args������Ϳ����줿������ʬ�򤹤�. fmt��ɬ�ܰ����ο�, �ղð����ο�,
�Ĥ�ΰ��������뤫����ꤹ��ʸ�����, "��������*"�Ȥ��������Ǥ���.
2 ���ܤο�����"*"�Ϥ��줾���ά��ǽ�Ǥ���. ��3�����ʹߤ��ѿ��ؤΥ�
���󥿤�, �����������Ǥ������ѿ��˳�Ǽ�����. �ղð������б������
����Ϳ�����Ƥ��ʤ������ѿ���Qnil�����������.
argc,argv������Ϳ����줿������ʬ�򤹤�. fmt��ɬ�ܰ����ο�, �ղð�
���ο�, �Ĥ�ΰ��������뤫����ꤹ��ʸ�����, "��������*"�Ȥ�������
�Ǥ���. 2 ���ܤο�����"*"�Ϥ��줾���ά��ǽ�Ǥ���. ɬ�ܰ��������
��ʤ�����0����ꤹ�롥��3�����ʹߤ��ѿ��ؤΥݥ��󥿤�, ��������
���Ǥ������ѿ��˳�Ǽ�����. �ղð������б����������Ϳ�����Ƥ���
�������ѿ���Qnil�����������.

Ruby�᥽�åɸƤӽФ�

VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)

�᥽�åɸƤӽФ�. ʸ���󤫤�mid�����뤿��ˤ�rb_intern()��Ȥ�.

rb_call_super(VALUE args)
VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)

�᥽�åɸƤӽФ�. ������argc,argv�������Ϥ���

�����ѡ����饹�Υ᥽�åɤ�ƤӽФ�. args�ϰ����ꥹ�ȤȤʤ�����.
args ��Qnil�λ��ϸ��ߤΥ᥽�åɤΰ����򤽤Τޤް����Ѥ�.
VALUE rb_eval_string(char *str)

ʸ���� <-> ID�Ѵ�
ʸ�����ruby�ȥ�����ץȤ��ƥ���ѥ��롦�¹Ԥ��롥

ID rb_intern(char *name)

Expand Down
86 changes: 86 additions & 0 deletions ChangeLog
@@ -1,5 +1,91 @@
Wed Feb 1 19:48:24 1995 Yukihiro Matsumoto (matz@ix-02)

* 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���
Expand Down
67 changes: 67 additions & 0 deletions MANIFEST
@@ -0,0 +1,67 @@
C-IF
ChangeLog
FAQ
MANIFEST
Makefile.in
README
ToDo
array.c
bignum.c
class.c
compar.c
configure
configure.in
cons.c
dbm.c
defines.h
dict.c
dir.c
dln.c
dln.h
enum.c
env.h
error.c
etc.c
eval.c
file.c
fnmatch.c
fnmatch.h
gc.c
getopt.c
getopt.h
getopt1.c
glob.c
gnuglob.c
ident.h
inits.c
io.c
io.h
main.c
math.c
node.h
numeric.c
object.c
pack.c
parse.y
process.c
random.c
range.c
re.c
re.h
regex.c
regex.h
ruby.1
ruby.c
ruby.h
signal.c
socket.c
spec
sprintf.c
st.c
st.h
string.c
struct.c
time.c
variable.c
version.c
version.h
4 changes: 2 additions & 2 deletions Makefile.in
Expand Up @@ -160,7 +160,7 @@ io.o: io.c ruby.h config.h defines.h io.h
main.o: main.c
math.o: math.c ruby.h config.h defines.h
numeric.o: numeric.c ruby.h config.h defines.h env.h
object.o: object.c ruby.h config.h defines.h env.h node.h st.h
object.o: object.c ruby.h config.h defines.h env.h st.h
pack.o: pack.c ruby.h config.h defines.h
process.o: process.c ruby.h config.h defines.h st.h
random.o: random.c ruby.h config.h defines.h
Expand All @@ -174,5 +174,5 @@ st.o: st.c st.h
string.o: string.c ruby.h config.h defines.h re.h regex.h
struct.o: struct.c ruby.h config.h defines.h env.h
time.o: time.c ruby.h config.h defines.h
variable.o: variable.c ruby.h config.h defines.h env.h node.h ident.h st.h
variable.o: variable.c ruby.h config.h defines.h env.h ident.h st.h
version.o: version.c ruby.h config.h defines.h version.h
6 changes: 4 additions & 2 deletions ToDo
@@ -1,10 +1,12 @@
* Process Class
* ���饹�饤�֥��θ�ľ��(UNIX��¸�򸺤餹)
* format��ǽ
* here document
* perl�Τ褦��setuid check
* tr����BSD�����ɤ������(�ޤ���copyright��Ϥä��ꤵ����)
* Ŭ�ڤ�signal handling
* dln��COFF�б�
* dln��COFF�б�(�ޤ���dlopen�б�)
* ruby����������ѿ�hook�μ¸�
* write debugger for ruby
* re-write regex code for speeding
* re-write regex code for speed
* byte code interpretor
37 changes: 20 additions & 17 deletions array.c
Expand Up @@ -77,32 +77,33 @@ ary_new4(n, elts)
return (VALUE)ary;
}

#if 0
VALUE
assoc_new(elm1, elm2)
VALUE elm1, elm2;
static VALUE
Sary_new(class)
VALUE class;
{
struct RArray *ary;
NEWOBJ(ary, struct RArray);
OBJSETUP(ary, class, T_ARRAY);

ary = (struct RArray*)ary_new2(2);
ary->ptr[0] = elm1;
ary->ptr[1] = elm2;
ary->len = 2;
ary->len = 0;
ary->capa = ARY_DEFAULT_SIZE;
ary->ptr = ALLOC_N(VALUE, ARY_DEFAULT_SIZE);

return (VALUE)ary;
}
#endif

static VALUE
Sary_new(class)
Sary_create(argc, argv, class)
int argc;
VALUE *argv;
VALUE class;
{
NEWOBJ(ary, struct RArray);
OBJSETUP(ary, class, T_ARRAY);

ary->len = 0;
ary->capa = ARY_DEFAULT_SIZE;
ary->ptr = ALLOC_N(VALUE, ARY_DEFAULT_SIZE);
ary->len = argc;
ary->capa = argc;
ary->ptr = ALLOC_N(VALUE, argc);
MEMCPY(ary->ptr, argv, VALUE, argc);

return (VALUE)ary;
}
Expand Down Expand Up @@ -648,7 +649,10 @@ static int
sort_2(a, b)
VALUE *a, *b;
{
VALUE retval = rb_funcall(*a, cmp, 1, *b);
VALUE retval;

if (!cmp) cmp = rb_intern("<=>");
retval = rb_funcall(*a, cmp, 1, *b);
return NUM2INT(retval);
}

Expand Down Expand Up @@ -936,6 +940,7 @@ Init_Array()
rb_include_module(C_Array, M_Enumerable);

rb_define_single_method(C_Array, "new", Sary_new, 0);
rb_define_single_method(C_Array, "[]", Sary_create, -1);
rb_define_method(C_Array, "to_s", Fary_to_s, 0);
rb_define_method(C_Array, "_inspect", Fary_inspect, 0);
rb_define_method(C_Array, "to_a", Fary_to_a, 0);
Expand Down Expand Up @@ -976,6 +981,4 @@ Init_Array()
rb_define_method(C_Array, "-", Fary_diff, 1);
rb_define_method(C_Array, "&", Fary_and, 1);
rb_define_method(C_Array, "|", Fary_or, 1);

cmp = rb_intern("<=>");
}
2 changes: 1 addition & 1 deletion bignum.c
Expand Up @@ -88,7 +88,7 @@ bignorm(x)

while (len-- && !ds[len]) ;
x->len = ++len;

if (len*sizeof(USHORT) < sizeof(VALUE) ||
(len*sizeof(USHORT) == sizeof(VALUE) &&
ds[sizeof(VALUE)/sizeof(USHORT)-1] <= 0x3fff)) {
Expand Down

0 comments on commit 897cf06

Please sign in to comment.