* configure.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): linker
argument to link static/shared library respectively.
* Makefile.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): added.
* bcc32/Makefile.sub, win32/Makefile.sub: ditto.
* instruby.rb (LIBRUBY_A): install to libdir.
* lib/mkmf.rb (link_command): link static library of ruby, or
try_run fails unless LIBRUBY_SO is installed. [ruby-dev:18646]
* eval.c (call_trace_func): toplevel caller was missing.
[ruby-dev:18754]
* eval.c (proc_to_s): adjust created line number.
* parse.y (primary, do_block, brace_block): adjust line number of
block to beginning line, instead of the first statement inside
the block.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
asin, acosh, atanh, log, log10 and sqrt.
* eval.c (rb_add_method): initialize should always be private.
* parse.y (expr): add rescue modifier rule.
* parse.y (command_call): return, break and next with argument is
now part of this rule.
* parse.y (yylex): "a" in "a /5" should be considered as a local
variable. [experimental]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
really a module, whose methods must be safe for reciever's type.
* eval.c (rb_eval): nosuper should not be inherited unless the
overwritten method is an undef placeholder.
* parse.y (primary): allow 'when'-less case statement; persuaded
by Sean Chittenden.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
execution of the class body.
* parse.y (primary): remove "return outside of method" check at
compile time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (ruby_run): should set toplevel visibility again here.
* eval.c (rb_eval): should not rely on ruby_class == rb_cObject
check. Besides allow implicit publicity for attribute set
methods.
* parse.y (primary): need not to check class_nest, just set
whether method is an attrset or not.
* string.c (rb_str_each_line): p might be at the top of the
string.
* class.c (rb_make_metaclass): class of metaclass should be
metaclass of superclass, unless class itself is a metaclass;
class of metaclass of metaclass should point back to self.
eh, confusing, isn't it.
* class.c (rb_singleton_class): check if its class is singleton
AND attached to self.
* eval.c (rb_eval): should define class/module under ruby_cbase.
* eval.c (rb_eval): should set class/module path based on
ruby_cbase, not ruby_class.
* eval.c (module_setup): use ruby_cbase instead of ruby_class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
backtrace cannot be genetated.
* intern.h (ruby_yyparse): rather than yyparse().
* parse.y (yylex): nextc() returns -1 at end of input, not 0.
* parse.y (newline_node): reduce deplicated newline node.
* parse.y (literal_concat): get rid of warning.
* parse.y (new_evstr): fixed junk code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to obj.meta.meta.super (ruby-bugs-ja:PR#324).
* parse.y (yylex): the warning message "invalid
character syntax" was never issued.
* marshal.c (r_bytes): do not use alloca (ruby-bugs:PR#382).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enum.c (enum_find): do not use rb_eval_cmd(); should not accept
a string for if_none.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (jump_tag_but_local_jump): preserve retval in
LocalJumpError exceptions.
* parse.y (command): no more check for "super outside of method".
* eval.c (rb_mod_define_method): should set last_class and
last_func in the block->frame.
* eval.c (error_handle): should handle TAG_THROW as well.
* parse.y (yylex): new decimal notation '0d4567'.
* parse.y (yylex): new octal notation '0o777'.
* parse.y (string_content): every string_content node should
return string only. use NODE_EVSTR to coercing.
* eval.c (rb_eval): NODE_EVSTR support.
* re.c (rb_reg_quote): avoid unnecessary string allocation.
* string.c (get_pat): quote metachracters before compiling a
string into a regex.
* string.c (rb_str_split_m): special treatment of strings of size
1, but AWK emulation. now uses get_pat().
* string.c (rb_str_match_m): quote metacharacters.
* string.c (rb_str_match2): ditto.
* ext/socket/socket.c (sock_addrinfo): make all 3 versions of
getaddrinfo happy. [ruby-core:00184]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c (rb_any_to_a): declare Object#to_a to be obsolete.
* object.c (rb_Array): do not convert nil into [] automagically.
* object.c (rb_Integer): use "to_int" instead of
"to_i". [experimental]
* object.c (nil_to_f): new method.
* object.c (rb_Integer): Symbols and nil should cause error.
* object.c (rb_Float): nil should cause error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
string literals.
* parse.y (here_document): should be aware of __END__ within here
documents.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (eval): not enforce to make assigned variables dynamic.
* parse.y (string): split rules to strings/xstring/regexp to allow
arbitrary statements inside string interpolation.
* parse.y (here_document): splitted into three phases.
* parse.y (literall_append, literal_concat): added.
append/concatinate string literals.
* sample/test.rb (valid_syntax): adjust line number for BEGIN.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
etc, instead.
* parse.y (yylex): no here document after a dot.
* parse.y (yylex): should have set lex_state after '`'.
* parse.y (yylex): should have set lex_state properly after
tOP_ASGN.
* bignum.c (rb_big2dbl): return canonical HUGE_VAL for infinity.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
suggested by Guy Decoux.
* hash.c (rb_hash_s_create): use rb_hash_aset() instead of calling
st_insert() directly, to dup&freeze string keys.
* parse.y (yylex): proper error message for "@@0".
* parse.y (yylex): paren to parse_string() must be zero for
unparenthesized strings.
* parse.y (str_extend): broken string when unterminated "#{".
* enum.c (enum_sort_by): had a bug in 1 element enumeration.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e