[ruby-cvs:55855] normal:r48705 (trunk): mostly fix rb_iseq_load

normal at ruby-lang.org normal at ruby-lang.org
Thu Dec 4 07:16:59 JST 2014


normal	2014-12-04 07:16:58 +0900 (Thu, 04 Dec 2014)

  New Revision: 48705

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=48705

  Log:
    mostly fix rb_iseq_load
    
    This allows reporters commenters of [Feature #8543] to load
    instruction sequences directly.  Some test cases are still failing
    but documented in test/-ext-/iseq_load/test_iseq_load.rb.
    
    * compile.c (rb_iseq_build_from_exception): entry->sp is unsigned
      (iseq_build_callinfo_from_hash): account for kw_arg
      (iseq_build_from_ary_body): update for r35459
      (CHECK_STRING, CHECK_INTEGER): remove unused checks
      (int_param): new function for checking new `params' hash
      (iseq_build_kw): new function for loading rb_iseq_param_keyword
      (rb_iseq_build_from_ary): account for `misc' entry and general
       structure changes
      [Feature #8543]
    * iseq.c (CHECK_HASH): new macro (for `misc' and `param' entries)
      (iseq_load): account for `misc' and `params' hashes
      (iseq_data_to_ary): add final opt to arg_opt_labels,
       fix kw support, account for unsigned entry->sp
    * ext/-test-/iseq_load/iseq_load.c: new ext for test
    * ext/-test-/iseq_load/extconf.rb: ditto
    * test/-ext-/iseq_load/test_iseq_load.rb: new test

  Added directories:
    trunk/ext/-test-/iseq_load/
    trunk/test/-ext-/iseq_load/
  Added files:
    trunk/ext/-test-/iseq_load/extconf.rb
    trunk/ext/-test-/iseq_load/iseq_load.c
    trunk/test/-ext-/iseq_load/test_iseq_load.rb
  Modified files:
    trunk/ChangeLog
    trunk/compile.c
    trunk/iseq.c
    trunk/iseq.h


More information about the ruby-cvs mailing list