I run the following integration test:
bytecode -> (disassemble) xmir -> phi -> unphi -> unroll -> xmir (assemble) -> bytecode.
And this test fails because phi/unphi alter the original xmir file.
Steps to reproduce:
- I generate
App.xmir from App.class file (jeo:disassemble).
- Then I use
eo:0.50.0:xmir-to-phi to generate App.phi (eo:xmir-to-phi).
- Then I run
eo:0.50.0:phi-to-xmir to generate App.xmir (eo:phi-to-xmir).
- Then I run
jeo:unroll and get exceptions about incorrect xmir (jeo:unroll`).
Actually, phi/unphi loose <o as="body-1299402125" base="jeo.seq.of3"> object. Later I see the following error:
Can't find object with attribute as='body' in ...
Expected behaviour:
App.xmir.disassemble.txt and App.xmir.unphi.txt files should be the same. In other words, phi/unphi does not
have to change the original xmir file.
Actual behaviour:
App.xmir.disassemble.txt and App.xmir.unphi.txt files are different. phi/unphi significantly changes the original xmir.
Details:
App.phi.txt
App.xmir.disassemble.txt
App.xmir.unphi.txt
App.xmir.unroll.txt
I run the following integration test:
bytecode -> (disassemble)
xmir->phi->unphi->unroll->xmir(assemble) -> bytecode.And this test fails because
phi/unphialter the originalxmirfile.Steps to reproduce:
App.xmirfromApp.classfile (jeo:disassemble).eo:0.50.0:xmir-to-phito generateApp.phi(eo:xmir-to-phi).eo:0.50.0:phi-to-xmirto generateApp.xmir(eo:phi-to-xmir).jeo:unrolland get exceptions about incorrectxmir(jeo:unroll`).Actually,
phi/unphiloose<o as="body-1299402125" base="jeo.seq.of3">object. Later I see the following error:Expected behaviour:
App.xmir.disassemble.txtandApp.xmir.unphi.txtfiles should be the same. In other words,phi/unphidoes nothave to change the original
xmirfile.Actual behaviour:
App.xmir.disassemble.txtandApp.xmir.unphi.txtfiles are different.phi/unphisignificantly changes the originalxmir.Details:
App.phi.txt
App.xmir.disassemble.txt
App.xmir.unphi.txt
App.xmir.unroll.txt