|
From: <fra...@us...> - 2009-06-12 18:06:25
|
Revision: 1616
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1616&view=rev
Author: frankrimlinger
Date: 2009-06-12 18:06:21 +0000 (Fri, 12 Jun 2009)
Log Message:
-----------
Reinstated clear on reset for Entrypoints window and Session window.
Generated MangoJPF session for ItsAWrap. clear.
Fixed a rewriting bug in ItsAWrap.main. The bizarre pop2 instruction can only resolve whether it is supposed to pop one or two values during rewriting. For this purpose, the pop2 rulekey was introduced. Unfortunately, many instructions use a local variable pop2 when building the formal peer, and the distinction got confused in MangoJPF. To fix this problem,
1. refactored pop2 to pop2Wide in both Mango and MangoJPF
2. revised rulebase accordingly, in both Mango and MangoJPF
3. fixed the broken rules in MangoJPF. This were easy to find because pop2Wide only occurs in the POP2 formal peer. All the other instances changed to the local variable pop2.
I do remember deleting those pop2 locals now in MangoJPF because they were "not being used". The whole issue came about because when porting to the javapathfinder-mango-bridge, the inheritance structure changed so that references to rulekeys had to be made more explicit. TRICKY!
As an afterthought, this experience shows that making expressions with empty argument lists a syntax error is a good idea after all. Otherwise this error could have taken a long time to diagnose. Checking the syntax of formal peer expresssions with the new MangoInstructionFactory.sanityTest() creates no discernible overhead, and so this feature will be left on.
Next bug: callThisClinit fails to resolve during call to clear() in ItsAWrap.main. No surprise here, as the clinit plumbing has been completely reworked for MangoJPF.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashOpcodeSyms.java
branches/mango/Mango/Mango/src/mango/worker/javaModel/byteCodeModel/PopDupSwap.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/MangoJPF/META-INF/MangoJPF.product
branches/mango/MangoJPF/Mango/src/mango/worker/GlobalViewModel.java
branches/mango/MangoJPF/Mango/src/mango/worker/Worker.java
branches/mango/MangoJPF/Mango/src/mango/worker/engine/hash/Cons.java
branches/mango/MangoJPF/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashOpcodeSyms.java
branches/mango/MangoJPF/ThreadSupport/src/threadModel/SystemBuilder.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoFormalInterface.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoInstruction.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoInstructionFactory.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoInvokeInstruction.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/AALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/BALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/CALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/DALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/FALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/IALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/LALOAD.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/POP2.java
branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/SALOAD.java
branches/mango/MangoJPF/mangoUserHome/frank/rules/rulebase.zip
branches/mango/MangoJPF/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/length of the Array 'x' is greater than or equal to 10.zip
branches/mango/MangoJPF/src/mango/views/GlobalViewWindow.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|