2000-06-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0b0b2445fd
commit
4fcb1c47e5
28
ChangeLog
28
ChangeLog
@ -1,3 +1,11 @@
|
|||||||
|
Thu Jun 1 00:59:15 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_yield_0): convert Qundef to [].
|
||||||
|
|
||||||
|
Wed May 31 12:37:04 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_exec_end_proc): print error message from END procs.
|
||||||
|
|
||||||
Wed May 31 04:06:41 2000 Wakou Aoyama <wakou@fsinet.or.jp>
|
Wed May 31 04:06:41 2000 Wakou Aoyama <wakou@fsinet.or.jp>
|
||||||
|
|
||||||
* lib/cgi.rb: change: CGI#out() if "HEAD" == REQUEST_METHOD then
|
* lib/cgi.rb: change: CGI#out() if "HEAD" == REQUEST_METHOD then
|
||||||
@ -53,16 +61,12 @@ Thu May 25 22:01:32 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
|
|||||||
|
|
||||||
* regex.h: mswin32: export re_mbctab properly.
|
* regex.h: mswin32: export re_mbctab properly.
|
||||||
|
|
||||||
* win32/win32.def: add ruby_ignorecase and regex.c's exports.
|
* win32/ruby.def: add ruby_ignorecase and regex.c's exports.
|
||||||
|
|
||||||
Thu May 25 21:28:44 JST 2000 Minero Aoki <aamine@dp.u-netsurf.ne.jp>
|
Thu May 25 21:28:44 JST 2000 Minero Aoki <aamine@dp.u-netsurf.ne.jp>
|
||||||
|
|
||||||
* re.c (rb_reg_expr_str): escape un-printable character.
|
* re.c (rb_reg_expr_str): escape un-printable character.
|
||||||
|
|
||||||
Wed May 24 23:17:50 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
|
|
||||||
|
|
||||||
* win32/Makefile: remove unnecessary mv and rm command call.
|
|
||||||
|
|
||||||
Thu May 25 01:35:15 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Thu May 25 01:35:15 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
* parse.y (tokadd_escape): forgot to add `\x' to hexadecimal
|
* parse.y (tokadd_escape): forgot to add `\x' to hexadecimal
|
||||||
@ -200,7 +204,7 @@ Thu May 18 13:34:57 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
|||||||
* ext/socket/socket.c (ruby_connect): should not have replaced
|
* ext/socket/socket.c (ruby_connect): should not have replaced
|
||||||
thread_write_select() by rb_thread_fd_writable().
|
thread_write_select() by rb_thread_fd_writable().
|
||||||
|
|
||||||
Wed May 18 09:01:25 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
|
Thu May 18 09:01:25 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
|
||||||
|
|
||||||
* configure.in, ext/extmk.rb.in, lib/mkmf.rb: remove BeOS R3 support.
|
* configure.in, ext/extmk.rb.in, lib/mkmf.rb: remove BeOS R3 support.
|
||||||
Make a shared library (libruby.so) only if the --enable-shared
|
Make a shared library (libruby.so) only if the --enable-shared
|
||||||
@ -252,7 +256,7 @@ Tue May 16 17:00:05 2000 Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
|
|||||||
|
|
||||||
Tue May 16 11:51:31 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Tue May 16 11:51:31 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
* io.c (pipe_open): syncronize subprocess stdout/stderr.
|
* io.c (pipe_open): synchronize subprocess stdout/stderr.
|
||||||
|
|
||||||
Mon May 15 15:38:09 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Mon May 15 15:38:09 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
@ -288,7 +292,7 @@ Sun May 14 18:05:59 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
|||||||
|
|
||||||
Sun May 14 02:02:48 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
Sun May 14 02:02:48 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
||||||
* lib/irb/ruby-lex.rb: '/' should be escaped in charcter class.
|
* lib/irb/ruby-lex.rb: '/' should be escaped in character class.
|
||||||
|
|
||||||
Sun May 14 00:54:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
Sun May 14 00:54:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
||||||
@ -2811,7 +2815,7 @@ Fri May 7 08:17:19 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
|||||||
|
|
||||||
Fri May 7 01:42:20 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Fri May 7 01:42:20 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
* ext/socket/socket.c (tcp_s_gethostbyname): aboid using struct
|
* ext/socket/socket.c (tcp_s_gethostbyname): avoid using struct
|
||||||
sockaddr_storage.
|
sockaddr_storage.
|
||||||
|
|
||||||
Thu May 6 13:21:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Thu May 6 13:21:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
@ -2940,7 +2944,7 @@ Tue Apr 20 02:32:42 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
|||||||
|
|
||||||
* re.c (rb_reg_desc): did not print options properly.
|
* re.c (rb_reg_desc): did not print options properly.
|
||||||
|
|
||||||
* io.c (rb_file_s_open): intialize was called twice.
|
* io.c (rb_file_s_open): initialize was called twice.
|
||||||
|
|
||||||
Mon Apr 19 18:56:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Mon Apr 19 18:56:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
@ -3067,7 +3071,7 @@ Wed Mar 24 13:06:43 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
|
|||||||
|
|
||||||
* io.c (next_argv): need to check type for ARGV.shift.
|
* io.c (next_argv): need to check type for ARGV.shift.
|
||||||
|
|
||||||
* eval.c (blk_copy_prev): need to preverse outer scope as well as
|
* eval.c (blk_copy_prev): need to preserve outer scope as well as
|
||||||
outer frames.
|
outer frames.
|
||||||
|
|
||||||
* parse.y (rb_compile_string): return can appear within eval().
|
* parse.y (rb_compile_string): return can appear within eval().
|
||||||
@ -5932,7 +5936,7 @@ Tue Feb 10 17:29:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
|||||||
|
|
||||||
* string.c (str_oct): does recognize `0x'.
|
* string.c (str_oct): does recognize `0x'.
|
||||||
|
|
||||||
* sprintf.c (f_sprintf): use baes 10 for conversion from string to
|
* sprintf.c (f_sprintf): use base 10 for conversion from string to
|
||||||
integer.
|
integer.
|
||||||
|
|
||||||
Mon Feb 9 14:51:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Mon Feb 9 14:51:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
100
eval.c
100
eval.c
@ -1043,38 +1043,10 @@ static void rb_thread_wait_other_threads _((void));
|
|||||||
|
|
||||||
static int exit_status;
|
static int exit_status;
|
||||||
|
|
||||||
void
|
static int
|
||||||
ruby_run()
|
error_handle(ex)
|
||||||
|
int ex;
|
||||||
{
|
{
|
||||||
int state;
|
|
||||||
static int ex;
|
|
||||||
volatile NODE *tmp;
|
|
||||||
|
|
||||||
if (ruby_nerrs > 0) exit(ruby_nerrs);
|
|
||||||
|
|
||||||
Init_stack(&tmp);
|
|
||||||
PUSH_TAG(PROT_NONE);
|
|
||||||
PUSH_ITER(ITER_NOT);
|
|
||||||
if ((state = EXEC_TAG()) == 0) {
|
|
||||||
eval_node(ruby_top_self);
|
|
||||||
}
|
|
||||||
POP_ITER();
|
|
||||||
POP_TAG();
|
|
||||||
|
|
||||||
if (state && !ex) ex = state;
|
|
||||||
PUSH_TAG(PROT_NONE);
|
|
||||||
PUSH_ITER(ITER_NOT);
|
|
||||||
if ((state = EXEC_TAG()) == 0) {
|
|
||||||
rb_trap_exit();
|
|
||||||
rb_thread_cleanup();
|
|
||||||
rb_thread_wait_other_threads();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ex = state;
|
|
||||||
}
|
|
||||||
POP_ITER();
|
|
||||||
POP_TAG();
|
|
||||||
|
|
||||||
switch (ex & 0xf) {
|
switch (ex & 0xf) {
|
||||||
case 0:
|
case 0:
|
||||||
ex = 0;
|
ex = 0;
|
||||||
@ -1119,6 +1091,42 @@ ruby_run()
|
|||||||
rb_bug("Unknown longjmp status %d", ex);
|
rb_bug("Unknown longjmp status %d", ex);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
return ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ruby_run()
|
||||||
|
{
|
||||||
|
int state;
|
||||||
|
static int ex;
|
||||||
|
volatile NODE *tmp;
|
||||||
|
|
||||||
|
if (ruby_nerrs > 0) exit(ruby_nerrs);
|
||||||
|
|
||||||
|
Init_stack(&tmp);
|
||||||
|
PUSH_TAG(PROT_NONE);
|
||||||
|
PUSH_ITER(ITER_NOT);
|
||||||
|
if ((state = EXEC_TAG()) == 0) {
|
||||||
|
eval_node(ruby_top_self);
|
||||||
|
}
|
||||||
|
POP_ITER();
|
||||||
|
POP_TAG();
|
||||||
|
|
||||||
|
if (state && !ex) ex = state;
|
||||||
|
PUSH_TAG(PROT_NONE);
|
||||||
|
PUSH_ITER(ITER_NOT);
|
||||||
|
if ((state = EXEC_TAG()) == 0) {
|
||||||
|
rb_trap_exit();
|
||||||
|
rb_thread_cleanup();
|
||||||
|
rb_thread_wait_other_threads();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ex = state;
|
||||||
|
}
|
||||||
|
POP_ITER();
|
||||||
|
POP_TAG();
|
||||||
|
|
||||||
|
ex = error_handle(ex);
|
||||||
rb_exec_end_proc();
|
rb_exec_end_proc();
|
||||||
rb_gc_call_finalizer_at_exit();
|
rb_gc_call_finalizer_at_exit();
|
||||||
exit(ex);
|
exit(ex);
|
||||||
@ -3353,6 +3361,7 @@ rb_yield_0(val, self, klass, acheck)
|
|||||||
ruby_class = klass?klass:block->klass;
|
ruby_class = klass?klass:block->klass;
|
||||||
if (!self) self = block->self;
|
if (!self) self = block->self;
|
||||||
node = block->body;
|
node = block->body;
|
||||||
|
|
||||||
if (block->var) {
|
if (block->var) {
|
||||||
PUSH_TAG(PROT_NONE);
|
PUSH_TAG(PROT_NONE);
|
||||||
if ((state = EXEC_TAG()) == 0) {
|
if ((state = EXEC_TAG()) == 0) {
|
||||||
@ -3364,6 +3373,7 @@ rb_yield_0(val, self, klass, acheck)
|
|||||||
POP_TAG();
|
POP_TAG();
|
||||||
if (state) goto pop_state;
|
if (state) goto pop_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
PUSH_ITER(block->iter);
|
PUSH_ITER(block->iter);
|
||||||
PUSH_TAG(PROT_NONE);
|
PUSH_TAG(PROT_NONE);
|
||||||
if ((state = EXEC_TAG()) == 0) {
|
if ((state = EXEC_TAG()) == 0) {
|
||||||
@ -3372,6 +3382,7 @@ rb_yield_0(val, self, klass, acheck)
|
|||||||
result = Qnil;
|
result = Qnil;
|
||||||
}
|
}
|
||||||
else if (nd_type(node) == NODE_CFUNC) {
|
else if (nd_type(node) == NODE_CFUNC) {
|
||||||
|
if (val == Qundef) val = rb_ary_new2(0);
|
||||||
result = (*node->nd_cfnc)(val, node->nd_tval, self);
|
result = (*node->nd_cfnc)(val, node->nd_tval, self);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -3450,19 +3461,14 @@ massign(self, node, val, check)
|
|||||||
NODE *list;
|
NODE *list;
|
||||||
int i = 0, len;
|
int i = 0, len;
|
||||||
|
|
||||||
list = node->nd_head;
|
if (val == Qundef) {
|
||||||
|
val = rb_ary_new2(0);
|
||||||
if (TYPE(val) != T_ARRAY) {
|
}
|
||||||
#if 0
|
else if (TYPE(val) != T_ARRAY) {
|
||||||
if (!check && NIL_P(val))
|
|
||||||
val = rb_ary_new2(0);
|
|
||||||
else
|
|
||||||
val = rb_ary_new3(1, val);
|
|
||||||
#else
|
|
||||||
val = rb_ary_new3(1, val);
|
val = rb_ary_new3(1, val);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
len = RARRAY(val)->len;
|
len = RARRAY(val)->len;
|
||||||
|
list = node->nd_head;
|
||||||
for (i=0; list && i<len; i++) {
|
for (i=0; list && i<len; i++) {
|
||||||
assign(self, list->nd_head, RARRAY(val)->ptr[i], check);
|
assign(self, list->nd_head, RARRAY(val)->ptr[i], check);
|
||||||
list = list->nd_next;
|
list = list->nd_next;
|
||||||
@ -3470,7 +3476,9 @@ massign(self, node, val, check)
|
|||||||
if (check && list) goto arg_error;
|
if (check && list) goto arg_error;
|
||||||
if (node->nd_args) {
|
if (node->nd_args) {
|
||||||
if (node->nd_args == (NODE*)-1) {
|
if (node->nd_args == (NODE*)-1) {
|
||||||
/* ignore rest args */
|
if (check) {
|
||||||
|
goto arg_error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (!list && i<len) {
|
else if (!list && i<len) {
|
||||||
assign(self, node->nd_args, rb_ary_new4(len-i, RARRAY(val)->ptr+i), check);
|
assign(self, node->nd_args, rb_ary_new4(len-i, RARRAY(val)->ptr+i), check);
|
||||||
@ -3502,6 +3510,7 @@ assign(self, lhs, val, check)
|
|||||||
VALUE val;
|
VALUE val;
|
||||||
int check;
|
int check;
|
||||||
{
|
{
|
||||||
|
if (val == Qundef) val = Qnil;
|
||||||
switch (nd_type(lhs)) {
|
switch (nd_type(lhs)) {
|
||||||
case NODE_GASGN:
|
case NODE_GASGN:
|
||||||
rb_gvar_set(lhs->nd_entry, val);
|
rb_gvar_set(lhs->nd_entry, val);
|
||||||
@ -5403,7 +5412,7 @@ static void
|
|||||||
call_end_proc(data)
|
call_end_proc(data)
|
||||||
VALUE data;
|
VALUE data;
|
||||||
{
|
{
|
||||||
proc_call(data, Qnil);
|
proc_call(data, Qundef);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -5435,6 +5444,9 @@ rb_exec_end_proc()
|
|||||||
link = end_procs;
|
link = end_procs;
|
||||||
while (link) {
|
while (link) {
|
||||||
rb_protect((VALUE(*)())link->func, link->data, &status);
|
rb_protect((VALUE(*)())link->func, link->data, &status);
|
||||||
|
if (status) {
|
||||||
|
error_handle(status);
|
||||||
|
}
|
||||||
link = link->next;
|
link = link->next;
|
||||||
}
|
}
|
||||||
while (ephemeral_end_procs) {
|
while (ephemeral_end_procs) {
|
||||||
@ -5843,7 +5855,7 @@ callargs(args)
|
|||||||
{
|
{
|
||||||
switch (RARRAY(args)->len) {
|
switch (RARRAY(args)->len) {
|
||||||
case 0:
|
case 0:
|
||||||
return Qnil;
|
return Qundef;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
return RARRAY(args)->ptr[0];
|
return RARRAY(args)->ptr[0];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#define RUBY_VERSION "1.5.4"
|
#define RUBY_VERSION "1.5.4"
|
||||||
#define RUBY_RELEASE_DATE "2000-05-31"
|
#define RUBY_RELEASE_DATE "2000-06-01"
|
||||||
#define RUBY_VERSION_CODE 154
|
#define RUBY_VERSION_CODE 154
|
||||||
#define RUBY_RELEASE_CODE 20000531
|
#define RUBY_RELEASE_CODE 20000601
|
||||||
|
Loading…
x
Reference in New Issue
Block a user