Граф коммитов

507 Коммитов

Автор SHA1 Сообщение Дата
matz 4d43632852 * parse.y (call_args): allow splat argument after unpacked
assocs like 1.8 does.

* parse.y (call_args): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-08 05:58:06 +00:00
ko1 78029f00d5 * parse.y (new_yield), compile.c (iseq_compile_each): fix
passing parameter.
* eval.c, eval_jump.h: simplify rb_yield*.
* proc.c (proc_mark): fix to mark proc->block.proc.
* proc.c (Init_Proc): add Proc#lambda?
* test/ruby/test_lambda.rb: add some tests.
* vm.c (invoke_block): fix to check lambda block or not.
* vm.c (th_yield_setup_args): fix to check arguments size
  when lambda block.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-05 17:26:00 +00:00
nobu 194a01a484 * compile.c: fixed indentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-05 04:49:54 +00:00
nobu 99d65b14b4 * compile.c, dir.c, eval.c, eval_jump.h, eval_method.h, numeric.c,
pack.c, parse.y, re.c, thread.c, vm.c, vm_dump.c, call_cfunc.ci,
  thread_pthread.ci, thread_win32.ci: fixed indentation.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-05 04:25:10 +00:00
nobu 0d2109239d * parse.y (open_args, arg_ambiguous, parser_warning): should not use
rb_warning in the parser.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-29 15:22:49 +00:00
matz 2d239b4745 * parse.y (f_arg): remove typo from ripper description.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-17 04:31:05 +00:00
ko1 ebaec402a7 * parse.y, compile.c (set_arguments): fix to support in-paren
parameter (ex: def foo((a, b))).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-17 04:25:18 +00:00
nobu a1295b0f79 * iseq.c (iseq_data_to_ary): internal IDs must not be exposed.
[ruby-core:11073]

* parse.y (internal_id_gen): now returns scope local ID instead of
  global one.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-11 06:26:06 +00:00
nobu dc2a434cf2 * parse.y (POINTER_P): pointer may be larger than long.
* parse.y (vtable_size, vtable_included, vtable_tblcpy,
  vtable_to_tbl): constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-10 06:08:20 +00:00
nobu 0cc90b3865 * parse.y: removed garbage spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-02 00:39:34 +00:00
nobu 50e6933b09 * error.c, parse.y, ruby.h (rb_compile_warn, rb_compile_warning): warn
for compilation.  the parser should no longer use rb_warn() and
  rb_warning().  [ruby-dev:30121]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-01 21:45:48 +00:00
nobu f8c2658700 * parse.y (assoc): result of assoc_new needs to be an assoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-01 20:44:25 +00:00
nobu f70f8173cd * parse.y: fixes for ripper.
* parse.y (primary): reduced duplcated code.

* parse.y (f_arg_item): should not override by meaningless value.

* parse.y (f_arg, assocs): should not use $$ before assigned.

* parse.y (assoc_list): dispatch assoclist_from_args for assocs as
  well as args.

* parse.y (assoc): return assoc if dispatched result is $1.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-26 08:18:00 +00:00
matz 138362834f * parse.y (symbol): symbols should be followed by EXPR_ENDARG.
* parse.y (dsym): ditto.

* parse.y (parser_yylex): strings should be followed by
  EXPR_ENDARG.

* parse.y (parser_yylex): ditto for numbers.

* parse.y (parser_yylex): EXPR_ENDARG after ']' and '}'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-20 09:38:16 +00:00
matz 380ea10dfa * parse.y (parser_yylex): should set command_start after block
starting "do"s and braces.  [ruby-core:10916]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-16 08:12:51 +00:00
ko1 bb7a2d40ff * compile.c, parse.y, eval.c, intern.h, iseq.c, lex.c, node.h,
proc.c, vm.c, vm_macro.def, vm_macro.def, yarvcore.c, yarvcore.h,
  debug.c, debug.h: merge half-baked-1.9 changes.  The biggest change
  is to change node structure around NODE_SCOPE, NODE_ARGS.  Every
  scope (method/class/block) has own NODE_SCOPE node and NODE_ARGS
  represents more details of arguments information.  I'll write a
  document about detail of node structure.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-21 11:15:15 +00:00
nobu da3558fddb * parse.y (parser_yylex), win32/win32.c (rb_w32_utime): fixed
indentation broken at YARV merger.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-04 16:36:36 +00:00
nobu cd725929d7 * parse.y (stmt, arg): should not omit lhs of OP_ASGN1 even if
empty.  [ruby-dev:30452]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-01 12:38:05 +00:00
aamine b0d8301744 * parse.y (f_arg, opt_f_block_arg): ripper should export VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 08:45:58 +00:00
matz 02c147f04e * parse.y (struct local_vars): remove unused nofree member from
struct.

* parse.y (parser_free): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 07:05:48 +00:00
aamine dfd5c685c1 * parse.y (program): remove useless assignment to reduce warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 06:51:59 +00:00
matz b2035db684 * parse.y (lambda): remove unused clause from the rule to stop
warning.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 06:48:05 +00:00
ko1 0fe72040e4 * parse.y, node.h, compile.c: change node tree structure. a purpose
of this change is to unify argument structure of method and block.
  this change prohibits duplicate block parameter name.
  new argument infromation:
  NODE_ARGS     [m: int, o: NODE_OPT_ARG, ->]
  NODE_ARGS_AUX [r: ID, b: ID, ->]
  NODE_ARGS_AUX [Pst: id, Plen: int, init: NODE*]
  optarg information:
  NODE_OPT_ARGS [idx, expr, ->]
* vm_macro.def: ditto.
* gc.c: ditto.
* iseq.c: ditto.
* compile.h: fix debug function name.
* test/ripper/test_scanner_events.rb: |_,_,foo| -> |_1,_2,foo|
* test/ruby/test_lambda.rb: disalbe test temporarily.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 02:07:05 +00:00
aamine 67c94cae96 * parse.y (lambda): add ripper event. This fixes bus error on "make test-all".
* ext/ripper/extconf.rb: do not stop build.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-23 03:25:26 +00:00
matz 606734f0b1 * parse.y: remove dyna_check_gen() prototype.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-23 03:16:57 +00:00
matz b83ed6d1bd * parse.y, compile.c, gc.c, insns.def, intern.h, iseq.c, node.h,
object.c, string.c, variable.c, vm_macro.def: revert private
  instance variable feature, which is postponed until next major
  release.

* marshal.c: TYPE_SYMBOL2 removed; MARSHAL_MINOR reverted back to
  8th version.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-23 02:49:41 +00:00
matz 163163afdf * parse.y (mrhs): need to append by arg_append().
[ruby-talk:239385]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-16 10:58:04 +00:00
matz 3e874eae07 * parse.y (struct local_vars): no need to warn out-of-scope
variables; remove dnames member from struct.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-13 23:44:26 +00:00
matz 66a26a2367 * parse.y: RVarmap no longer used as yytype; removed.
* parse.y (dyna_push_gen): no longer need return value.

* parse.y (dyna_pop_gen): no longer need argument.

* parse.y (local_push_gen): initialize nofree.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-13 23:41:44 +00:00
ko1 44aef0b53f * this commit is a result of refactoring. only renaming functions,
moving definitions place, add/remove prototypes, deleting
  unused variables and removing yarv.h.
  This commit doesn't change any behavior of ruby/vm.
* yarv.h, common.mk: remove yarv.h (contents are moved to yarvcore.h).
* error.c, eval_intern.h: include yarvcore.h instead yarv.h
* rename some functions:
  * debug.[ch]: debug_*() -> ruby_debug_*()
  * iseq.c: iseq_*() -> rb_iseq_*(), ruby_iseq_disasm()
  * iseq.c: node_name() -> ruby_node_name()
  * vm.c: yarv_check_redefinition_opt_method() ->
    rb_vm_check_redefinition_opt_method()
* some refactoring with checking -Wall.
* array.c: remove rb_ary_ptr() (unused) and remove unused
  local variables.
* object.c: add a prototype of rb_mod_module_exec().
* eval_intern.h (ruby_cref): set it inline.
* eval_load.c (rb_load), yarvcore.c: yarv_load() -> rb_load_internal().
* parse.y: add a prototype of rb_parse_in_eval() (in eval.c).
* process.c: add a prototype of rb_thread_stop_timer_thread() (in thread.c).
* thread.c: remove raw_gets() function (unused) and fix some format
  mismatch (format mismatchs have remained yet. this is todo).
* thread.c (rb_thread_wait_fd_rw): fix typo on label name.
* thread_pthread.ci: comment out codes with USE_THREAD_CACHE.
* vm.c (rb_svar, rb_backref_get, rb_backref_get,
  rb_lastline_get, rb_lastline_set) : moved from yarvcore.c.
* vm.c (yarv_init_redefined_flag): add a prototype and rename
  yarv_opt_method_table to vm_opt_method_table.
* vm.c (rb_thread_eval): moved from yarvcore.c.
* yarvcore.c: remove unused global variables and fix to use nsdr().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-07 01:25:05 +00:00
ko1 42ce75cdff * compile.c, insns.def: remove (get|set)instancevariable2 and add a
operand is_local to (get|set)instancevariable.
* yarvtest/test_class.rb: add a test for class local instance variable.
* parse.y (rb_decompose_ivar2): remove unused variable oid.
* tool/insns2vm.rb: remove needless require.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-06 05:22:17 +00:00
matz 72f2d2a00d * parse.y (rb_compose_ivar2): function to create a new ivar2
symbol from a symbol and a class.  back-ported from matzruby.

* parse.y (rb_decompose_ivar2): reverse function of
  rb_compose_ivar2(). 

* marshal.c (w_symbol): support class local instance variables.

* marshal.c (r_object0): ditto.

* compile.c (defined_expr): ditto.

* compile.c (iseq_compile_each): ditto.

* insns.def: add two new instructions: getinstancevariable2 and
  setinstancevariable2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-04 19:17:33 +00:00
nobu 205f310c29 * call_cfunc.ci, compile.c, compile.h, debug.h, eval.c,
eval_error.h, eval_jump.h, eval_load.c, eval_thread.c, gc.c,
  insnhelper.h, insns.def, iseq.c, main.c, numeric.c, parse.y,
  range.c, regenc.h, ruby.h, signal.c, thread.c, thread_win32.ci,
  vm.c, vm.h, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h:
  fixed indents and non-C90 comments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-02 16:26:04 +00:00
matz 6e0fed271c * ruby.h (SYMBOL_P): make Symbol immediate again for performance.
* string.c: redesign symbol methods.

* parse.y (rb_id2str): store Strings for operator symbols.
  [ruby-dev:30235]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-02 13:19:44 +00:00
matz 0abfa1c532 * parse.y (assignable_gen): no need to generate NODE_CVDECL.
* compile.c (iseq_compile_each): no NODE_CVDECL.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-02 10:24:06 +00:00
ko1 a3e1b1ce7e * Merge YARV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
matz 862e723d03 * eval.c (svalue_to_avalue): need to splat but no error.
* eval.c: new macros - YIELD_CALL, YIELD_VALUES.

* eval.c (rb_yield_values): specify YIELD_VALUES.

* eval.c (rb_yield_0): use new macros.

* eval.c (proc_invoke): slightly modified to separate YIELD_CALL
  and YIELD_VALUES from YIELD_ARY_ARGS.

* object.c (Init_Object): add nil.to_splat => [].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-06 10:27:59 +00:00
matz 6d32246b31 * parse.y (arg_dup_check): vid may be nameless internal id.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-06 06:37:40 +00:00
nobu c85347f8b1 * parse.y (parser_yylex): use particular enums. [ruby-core:09221]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-17 15:56:28 +00:00
matz c6effd0182 * parse.y (singleton): no need to re-create NODE_SELF() again.
[ruby-core:09177]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-14 14:46:16 +00:00
matz 41f3f0eb66 * parse.y (parser_warning, parser_warn): some error message may
contain format specifiers.  a patch from Akinori MUSHA <knu at
  iDaemons.org>.  [ruby-dev:29657]

* regparse.c (onig_rb_warning, onig_rb_warn): ditto.

* ext/bigdecimal/bigdecimal.c (VpException): ditto.

* ext/dl/handle.c (rb_dlhandle_initialize): ditto.

* ext/gdbm/gdbm.c (rb_gdbm_fatal): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-14 14:33:10 +00:00
matz 2d09685150 * eval.c (rb_yield_0): small refactoring.
* parse.y (bparam_item): fixed bugs in handling parenthesized LHS.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-05 22:32:04 +00:00
matz ffedafffba * parse.y (block_param): should interpret single parenthesized
left hand side expression.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-04 07:17:16 +00:00
matz c4e5ec23d3 * parse.y (block_param): restrict block parameters to be local
variables only.

* test/ruby/test_iterator.rb (TestIterator::test_nested_iterator):
  update test suite to conform the last change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-03 15:59:45 +00:00
matz eebdfca0b2 * parse.y (mlhs): simplifies the rule a bit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-03 15:58:17 +00:00
matz c8d3d9ed3d * parse.y (dyna_in_block): inline using macro.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-03 15:09:12 +00:00
matz 5cc2093ccd * hash.c (recursive_hash): remove unused local variable.
* parse.y (parser_yylex): ditto.

* parse.y (rb_gc_mark_symbols): fix unmatched prototype .

* file.c (rb_get_path): check NUL byte in the path string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-25 05:57:37 +00:00
matz 23d2c8b624 * string.c (rb_str_intern): raise SecurityError only when $SAFE
level is greater than zero.  [ruby-core:08862]

* parse.y (rb_interned_p): new function to check if a string is
  already interned.

* string.c (str_to_id): use rb_str_intern().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-14 07:27:14 +00:00
matz 301c9f1265 * parse.y (symbols_i): need to initialize early-created symbols.
[ruby-dev:29496]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-06 04:25:53 +00:00
matz 9e0a2170fd * parse.y (rb_id2sym): intern if id is attrset_id.
[ruby-dev:29420] [ruby-dev:29447]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-04 05:57:35 +00:00