|
From: <fra...@us...> - 2009-07-29 01:23:08
|
Revision: 1787
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1787&view=rev
Author: frankrimlinger
Date: 2009-07-29 01:23:00 +0000 (Wed, 29 Jul 2009)
Log Message:
-----------
Fixed enable/disable timing for Rulebase and Reset buttons to avoid some unpleasant crashes. Fixed another typing bug involving "commutesWithWithDive". Decided to just expose all the grime that has settled into the RuleKey class via the typing system. To this end, introduced the types
<reveal>
<revealAll>
<binder>
<notWithDiveCommuter>
<notObject>
<exposed> implies <binder>
<immutable>
The horrible SymbolHashInitialize class is now eliminated. Converted the corresponding hack code in RuleKey and HeapTracer classes to type assignment rules. Once again, moving this stuff to a rule-based scenario allows the display system and the garbage collection to evolve in a much more maintainable, disciplined way.
Also, moved "numerical representation" into the typing system. This is to accommodate "relaxed numbers" that can widen.
<intRelax>
<longRelax>
<floatRelax>
<doubleRelax>
all of which imply
<relaxedNumber>
which implies
<number>
The existing types
int,long,float, and double, imply <strictNumber> which implies <number>
All exensions of Hitem must now support setTypeAssignment(RuleKey type). Classes which choose to do so with a static assignment must do so with care, because any type assignment will brand all members of the class. At the very least, such classes should throw if an attempt is made to brand them as <immutable>, unless this really is true. This is a dangerous game to play, but (perhaps) necessary to avoid an explosion in memory consumption.
Cleaned up the coreRewriter.numerical package to behave in a sane, methodical way using the new typing system.
Finally letting go of the old fourchar codes from PowerPlant days gone bye:
DIVI --> Divide
EXPT --> Power
FLOR --> Floor
INCR --> Increment
MINU --> Subtract
NGat --> Negate
PLUS --> Add
TIME --> Multiply
and the oldest one of all:
SUBR --> Substitute
You need to build the type assignment rules for the newly introduced types. Also, what is the type of a ^className value?? Isn't there supposed to be a formal_className?? It has the form (makeClass sym), but no type?? Should we introduce formal_className??
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/control/action/control/StopWorkerAction.java
branches/mango/Mango/Mango/src/mango/core/sym/RuleKey.java
branches/mango/Mango/Mango/src/mango/module/definition/sym/ParamSym.java
branches/mango/Mango/Mango/src/mango/module/model/RuleModel.java
branches/mango/Mango/Mango/src/mango/ruleAction/conditionalTechniques/linear/BuildEquation.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetInterfaceRunTimeMethod.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetVirtualRunTimeMethod.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/clinit/CallThisClinit.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/Equals.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/DIVI.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/EXPT.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/FLOR.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/INCR.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/IsTypeCatI.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/IsTypeCatII.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/MINU.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/NGat.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/PLUS.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/TIME.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/ConvertDoubleToString.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/ConvertFloatToString.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/ConvertIntToString.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/ConvertLongToString.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/InheritTypeFromThirdArg.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/TypeAssignmentRule.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/engine/NotNumber.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/WorkerControl.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/DoubleH.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/FloatH.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Hitem.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/IntegerH.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Kons.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/LongH.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHash.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashEngine.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashLogicAndArithmetic.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashMangoModel.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashRewriter.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Rule.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleBase.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Acl2paramSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClassNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/GenericMethodNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/InstructionNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/InvocationNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Marker.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Plug.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/StringSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Sym.java
branches/mango/Mango/Mango/src/mango/worker/flags/RuleDebuggingFlags.java
branches/mango/Mango/Mango/src/mango/worker/msg/NewWorkerMsg.java
branches/mango/Mango/Mango/src/mango/worker/msg/RulebaseMsg.java
branches/mango/Mango/Mango/src/mango/worker/utilities/Util.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapTracer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/LAsolver.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/model/InvariantModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/ReplaceRewriteLocatorMsg.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/Invocation.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ANEWARRAY.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/CHECKCAST.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/GETFIELD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/GETSTATIC.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/INSTANCEOF.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LDC.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LDC_W.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/MULTIANEWARRAY.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/NEW.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/NEWARRAY.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/PUTFIELD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/PUTSTATIC.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/InstructionSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/InvocationSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/JclassSym.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/frank/sessions/a.zip
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/forName(Ljava.lang.String_MangoFormal;)Ljava.lang.Class_MangoFormal;/'className' is defined.zip
branches/mango/Mango/src/mango/views/GenSpecWindow.java
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/NotResovedInvocationUcon.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/ArithmeticLocalVar.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/CoefficientValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/ConjunctionValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/EquationValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/InequationValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/LinearVariable.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/linearArithmetic/NotEquationValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/ArithmeticFieldType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/ArithmeticValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/BooleanReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/DoubleReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/FloatReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/IntReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/IntegralArrayFieldType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/IntegralFieldType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/IntegralValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/LongReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/NumberReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/RelaxedNumberReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/StrictNumberReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/rewriter/
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/rewriter/CommutesWithWithDive.java
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleRequirement/engine/NumberReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/leadingKey/
branches/mango/Mango/Mango/src/mango/ruleRequirement/linearArithmetic/
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ArithmeticFieldType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ArithmeticValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/BooleanReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/DoubleReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FloatReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/IntReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/IntegralArrayFieldType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/IntegralFieldType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/IntegralValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/LongReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Number.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashInitialize.java
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/forName(Ljava.lang.String_MangoFormal;)Ljava.lang.Class_MangoFormal;/'className' equals null reference.zip
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/forName(Ljava.lang.String_MangoFormal;)Ljava.lang.Class_MangoFormal;/a.zip
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|