B-JVM-Jasmin

 view release on metacpan or  search on metacpan

ChangeLog  view on Meta::CPAN

1999-12-05  Bradley M. Kuhn  <bkuhn@ebb.org>

	* README: wrote a full README file as it should be for a first
	public release.  :)

	* ChangeLog: spell-checked change log.

	* Java/org/perl/internals/Scalar.java: added seq and sne functions

	* Jasmin.pm (B::LOGOP::JVMJasminPre): got cond_expr working
	(B::BINOP::JVMJasminPost): fixed seq and sne work

1999-12-04  Bradley M. Kuhn  <bkuhn@ebb.org>

	* lib/B/JVM/Jasmin/Emit.pm (nop): added method

	* Jasmin.pm (B::BINOP::JVMJasminPre): had to change things so that
	the "concat" pre-processing did argument IN order.  It looks like
	the "trick" of processing things in reverse order may be
	problematic.  In this case, it occurred because if there are
	cascaded BINOPs of "concat" type, and some of them are actually
	".=" operations, we can get the wrong r-values in cases like:
	$x = $y . ($y .= "f");

	* lib/B/JVM/Jasmin/Emit.pm (dup): spruced up the POD and error
	messages for this function
	(swap): added function

	* Jasmin.pm (B::UNOP::JVMJasminPre): added processing for creation
	of the result StackElement here [instead of doing it in the child OP].
	(B::UNOP::JVMJasminPost): set up things so that we can handle the
	OPf_MOD flag properly.

	* Java/org/perl/internals/Scalar.java: implemented concat member
	function.

	* Jasmin.pm (B::BINOP::JVMJasminPre): changed processing on
	"sassign" to be in order
	(TurnStackElementsToScalars): wrote function
	(B::BINOP::JVMJasminPost): got "sassign" working properly using
	TurnStackElementsToScalars

	* Java/org/perl/internals/Scalar.java: added isConstant member
	variable for sanity checking for assigning to constants

1999-11-28  Bradley M. Kuhn  <bkuhn@ebb.org>

	* lib/B/JVM/Jasmin/Emit.pm: moved labels to be handled inside
	methods [just as locals are].  Since labels are, in fact, local to
	methods, they should not be handled globally on the file level.
	(ifne): spruced up the POD and error messages for this function
	(labelCreate): spruced up the POD and error messages for this function
	(labelSend): spruced up the POD and error messages for this function
	(gotoLabel): spruced up the POD and error messages for this function

	* ChangeLog: spell-checked change log.

	* Jasmin.pm (walkoptree): removed recursive walks from this
	function; they should now be done in the B::*::JasminPre
	functions, when necessary
	(B::LISTOP::JasminPre): changed the print function so that it
	would process the pushmark first, and then process its arguments
	in reverse order.  This was required so that the prints occur in
	the proper order.  Apparently, perl is able to use the stack as a
	queue at times.  Perl seems to first find the mark, and then
	process from the mark to the end of the list as if it is a queue.
	Very odd.
	(B::LISTOP::JasminPre): added processing for "list" op so that it
	works similarly to print.  The difference is that when a listop is
	processed, it appears to pushmark, and then simply put the options
	on in order, and then removes the mark at the end of the "list"
	operation.  I took the same approach that I took for
	"print"---except I threw away to "pushmark" operation and reversed
	the order the other sub-ops are processed.  This may not work in
	all cases for the "list" operation, but it at least works when
	processing a 'print LIST' construct.  :)

	* lib/B/JVM/Jasmin/Emit.pm (methodCreateLocal): changed so that
	locals could be reused, as I found that far too many locals were
	being generated for even the simplest of operations
	(methodFreeLocal): created this function so that locals can be freed.



( run in 3.741 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )