Skip to content
Commits on Jan 1, 2015
  1. @nobu

    vm_args.c: fix non-symbol keys hash

    nobu committed Jan 1, 2015
    * vm_args.c (keyword_hash_p): fix non-symbol keys hash.
      rb_extract_keywords() returns 0 not Qnil when no symbol keys is
      included.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Dec 28, 2014
  1. @nobu

    parse.y: fix internal IDs conflict

    nobu committed Dec 28, 2014
    * parse.y (f_kwrest, new_args_tail_gen): unnamed rest keyword and
      keywords bits arguments should be unique.  since internal IDs
      depend on the local variable index in the current scope, new ID
      should be made before popping those vtables.
      [ruby-core:67157] [Bug #10659]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Oct 22, 2014
  1. @nobu

    class.c: delete expected keywords directly

    nobu committed Oct 22, 2014
    * class.c (unknown_keyword_error): delete expected keywords
      directly from raw table, so that the given block is not called.
      [ruby-core:65837] [Bug #10413]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Sep 23, 2014
  1. @nobu

    parse.y: label cannot be followed by a modifier

    nobu committed Sep 23, 2014
    * parse.y (parse_ident): just after a label, new expression should
      start, cannot be a modifier.  [ruby-core:65211] [Bug #10279]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Sep 20, 2014
  1. @nobu

    compile.c: store IDs as Symbols

    nobu committed Sep 20, 2014
    * compile.c (iseq_set_arguments): store local variable IDs in
      temporary list as Symbols.  previously these are stored as
      Fixnums to prevent from GC, but IDs of dynamic symbols can
      exceed Fixnum range and cause RangeError at inverting from
      Fixnum.  [ruby-dev:48564] [Bug #10266]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Jul 10, 2014
  1. @nobu

    vm_insnhelper.c: fix implicit splat keyword argument

    nobu committed Jul 10, 2014
    * vm_insnhelper.c (vm_callee_setup_keyword_arg): adjust VM stack
      pointer to get rid of overwriting splat arguments by arguments
      for `to_hash` conversion.  [ruby-core:63593] [Bug #10016]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Jun 3, 2014
  1. @nobu

    vm.c: return the result hash

    nobu committed Jun 3, 2014
    * vm.c (core_hash_merge_kwd): should return the result hash, which
      may be converted from and differ from the given argument.
      [ruby-core:62921] [Bug #9898]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Apr 26, 2014
  1. @nobu

    compile.c: non-destructive keyword splat

    nobu committed Apr 26, 2014
    * compile.c (compile_array_): make copy a first hash not to modify
      the argument itself.  keyword splat should be non-destructive.
      [ruby-core:62161] [Bug #9776]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Mar 25, 2014
  1. @nobu

    parse.y: required kwarg without parentheses

    nobu committed Mar 25, 2014
    * parse.y (parser_yylex): only a newline after label should be
      significant.  [ruby-core:61658] [Bug #9669]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  2. @nobu

    parse.y: required kwarg without parentheses

    nobu committed Mar 25, 2014
    * parse.y (lex_state_e, parser_params, f_arglist, parser_yylex):
      separate EXPR_LABELARG from EXPR_BEG and let newline significant,
      so that required keyword argument can place at the end of
      argument list without parentheses.  [ruby-core:61658] [Bug #9669]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Dec 25, 2013
  1. @nobu

    compile.c: unnamed keyword rest check

    nobu committed Dec 25, 2013
    * compile.c (iseq_set_arguments): set arg_keyword_check from
      nd_cflag, which is set by parser.  internal ID is used for
      unnamed keyword rest argument, which should be separated from no
      keyword check.
    * iseq.c (rb_iseq_parameters): if no keyword check, keyword rest is
      present.
    * parse.y (new_args_tail_gen): set keywords check to nd_cflag, which
      equals to that keyword rest is not present.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  2. @nobu

    test_keyword.rb: suppress warnings

    nobu committed Dec 25, 2013
    * test/ruby/test_keyword.rb (test_block_required_keyword): suppress
      shadowing outer variable warning.
    
    * test/ruby/test_keyword.rb (test_precedence_of_keyword_arguments):
      suppress unused variable warning.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Dec 14, 2013
  1. @nobu

    vm_insnhelper.c: post arguments as mandatory

    nobu committed Dec 14, 2013
    * vm_insnhelper.c (vm_callee_setup_arg_complex): count post
      arguments as mandatory arguments.  [ruby-core:57706] [Bug #8993]
    * vm_insnhelper.c (vm_yield_setup_block_args): ditto.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Dec 8, 2013
  1. @nobu

    class.c, vm_insnhelper.c: check unknown keywords

    nobu committed Dec 8, 2013
    * class.c (rb_get_kwargs): if optional is negative, unknown
      keywords are allowed.
    * vm_insnhelper.c (vm_callee_setup_keyword_arg): check unknown
      keywords.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  2. @nobu

    test_keyword.rb: check error messages

    nobu committed Dec 8, 2013
    * test/ruby/test_keyword.rb (test_required_keyword): check also
      error messages.
    
    * test/ruby/test_keyword.rb (test_block_required_keyword): ditto.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Jun 1, 2013
  1. @nobu

    compile.c: not simple if keyword args

    nobu committed Jun 1, 2013
    * compile.c (iseq_set_arguments): not a simple single argument if any
      keyword arguments exist.  [ruby-core:55203] [Bug #8463]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  2. @nobu

    vm_insnhelper.c: extract keyword arguments after splat

    nobu committed Jun 1, 2013
    * vm_insnhelper.c (vm_yield_setup_block_args): split single parameter
      if any keyword arguments exist, and then extract keyword arguments.
      [ruby-core:55203] [Bug #8463]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on May 18, 2013
  1. @nobu

    compile.c: forward kwrest

    nobu committed May 18, 2013
    * compile.c (iseq_compile_each): forward anonymous and first keyword
      rest argument one.  [ruby-core:55033] [Bug #8416].
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Apr 12, 2013
  1. @nobu

    vm_insnhelper.c: non-symbol key

    nobu committed Apr 12, 2013
    * vm_insnhelper.c (vm_callee_setup_keyword_arg): non-symbol key is not
      a keyword argument, keep it as an positional argument.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Apr 9, 2013
  1. @nobu

    compile.c: append keyword hash to splat

    nobu committed Apr 9, 2013
    * compile.c (iseq_compile_each): append keyword hash to argument array
      to splat if needed.  [ruby-core:54094] [Bug #8236]
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Mar 21, 2013
  1. @nobu

    vm_insnhelper.c: check required kwarg with resthash

    nobu committed Mar 21, 2013
    * vm_insnhelper.c (vm_callee_setup_keyword_arg): should check required
      keyword arguments even if rest hash is defined.  [ruby-core:53608]
      [Bug #8139]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Mar 12, 2013
  1. @nobu

    required keyword arguments

    nobu committed Mar 12, 2013
    * compile.c (iseq_set_arguments, iseq_compile_each): support required
      keyword arguments.   [ruby-core:51454] [Feature #7701]
    * iseq.c (rb_iseq_parameters): ditto.
    * parse.y (f_kw, f_block_kw): ditto.  this syntax is still
      experimental, the notation may change.
    * vm_core.h (rb_iseq_struct): ditto.
    * vm_insnhelper.c (vm_callee_setup_keyword_arg): ditto.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Feb 26, 2013
  1. @nobu

    test_keyword.rb: suppress warning

    nobu committed Feb 26, 2013
    * test/ruby/test_keyword.rb (TestKeywordArguments#m1): suppress
      argument prefix warning.
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  2. @nobu

    parse.y: keyword argument without paren

    nobu committed Feb 26, 2013
    * parse.y (IS_LABEL_POSSIBLE): allow labels for keyword arguments just
      after method definition without a parenthesis.  [ruby-core:52820]
      [Bug #7942]
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Commits on Jan 7, 2013
  1. @nobu

    parse.y: bare kwrest_mark

    nobu committed Jan 7, 2013
    * parse.y (f_kwrest): allow bare kwrest_mark as valid syntax.  its
      semantics is still undefined.  [Bug #7662] [ruby-core:51269]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  2. @nobu

    vm_insnhelper.c: keyrest should not overwrite rest arg

    nobu committed Jan 7, 2013
    * vm_insnhelper.c (vm_callee_setup_arg_complex, vm_yield_setup_block_args):
      set keyrest hash after making rest array, so that the last element
      will not be overwritten.  [ruby-core:51278] [Bug #7665]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Something went wrong with that request. Please try again.