Skip to content

Commit

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

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で回収される.
  • Loading branch information
matz authored and k0kubun committed Aug 17, 2019
1 parent 00e36aa commit b3f9ba5
Show file tree
Hide file tree
Showing 34 changed files with 804 additions and 769 deletions.
42 changes: 41 additions & 1 deletion ChangeLog
@@ -1,4 +1,44 @@
Mon Dec 19 12:01:10 1994 Yukihiro Matsumoto (matz@ix-02)

* 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: `&&'��`||'��ξ�դϤ��ĤǤ��P�Ȥ�����

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�Dz������롥

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

* 0.60 released - alpha test baseline.

7 changes: 4 additions & 3 deletions Makefile.in
Expand Up @@ -16,7 +16,7 @@ CFLAGS = -g
LDFLAGS = @STATIC@ $(CFLAGS)
LIBS = @LIBS@
DEFS = @DEFS@
MISSING = @LIBOBJS@
MISSING = @LIBOBJS@ @ALLOCA@

prefix = /usr/local
binprefix =
Expand Down Expand Up @@ -78,8 +78,7 @@ OBJS = array.o \
time.o \
variable.o \
version.o \
$(MISSING) \
@ALLOCA@
$(MISSING)

PROGRAM = ruby

Expand All @@ -95,6 +94,8 @@ $(bindir)/$(PROGRAM): $(PROGRAM)
install: $(bindir)/$(PROGRAM)

clean:; @rm -f $(OBJS)

realclean:; @rm -f $(OBJS)
@rm -f core ruby *~ config.status Makefile
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
Expand Down
7 changes: 1 addition & 6 deletions class.c
Expand Up @@ -3,7 +3,7 @@
class.c -
$Author: matz $
$Date: 1994/11/01 08:27:48 $
$Date: 1994/12/16 00:59:42 $
created at: Tue Aug 10 15:05:44 JST 1993
Copyright (C) 1994 Yukihiro Matsumoto
Expand Down Expand Up @@ -86,7 +86,6 @@ rb_define_class_id(id, super)

/* make metaclass */
RBASIC(cls)->class = single_class_new(super?super->class:C_Class);
literalize(RBASIC(cls)->class);

return (VALUE)cls;
}
Expand Down Expand Up @@ -193,10 +192,6 @@ rb_add_method(class, mid, node, noex)
Warning("redefine %s", rb_id2name(mid));
}
rb_clear_cache(body);
freenode(body);
}
if (node && node->type != NODE_FBODY) {
node = NEW_FBODY(node, mid);
}
body = NEW_METHOD(node, noex);
st_insert(class->m_tbl, mid, body);
Expand Down
22 changes: 11 additions & 11 deletions configure.in
Expand Up @@ -16,17 +16,20 @@ fi
AC_SUBST(STATIC)dnl
AC_PROG_YACC
AC_PROG_INSTALL
AC_HAVE_HEADERS(unistd.h syscall.h a.out.h)
AC_HAVE_HEADERS(unistd.h stdlib.h syscall.h a.out.h dirent.h\
string.h strings.h)
AC_DIR_HEADER
AC_GETGROUPS_T
AC_RETSIGTYPE
AC_REPLACE_FUNCS(memmove mkdir strerror strftime)
AC_REPLACE_FUNCS(strstr strtol strtoul strdup)
AC_HAVE_FUNCS(fmod killpg socket random)
AC_HAVE_FUNCS(wait4 waitpid syscall getcwd)
AC_HAVE_FUNCS(setruid seteuid setreuid)
AC_HAVE_FUNCS(setrgid setegid setregid)
AC_HAVE_FUNCS(getpriority sigprocmask)
AC_HAVE_LIBRARY(m, [LIBS="$LIBS -lm"])
AC_HAVE_LIBRARY(dbm, [LIBS="$LIBS -ldbm"])
AC_HAVE_LIBRARY(socket, [LIBS="$LIBS -lsocket"])
AC_HAVE_LIBRARY(crypt, [LIBS="$LIBS -lcrypt"])
AC_REPLACE_FUNCS(memmove mkdir strerror strftime\
strstr strtol strtoul strdup)
AC_HAVE_FUNCS(fmod killpg socket random wait4 waitpid syscall getcwd\
setruid seteuid setreuid setrgid setegid setregid\
getpriority sigprocmask)
AC_FUNC_CHECK(setenv, [], AC_HAVE_FUNCS(putenv))

case "$LIBOBJS" in
Expand Down Expand Up @@ -56,8 +59,5 @@ AC_COMPILE_CHECK([pw_comment in struct passwd], [#include <pwd.h>],
[struct passwd pw; pw.pw_comment;], AC_DEFINE(PW_COMMENT))
AC_COMPILE_CHECK([pw_expire in struct passwd], [#include <pwd.h>],
[struct passwd pw; pw.pw_expire;], AC_DEFINE(PW_EXPIRE))
AC_HAVE_LIBRARY(m, [LIBS="$LIBS -lm"])
AC_HAVE_LIBRARY(dbm, [LIBS="$LIBS -ldbm"])
AC_HAVE_LIBRARY(socket, [LIBS="$LIBS -lsocket"])
AC_OUTPUT(Makefile)
mv confdefs.h config.h
2 changes: 1 addition & 1 deletion defines.h
Expand Up @@ -3,7 +3,7 @@
defines.h -
$Author: matz $
$Date: 1994/11/18 01:37:26 $
$Date: 1994/12/09 01:28:22 $
created at: Wed May 18 00:21:44 JST 1994
************************************************/
Expand Down
16 changes: 12 additions & 4 deletions dict.c
Expand Up @@ -3,7 +3,7 @@
dict.c -
$Author: matz $
$Date: 1994/12/06 09:29:53 $
$Date: 1994/12/19 08:30:00 $
created at: Mon Nov 22 18:51:18 JST 1993
Copyright (C) 1994 Yukihiro Matsumoto
Expand Down Expand Up @@ -90,8 +90,16 @@ Fdic_indexes(dic, args)
struct RArray *new;
int i = 0;

if (!args || args->len == 1 && TYPE(args->ptr) != T_ARRAY) {
args = (struct RArray*)rb_to_a(args->ptr[0]);
if (!args || args->len == 0) {
Fail("wrong # of argment");
}
else if (args->len == 1) {
if (TYPE(args->ptr[0])) {
args = (struct RArray*)rb_to_a(args->ptr[0]);
}
else {
args = (struct RArray*)args->ptr[0];
}
}

new = (struct RArray*)ary_new2(args->len);
Expand Down Expand Up @@ -583,7 +591,7 @@ Init_Dict()
rb_define_single_method(envtbl,"to_s", Fenv_to_s, 0);
rb_include_module(CLASS_OF(envtbl), M_Enumerable);

rb_define_variable("$ENV", &envtbl, Qnil, rb_readonly_hook);
rb_define_variable("$ENV", &envtbl, Qnil, rb_readonly_hook, 0);

rb_define_private_method(C_Kernel, "getenv", Fgetenv, 1);
rb_define_private_method(C_Kernel, "setenv", Fsetenv, 2);
Expand Down
4 changes: 2 additions & 2 deletions dir.c
Expand Up @@ -3,20 +3,20 @@
dir.c -
$Author: matz $
$Date: 1994/12/06 09:29:55 $
$Date: 1994/12/09 09:40:18 $
created at: Wed Jan 5 09:51:01 JST 1994
Copyright (C) 1994 Yukihiro Matsumoto
************************************************/

#include <sys/param.h>
#include "ruby.h"

#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <sys/param.h>

/* unistd.h defines _POSIX_VERSION on POSIX.1 systems. */
#if defined(DIRENT) || defined(_POSIX_VERSION)
Expand Down
2 changes: 1 addition & 1 deletion dln.c
Expand Up @@ -3,7 +3,7 @@
dln.c -
$Author: matz $
$Date: 1994/11/18 01:37:28 $
$Date: 1994/12/09 01:28:23 $
created at: Tue Jan 18 17:05:06 JST 1994
Copyright (C) 1994 Yukihiro Matsumoto
Expand Down
14 changes: 4 additions & 10 deletions env.h
Expand Up @@ -3,36 +3,30 @@
env.h -
$Author: matz $
$Revision: 1.5 $
$Date: 1994/11/01 08:27:51 $
$Revision: 1.7 $
$Date: 1994/12/19 08:30:01 $
created at: Mon Jul 11 11:53:03 JST 1994
************************************************/
#ifndef ENV_H
#define ENV_H

extern struct ENVIRON {
VALUE self;
int argc;
VALUE *argv;
VALUE arg_ary;
ID last_func;
struct RClass *last_class;
struct ENVIRON *prev;
} *the_env;

#undef Qself
#define Qself the_env->self

extern struct SCOPE {
ID *local_tbl;
VALUE *local_vars;
VALUE block;
int flags;
VALUE var_ary;
struct SCOPE *prev;
} *the_scope;

#define VARS_MALLOCED (1<<2)

extern int rb_in_eval;

#endif /* ENV_H */

0 comments on commit b3f9ba5

Please sign in to comment.