instead of Bison or byacc.
* parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least
10000 (Bison's default) since some old versions of Yacc define it as
low as 150 by default, which is too low for Ruby to parse some files,
such as date/format.rb. Among other issues, the parse problem causes
"make test" to fail.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(i.e. not via lambda call), should be treated just like yield.
[ruby-dev:21726]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
should yield single array of two elements, not two values.
[ruby-dev:21726]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* marshal.c (r_object0): TYPE_USRMARSHAL should restore extended
modules before invoking marshal_load. these two fixes are done
by Masatoshi Seki <m_seki@mva.biglobe.ne.jp>.
* parse.y (yylex): argument parentheses preceded by spaces should
be warned; not error. [ruby-talk:84103]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
for objects that cannot be dumped, if they traversed from
marshal_dump. they are just ignored.
* gc.c (Init_stack): cast "space" (doble value) into unsigned
int. should run on PowerPC.
* eval.c (rb_eval): should not execute else part if any exception
is caught. [ruby-dev:21482]
* parse.y (f_args): should allow unparenthesized block argument.
* parse.y (f_rest_arg): should allow unparenthesized rest
argument.
* lib/irb/ruby-lex.rb (RubyLex::identify_identifier): support
'class ::Foo' syntax. [ruby-talk:83514]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
%w/%W, otherwise they are ignored only when interpolation is
enabled. [ruby-dev:21325]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Dave Butcher.
* eval.c (Init_Thread): protect thgroup_default. suggested by Guy
Decoux in [ruby-talk:80623]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
consistent with *a = [1], which set [[1]] to a.
* node.h: merge NODE_RESTARY to NODE_SPLAT.
* parse.y: rules simplified a bit by removing NODE_RESTARY.
* sample/test.rb: updated for new assignment behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-core:01408]
* eval.c (Init_Thread): Continuation#[] added. [ruby-talk:79028]
* parse.y (mlhs_node): should allow "::Foo" (colon3) as lhs.
* parse.y (lhs): ditto.
* parse.y (yylex): should return tCOLON3 right after kCLASS.
[ruby-talk:78918]
* error.c (exc_initialize): was converting argument to string too
eagerly. Only check was needed. [ruby-talk:78958]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (rb_load): rb_prohibit_interrupt should not underflow.
* parse.y (NODE_STRTERM, tokadd_string, parse_string): moved string
nest level from a static variable to NODE_STRTERM.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-dev:20360]
* eval.c (rb_eval): support new_yield() change.
* variable.c (rb_const_get_0): warn for Foo::BAR when BAR is a
toplevel constant (i.e. a constant defined under Object).
[ruby-list:36935]
* parse.y (no_blockarg): separate no block argument check and
ret_args argument processing.
* range.c (rb_range_beg_len): out_of_range check after adjusting
end point. [ruby-dev:20370]
* parse.y (call_args): the first argument to arg_cancat() should
be NODE_LIST. [ruby-core:01151]
* eval.c (rb_eval): should dispatch based on ID type.
* eval.c (rb_yield_0): should restore scope_vmode during yield.
[ruby-dev:20361]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
warned for "void value expression". [ruby-talk:72989]
* gc.c (add_final): should determine type by respond_to?
* gc.c (define_final): ditto.
* io.c (rb_io_ctl): should not depend on respond_to?
* range.c (range_step): rb_check_string_type().
* process.c (proc_setgroups): new functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
before argument parentheses".
* io.c (argf_read): ARGF.read() should read all argument files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
warn_unless_e_option, warning_unless_e_option, range_op,
cond0): adjust line number in warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
They are like instance and its class. [ruby-core:00941]
* parse.y (yylex): disallow global variables like "$1ve".
[ruby-core:00945]
* marshal.c (marshal_dump): Marshal.dump(0, false) should cause an
error. (ruby-bugs-ja PR#421)
* regex.c (re_compile_pattern): warn if '-' is the edge of
character range.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (proc_detach): new method Proc#detach(pid) which
create background watcher thread to issue waitpid. [new]
* process.c (rb_detach_process): utility function to detach
process from C code.
* ext/pty/pty.c (pty_finalize_syswait): terminate watcher thread,
and detach child process (by creating new idle waitpid watcher
thread).
* ext/pty/pty.c (pty_syswait): may lost signal stopped child.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (rb_io_fread): should not clearerr() if there's no filled
buffer (i.e. rb_io_fread() returning zero).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_thread_die(). this change was suggested by Rudi Cilibrasi
<cilibrar@drachma.ugcs.caltech.edu>.
* eval.c (rb_thread_start_0): main thread swapped by fork() may
terminate rb_thread_start_0() successfully. call ruby_stop(0);
this change too was suggested by Rudi.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (primary): "self[n]=x" can be legal even when "[]=" is
private. changes submitted in [ruby-talk:63982]
* parse.y (aryset): ditto.
* parse.y (attrset): "self.foo=x" can be legal even when "foo="
is private.
* eval.c (is_defined): private "[]=" and "foo=" support.
* eval.c (rb_eval): ditto.
* eval.c (assign): ditto.
* eval.c (rb_eval): "foo=" should not always be public.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e