From 5d828b25d4ae30a000c054a724ac248dadbb97b3 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Tue, 10 Jan 1995 00:58:20 +0900 Subject: version 0.64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.64.tar.gz Tue Jan 10 00:58:20 1995 Yukihiro Matsumoto (matz@dyna) * 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変数として独立させた. --- ruby.h | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'ruby.h') diff --git a/ruby.h b/ruby.h index d20ed77a94..086c112084 100644 --- a/ruby.h +++ b/ruby.h @@ -3,12 +3,12 @@ ruby.h - $Author: matz $ - $Date: 1994/12/19 08:30:14 $ + $Date: 1995/01/10 10:42:52 $ created at: Thu Jun 10 14:26:32 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto - ************************************************/ +*************************************************/ #ifndef RUBY_H #define RUBY_H @@ -102,9 +102,10 @@ extern VALUE C_Data; #define T_BIGNUM 0x0c #define T_NODE 0x0d -#define T_CONS 0x0e +#define T_SCOPE 0x0e +#define T_CONS 0x0f -#define T_DATA 0xff +#define T_DATA 0x10 #define T_MASK 0xff @@ -237,16 +238,17 @@ struct RCons { #define FL_SINGLE (1<<8) #define FL_MARK (1<<9) -#define FL_LITERAL (1<<10) +#define FL_USER0 (1<<10) #define FL_USER1 (1<<11) #define FL_USER2 (1<<12) #define FL_USER3 (1<<13) #define FL_USER4 (1<<14) #define FL_USER5 (1<<15) #define FL_USER6 (1<<16) +#define FL_USER7 (1<<17) -#define FL_UMASK (0x3f<<11) +#define FL_UMASK (0xff<<10) #define FL_ABLE(x) (!(FIXNUM_P(x)||NIL_P(x))) #define FL_TEST(x,f) (FL_ABLE(x)?(RBASIC(x)->flags&(f)):0) @@ -260,6 +262,20 @@ extern VALUE Qself; #define ALLOC(type) (type*)xmalloc(sizeof(type)) #define REALLOC_N(var,type,n) (var)=(type*)xrealloc((char*)(var),sizeof(type)*(n)) +#define ALLOCA_N(type,n) (type*)alloca(sizeof(type)*(n)) + +#define MEMZERO(p,type,n) memset((p), 0, sizeof(type)*(n)) +#define MEMCPY(p1,p2,type,n) memcpy((p1), (p2), sizeof(type)*(n)) + +#ifdef SAFE_SIGHANDLE +extern int trap_immediate; +# define TRAP_BEG (trap_immediate=1) +# define TRAP_END (trap_immediate=0) +#else +# define TRAP_BEG +# define TRAP_END +#endif + VALUE rb_define_class(); VALUE rb_define_module(); -- cgit v1.2.3