B-JVM-Jasmin
view release on metacpan or search on metacpan
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 )