# $Id: ChangeLog 154 2005-03-04 04:47:43Z ko1 $
#
# YARV ChangeLog
#  from Mon, 03 May 2004 01:24:19 +0900
#

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


