[前][次][番号順一覧][スレッド一覧][生データ]

yarv-diff:95

From: ko1 atdot.net
Date: 31 Aug 2005 13:58:44 -0000
Subject: [yarv-diff:95] r251 - in tags: . 0.3.1

Author: ko1
Date: 2005-08-31 22:58:43 +0900 (Wed, 31 Aug 2005)
New Revision: 251

Added:
   tags/0.3.1/
   tags/0.3.1/ChangeLog
   tags/0.3.1/Changes
   tags/0.3.1/yarv_version.h
   tags/0.3.1/yarvcore.c
Removed:
   tags/0.3.1/ChangeLog
   tags/0.3.1/Changes
   tags/0.3.1/yarv_version.h
   tags/0.3.1/yarvcore.c
Log:
0.3.1


Copied: tags/0.3.1 (from rev 249, trunk)

Deleted: tags/0.3.1/ChangeLog
===================================================================
--- trunk/ChangeLog	2005-08-20 01:20:15 UTC (rev 249)
+++ tags/0.3.1/ChangeLog	2005-08-31 13:58:43 UTC (rev 251)
@@ -1,1960 +0,0 @@
-# $Id$
-#
-# YARV ChangeLog
-#  from Mon, 03 May 2004 01:24:19 +0900
-#
-
-2005-08-20(Sat) 10:19:27 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/ir.rb : add some check
-
-	* import today's ruby HEAD
-
-
-2005-08-18(Thu) 23:29:52 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* common.mk : fix object file extension
-
-	* rb/ir.rb : added (import ruby script)
-
-	* rb/diff.rb : removed
-
-	* import today's ruby HEAD
-
-
-2005-08-18(Thu) 12:59:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* common.mk : rule test -> test2, test1 -> test
-
-	* compile.c : fix when clause bug and splat arugment
-
-
-2005-08-17(Wed) 05:22:31 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix block local parameter setting routine and support
-	massign in block parameter initialze
-
-	* yarvtest/test_yield.rb : add tests for above
-
-	* insns.def, compile.c : support array concat (ex: "[x, *y]")
-
-	* yarvtest/test_bin.rb : add tests for above
-
-
-2005-08-16(Tue) 19:51:19 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support nested massign
-
-	* yarvtest/test_massign.rb : add tests for above
-
-
-2005-08-16(Tue) 10:25:29 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* eval.c : support rb_yield_0 with 0 args
-
-
-2005-08-16(Tue) 09:09:21 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* lib/fileutils.rb : imported
-
-	* insns.def : fix yield argument (same as last commit)
-
-	* yarvtest/test_yield.rb : add tests for above
-
-
-2005-08-16(Tue) 08:29:47 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* eval.c : fix to support rb_yield_0 with multiple values
-
-	* common.mk : add parse, run1p ruelse
-
-	* compile.c : support yield with ARGSCAT/SPLAT
-
-	* vm.c, insns.def : fix yield arguments to do compatible behaviour
-
-	* yarvtest/test_yield.rb : added for above
-
-
-2005-08-16(Tue) 06:00:17 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : fix to set klass_nest_stack on singleton
-	method definition
-
-	* yarvtest/test_method.rb : add a test for above
-
-
-2005-08-16(Tue) 05:34:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test1.rb : added.  gdb and run1 rule run this script
-
-	* compile.c : fix error handled variable access
-
-	* yarvtest/test_exception.rb : add tests for above
-
-
-2005-08-16(Tue) 04:26:08 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* base ruby : ruby 1.9.0 (2005-08-15)
-
-
-2005-08-16(Tue) 03:54:17 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* common.mk, Makefile.in : move some rules to common.mk
-
-	* rb/diff.rb : added
-
-	* yarvtest/yarvtest.rb : fix to compare output last value
-
-
-2005-08-15(Mon) 18:27:58 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* Changes : 0.3.0
-
-
-2005-08-15(Mon) 17:56:09 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : fix to add prototype
-
-	* all files : propset svn:eol-style native
-
-
-2005-08-15(Mon) 10:48:53 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* eval.c : support rb_load
-
-
-2005-08-15(Mon) 09:42:01 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h : define SDR()
-
-	* vm_dump.c : stack_dump_raw() -> vm_stack_dump_raw()
-
-	* yarvtest/yarvtest.rb : add rite test scheme
-
-	* benchmark/run_rite.rb : added
-
-	* yarvcore.c, inits.c : add Init_vm()
-
-	* yarv.h : add some prototype declarations, GET_THREAD()
-
-	* eval.c : remove unused functions
-
-	* eval.c : support Kernel.eval, some schemes (same as evalc.patch)
-
-
-2005-08-15(Mon) 00:53:28 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarv_version.h : move configurations to yarvcore.h
-
-	* yarvcore.c : remove VALUE yarv_get_current_running_thread() and
-	add yarv_thread_t *yarv_get_current_running_thread(), ...
-
-	* yarvcore.h : yarv_thread_t#vm -> vm_value
-
-	* compile.c : fix "break from nested classes"
-
-	* yarvext/extconf.rb : use have_func instead of defined?(YARV_PACHED)
-
-	* depend : fix pass
-
-	* eval.c : change to kick VM
-
-	* version.c : fix to show yarv version
-
-	* common.mk : fix dependent
-
-	* inits.c : fix to kick Init_yarvcore
-
-
-2005-08-14(Sun) 02:05:15 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* README : add description
-
-	* yarvext/depend : move to topdir/depend
-
-2005-08-14(Sun) 01:50:43 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* merge yarv to ruby (prepare)
-
-	* make yarvext/ to build as extension
-
-
-2005-08-13(Sat) 09:36:26 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* evalc.patch, insns.def, compile.c : fix to support current
-	ruby HEAD.
-
-	* 0.2.3
-
-
-2005-08-08(Mon) 19:13:02 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h, Changes : 0.2.2
-
-
-2005-08-08(Mon) 17:17:50 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.h, vm.c, insns.def, yarvcore.h, yarvcore.c :
-	remove yarv_iseq_t#iseq_dt and add yarv_iseq_t#encoded.
-	use yarv_iseq_t#encoded anytime
-
-	* vm_evalbody.h, vm.h, extconf.rb, version.h :
-	support call threaded code (incomplete)
-
-
-2005-08-01(Mon) 05:26:12 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : support yield with multiple values
-
-	* compile.c : fix dynavars
-
-	* yarvcore.h : fix to mark defined method
-
-
-2005-07-31(Sun) 23:27:24 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c, vm.c, insns.def : fix search object path
-
-	* compile.c : fix "for" statement
-
-	* vm_macro.def : fix rest, opt arguments
-
-
-2005-07-31(Sun) 14:52:06 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm_macro.def : fix block parameter
-
-	* compile.c : fix to unuse compile_data->in_ensure
-
-	* insns.def : add orphan check when return
-
-
-2005-07-31(Sun) 03:25:05 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c, compile.c, yarvcore.h, insns.def :
-	support jump from rescue/ensure/class/module
-
-	* test/test_flow.rb : add tests for above fix
-
-
-2005-07-30(Sat) 04:44:33 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h : struct iseq_compile_data_ensure_node_stack is added
-
-	* compile.c : insert ensure clause before break/next/redo
-
-	* vm.c : fix return/break handling
-
-	* yarv.h, vm.c : fix lightweight yield
-
-	* vm.c, insns.def, vm_macro.def : change arguments of th_set_env (add sp)
-
-	* test/test_flow.rb : added
-
-	* test/yarvtest.rb : add ae_flow
-
-	* compile.c, vm_macro.def : add tail-call/tail-recursion optimization
-	(experimental)
-
-
-2005-07-29(Fri) 20:14:11 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : make_name_for_block and make_name_with_str
-	are added
-
-	* insns.def : fix if unmatched size arg size to yield
-
-	* test/test_block.rb : add test for above fix
-
-	* vm.c : add th_backtrace_each and fix backtrace notation
-
-	* yarvcore.c : set top level iseq name to "<main>"
-
-
-2005-07-29(Fri) 13:20:19 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h : fix yarv_iseq_t to pass VC (cl)
-
-	* vm_dump.c : ditto
-
-	* compile.h : ditto
-
-	* insnhelper.h : ditto
-
-	* vm_evalbody.h : include 'math.h'
-
-	* insns.def, vm.c : raise error when yield without block
-
-	* vm.c : implement thread_backtrace
-
-	* vm.c, yarvsubst.c, yarv.h : implement thread_yield_light_prepare and
-	thread_yield_light_invoke
-
-	* yarvcore.c : Integer#times uses yarv specific version
-
-
-2005-07-28(Thu) 21:35:09 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : add another mark function for thread/stack
-
-	* vm_evalbody.h : fix register allocation for x86_64
-
-	* vm.h : use asm for tc on x86_64
-
-
-2005-07-28(Thu) 20:17:09 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : add mark/free message to debug gc
-
-	* insnhelper.h, insns.def, vm_macro.def : remove and
-	add new RESTORE_REGS
-
-	* vm_evalbody.h : fix register allocation
-
-
-2005-07-28(Thu) 02:00:42 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c, etc : change VM stack structure. re-write all
-	vm functions to do it
-
-	* vm_macro.def : added
-
-
-2005-07-08(Fri) 01:36:49 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : don't use fmod on AMD64
-
-
-2005-07-08(Fri) 00:14:22 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* Changes : added
-
-
-2005-07-07(Thu) 23:54:37 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : 0.3.0
-
-
-2005-07-07(Thu) 23:52:03 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* 0.2.1 : released
-
-
-2005-07-07(Thu) 23:50:22 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : 0.2.1
-
-
-2005-07-07(Thu) 23:47:55 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb, extconf.rb : add --[enable|disable]-opt-unify-all-combination
-	and --disable-opts
-
-	* vm.h : DISPATCH_ARCH_DEPEND_WAY is only enabled on GCC 3.x
-
-
-2005-07-06(Wed) 13:20:27 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* depend, rb/eval.rb : add ITEMS option to benchmark rule
-
-	* benchmark/* : changed
-
-	* benchmark/other-lang/* : added
-
-
-2005-07-04(Mon) 04:02:15 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h. yarvcore.c : add idDIV, idMOD, idEq, idLength
-
-	* compile.c, insns.def : add specialized insn for above method id
-
-	* test/test_bin.rb : add tests for above
-
-
-2005-07-03(Sun) 20:31:09 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c, yarvcore.h : remove cYarvThrowObject (unused)
-
-	* yarvcore.c, yarvcore.h, insns.def : 
-	thread_object#stack_mark_poinetr
-
-	* depend, rb/eval.rb : BOPT, TOPT -> OPT
-
-
-2005-07-03(Sun) 13:53:47 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, compile.h : INSN_OBJECT, LABEL_OBJECT -> INSN, LABEL,
-	ISEQ_LINK_ELEMENT, ISEQ_LINK_ANCHOR -> LINK_ELEMENT, LINK_ANCHOR,
-	and some fixes
-
-	* tmpl/optinsn.inc.tmpl : ditto
-
-	* yarvcore.c, yarvcore.h : remove label_object, insn_object
-	prepare_iseq_build, cleanup_iseq_build are added
-
-	* insns.def : remove unused variable from send
-
-
-2005-07-02(Sat) 04:19:22 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : add GC protect for opt_aset
-
-
-2005-07-02(Sat) 03:49:17 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : add option -fno-reorder-blocks to vm.asm rule
-
-	* insns.def : fix opt_aset bugs
-
-	* test/test_bin.rb : add tests for aset, aref
-
-
-2005-07-02(Sat) 03:05:12 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb : fix output
-
-	* vm_evalbody.h : add register for x86_64
-
-	* rb/asm_parse.rb : fix to shor size and length
-
-
-2005-07-02(Sat) 02:56:31 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : move specialized instruction point (new_insn_send)
-
-	* insns.def : add opt_aref, opt_aset
-
-
-2005-07-01(Fri) 11:04:11 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.h : fix to pass VALUE type to new_insn_body
-
-	* insnhelper.h : add cast
-
-	* compile.c : fix getdynamic argument (0 == Qfalse -> I2F(0))
-
-
-2005-06-30(Thu) 23:34:10 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/eval.rb : add and fix some rules
-
-	* rb/insns2vm.rb : generate all
-
-	* benchmark/run.rb : add -r (ruby only) option
-
-
-2005-06-30(Thu) 23:25:23 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* tmpl/vmtc.inc.tmpl : add const prefix
-
-	* /rb/asm_parse.rb, extconf.rb : added and make assembler analised output 
-
-	* opt_operand.def : add send operands unification
-
-	* insnhelper.h : add HEAP_CLASS_OF(obj)
-
-	* insns.def : fix opt_plus, opt_ltlt
-
-	* vm_evalbody.h : move _tag
-
-	* benchmark/run.rb : fix file select
-
-
-2005-06-30(Thu) 06:07:04 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : add collect-usage-analysis option
-
-	* opt_operand.def, opt_insn_unif.def : add some rules
-
-
-2005-06-29(Wed) 23:28:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, extconf.rb, vm.h, compile.c :
-	DISPATCH_DIRECT_THREADED_CODE, DISPATCH_THREADED_CODE
-	 -> OPT_DIRECT_THREADED_CODE,  OPT_INDIRECT_THREADED_CODE.
-	if at least one of then is defined, OPT_THREADED_CODE is defined
-
-	* benchmark/* : fix name and parameters
-
-	* rb/eval.rb : added for YARV evaluation
-
-
-2005-06-29(Wed) 16:16:52 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb : fix output format
-
-	* call_cfunc.inc -> call_cfunc.h
-
-	* vm.h : add sign by asm statement
-
-
-2005-06-28(Tue) 22:28:40 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : fix method search
-
-
-2005-06-28(Tue) 22:26:34 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : fix options
-
-
-2005-06-28(Tue) 21:50:58 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb : fix output format
-
-
-2005-06-28(Tue) 21:34:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* depend : add option TOPT to test rules
-
-	* benchmark/run.rb : fix output format
-
-
-2005-06-28(Tue) 21:15:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix opt_case_dispatch instruction
-
-	* benchmark/run.rb : output all usertimes when exit benchmark
-
-
-2005-06-28(Tue) 20:35:55 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb, compile.c, tmpl/optinsn.inc.tmpl, vm.c :
-	change extconf options
-
-2005-06-28(Tue) 13:20:59 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb : add -y, --yarv-only option
-
-	* depend : add BOPT to tbench rule
-
-
-2005-06-27(Mon) 23:31:12 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* depend : add gdb rule
-
-	* vm.h : use inline assembler for x86 (to support gcc 3.4.x)
-
-
-2005-06-27(Mon) 20:04:10 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c, compile.c, disasm.c : remove unused variables
-
-	* vm.h, insnhelper.h, debug.h : fix to reduce warning
-
-	* vm.c, vm_dump.c : move VM state dump (debug) functions to vm_dump.c
-
-	* depend : adde reconf rule
-
-	* insnhelper.h : 
-
-	* vm_evalbody.inc : rename to vm_evalbody.h
-
-
-2005-06-27(Mon) 16:50:31 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns2vm.rb : fix generating unif insn
-
-	* compile.c : add useless pop/swap insn elimination with stack caching
-
-	* depend : remove compiled.o dependency
-
-
-2005-06-26(Sun) 14:06:22 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb : use tmpfile instead of popen
-
-	* rb/insns2vm.rb : fix generating insn unification logic
-
-	* opt_insn_unif.def : add some unification rules
-
-	* compile.c : add verify_list function and fix unification logic
-
-
-2005-06-22(Wed) 12:58:26 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c, insns.def,  compile.c : add mult optimization
-
-	* test/test_bin.rb : add test_fact
-
-
-2005-06-21(Tue) 22:34:07 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, compile.[ch], tmpl/optinsn.inc.tmpl, rb/insns2vm.rb :
-	change data structure (don't use Ruby's array to represent a
-	instruction sequence)
-
-	* disasm.c : add separator
-
-
-2005-06-14(Tue) 07:48:58 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support "for" statement
-
-	* test/test_block.rb : add test for above
-
-	* yarvcore.[ch] : add global id idEach
-
-
-2005-06-08(Wed) 22:30:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : add if/unless(L1) jump (L2) :L1 => unless/if(L2)
-	optimize (condition reversal) and fix typo
-
-
-2005-06-07(Tue) 08:29:41 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : fix to remove compiler warning
-
-	* version.h : 0.2.1
-
-
-2005-06-07(Tue) 08:16:22 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h : iseq_link_element changed to double linked list
-
-	* disasm.c : support dump struct iseq_link_element
-
-	* compile.c : use double linked list instead of array
-	for intermediate representation
-
-
-2005-06-06(Mon) 15:38:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c : add link structure to insn and label object
-
-	* compile.h, compile.c : remove some variables in function top scope
-	of iseq_compile_each and some optimization (now working)
-
-
-2005-06-04(Sat) 16:12:59 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix previous commit
-
-
-2005-06-04(Sat) 15:56:21 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix stack caching (after jump state)
-
-
-2005-06-04(Sat) 09:12:13 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix some point for previous commit
-
-
-2005-06-04(Sat) 07:31:21 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, insns.def : optimize case/when statement
-	(dispatch on constant time)
-
-	* yarvcore.h, disasm.c, rb/insns2vm.rb : fixed for above
-	(CDHASH)
-
-	* test/test_syn.rb : add test for above
-
-
-2005-06-04(Sat) 03:41:29 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c : add some temporary variable test
-	(it'll be vanished)
-
-	* compile.c : NODE_CASE optimize (use topn instead of dup/swap)
-
-
-2005-06-03(Fri) 00:54:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : apply flow optimization for while/until statement
-
-
-2005-03-04(Fri) 19:34:32 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb : fix category (comment)
-
-	* depend : remove space betweeen target name and colon
-
-
-2005-03-04(Fri) 15:55:51 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* tmpl/yarvarch.ja : fix typo
-
-
-2005-03-04(Fri) 13:30:19 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* depend : add a rule for jitcompile.o
-
-	* vm.h : fix a macro argument
-
-	* version.h : 0.2.0
-
-
-2005-03-03(Thu) 08:35:14 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : remove vm_evalbody.inc call_cfunc.inc from clean target
-
-
-2005-03-03(Thu) 00:54:15 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* tmpl/insns.inc.tmpl : fixed typo
-
-	* insns.def : store th->pc to current pc
-
-
-2005-03-03(Thu) 00:31:47 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* tmpl/yarvarch.ja, doc/yarv.rb : write current architecture of yarv
-
-
-2005-03-01(Tue) 13:50:04 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c (yarvcore_eval_parsed) : added
-	(separeted from yarvcore_eval)
-
-	* yarvcore.c, compile.c : iseq_translate_direct_threaded_code
-	is moved to compile.c
-
-	* depend : add rule for yasmdata.rb
-
-	* rb/yasm.rb : support top-level and method-level assemble
-
-
-2005-02-26(Sat) 08:09:57 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb, compile.c, vm.h : change type long to OFFSET
-
-	* tmpl/yasmdata.rb.tmpl : added
-
-	* rb/insns2vm.rb : add yasmdata_rb method
-
-	* rb/yasm.rb : fix some interface (incomplete)
-
-	* compile.c : iseq_setup added
-
-	* yarvcore.c : YARVCore::InstructionSequence::Instruction#make added
-
-
-2005-02-24(Thu) 07:45:37 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/yasm.rb : added
-
-
-2005-02-24(Thu) 01:13:33 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : remove useless statements
-
-
-2005-02-24(Thu) 00:46:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb (InsnInfo) : add @is_sc attr and remove
-	is_sc method
-
-	* compile.c : fix NODE_CASE/NODE_WHEN bug (cond at 'when'
-	must not be popped)
-
-	* compile.c : support NODE_OP_ASGN1 to &&= and ||=
-
-	* test/test_bin.rb : add tests for above
-
-
-2005-02-23(Wed) 09:17:01 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c, yarvcore.c : thread_svar added and fix svar location
-
-
-2005-02-21(Mon) 08:38:02 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h : make type "struct iseq_compile_data"
-
-	* yarvcore.h : iseq_object#insn_info_ary to iseq_object#insn_info_tbl 
-
-
-2005-02-21(Mon) 05:24:01 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c (compile_string) : remove null check of node
-
-
-2005-02-19(Sat) 03:52:45 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : 0.1.1
-
-
-2005-02-18(Fri) 20:57:18 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c : add idLTLT, idMethodMissing
-
-	* compile.c : suopport lval (or others) block parameter
-
-	* test/test_block.rb : add tests for above
-
-	* insns.def (send) : support method_missing
-
-	* test/test_method.rb : add tests for above
-
-	* insns.def : opt_ltlt and 
-
-
-2005-02-18(Fri) 08:54:40 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/runc.rb : added
-
-	* benchmark/contrib/pentomino.rb : added opt_ltlt
-	and Float, String plus specialization
-
-
-2005-02-18(Fri) 07:49:42 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : remove debug print
-
-	* rb/aotcompile.rb : skip if yarvcore.so is not created
-
-
-2005-02-18(Fri) 06:46:13 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix block passing
-	and block argument
-
-
-2005-02-18(Fri) 05:52:41 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : thread_get_ev_const, thread_get_ev_defined is added
-	(separated from insns.def)
-
-	* insnhelper.h : GET_EV_KLASS(klass) is added
-	(separated from insns.def)
-
-	* yarvcore.h, insns.def, compile.c : support defined? expression (limited)
-
-	* test/test_syn.rb : tests for above is added 
-
-	* compile.c, insns.def : support block passed method dispatch
-
-	* test/test_method.rb : tests for above is added
-
-	* compile.h : CALL_ARGS_SPLAT is removed
-
-
-2005-02-16(Wed) 13:32:37 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* disasm.c : fix ID to String method
-
-	* compile.c : NODE_SUPER, NODE_ZSUPER check 'poped'
-	and NODE_RETURN check outer type
-	and NODE_DREGX_ONCE supported (temporarily)
-
-	* test/test_syn.rb : add a test
-
-	* test/test_jump.rb : add a test
-
-
-2005-02-16(Wed) 06:07:41 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.[hc] : use Symbol instead of Fixnum to represent ID
-
-	* rb/insns2vm.rb : add attr_reader :insns, :insn_map
-
-	* vm.h, rb/insns2vm.rb : END_INSN have one arg
-
-	* jitcompile.c : jit compiler framework (experimental)
-
-	* rb/aotcompile.rb : refactoring
-
-	* compiled.c : add constant pool
-
-	* vm_evalbody.inc, call_cfunc.inc, vm.c : separeted from vm.c
-
-	* insns.def : fix return val
-
-	* depend : add rules for compiled.o
-
-
-2005-02-14(Mon) 13:09:01 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insnhelper.h, yarvcore.h: move YARV_METHOD_NODE to yarvcore.h
-
-	* yarvcore.h : add 2 members jit_compiled and iseq_orig
-	to struct iseq_object
-
-	* yarvcore.c : add yarv_jitcompile and global function jitcompile
-
-	* insns.def : insn opt_call_native_compiled added
-
-	* jitcompile.c : added
-
-
-2005-02-12(Sat) 05:38:51 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def (putstring) : fixed to duplicate string object
-
-	* rb/insns2vm.rb, tmpl/optunifs.inc.tmpl, compile.c : support
-	instructions unification (aka super instruction)
-
-	* opt_insn_unif.def : added for above
-
-	* benchmark/bm_unif1.rb : added to measure efficiency of unification
-
-	* depend : fixed for above
-
-	* extconf.rb : add option --(enable|disalbe)-opt-insns-unification
-
-
-2005-02-11(Fri) 12:14:39 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c, vm.c, insns.def : permit to access svar from
-	cfunc environment
-
-	* test/test_method.rb : add tests for above
-
-
-2005-02-09(Wed) 19:31:06 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* ite.rb : added (ruby -rite [script file])
-
-
-2005-02-09(Wed) 02:25:43 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.[hc] : add member compile_data (hash) to iseq_object
-
-	* compile.c, yarvcore.h : check label is already set
-
-	* compile.c, extconf.rb : support __goto__ and __label__ statement
-
-
-2005-01-25(Tue) 12:49:27 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_block.rb : add break test to test_times
-
-
-2005-01-25(Tue) 03:34:04 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : check ruby version if yarv patch is applied or not
-
-	* evalc.patch : fixed for rb_call_super and above check
-
-
-2005-01-25(Tue) 03:21:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb : refactoring (mainly, make InsnsDef::InsnInfo
-	to represent each instruction information)
-
-	* depend, rb/makedocs.rb : fixed for above
-
-	* yarvcore.c (thread_call_super) : added
-
-	* vm.c (thread_call_super) : added
-
-	* vm.h : add struct cmethod_info
-
-	* insns.def, vm.c : use cmethod_info to represent C method info
-
-	* insns.def : use iseq_object#klass_nest_stack
-	to search super/zsuper's class
-
-	* prosym.rb : removed
-
-	* ToDo : write todo things on wiki
-
-
-
-2005-01-18(Tue) 23:44:47 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb : check ENV['RUBY'] to use ruby binary
-
-
-2005-01-10(Mon) 08:44:40 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : 0.1.0
-
-
-2005-01-09(Sun) 22:01:29 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* repository : svn propset svn:eol-style native *.c *.h tmpl/*.tmpl
-
-
-2005-01-09(Sun) 21:48:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : FREE_UNLESS_NULL, MARK_UNLESS_NULL macros are added
-
-	* yarvcore.c : some insn/label methods are added
-
-	* yarvcore.h : add structure menber "insns_ary" to iseq_object
-
-	* vm.c, insns.def (thread_eval_body) : return values with throw
-
-	* prosym.rb : added
-
-	* insns.def : add YARV_AOT_COMPILED and some procedure
-
-	* depend : add compiled.c
-
-	* compiled.c : added to build compiled Ruby program (C source)
-	by AOT compiler
-
-	* rb/aotcompile.rb : AOT compiler
-
-	* aotct.rb, rb/aotctest.rb : test and benchmark AOT compiler
-
-	* rb/allload.rb : added
-
-
-2005-01-09(Sun) 08:30:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c (yarv_yield_values) : added
-
-	* vm.c (thread_call0) : change interface. substitute rb_call0 in
-	yarv environment
-
-	* yarvcore.c (yarv_call0) : fix for above
-
-	* yarvcore.c (yarv_call0_cfunc) : removed
-
-	* yarvcore.c : change passing items for yarv_setup
-
-	* evalc.patch : fix for above
-
-	* benchmark/bm_lists.rb : fix (unsupport block passing)
-
-	* benchmark/run.rb : use full path to ruby
-
-	* insns.def (yield): raise error if argc > expected argc
-
-
-2005-01-08(Sat) 16:07:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : add descrioptions
-
-	* compile.c : fix bugs (getinlinecache operands)
-
-	* yarvcore.c : initial value of yarvGlobalStateVersion
-	to 1
-
-
-2005-01-08(Sat) 14:39:04 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c, vm.c, evalc.patch : support making backtrace
-	(incompatible with current ruby interpreter)
-
-
-2005-01-08(Sat) 11:25:46 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* evalc.patch : commit for previous commit change
-
-	* yarvcore.h, compile.c, insns.def : MC to IC (inline cache),
-	and changed to using IC by set/getinlinecache
-
-
-2005-01-08(Sat) 10:04:33 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : add global variable sym[IC]FUNC
-
-	* yarvcore.c (yarv_iterate, yarv_call0_cfunc) : added
-	(each called from rb_iterate, rb_call0 with NODE_CFUNC)
-
-	* vm.c (stack_dump_raw) : fixed to prints more detail
-
-	* vm.c (stack_dump_th, stack_dump_thobj) : added to
-	dumps thread_object states (for VALUE, struct pointer)
-
-	* vm.c (thread_dump_regs) : added
-
-	* vm.c (thread_call0, thread_call0_cfunc, thread_invoke_yield, 
-	thread_invoke_yield_cfunc), insns.def (yield, send) :
-	fixed, added to support IFUNC
-
-	* vm.c, yarvcore.c, insns.def : change type purpose
-	thread_object#block_ptr (it holds IFUNC block information,
-	so this type was changed to 'NODE *')
-
-	* vm.c (stack_dump_each) : fixed for above
-
-	* test/test_block.rb (test_ifunc) : test for above
-
-	* vm.c (get_block_objec, thread_make_env_object) : fixed bugs
-
-	* test/test_bin.rb (test_xstr) : remove `ls` test
-
-
-2005-01-06(Thu) 21:35:18 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarv : trying to support NODE_IFUNC (rb_iterate)
-
-
-2005-01-05(Wed) 06:50:42 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, insns.def, disasm.c, rb/insns2vm.rb, compile.[ch] :
-	support inline method cache
-
-	* extconf.rb : add -*-inline-method-cache (default: enable)
-
-	* test/test_method.rb : add a test for above
-
-	* benchmark/bm_poly_method.rb : added
-
-	* yarvcore.c : add option string
-
-
-2005-01-04(Tue) 17:15:41 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def, compile.c : add compile_array and duparray insn
-	to optimize only literal array creation
-
-	* benchmark/bm_array.rb : added
-
-
-2005-01-04(Tue) 10:02:40 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* README : fix version
-
-
-2005-01-04(Tue) 09:57:25 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* ToDo : reflect current status
-
-
-2005-01-04(Tue) 09:43:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_VALUES, NODE_ARGSCAT, NODE_SPLAT
-
-	* test/test_massign.rb : add tests for above
-
-	* benchmark/bm_swap.rb : added
-
-
-2005-01-04(Tue) 06:25:45 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.h : COMPILE_ERROR break contol (instead of return)
-
-	* compile.c : support NODE_MASGN
-
-	* insns.def : change expandarray for massign and add topn insn
-
-	* test/test_massign.rb : added
-
-
-2005-01-03(Mon) 21:20:28 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : store block when create proc
-
-	* test/test_proc.rb : add a test for above change
-
-	* yarvcore.c : add global function "once"
-
-
-2005-01-02(Sun) 00:40:08 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/bm_super.rb : fix bug (remove infinite loop)
-
-
-2005-01-01(Sat) 23:45:49 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/bm_z?super.rb : added
-
-
-2005-01-01(Sat) 23:37:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/bmx_so_object.rb : rename to benchmark/bm_so_object.rb
-
-
-2005-01-01(Sat) 23:19:02 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_OP_ASGN2, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR,
-	NODE_SUPER, NODE_ZSUPER, NODE_MATCH
-
-	* insns.def : support super, zsuper (currently, super can't
-	handle with block)
-
-	* test/test_bin.rb : add test for op_asgin2, op_assgin_and/or
-
-	* test/test_class.rb : add test for super, zsuper
-
-
-2005-01-01(Sat) 20:39:29 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_MATCH
-
-	* yarvcore.c : fix yarv_svar bug (fix condition boundary)
-
-	* insnhelper.h : save cfp/lfp/dfp vars to thread_object (th)
-
-
-2005-01-01(Sat) 20:03:10 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : 0.0.1
-
-	* yarvcore.h : add idIntern declaration
-
-	* insns.def : add getspecial, setspecial.
-	implement getclassvariable, setclassvariable.
-	store lfp before reg match (opt_regexpmatch1)
-
-	* compile.c : support ditto, flipflop
-
-	* yarvcore.c : support svar
-
-	* test/test_syn.rb : add test for flipflop
-
-	* test/test_bin.rb : add test for dsym, cvar, backref
-
-
-2005-01-01(Sat) 09:09:32 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : add getspecial insn
-
-	* compile.c : support NODE_NTH_REF, NODE_BACK_REF
-
-
-2005-01-01(Sat) 06:53:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def, compile.c : support alias, undef
-
-	* test/test_method.rb : test for above
-
-	* rb/insns2vm.rb : fix enbug
-
-
-2005-01-01(Sat) 06:00:32 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_jump.rb : add test (next with value)
-
-	* yarvcore.h, yarvcore.c, compile.c, compile.h :
-	raise compile error exception instead of rb_bug
-
-	* yarvcore.c, evalc.patch : support "require"
-
-	* test.rb : restore $" after evaluation with ruby
-
-	* rb/insns2vm.rb : remove unnecesary each
-
-
-2004-12-17(Fri) 18:56:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : fix newhash
-
-
-2004-12-15(Wed) 13:29:27 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : add version string
-
-	* compile.c : fix rescure clause bug
-
-
-2004-12-14(Tue) 22:46:30 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : add reput insn
-
-	* vm.h : show stack cache registers when stack dump
-
-	* rb/insns2vm.rb, compile.c : fix stack caching bugs
-
-
-2004-12-14(Tue) 00:51:58 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns2vm.rb, compile.c, tmpl/opt_sc.inc.tmpl : fix bugs
-
-	* rb/mixc-asm.rb : added
-
-
-2004-12-14(Tue) 00:17:02 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c, compile.c : fix SC bugs
-	(SC state management)
-
-	* extconf.rb : add option -[enable|disable]-opt-stack-caching
-
-	* insns2vm.rb : accept CPPFLAGS options
-
-	* vm.c : support restrore register for pc
-
-
-2004-12-13(Mon) 16:53:42 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb : add macro INSN_IS_SC()
-
-
-2004-12-11(Sat) 10:51:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def, compile.c : support singleton method definition
-
-	* test/test_method.rb : add test for above
-
-
-2004-12-11(Sat) 03:17:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/*.rb : modify
-
-	* extconf.rb : add $cleanfiles
-
-
-2004-12-08(Wed) 13:01:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, insns.def : change to disable stack caching
-
-
-2004-12-07(Tue) 19:37:13 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.rb : add default after
-
-	* insns.def : fix to work on stack caching
-
-
-2004-12-07(Tue) 15:07:13 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* depend : add some dependency to *.inc files
-
-	* vm.c : add "register" and asm("regname") descriptor
-
-	* rb/insns2vm.rb, compile.c : add stack caching support
-
-	* tmpl/opt_sc.inc.tmpl : added to above change
-
-	* rb/makedocs.rb : fix file path
-
-	* extconf.rb : fix option selection
-
-
-2004-12-06(Mon) 11:20:11 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* extconf.rb : add vm.asm target if compiler is gcc
-
-
-2004-12-06(Mon) 09:56:24 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.h : rename method_frame's member block to block_ptr
-
-	* extconf.rb : add "-fno-crossjumping" option when compiler
-	is gcc
-
-	* opt_operand.def : add unification insn send
-
-	* rb/insns2vm.rb : define symbol instead of declare const
-	variable (for more optmize on VC)
-
-	* insns.def : move enter point in send
-
-
-2004-12-06(Mon) 04:53:51 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, opt_operand.def, rb/insns2vm.rb, depend :
-	support operand unification
-
-
-2004-12-05(Sun) 03:16:10 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c, insns.def : speed up throw/catch scheme
-
-
-2004-12-05(Sun) 01:47:05 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : fix catch handler bugs
-
-	* test/test_jump.rb : test_complex_jump added
-
-
-2004-12-03(Fri) 20:39:05 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/contrib/mcq.rb : added
-	(from URABE Syouhei)
-
-
-2004-12-03(Fri) 20:35:28 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : support break in rb_yield block
-
-
-2004-12-03(Fri) 14:26:35 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support block local variable in current
-	ruby specification (patche from Kent Sibilev)
-
-	* insns.def : support attr_* (patch from Kent Sibilev)
-
-
-2004-12-02(Thu) 21:04:27 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* opt_operand.def : added
-
-
-2004-12-02(Thu) 13:20:41 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c, vm.h, vm.c, insns.def, insnhelper.h, yarvutil.rb :
-	add usage analisys framework 
-
-	* disasm.c : insn_operand_intern to separate function
-
-	* benchmark/run.rb : run each benchmark on another process
-
-
-2004-12-01(Wed) 10:26:49 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : yield check block is given
-
-	* benchmark/bm_lists.rb : rename to bmx_lists.rb
-	(because it's not work ... bug?)
-
-	* insns.def : opt_* support other type calc
-
-
-2004-11-30(Tue) 16:14:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/bm_so_array.rb : added
-
-	* benchmark/bm_so_matrix.rb : added
-
-
-2004-11-30(Tue) 14:11:30 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/getrev.rb : added
-
-	* yarvcore.c : add YARVCore::REV, YARVCore::DATE constant
-
-
-2004-11-30(Tue) 13:05:42 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_OP_ASGN1 (incomplete)
-
-	* insns.def : add dupn
-
-
-2004-11-30(Tue) 08:52:01 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : 0.0.0.f
-
-
-2004-11-30(Tue) 08:43:59 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_class.rb : add test_initialize and test_to_s
-
-	* yarvsubst.c : use rb_funcall instead of yarv_funcall
-
-	* evalc.patch : fix ruby's patch
-
-	* benchmark/bm_so_*.rb : change naming rule. "bm_so_*" from
-	language shootout
-
-	* depend : tbench target item is ITEM env val (default: bmx_temp)
-
-	* vm.c : show raw address if environment is in heap at dumping stack trace
-
-	* vm.c : thread_call0 added
-
-	* vm.c : fix thread_yield_light_invoke
-
-	* yarv.h, yarvcore.c : remove yarv_funcall
-
-
-2004-11-29(Mon) 11:37:08 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test/test_proc.rb : add test test_nestproc
-
-	* yarvsubst.c : comment out yarv_Array_each
-
-	* insns.def : restore lfp/dfp after call_cfunc
-
-	* vm.c : fix stack dump routine
-
-	* vm.c : impliment thread_funcall (temporarily)
-
-	* yarv.h : add IS_YARV_WORKING(), SET_YARV_START(), SET_YARV_STOP()
-
-	* yarvcore.c : remove check with yarv_in_work
-
-	* evalc.patch : added
-
-
-2004-11-27(Sat) 00:19:52 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.c : free -> ruby_xfree
-
-
-2004-11-26(Fri) 02:11:11 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm,c : fix bug
-
-
-2004-11-22(Mon) 11:19:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/bm_ackermann.rb, bm_proc.rb, bm_simpleiter.rb,
-	bm_so_exception.rb, bm_wc.rb, wc.input added
-
-
-2004-11-22(Mon) 02:31:56 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_proc.rb : add some test
-
-	* yarvcore.c, vm.c : support yield in C method (as rb_yield)
-
-	* vm.c (thread_yield_light_(prepare|invoke)) : support lightweight
-	yield
-
-	* yarv.h : added
-
-	* yarvcore.c, yarv.h : support yarv_is_working, yarv_block_given_p, 
-	yarv_yield, yarv_funcall (only dummy function)
-
-	* vm.c : thread_eval_body changed return value
-
-	* yarvsubst.c : added and add yarv_Integer_times, yarv_Array_each
-
-	* yarvcore.h : block_ptr is added to struct thread_object
-
-	* insns.def : pass block when C method call
-
-	* insnhelper.h : add GET_ISEQOBJ(cfp) macro
-
-
-2004-11-21(Sun) 07:25:49 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c : support Proc#call
-
-	* test/test_proc.rb : added
-
-
-2004-11-19(Fri) 18:04:10 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def, vm.c : support creating Proc object
-
-
-2004-11-15(Mon) 14:19:27 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def (send) : use clear_local_size to specify
-	clear local table vars.
-
-	* insns.def : block represent data shares lfp, dfp with frame data
-
-
-2004-11-13(Sat) 18:19:41 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, insns.def : add VM_CALL_ARGS_SPLAT_BIT and
-	VM_CALL_ARGS_BLOCKARG_BIT
-
-	* compile.c, compile.h : add ADD_SEND, ADD_SEND_R
-
-
-2004-11-10(Wed) 08:26:25 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* add "vm_" prefix to (block_object, proc_object, env_object)
-
-
-2004-11-03(Wed) 15:52:14 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c, disasm.c, compile.c, insns.def, vm.c :
-	fix to move x86_64 (illegal cast, etc)
-
-
-2004-11-01(Mon) 04:45:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, compile.c, debug.c, version.h : 
-	redesgin gc debug scheme (GC_CHECK())
-
-	* yarvcore.c : mark iseqobj->current_block on GC
-
-	* insns.def, compile.c : last "throw" in ensure/rescue block
-	use operand throwobj and before this insn, use "getdynamic 0, 1"
-
-	* benchmark/bm_temp.rb : move to benchmark bmx_temp.rb
-
-	* depend : change some targets
-
-
-2004-10-25(Mon) 19:57:58 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : push exception iseq to iseqobj->iseq_mark_ary
-	to mark for GC
-
-
-2004-10-10(Sun) 16:25:03 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : remove $_, $' area from method local frame
-	and provide that's special method local variables pointer(LFP[-1])
-
-	* disasm.c : change environment showing format
-
-	* yarvcore.(h|c) : add YarvProc, YarvEnv
-
-	* yarvcore.h : add arg_block field to iseq_object
-	and init -1 as default value
-
-
-2004-09-30(Thu) 19:50:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, insns.def : support passing splat argument
-
-	* compile.c, insns.def : support rest argument
-
-	* compile.c, insns.def : support optional argument initializer
-
-	* test/test_method.rb : add tests for above
-
-
-2004-09-29(Wed) 10:50:03 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix rescue clause popped
-
-	* benchmark/bm_random.rb : move to benchmark/bmx_random.rb
-
-
-2004-09-29(Wed) 01:25:35 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* many many files: change stack frame design
-
-
-2004-09-16(Thu) 08:51:37 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, yarvcore.h : support 'return' from method
-	in ensure clause
-
-
-2004-09-13(Mon) 21:56:40 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support inline cache constant access
-	on NODE_COLON2, NODE_COLON3
-
-	* depend : add 'vtest' rule(verbose test)
-
-
-2004-09-13(Mon) 10:58:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, yarvcore.h : support redo/next/break in
-	while/until
-
-
-2004-09-13(Mon) 08:50:19 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_jump.rb : added(correctly)
-
-	* benchamark/bm_(ensure|rescue|simplereturn).rb added
-
-
-2004-09-12(Sun) 23:30:20 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_jump.rb : added
-
-	* insns.def, compile.c : add 'putnil' insn
-
-	* compile.c : use '===' when rescue check
-
-	* insns.def : remove 'rescuecheck' insn
-
-	* compile.c : support retry in begin/rescue clause
-
-	* ToDo : added
-
-
-2004-09-08(Wed) 12:34:04 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvcore.h, yarvcore.c : add idThrow*
-
-	* insns.def, compile.c, vm.c : support retry, break,
-	next, redo, return(imcomplete)
-
-
-2004-09-03(Fri) 13:40:08 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : add nop after rescue body
-
-	* insns.def, vm.c : support stack rewind when thrown
-
-
-2004-09-01(Wed) 17:31:01 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_exception.rb : added
-
-
-2004-09-01(Wed) 13:15:14 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.c, insns.def : implementing exception handling
-
-
-2004-09-01(Wed) 00:18:54 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : add 'throw' insn
-
-	* compile.c : support 'rescue' and 'ensure' clause
-
-	* yarvcore.c, yarvcore.h : add 'catch_table' to iseq_struct
-
-
-2004-08-30(Mon) 19:06:12 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.h : NEW_ISEQOBJ don't pass self as parent
-
-	* compile.c : use NEW_CHILD_ISEQOBJ explicitly
-
-
-2004-08-29(Sun) 21:09:55 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : trying to implement rescue/ensure
-
-	* insns.def : fix yield bug(lfp, dfp link)
-
-
-2004-08-28(Sat) 13:52:15 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix dvar bug
-
-	* test/test_block.rb : add test
-
-	* insns.def, insnhelper.h : remove unused source code
-
-
-2004-08-28(Sat) 08:51:26 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_DASGN
-
-	* test/test_block.rb : add test
-
-
-2004-08-28(Sat) 08:13:04 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, insns.def : support access to instance variable
-
-	* test/test_class.rb : add test of instance variable
-
-	* benchmark/bm_block.rb : added
-
-
-2004-08-28(Sat) 07:48:43 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_block.rb : fix block parameter name
-
-
-2004-08-28(Sat) 07:27:52 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c, insns.def : support method call with block
-	and yield and add some functions
-
-	* compile.c, insns.def : support dynavars accessor
-
-	* test/test_block.rb : added
-
-	* vm.c : fix block parameter stack dump
-
-
-2004-08-27(Fri) 23:56:47 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c(iseq_compile) : remove parameter iseqtype
-	(this information can access via self)
-
-2004-08-27(Fri) 17:13:35 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_bin.rb : add test(absolute path constant)
-
-	* yarvcore.h, compile.c(iseq_compile) : change parameter
-
-	* insns.def(classdef) : fix bug
-
-
-2004-08-27(Fri) 04:53:13 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : support setconstant, getconstant, classdef,
-	moduledef
-
-	* vm.h : fix debug levels and so on
-
-	* vm.h : foo_WORD -> foo_WC
-
-	* test/test_class.rb : added
-
-
-2004-08-25(Wed) 17:51:50 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : fix getconstant/setconstant/classdef
-
-
-2004-08-25(Wed) 14:27:10 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* debug.[ch] : added
-
-	* compile.c, disasm.c : use debug interface
-
-	* compile.c : support some nodes
-
-	* compile.c, rb/insns2vm.rb : remove TS_CPATH
-
-	* insns.def : modify classdef/moduledef/singletonclassdef
-	and add popcref
-
-	* and others...
-
-
-2004-08-18(Wed) 20:16:45 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix case/when statement with empty else clause
-
-	* insns.def : enable compile
-
-	* yarvcore.h : add class search path scheme
-
-	* test/test_syn.rb : add switch/case test case
-
-	* tmpl/yarvarch.ja : update documents
-
-
-2004-05-22(Sat) 01:30:44 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvutil.rb : add eval_in_wrap
-
-	* test/test_*.rb : change to use eval_in_wrap
-
-
-2004-05-20(Thu) 02:50:32 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* support global variables
-
-	* benchmark/bm_*.rb : add some benchmarks
-
-	* compile.c : support NODE_ATTRASGN
-
-	* compile.c : add debugi(...)
-
-
-2004-05-19(Wed) 23:19:38 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* test/test_method.rb : added
-
-
-2004-05-19(Wed) 22:56:09 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : fix typo
-
-	* benchmark/run.rb : sort benchmark order by filename
-
-	* extconf.rb : use --enable/disable-xxx
-
-	* version.h : ditto(don't touch to change yarv options)
-
-
-2004-05-19(Wed) 21:18:55 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* yarvutil.rb : added
-
-	* test.rb, test/*, benchmark/run.rb : use yarvutil.rb
-
-	* version.h : USE_OPTIMIZED_REGEXP_MATCH added
-
-	* yarvcore.h : add idEqTilde
-
-	* yarvcore.c(yarvcore_parse, yarvcore_eval) : require file and line
-	parameter
-
-	* test/test_bin.rb : add regexp test
-
-	* benchmark/bm_regexp.rb : added
-
-
-2004-05-19(Wed) 13:57:31 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : add compile_dstr(self, node)
-
-	* compile.c : support NODE_MATCH2, NODE_MATCH3, NODE_DXSTR
-
-	* insns.def : add toregexp
-
-
-2004-05-18(Tue) 10:12:20 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_XDSTR
-
-	* test/test_bin.rb : add test for above change
-
-
-2004-05-18(Tue) 09:46:33 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def(send) : store regs before call_cfunc
-
-
-2004-05-18(Tue) 08:55:17 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : support NODE_DSTR, NODE_EVSTR
-
-	* compile.c : support NODE_XSTR
-
-	* insns.def : add tostring operation
-
-	* rb/makedocs.rb : fix directory path
-
-	* depend : add tbench rule
-
-	* yarvcore.h : add 'exten ID idBackquote'
-
-
-2004-05-18(Tue) 00:09:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h : add USE_OPTIMIZED_BASIC_OPERATION
-
-	* yarvcore.h(struct thread_object) : add 'VALUE stat_insn_usage'
-
-
-2004-05-17(Mon) 11:28:55 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* version.h, insns.def, yarvcore.c : add FAKE_INLINE_METHOD_CACHE
-
-
-2004-05-17(Mon) 09:05:53 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* compile.c : fix generating opt_* insn process
-
-
-2004-05-17(Mon) 08:58:49 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/(bm_tarai.rb, bm_fib.rb) : added
-
-
-2004-05-17(Mon) 08:20:12 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/(bm_tak.rb, bm_reccount.rb) : added
-
-	* insns.def : test method cache(incomplete)
-
-	* insns.def : add expandarray insn
-
-	* yarvcore.c(iseq_init) : add parameter 'parent'
-
-
-2004-05-17(Mon) 01:49:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* benchmark/run.rb, bm_factorial.rb, bm_whileloop.rb : added
-
-	* insns.def(send) : set id to ruby_frame->orig_func
-
-	* check behavior on mswin32 and cygwin
-
-	* insns.def(send) : check stack overflow
-
-
-2004-05-16(Sun) 08:00:55 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* change frame structure(debugging)
-
-
-2004-05-14(Fri) 15:06:02 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns2vm.rb : support file name arguments
-
-
-2004-05-14(Fri) 04:33:09 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* insns.def : support (easy) constant
-
-
-2004-05-12(Wed) 01:51:48 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* rb/insns2vm.b : set directory prefix
-
-	* disasm.c : fix bug
-
-
-2004-05-12(Wed) 00:00:17 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.h, compiler.h, version.h : move *DEBUG defs to version.h
-
-
-2004-05-11(Tue) 23:00:11 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* vm.h, version.h, yarvcore.h : move gcc ver check to version.h
-	and include version.h from yarvcore.h
-
-
-2004-05-11(Tue) 19:16:26 +0900  Koichi Sasada  <ko1 atdot.net>
-
-	* 0.0.0.d : imported
-
-

Copied: tags/0.3.1/ChangeLog (from rev 250, trunk/ChangeLog)

Deleted: tags/0.3.1/Changes
===================================================================
--- trunk/Changes	2005-08-20 01:20:15 UTC (rev 249)
+++ tags/0.3.1/Changes	2005-08-31 13:58:43 UTC (rev 251)
@@ -1,98 +0,0 @@
-= 0.3.0 (2005-8-15)
-
-* Import Ruby source code and merge with YARV
-
-* Rite :)  You can get YARV without patched Ruby.
-  * Now, miniruby is built.
-
-* You can build YARV as Ruby C extension with "yarvext/"
-
-* make test-all => make yarv-test-all
-
-
-= 0.2.3 (2005-8-13)
-
-* support current (2005-8-13) ruby HEAD
-
-*Caution* 0.2.3 only runs on current (2005-8-13) ruby HEAD
-
-
-= 0.2.2 (2005-8-8)
-
-* some bug fixes
-
-* Compiler
-  * fix to execute ensure clause
-
-* Evaluator
-  * re-write VM structure
-    * use control frame stack
-    * change some frame structure
-  * add call threaded code support
-
-
-= 0.2.1 (2005-7-7)
-
-* some bug fixes
-
-* build options
-  * rename options and add --disable-opts, --disable-opt-unify
-  * please check options by "ruby extconf.rb --help"
-
-* VM generator (rb/insns2vm.rb)
-  * fix a unification algorithm (generate all combination)
-
-* compiler
-  * re-write and change data structure (GC free) used by compiler
-
-* evaluator
-  * add some specialized instructions
-  * x86_64 support
-
-* benchmark
-  * rename benchmarks
-  * add benchmark/other-lang/[*.rb, *.pl, *.py, *.scm]
-
-* YASM
-  * unsupported temporarily
-
-
-= 0.2.0
-
-* some bug fixes
-* refoctoring
-
-* New Features
-  * Assembler is supported
-  * YARV architecture documentation (in Japanese)
-
-
-= 0.1.1
-
-* some bug fixes
-* refoctoring
-
-* New Features
-  * support goto (*1)
-  * adding Ruby option "-rite" to work ruby script on YARV
-    instead of current ruby interpreter (*2)
-  * defined? support
-  * permit block parameter as local variables or so
-  * method_missing is supported partly
-
-* Optimization
-  * Instructions unification (aka super instruction) is supported
-    tentatively.
-  * JIT Compiler (Ruby script -> Native machine code), very experimental
-    implementation
-  * AOT Compiler support method dispatch
-
-(*1) it's only joke
-(*2) using -r (require) option with ite.rb :)
-
-
-= 0.1.0
-
-* initial release
-
-

Copied: tags/0.3.1/Changes (from rev 250, trunk/Changes)

Deleted: tags/0.3.1/yarv_version.h
===================================================================
--- trunk/yarv_version.h	2005-08-20 01:20:15 UTC (rev 249)
+++ tags/0.3.1/yarv_version.h	2005-08-31 13:58:43 UTC (rev 251)
@@ -1,21 +0,0 @@
-/**
- *
- * $Id$
- * Create : K.S. 04/01/11 04:11:41
- *
- */
-
-#ifndef _VERSION_H_INCLUDED_
-#define _VERSION_H_INCLUDED_
-
-#define MAJOR_VER   0
-#define MINOR_VER   3
-#define DEVEL_VER   0
-
-extern char  yarv_version[];
-extern char *yarv_options;
-
-
-#endif	// _VERSION_H_INCLUDED_
-
-

Copied: tags/0.3.1/yarv_version.h (from rev 250, trunk/yarv_version.h)

Deleted: tags/0.3.1/yarvcore.c
===================================================================
--- trunk/yarvcore.c	2005-08-20 01:20:15 UTC (rev 249)
+++ tags/0.3.1/yarvcore.c	2005-08-31 13:58:43 UTC (rev 251)
@@ -1,877 +0,0 @@
-/**
- * YARV: Yet Another Ruby VM.
- *
- *
- * $Id$
- * Create : K.S. 04/01/01 01:17:22
- *
- * Copyright (c) 2004 SASADA Koichi <ko1 at atdot.net>
- */
-
-#include <ruby.h>
-#include <node.h>
-
-#include "yarv_version.h"
-#include "yarvcore.h"
-#include "yarv.h"
-
-VALUE mYarvCore;
-VALUE cYarvISeq;
-VALUE cYarvVM;
-VALUE cYarvThread;
-VALUE mYarvInsns;
-VALUE cYarvEnv;
-VALUE cYarvProc;
-
-VALUE symIFUNC;
-VALUE symCFUNC;
-
-ID idPLUS;
-ID idMINUS;
-ID idMULT;
-ID idDIV;
-ID idMOD;
-ID idLT;
-ID idLTLT;
-ID idEq;
-ID idEqq;
-ID idBackquote;
-ID idEqTilde;
-ID idThrowState;
-ID idThrowBackDFP;
-ID idThrowObject;
-ID idAREF;
-ID idASET;
-ID idIntern;
-ID idMethodMissing;
-ID idEach;
-ID idLength;
-
-unsigned long yarvGlobalStateVersion = 1;
-
-
-/* from Ruby 1.9 eval.c */
-#ifdef HAVE_STDARG_PROTOTYPES
-#include <stdarg.h>
-#define va_init_list(a,b) va_start(a,b)
-#else
-#include <varargs.h>
-#define va_init_list(a,b) va_start(a)
-#endif
-
-#if 0
-#define MARK_REPORT(msg) printf("mark: %s\n", msg)
-#define FREE_REPORT(msg) printf("free: %s\n", msg)
-#define GC_INFO printf
-#else
-#define MARK_REPORT(msg)
-#define FREE_REPORT(msg)
-#define GC_INFO if(0)printf
-#endif
-
-#define MARK_UNLESS_NULL(ptr) if(ptr){rb_gc_mark(ptr);}
-#define FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);}
-
-
-/************/
-/* YARVCore */
-/************/
-
-/* temporalily */
-void yarv_setup(void *p1, void *p2, void *p3, void *p4,
-                void *p5, void *p6, void *p7, void *p8);
-
-
-static yarv_thread_t *yarvCurrentRunningThread = 0;
-static VALUE yarvVM = Qnil;
-
-VALUE yarv_get_current_running_vm_value(){
-  return yarvCurrentRunningThread->vm_value;
-}
-
-VALUE yarv_get_current_running_thread_value(){
-  return yarvCurrentRunningThread->self;
-}
-
-yarv_vm_t *yarv_get_current_running_vm(){
-  return yarvCurrentRunningThread->vm;
-}
-
-yarv_thread_t *yarv_get_current_running_thread(){
-  return yarvCurrentRunningThread;
-}
-
-void yarv_set_current_running_thread(yarv_thread_t *th){
-  yarvCurrentRunningThread = th;
-}
-
-/* rb_block_given */
-int yarv_block_given_p(){
-  if(GC_GUARDED_PTR_REF(GET_THREAD()->cfp->lfp[0])){
-    return 1;
-  }
-  else{
-    return 0;
-  }
-}
-
-VALUE th_invoke_yield(yarv_thread_t *th, int argc, VALUE *argv);
-
-/* rb_yield_values */
-VALUE yarv_yield_values(int argc, VALUE *argv){
-  yarv_thread_t *th = GET_THREAD();
-
-  if(argc == 1 && CLASS_OF(argv[0]) == rb_cValues){
-    argc = RARRAY(argv[0])->len;
-    argv = RARRAY(argv[0])->ptr;
-  }
-  
-  return th_invoke_yield(th, argc, argv);
-}
-
-VALUE thread_call0(VALUE self, VALUE klass, VALUE recv, VALUE id, ID oid,
-                   int argc, VALUE *argv, NODE *body, int nosuper);
-
-/* rb_call0 continued for yarv function */
-VALUE yarv_call0(VALUE klass, VALUE recv, VALUE id, ID oid,
-                 int argc, VALUE *argv, NODE *body, int nosuper){
-  return th_call0(GET_THREAD(), klass, recv, id, oid, argc, argv, body, nosuper);
-}
-
-
-VALUE th_call_super(yarv_thread_t *th, int argc, const VALUE *argv);
-
-VALUE yarv_call_super(int argc, const VALUE *argv){
-  return th_call_super(GET_THREAD(), argc, argv);
-}
-
-VALUE th_backtrace(yarv_thread_t *th, int level);
-
-VALUE yarv_backtrace(int level){
-  return th_backtrace(GET_THREAD(), level);
-}
-
-VALUE yarv_caller(VALUE self, VALUE level){
-  if(!IS_YARV_WORKING()){
-    return rb_funcall(Qnil, rb_intern("caller"), 1, level);
-  }
-  else{
-    return yarv_backtrace(FIX2INT(level));
-  }
-}
-
-RUBY_EXTERN int rb_thread_critical;
-RUBY_EXTERN int ruby_in_eval;
-RUBY_EXTERN int ruby_nerrs;
-RUBY_EXTERN NODE* ruby_eval_tree;
-
-static VALUE vm_eval(VALUE self, VALUE iseq);
-
-VALUE yarv_load(char *file){
-  NODE *node;
-  VALUE argv[5];
-  volatile VALUE iseq;
-  volatile int critical;
-
-  critical = rb_thread_critical;
-  rb_thread_critical = Qtrue;
-  {
-    ruby_in_eval++;
-    rb_load_file(file);
-    ruby_in_eval--;
-    node = ruby_eval_tree;
-  }
-  rb_thread_critical = critical;
-
-  if(ruby_nerrs > 0){
-    return 0;
-  }
-  
-  argv[0] = (VALUE)node;
-  argv[1] = rb_str_new2("<top (required)>");
-  argv[2] = rb_str_new2(file);
-  argv[3] = Qfalse;
-  argv[4] = ISEQ_TYPE_TOP;
-  iseq = rb_class_new_instance(5, argv, cYarvISeq);
-
-  vm_eval(yarv_get_current_running_vm_value(), iseq);
-  return 0;
-}
-
-
-VALUE *th_svar(yarv_thread_t *self, int cnt);
-
-VALUE *yarv_svar(int cnt){
-  return th_svar(GET_THREAD(), cnt);
-}
-
-static int yarv_iterate(NODE *node){
-  yarv_thread_t *th = GET_THREAD();
-  th->ifuncnode = node;
-  return 0;
-}
-
-static VALUE compile_string(VALUE str, VALUE file, VALUE line){
-  NODE *node;
-  node = rb_compile_string(StringValueCStr(file), str, NUM2INT(line));
-
-  if(ruby_nerrs > 0){
-    ruby_nerrs = 0;
-    rb_exc_raise(ruby_errinfo);
-  }
-
-  return (VALUE)node;
-}
-
-
-static VALUE yarvcore_eval_iseq(VALUE iseq){
-  volatile VALUE vm;
-  VALUE ret;
-  vm = yarv_get_current_running_vm_value();
-  
-  SET_YARV_START();
-  ret = vm_eval(vm, iseq);
-  SET_YARV_STOP();
-  return ret;
-}
-
-VALUE yarvcore_eval_parsed(VALUE node, VALUE file){
-  VALUE argv[5];
-  VALUE iseq;
-  
-  argv[0] = node;
-  argv[1] = rb_str_new2("<main>");
-  argv[2] = file;
-  argv[3] = Qfalse;
-  argv[4] = ISEQ_TYPE_TOP;
-  iseq = rb_class_new_instance(5, argv, cYarvISeq);
-  yarvcore_eval_iseq(iseq);
-}
-
-VALUE yarvcore_eval(VALUE self, VALUE str, VALUE file, VALUE line){
-  VALUE node = compile_string(str, file, line);
-  return yarvcore_eval_parsed(node, file);
-}
-
-static VALUE yarvcore_parse(VALUE self, VALUE str, VALUE file, VALUE line){
-  VALUE node;
-  VALUE argv[5];
-  VALUE iseq;
-  
-  node = compile_string(str, file, line);
-  
-  argv[0] = node;
-  argv[1] = rb_str_new2("<main>");
-  argv[2] = file;
-  argv[3] = Qfalse;
-  argv[4] = ISEQ_TYPE_TOP;
-  iseq = rb_class_new_instance(5, argv, cYarvISeq);
-  return iseq;
-}
-
-
-/***********************/
-/* InstructionSequence */
-/***********************/
-
-static void compile_data_free(struct iseq_compile_data *compile_data){
-  if(compile_data){
-    struct iseq_compile_data_storage *cur, *next;
-    cur = compile_data->storage_head;
-    while(cur){
-      next = cur->next;
-      ruby_xfree(cur);
-      cur = next;
-    }
-    ruby_xfree(compile_data);
-  }
-}
-
-static void iseq_free(void *ptr){
-  yarv_iseq_t *iseq;
-  FREE_REPORT("-> iseq");
-  
-  if(ptr){
-    iseq = ptr;
-    GC_INFO("%s\n", RSTRING(iseq->name)->ptr);
-
-    if(iseq->iseq != iseq->iseq_encoded){
-      FREE_UNLESS_NULL(iseq->iseq_encoded);
-    }
-    FREE_UNLESS_NULL(iseq->iseq);
-
-    FREE_UNLESS_NULL(iseq->insn_info_tbl);
-    FREE_UNLESS_NULL(iseq->local_tbl);
-    FREE_UNLESS_NULL(iseq->catch_table);
-    FREE_UNLESS_NULL(iseq->arg_opt_tbl);
-    compile_data_free(iseq->compile_data);
-    ruby_xfree(ptr);
-  }
-  FREE_REPORT("<- iseq");
-}
-
-static void iseq_mark(void *ptr){
-  yarv_iseq_t *iseq;
-  MARK_REPORT("-> iseq");
-  if(ptr){
-    iseq = ptr;
-    GC_INFO("%s\n", RSTRING(iseq->name)->ptr);
-    MARK_UNLESS_NULL(iseq->iseq_mark_ary);
-    MARK_UNLESS_NULL(iseq->name);
-    MARK_UNLESS_NULL(iseq->file_name);
-    MARK_UNLESS_NULL(iseq->klass_nest_stack);
-    MARK_UNLESS_NULL(iseq->catch_table_ary);
-    MARK_UNLESS_NULL((VALUE)iseq->node);
-    
-    if(iseq->compile_data != 0){
-      MARK_UNLESS_NULL(iseq->compile_data->mark_ary);
-      MARK_UNLESS_NULL(iseq->compile_data->err_info);
-    }
-  }
-  MARK_REPORT("<- iseq");
-}
-
-static VALUE iseq_alloc(VALUE klass){
-  VALUE volatile obj;
-  yarv_iseq_t *iseq;
-
-  obj = Data_Make_Struct(klass, yarv_iseq_t,
-                         iseq_mark, iseq_free, iseq);
-  return obj;
-}
-
-static VALUE prepare_iseq_build(yarv_iseq_t *iseq,
-                                VALUE name, VALUE file_name,
-                                VALUE parent, VALUE type){
-  
-  iseq->name            = name;
-  iseq->file_name       = file_name;
-  iseq->iseq_mark_ary   = rb_ary_new();
-  iseq->catch_table_ary = rb_ary_new();
-  iseq->type            = type;
-  iseq->arg_rest        = -1;
-  iseq->arg_block       = -1;
-
-  /* set class nest stack */
-  if(parent){
-    if(type != ISEQ_TYPE_CLASS){
-      yarv_iseq_t *piseq;
-      GetISeqVal(parent, piseq);
-      iseq->klass_nest_stack = piseq->klass_nest_stack;
-    }
-  }
-  else if(type == ISEQ_TYPE_TOP){
-    iseq->klass_nest_stack = rb_ary_new();
-    rb_ary_push(iseq->klass_nest_stack, rb_cObject);
-  }
-  else if(type == ISEQ_TYPE_METHOD){
-    iseq->klass_nest_stack = rb_ary_new();
-  }
-
-  iseq->compile_data    = ALLOC(struct iseq_compile_data);
-  MEMZERO(iseq->compile_data, struct iseq_compile_data, 1);
-  iseq->compile_data->mark_ary = rb_ary_new();
-
-  iseq->compile_data->storage_head = iseq->compile_data->storage_current =
-    (struct iseq_compile_data_storage *)
-      ALLOC_N(char, INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE +
-              sizeof(struct iseq_compile_data_storage));
-
-  iseq->compile_data->storage_head->pos  = 0;
-  iseq->compile_data->storage_head->next = 0;
-  iseq->compile_data->storage_head->size = INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE;
-  iseq->compile_data->storage_head->buff = (char *)(&iseq->compile_data->storage_head->buff + 1);
-
-  if(parent && CLASS_OF(parent) == cYarvISeq){
-    yarv_iseq_t *piseq;
-    GetISeqVal(parent, piseq);
-    iseq->parent_iseqobj = piseq;
-  }
-  return Qtrue;
-}
-static VALUE cleanup_iseq_build(yarv_iseq_t *iseqobj){
-  VALUE err;
-  err = iseqobj->compile_data->err_info;
-  compile_data_free(iseqobj->compile_data);
-  iseqobj->compile_data = 0;
-
-  if(ruby_nerrs > 0){
-    ruby_nerrs = 0;
-    rb_exc_raise(err);
-  }
-  return Qtrue;
-}
-
-static VALUE iseq_init(VALUE self, VALUE node, VALUE name, VALUE file_name,
-                       VALUE parent, VALUE type){
-  yarv_iseq_t *iseqobj;
-  
-  GetISeqVal(self, iseqobj);
-
-  prepare_iseq_build(iseqobj, name, file_name, parent, type);
-  iseq_compile(self, node);
-  cleanup_iseq_build(iseqobj);
-  
-  return self;
-}
-
-VALUE iseq_assemble_setup(VALUE self, VALUE args, VALUE locals, VALUE ary);
-
-static VALUE iseq_assemble(VALUE self, VALUE args, VALUE locals, VALUE insn_ary){
-  return iseq_assemble_setup(self, args, locals, insn_ary);
-}
-
-VALUE iseq_inspect(VALUE self){
-  char   buff[0x100];
-  yarv_iseq_t *iseqobj;
-  
-  GetISeqVal(self, iseqobj);
-  snprintf(buff, sizeof(buff), "<ISeq:%s@%s>",
-           RSTRING(iseqobj->name)->ptr,
-           RSTRING(iseqobj->file_name)->ptr);
-
-  return rb_str_new2(buff);
-}
-
-/******/
-/* VM */
-/******/
-
-static void vm_free(void *ptr){
-  FREE_REPORT("-> vm");
-  if(ptr){
-    ruby_xfree(ptr);
-  }
-  FREE_REPORT("<- vm");
-}
-
-static void vm_mark(void *ptr){
-  yarv_vm_t *vmobj;
-  MARK_REPORT("-> vm");
-  if(ptr){
-    vmobj = ptr;
-    rb_gc_mark(vmobj->main_thread);
-  }
-  MARK_REPORT("<- vm");
-}
-
-static VALUE vm_alloc(VALUE klass){
-  VALUE volatile obj;
-  yarv_vm_t *vm;
-  obj = Data_Make_Struct(klass, yarv_vm_t, vm_mark, vm_free, vm);
-  return obj;
-}
-
-static VALUE vm_init(VALUE self, VALUE node){
-  /* allocate vm stack */
-  yarv_vm_t *vmobj;
-  VALUE argv[1];
-  GetVMVal(self, vmobj);
-  
-  argv[0] = self;
-  vmobj->main_thread = rb_class_new_instance(1, argv, cYarvThread);
-  vmobj->self = self;
-  return self;
-}
-
-
-static VALUE thread_eval(VALUE self, VALUE iseq);
-
-static VALUE vm_eval(VALUE self, VALUE iseq){
-  yarv_vm_t *vm;
-  VALUE val;
-  GetVMVal(self, vm);
-  val = thread_eval(vm->main_thread, iseq);
-  return val;
-}
-
-
-/**********/
-/* Thread */
-/**********/
-
-static void thread_free(void *ptr){
-  yarv_thread_t *th;
-  FREE_REPORT("-> thread");
-  if(ptr){
-    th = ptr;
-    FREE_UNLESS_NULL(th->stack);
-    ruby_xfree(ptr);
-  }
-  FREE_REPORT("<- thread");
-}
-
-static void thread_mark(void *ptr){
-  yarv_thread_t *th;
-  MARK_REPORT("-> thread");
-  if(ptr){
-    th = ptr;
-    if(th->stack){
-      if(0){
-        rb_gc_mark_locations(th->stack, th->cfp->sp);
-      }
-      else{
-        VALUE *p = th->stack;
-        VALUE *sp = th->cfp->sp;
-        while(p < sp){
-          rb_gc_mark(*p++);
-        }
-      }
-    }
-    
-    /* mark ruby objects */
-    MARK_UNLESS_NULL(th->vm_value);
-    MARK_UNLESS_NULL(th->stat_insn_usage);
-    MARK_UNLESS_NULL(th->klass_nest_stack);
-  }
-  MARK_REPORT("<- thread");
-}
-
-static VALUE thread_alloc(VALUE klass){
-  VALUE volatile obj;
-  yarv_thread_t *th;
-
-  obj = Data_Make_Struct(klass, yarv_thread_t,
-                         thread_mark, thread_free, th);
-  return obj;
-}
-
-static void
-th_init(yarv_thread_t *th)
-{
-  /* allocate thread stack */
-  th->stack      = ALLOC_N(VALUE, YARV_THREAD_STACK_SIZE);
-  th->stack_size = YARV_THREAD_STACK_SIZE;
-  th->cfp        = (void *)(th->stack + th->stack_size);
-  th->cfp--;
-  
-  th->klass_nest_stack = rb_ary_push(rb_ary_new(), rb_cObject);
-  
-  th->cfp->pc  = 0;
-  th->cfp->sp  = th->stack;
-  th->cfp->bp  = 0;
-  th->cfp->lfp = th->stack;
-  th->cfp->dfp = th->stack;
-  th->cfp->self = Qnil;
-  th->cfp->magic = 0;
-}
-
-static VALUE
-thread_init(VALUE self, VALUE vmval)
-{
-  yarv_thread_t *th;
-  yarv_vm_t *vm;
-  
-  GetThreadVal(self, th);
-  GetVMVal(vmval, vm);
-  
-  th_init(th);
-  th->self = self;
-  
-  th->vm_value = vmval;
-  th->vm       = vm;
-
-  return self;
-}
-
-VALUE th_eval_body(yarv_thread_t *th);
-extern VALUE thread_set_top_stack(VALUE self, VALUE iseq);
-
-static VALUE thread_eval(VALUE self, VALUE iseq){
-  VALUE val;
-  yarv_thread_t *th;
-  GetThreadVal(self, th);
-
-  // TODO
-  thread_set_top_stack(self, iseq);
-  val = th_eval_body(th);
-
-  return val;
-}
-
-
-/***************/
-/* YarvEnv     */
-/***************/
-
-static void env_free(void *ptr){
-  yarv_env_t *env;
-  FREE_REPORT("-> env");
-  if(ptr){
-    env = ptr;
-    FREE_UNLESS_NULL(env->env);
-    ruby_xfree(ptr);
-  }
-  FREE_REPORT("<- env");
-}
-
-static void env_mark(void *ptr){
-  yarv_env_t *env;
-  MARK_REPORT("-> env");
-  if(ptr){
-    env = ptr;
-    if(env->env){
-      /* TODO: should mark more restricted range */
-      rb_gc_mark_locations(env->env, env->env + env->env_size);
-    }
-    MARK_UNLESS_NULL(env->prev_envval);
-  }
-  MARK_REPORT("<- env");
-}
-
-static VALUE env_alloc(VALUE klass){
-  VALUE obj;
-  yarv_env_t *env;
-  obj = Data_Make_Struct(klass, yarv_env_t,
-                         env_mark, env_free, env);
-  return obj;
-}
-
-
-/***************/
-/* YarvProc    */
-/***************/
-
-static void proc_free(void *ptr){
-  FREE_REPORT("-> proc");
-  if(ptr){
-    ruby_xfree(ptr);
-  }
-  FREE_REPORT("<- proc");
-}
-
-static void proc_mark(void *ptr){
-  yarv_proc_t *proc;
-  MARK_REPORT("-> proc");
-  if(ptr){
-    proc = ptr;
-    MARK_UNLESS_NULL(proc->envval);
-    MARK_UNLESS_NULL(proc->blockprocval);
-  }
-  MARK_REPORT("<- proc");
-}
-
-static VALUE proc_alloc(VALUE klass){
-  VALUE obj;
-  yarv_proc_t *proc;
-  obj = Data_Make_Struct(klass, yarv_proc_t,
-                         proc_mark, proc_free, proc);
-  return obj;
-}
-
-VALUE th_invoke_proc(yarv_thread_t *th, yarv_proc_t *proc, int argc, VALUE *argv);
-
-static VALUE proc_call(int argc, VALUE *argv, VALUE procval){
-  yarv_proc_t *proc;
-  GetProcVal(procval, proc);
-
-  return th_invoke_proc(GET_THREAD(), proc, argc, argv);
-}
-
-
-/********************************************************************/
-
-static VALUE yarv_once(){
-  return rb_yield(Qnil);
-}
-static VALUE cfunc(){
-  rb_funcall(Qnil, rb_intern("rfunc"), 0, 0);
-  rb_funcall(Qnil, rb_intern("rfunc"), 0, 0);
-  return Qnil;
-}
-
-VALUE constant_pool_pool;
-
-VALUE yarv_Array_each();
-VALUE yarv_Integer_times();
-// VALUE yarv_Hash_each();
-VALUE insns_name_array();
-
-char yarv_version[0x20];
-char *yarv_options = ""
-#if   OPT_DIRECT_THREADED_CODE
-    "[direct threaded code] "
-#elif OPT_TOKEN_THREADED_CODE
-    "[token threaded code] "
-#elif OPT_CALL_THREADED_CODE
-    "[call threaded code] "
-#endif
-
-#ifdef FAKE_INLINE_METHOD_CACHE
-    "[fake inline method cache] "
-#endif
-
-#ifdef OPT_BASIC_OPERATIONS
-    "[optimize basic operation] "
-#endif
-
-#ifdef OPT_STACK_CACHING
-    "[stack caching] "
-#endif
-
-#ifdef OPT_OPERANDS_UNIFICATION
-    "[operands unification] "
-#endif
-
-#ifdef OPT_INSTRUCTIONS_UNIFICATION
-    "[instructions unification] "
-#endif
-
-#ifdef OPT_INLINE_METHOD_CACHE
-    "[inline method cache] "
-#endif
-      ;
-
-
-void Init_yarvcore(){
-
-#include "rev.inc"
-
-  snprintf(yarv_version, 0x20, "YARVCore %d.%d.%d", MAJOR_VER, MINOR_VER, DEVEL_VER);
-  
-  /* declare YARVCore module */
-  mYarvCore = rb_define_module("YARVCore");
-  rb_define_const(mYarvCore, "VERSION", rb_str_new2(yarv_version));
-  rb_define_const(mYarvCore, "MAJOR"  , INT2FIX(MAJOR_VER));
-  rb_define_const(mYarvCore, "MINOR"  , INT2FIX(MINOR_VER));
-  rb_define_const(mYarvCore, "REV"    , rb_str_new2(rev));
-  rb_define_const(mYarvCore, "DATE"   , rb_str_new2(date));
-  rb_define_const(mYarvCore, "OPTS"   , rb_str_new2(yarv_options));
-
-  /* YARVCore::USAGE_ANALISYS_* */
-  rb_define_const(mYarvCore, "USAGE_ANALISYS_INSN", rb_hash_new());
-  rb_define_const(mYarvCore, "USAGE_ANALISYS_REGS", rb_hash_new());
-  rb_define_const(mYarvCore, "USAGE_ANALISYS_INSN_BIGRAM", rb_hash_new());
-  
-
-  /* YARVCore::InsnNameArray */
-  rb_define_const(mYarvCore, "InsnNameArray", insns_name_array());
-  
-  rb_define_singleton_method(mYarvCore, "eval" , yarvcore_eval , 3);
-  rb_define_singleton_method(mYarvCore, "parse", yarvcore_parse, 3);
-  rb_define_singleton_method(mYarvCore, "eval_iseq", yarvcore_eval_iseq, 1);
-  
-  
-  /* declare YARVCore::InstructionSequence */
-  cYarvISeq = rb_define_class_under(mYarvCore, "InstructionSequence", rb_cObject);
-  rb_define_alloc_func(cYarvISeq, iseq_alloc);
-  rb_define_method(cYarvISeq, "initialize", iseq_init, 5);
-  rb_define_method(cYarvISeq, "inspect",    iseq_inspect, 0);
-  rb_define_method(cYarvISeq, "disasm",     iseq_disasm, 0);
-  rb_define_method(cYarvISeq, "assemble",   iseq_assemble, 3);
-  // rb_define_singleton_method(cYarvISeq, "new_from_insn_ary", iseq_init_from_insn_ary, 1);
-  
-  /* declare YARVCore::VM */
-  cYarvVM = rb_define_class_under(mYarvCore, "VM", rb_cObject);
-  rb_define_alloc_func(cYarvVM, vm_alloc);
-  rb_define_method(cYarvVM, "initialize", vm_init, 0);
-  rb_define_method(cYarvVM, "eval",       vm_eval, 1);
-
-  /* declare YARVCore::VM::Thread */
-  cYarvThread = rb_define_class_under(cYarvVM, "Thread", rb_cObject);
-  rb_define_alloc_func(cYarvThread, thread_alloc);
-  rb_define_method(cYarvThread, "initialize", thread_init, 1);
-  rb_define_method(cYarvThread, "eval",       thread_eval, 1);
-
-  /* declare YARVCore::VM::Env */
-  cYarvEnv = rb_define_class_under(cYarvVM, "Env", rb_cObject);
-  rb_define_alloc_func(cYarvEnv, env_alloc);
-
-  /* declare YARVCore::VM::Proc */
-  cYarvProc = rb_define_class_under(cYarvVM, "Proc", rb_cObject);
-  rb_define_alloc_func(cYarvProc, proc_alloc);
-  rb_define_method(cYarvProc, "call", proc_call, -1);
-  
-  /* misc */
-
-  
-  /* YARV test functions */
-  
-  rb_define_global_function("once", yarv_once, 0);
-  rb_define_global_function("cfunc", cfunc, 0);
-  rb_define_global_function("yarv_caller", yarv_caller, 1);
-  
-  /* Integer#times */
-  rb_define_method(rb_cInteger, "times", yarv_Integer_times, 0);
-  
-  /* Array#each */
-  // rb_define_method(rb_cArray, "each", yarv_Array_each, 0);
-  /* Hash#each */
-  // rb_define_method(rb_cHash,"each", yarv_Hash_each, 0);
-
-#if YARVEXT
-  yarv_setup(yarv_yield_values, yarv_call0, yarv_block_given_p, yarv_load,
-             yarv_svar, yarv_iterate, yarv_call_super, yarv_backtrace);
-#endif
-  
-  symIFUNC = ID2SYM(rb_intern("<IFUNC>"));
-  symCFUNC = ID2SYM(rb_intern("<CFUNC>"));
-
-  /* for optimize */
-  idPLUS = rb_intern("+");
-  idMINUS= rb_intern("-");
-  idMULT = rb_intern("*");
-  idDIV  = rb_intern("/");
-  idMOD  = rb_intern("%");
-  idLT   = rb_intern("<");
-  idLTLT = rb_intern("<<");
-  idEq   = rb_intern("==");
-  idEqq  = rb_intern("===");
-  idBackquote = rb_intern("`");
-  idEqTilde   = rb_intern("=~");
-  
-  idAREF = rb_intern("[]");
-  idASET = rb_intern("[]=");
-
-  idEach   = rb_intern("each");
-  idLength = rb_intern("length");
-  idIntern = rb_intern("intern");
-  idMethodMissing = rb_intern("method_missing");
-
-  idThrowState     = rb_intern("#__ThrowState__");
-  idThrowBackDFP   = rb_intern("#__ThrowBackDFP__");
-  idThrowObject    = rb_intern("#__ThrowObject__");
-  
-  constant_pool_pool = rb_ary_new();
-  rb_global_variable(&constant_pool_pool);
-
-#if TEST_AOT_COMPILE
-  Init_compiled();
-#endif
-
-  // make vm
-  {
-    VALUE vmval = rb_class_new_instance(0, 0, cYarvVM);
-    yarv_vm_t *vm;
-    yarv_thread_t *th;
-
-    yarvVM = vmval;
-    rb_global_variable(&yarvVM);
-    
-    GetVMVal(vmval, vm);
-    GetThreadVal(vm->main_thread, th);
-
-    thread_free(GET_THREAD());
-    yarv_set_current_running_thread(th);
-  }
-}
-
-static void
-test()
-{
-  int i; int *p;
-  printf("!test!\n");
-  for(i=0; i<1000000; i++){
-    p = ALLOC(int);
-  }
-}
-
-void
-Init_vm()
-{
-  /* initialize main thread */
-  yarv_thread_t *th = ALLOC(yarv_thread_t);
-  th_init(th);
-  yarv_set_current_running_thread(th);
-}
-

Copied: tags/0.3.1/yarvcore.c (from rev 250, trunk/yarvcore.c)


--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]