|
From: <fra...@us...> - 2009-07-25 03:17:10
|
Revision: 1781
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1781&view=rev
Author: frankrimlinger
Date: 2009-07-25 03:17:03 +0000 (Sat, 25 Jul 2009)
Log Message:
-----------
Fixed some bugs involving flavors of unknown type. Successful specification of exceptional case of Class_MangoFormal.forName(). Now need to write code for object case of HeapModel.getValue_oldStyle(). This involves explicit search of heap to determine if we are in the multiarray case, in which case, "the object is its name", otherwise null. Then can complete specification of forName().
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/module/definition/sym/ParamSym.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/AmbientLocal.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/sym/TranslationSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Removed Paths:
-------------
branches/mango/Mango/mangoUserHome/frank/sessions/a.zip
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-07-27 04:48:08
|
Revision: 1783
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1783&view=rev
Author: frankrimlinger
Date: 2009-07-27 04:48:00 +0000 (Mon, 27 Jul 2009)
Log Message:
-----------
Rehab of expressions with a variable number of arguments. The corresponding rulekeys are now types which imply the new <variableLength> type. Fine tuned FormalTypes to only compare minimal types for the purpose of determining type inequivalence. Non-minimal types tend to collapse all the types together, and so are not helpful for determining type inequivalence. Ensured that all dynamically introduced types are minimal.
Introduced the <multiarray> type, which is <variableLength> to accomodate any number of dimensions. Updated getValue_oldStyle() per rev 1764, except using <multiarray> as the rulekey instead of array.
Fixed timing problem with type requirements. The typing system is so efficient now that sometimes the type of an unstable expression can be determined. This causes trouble with rules that assume a typed expression is stable. So all type requirements now return false if the passed value is unstable.
Tweaked unifier to allow variable length expressions to stabilize before any other rule is applied.
Next issue: need to resolve predicate-versus-boolean issue for isClassLoadable.
Revision Links:
--------------
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1764&view=rev
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/CoreSym.java
branches/mango/Mango/Mango/src/mango/core/sym/AliasedRuleKey.java
branches/mango/Mango/Mango/src/mango/core/sym/RuleKey.java
branches/mango/Mango/Mango/src/mango/enterprise/locator/MFLocator.java
branches/mango/Mango/Mango/src/mango/module/definition/agent/ParameterExpAgent.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/module/msg/ContainsTestMsg.java
branches/mango/Mango/Mango/src/mango/ruleAction/conditionalTechniques/conditional/MatchAssumptionList.java
branches/mango/Mango/Mango/src/mango/ruleAction/conditionalTechniques/conditional/StabilizeArguments.java
branches/mango/Mango/Mango/src/mango/ruleAction/conditionalTechniques/conditional/SubType.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/predShortcuts/Aget.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/CommuteFunctionExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/ComposeFunctionSym.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/ConditionalCommuteFunctionExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateOver.java
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/DoubleReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FloatReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FrameReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/GstackReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/HeapPointerReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/HeapReq.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/InvocationNameReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/JavaButNotJVMtype.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/LocationReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/LongReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ObjectReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/PredTransformerReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/PredicateReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StackReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StateReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StringValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UconReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UnknownLocalVarReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UnknownOpVarReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Kons.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashEnterpriseAndTranslation.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashInitialize.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/unifier/UnifyEvent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/agent/FreeVarsAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/agent/GeneralizeAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/agent/OverAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/agent/WithAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/EquationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/FoundationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/FunctionSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/ModuleInvocationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/model/InvariantModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/model/InvariantStatus.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoMethodPeer.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/MULTIANEWARRAY.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/IsExplicitClassLoadable.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/multiarray/
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/multiarray/ComposeVariableLengthExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsClassLoadable.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/variableLength/
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/variableLength/FreeVarsReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/variableLength/OverReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/variableLength/VariableLengthReq.java
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/IsClassLoadable.java
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/MakeArray.java
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/MakeLoop.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsLoadableClass.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/FreeVarsReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/OverReq.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-07-27 22:56:24
|
Revision: 1785
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1785&view=rev
Author: frankrimlinger
Date: 2009-07-27 22:56:15 +0000 (Mon, 27 Jul 2009)
Log Message:
-----------
Cleaned up the loadable class issue. Introduced the the formal type <parameter> and rewrote the parameter detection mechanism to simply parametrize expressions of type <parameter>. The parametrizable expressions are now exposed as <parameter> type assignment rules. Future parameter detection is now rule based instead of "hack the code" based. This is another bfc brought about by the improvements to the typing system. To support this, changed "bindFunctionSym" to <function> type implying <parameter>.
Fixed an ugly self-inflicted bug involving static data. When you globally assign a type to a class, the idiom is just to add the rulekey to a static assignedTypes field. If you do this, you MUST add a staticReset() method and call it from Worker.staticReset(). Even though the rulekey doesn't "change", it really does change, because a fresh symbol hash is built for each worker. What a SymbolHash does with stale Hitem objects is anybody's guess. This is definitely a weak point in the design. If this problem persists you will have to have the SymbolHash check for liveness. PAIN.
Next bug: sortParameters is sometimes not able to determine the type of a parameter because its expression is unstable. Why? HarvestParametersAgent is supposed to take care of this. Is this another typing timing issue?
Modified Paths:
--------------
branches/mango/Mango/ACL2/itsAWrap-construct.lisp
branches/mango/Mango/Mango/src/mango/core/CoreSym.java
branches/mango/Mango/Mango/src/mango/core/sym/RuleKey.java
branches/mango/Mango/Mango/src/mango/module/definition/agent/ParameterExpAgent.java
branches/mango/Mango/Mango/src/mango/module/definition/sym/ParamSym.java
branches/mango/Mango/Mango/src/mango/module/instance/model/InstanceManager.java
branches/mango/Mango/Mango/src/mango/module/model/RuleModel.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/BindFunctionSym.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/CommuteFunctionExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/ConditionalCommuteFunctionExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/simpleSubstitution/SUBR.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/DoesNotThrow.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsClassLoadable.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/ThisIsNotNull.java
branches/mango/Mango/Mango/src/mango/worker/Worker.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/Hash.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/SymbolHashEnterpriseAndTranslation.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashInitialize.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/sym/InvocationNameSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/GateSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/CodeSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/EdgeSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/LoopSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/PathSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/ucon/UconSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/ConjunctionSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/EquationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/InequationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/FunctionSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/ModuleHypothesisSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/ModuleInvocationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/AutoAssumptionAgent.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.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' equals null reference.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/ComposeFunctionExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_boolean.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_parameter.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/BooleanReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FunctionReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ParameterReq.java
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/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/forName(Ljava.lang.String_MangoFormal;)Ljava.lang.Class_MangoFormal;/a.zip
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/multiarray/
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/ComposeFunctionSym.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsLoadable.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsLoadableArrayClass.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/FunctionExp.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/FunctionSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/module/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-07-28 06:10:39
|
Revision: 1786
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1786&view=rev
Author: frankrimlinger
Date: 2009-07-28 06:10:26 +0000 (Tue, 28 Jul 2009)
Log Message:
-----------
Stale Hitem mitigation underway. Stale Hitems result from not disposing of static Hitem fields prior to rebuilding the SymbolHash class. The principle symptom of this problem: a session S will replay correctly if it is the first session of a mango lifetime, but not if it is the second. Stale stable objects are particularly damaging because they "constipate" the rewriter when confused with their genuine unstable counterparts. The Hash object methods as well as certain other strategic methods in Hitem and Sym now perform a very quick test to determine liveness, which has uncovered errors. But the best thing is just to be careful when introducing static data in the first place.
Fixed a few more typing bugs. Issue: FormalTypes.buildPartialOrderings() does not magically take the transitive closure. Eventually you probably should code this up, as it is painfully easy to omit "obvious" relations.
Keep working on parametrization bugs.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/module/definition/agent/ParameterExpAgent.java
branches/mango/Mango/Mango/src/mango/module/definition/model/DefinitionManager.java
branches/mango/Mango/Mango/src/mango/module/definition/sym/ParamSym.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Hash.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Hitem.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Kons.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHash.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Sym.java
branches/mango/Mango/Mango/src/mango/worker/msg/RulebaseMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/FrameSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/HeapSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/StackSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/StatSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.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/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;/'className' is defined.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.
|
|
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.
|
|
From: <fra...@us...> - 2009-07-29 07:29:37
|
Revision: 1788
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1788&view=rev
Author: frankrimlinger
Date: 2009-07-29 07:29:29 +0000 (Wed, 29 Jul 2009)
Log Message:
-----------
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/sym/RuleKey.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/mango_math/ParseByteReturnsValue.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/mango_math/ParseByteThrowsNumberFormatException.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/mango_math/ParseIntReturnsValue.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/mango_math/ParseIntThrowsNumberFormatException.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/mango_math/ParseShortReturnsValue.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/mango_math/ParseShortThrowsNumberFormatException.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/sorting/SRTP.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/StringAppend.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/Substring.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/engine/events/RewriteEvent.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Hash.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Hitem.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashEngine.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/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/Other.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/utilities/Util.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapPointer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.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
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Add.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Divide.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Floor.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Increment.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Multiply.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Negate.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Power.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/numerical/Subtract.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_binder.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_notObject.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_notWithDiveCommuter.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_reveal.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_revealAll.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StringReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClinitWasCalledSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/EmptyString.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ImmutableSym.java
Removed Paths:
-------------
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/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/ruleRequirement/engine/StringReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Acl2paramSym.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-07-30 00:41:55
|
Revision: 1790
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1790&view=rev
Author: frankrimlinger
Date: 2009-07-30 00:41:46 +0000 (Thu, 30 Jul 2009)
Log Message:
-----------
Revised Kons.getAssignedTypes so that if the rulekey x is NOT a type, but x has assigned types, then those types are also assigned to the Kons. This revision allows the "short names" for functions to propagate the <exposed> type to function instantiations without actually introducing the short names into the type namespace, which is already getting crowded. However, it is no longer a good idea to designate ANY rulekey as immutable, and in fact all such designations have been removed. In the end, it may be necessary to introduced levels into the type namespace in order to avoid collisions, but this is fraught with peril. It is much safer to dynamically assign types then to dynamically create new types, and maybe this is good enough.
Fixed Kons.getAssignedTypes so that it no longer wastes memory. Its ok to have a secondary hash to store the HashSets as long as you UPDATE the retrieved set each time.
There is another point here, that has to do with timing. Type assignment RuleKey.getAssignedTypes() guarantees that associated Kons items will learn the type *before* any requirement fires on that Kons. This is critical for the newly introduced rewriter types like <notWithDiveCommuter> and <binder>. This technique captures the essence of all the hacks used to "get out in front" of the rewriter in a systematic way.
Removed all the type delegates for Kons. This hack is really no longer necessary now that a Kons inherits type from its rulekey.
The cleanest way to assign type to SymbolHash fields is simply to add the corresponding "known implication" to FormalTypes. To this end, method FormalTypes.buildInitialImplications() is called during initialization of the FormalTypes object. In a way, we are recreating the old SymbolHash initialization method, but at least now all the really funky stuff is localized in FormalTypes, which has become a kind "nerve center" for Mango. In fact, this class should be reincarnated as a plugin some day.
CAVEAT EMPTOR: Don't assign types to a type, this is what the partial order is for!
Removed ugly code from getAssignedTypes() methods and localized in buildInitialImplications().
Completed rulebase rehab. Port of hacks to typing system now complete. Session replay is ok for forName, at least up to parametrization. This means that the new typing system is getting it done.
NEXT BUG: Typing is now so aggressive that 't and 'f are recognized as <predicate> and therefore as <parameter>, which causes a bug because they have no minimal type. This needs some thought.
TODO introduce types <freeStateVariable> and <dummyStateVariable>. Something I have wanted to do for a long long time is now possible.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/Resources/IconIndex.java
branches/mango/Mango/Mango/src/mango/core/CoreRule.java
branches/mango/Mango/Mango/src/mango/core/sym/RuleKey.java
branches/mango/Mango/Mango/src/mango/ruleAction/conditionalTechniques/conditional/HYPO.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/EvaluatePredicate.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuum.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuum012.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuum02.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuumA.java
branches/mango/Mango/Mango/src/mango/util/LOG.java
branches/mango/Mango/Mango/src/mango/worker/Worker.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/Hash.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/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/sym/ClinitWasCalledSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/GenericMethodNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ImmutableSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/InstructionNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Marker.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Other.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Plug.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Sym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/agent/HypoAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapPointer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapItemModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/LocalVarModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/ContextBinderSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/LocalVarSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/agent/EvaluatePredicateAgent.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoMethodPeer.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/JclassSym.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/simpleSubstitution/AutomaticSubstitution.java
branches/mango/Mango/Mango/src/mango/ruleAction/simpleSubstitution/Substitution.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/AssignNotObjectValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/NotObjectReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ItemImplication.java
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/simpleSubstitution/SUBR.java
branches/mango/Mango/Mango/src/mango/ruleAction/simpleSubstitution/SUBRautomatic.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-07-30 13:04:59
|
Revision: 1791
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1791&view=rev
Author: frankrimlinger
Date: 2009-07-30 13:04:50 +0000 (Thu, 30 Jul 2009)
Log Message:
-----------
Introduced "relative minimum" type of an item, which means a type that is minimal over the set of types of an item. This is different from "minimal type", which means a type that is minimal over the set of all types. An item always has a relative minimum type provided it has at least one type. This gets around the problem of which type to declare as "the" type during parametrization, because by definition such an item has at least one type. In order to avoid parametrizing all <predicate>s, introduced the type <defeatParametrization>. Any item which has assigned type <defeatParametrization> will not be parametrized, regardless of whether or not it is a parameter. Accordingly, 't and 'f are now initialized with <defeatParametrization>.
A type may now optionally be bound to a "parametrizationScore". In the event of multiple relative minimums for an item, the one returned by FormalTypes.getRelativeMinimum() will have lowest score. Eventually we may just have to persistently store *all* the minimal types for a parameter, but for now we see how it goes.
In progress.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-07-30 23:54:35
|
Revision: 1793
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1793&view=rev
Author: frankrimlinger
Date: 2009-07-30 23:54:19 +0000 (Thu, 30 Jul 2009)
Log Message:
-----------
Completed and tested code for minimum type of an object. Harvest parameters now uses minimum type. Tweaked the minimum type data to optimize parametrization choices. Very nice. Teased apart the types <className> and <classNameSymbol>. The point here is that both of these are recognized as <className> for the purpose of garbage collection, but a <classNameSymbol> implies <defeatParametrization> so we don't paint the rose. Updated the rulebase accordingly.
All Markers were initialized with type <notObject>. Unfortunately, ^null *is* an <object>, because we have blurred the distinction between and object and its reference. The null object has no business being a Marker in the first place, since its semantics are so very different from every other marker. So, like EmptyString, it has been split off into its own singleton class NullObject extending Sym directly. Altered the MFL encoder/decoder to retain the syntax ^null but back it with NullObject instead of Marker.
An attempt to create a Marker with name "null" or a NullObject with any name other than "null" will throw IllegalStateException.
Changed name of the RuleKey "refH" to "loc", consistenty with the type <location> introduced for ref expressions. Every object,subaddress pair has a location in the heap, and every object IS its reference, which is why null can be an object. This is not compatible with java terminology, but so be it. The null object never occurs in a location pair, which is why the heap counter state variable never can take the value null. We assume infinite storage, finite resources is SEP.
BUG: local variable parametrization is broken.
TODO: In Worker.staticReset(), use reflection to examine ALL the mango code and call ALL the staticReset methods (except Worker.staticReset). Its time to do this. This is EZ code.
TODO: You MUST add code NOW to compute the transitive closure of the submitted linear orders. It is just impossibly difficult to do this by hand. Also, you can detect circularity this way and this is a valuable debugging feature.
TODO: Eliminate the HeapPointer class, folding all its functionality into the typing system. This class originally arose to compensate for the inadequacy of earlier versions of typing, but now it is just a swamp area that will hold back evolution of garbage collection. The plan is just to create all the required types for temporal logic and object taxonomy, and then build up the rules for heap pointer comparison on an as needed basis.
Modified Paths:
--------------
branches/mango/Mango/ACL2/itsAWrap-construct.lisp
branches/mango/Mango/Mango/src/mango/core/CoreSym.java
branches/mango/Mango/Mango/src/mango/core/CoreVariable.java
branches/mango/Mango/Mango/src/mango/core/mfl/CoreMFLBuilder.java
branches/mango/Mango/Mango/src/mango/core/mfl/CoreMFLCreator.java
branches/mango/Mango/Mango/src/mango/module/definition/model/DefinitionManager.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/conditional/WithDiveCommutes.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/Checkcast.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetInterfaceRunTimeException.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetInterfaceRunTimeMethod.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetVirtualRunTimeException.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetVirtualRunTimeMethod.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/Instanceof.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/IsAssignmentCompatible.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/Equals.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/InequivalentRef.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/ToCharArray.java
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/BindBoot.java
branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/ValueH.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuum.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuum012.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuum02.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/theory/ModelHeapVacuumA.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/MethodCallAssumption.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateLocation.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateValueH.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/AssignNotObjectValue.java
branches/mango/Mango/Mango/src/mango/worker/Worker.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/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClassNameSym.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/mangoModel/agent/CheckCast_getValueAgent.java
branches/mango/Mango/Mango/src/mango/worker/utilities/Util.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/agent/SimplifyAndAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/HeapPointer.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/EquationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/FoundationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapObjectModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/FrameSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/model/FactorizationModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/model/InvariantModel.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/MangoInstruction.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoInvokeInstruction.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/AALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/AASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ACONST_NULL.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ANEWARRAY.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ARRAYLENGTH.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ATHROW.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/ATHROWCREATOR.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/BALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/BASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/CALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/CASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/DALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/DASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/FALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/FASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/GETFIELD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/IALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/IASTORE.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/IFNONNULL.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/IFNULL.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LASTORE.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/SALOAD.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/SASTORE.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.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/mangoUserHome/system/System/java/lang/Worksheet for String._MangoFormal<init>(C)V.txt
branches/mango/Mango/mangoUserHome/system/System/mango/cheat_sheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_Class.forName worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_String.append(str1,str2) worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_String.arraySyntax worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_String.charAt worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_String.setValueFromStringBuffer worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_StringBuffer.append worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/Mango_StringBuffer.length worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/lang/toCharArray Worksheet (Autosaved)
branches/mango/Mango/mangoUserHome/system/System/mango/lang/toCharArray Worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/util/Mango_ArrayList.add worksheet.txt
branches/mango/Mango/mangoUserHome/system/bin/mango/lang/Mango_String.charAt worksheet.rtf
branches/mango/Mango/mangoUserHome/system/bin/mango/lang/Mango_String.length worksheet.rtf
branches/mango/Mango/mangoUserHome/system/bin/mango/lang/Mango_String.setValueFromStringBuffer worksheet.rtf
branches/mango/Mango/mangoUserHome/system/bin/mango/lang/Mango_StringBuffer.append worksheet.rtf
branches/mango/Mango/mangoUserHome/system/bin/mango/util/Mango_ArrayList.add worksheet.rtf
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_className.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ClassNameReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ClassNameSymbolReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/EnabledParameterReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/InvocationNameSymbolReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/rewriter/DefeatParametrizationReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/NullObject.java
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/ClassNameSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/InvocationNameSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ParameterReq.java
branches/mango/Mango/bytecode cheat.txt
branches/mango/Mango/intermediate transformers
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-03 05:39:22
|
Revision: 1798
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1798&view=rev
Author: frankrimlinger
Date: 2009-08-03 05:39:15 +0000 (Mon, 03 Aug 2009)
Log Message:
-----------
Fixed more typing bugs, and arrived at a nominal parametrization of Class_MangoFormal.forName(). Refined logic for the type of a parameter. This type is stored persistently in the rulebase, and it not used by mango. It only has relevance for possible secondary theorem proving. Therefore, to the extent possible, we make this type correspond to ACL2 expectations, which differ in certain ways from those of mango. Chiefly, ACL2 makes no type distinction between a concrete integer and an expression that could evaluate to an integer. But mango does. The type exposed persistently is the "relatvie minimum" type of rev 1793.
Cleaned up the logic for assigned a parameter to a "group". These groups have no logical significance but make it easier to scan the parameter list. The group is now stored persistently in the description field of a parameter, with grandfathered groups just assigned "misc". This should be cleaned up some day.
Expressions which may be bound to context MUST NOT be of type <parameter>. This confuses the parameter harvester because it then gets two versions of the same thing, one with context, the other without. For the same reason, the harvestParameters operator now commutes with the rulekeys for state variable storage and access. It is really only looking for BinderSyms, functions, certain utility rulekeys and predicates. The good news is that all these specialized choices are now rulebased and moderated by the typing system for EZ tweaking.
NEXT BUG: For some reason, translation of hypotheses is picking up context free base expression, which is not what we want.
Revision Links:
--------------
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1793&view=rev
Modified Paths:
--------------
branches/mango/Mango/.settings/org.eclipse.jdt.core.prefs
branches/mango/Mango/Mango/src/mango/core/CoreRule.java
branches/mango/Mango/Mango/src/mango/module/definition/model/DefinitionManager.java
branches/mango/Mango/Mango/src/mango/module/definition/sym/ParamSym.java
branches/mango/Mango/Mango/src/mango/module/definition/trap/HarvestParametersTrap.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/Equals.java
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/OtherEqual.java
branches/mango/Mango/Mango/src/mango/ruleAction/function/engine/StabilizeParameterExp.java
branches/mango/Mango/Mango/src/mango/ruleAction/module/definition/HarvestParameters.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/RenderParameterName.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/SingleQuotes.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateOpVar.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_unknownLocalVar.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_unknownOpVar.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/EnabledParameterReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UnknownLocalVarReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UnknownOpVarReq.java
branches/mango/Mango/Mango/src/mango/script/model/MangoScriptModel.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/engine/events/RewriteEvent.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Hitem.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/Kons.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/model/LAsolver.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/FoundationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapObjectModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/LocalVarSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/OpVarSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/agent/StabilizeParameterAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/WorkFlowUtil.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoMethodPeer.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
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/module/definition/agent/HarvestParametersAgent.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_doubleRelax.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_floatRelax.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_intRelax.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_longRelax.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_relaxedNumber.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ImmutableReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/DoubleRelaxReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/FloatRelaxReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/IntRelaxReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/numerical/LongRelaxReq.java
branches/mango/Mango/mangoUserHome/frank/sessions/baseline/
branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/
branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/
branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/loops/
branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/loops/-baseline.itsAWrap.clear([I)V#8- dload_i_Code_01/
branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/loops/-baseline.itsAWrap.clear([I)V#8- dload_i_Code_01/op0 is less than 10.zip
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/forName(Ljava.lang.String_MangoFormal;)Ljava.lang.Class_MangoFormal;/className is defined.zip
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/module/definition/agent/ParameterExpAgent.java
branches/mango/Mango/Mango/src/mango/ruleAction/module/definition/HarvestLocalVariableFunction.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/AmbientLocal.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/Immutable.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-03 22:34:23
|
Revision: 1802
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1802&view=rev
Author: frankrimlinger
Date: 2009-08-03 22:34:17 +0000 (Mon, 03 Aug 2009)
Log Message:
-----------
Fixed problem with automatic assumptions. Automatic rules should now use the "Contextual" requirement as necessary to avoid matching on context free local variables, which are no longer translatable.
Modules and Template worker image top-level ties are now automatically deactivated, regardless of the corresponding core state. This is the first tiny step in splitting these off into their own separate database settings.
Worker.staticReset now uses reflection. So all you have to do now is remember to *write* the staticReset method for every class that creates static data which stores counters or hashing info.
With all this in place, parametrization appears to be working for Class_MangoFormal.forName(). Time to get back into the System rebuild business.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/CoreRuleBase.java
branches/mango/Mango/Mango/src/mango/core/CoreTier.java
branches/mango/Mango/Mango/src/mango/core/sym/RuleBaseSym.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/Automatic.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/Instantiated.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/ActiveObject.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleBase.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/Contextual.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/ContextualExp.java
Removed Paths:
-------------
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
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-05 23:16:13
|
Revision: 1806
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1806&view=rev
Author: frankrimlinger
Date: 2009-08-05 23:16:06 +0000 (Wed, 05 Aug 2009)
Log Message:
-----------
"Fixed" the replay performance problem. For some reason a java app does not use available memory unless explicitly told to do so. So if you have 8GB, you need the vm argument -Xmx8000m. Eventually, have to figure out how to get the garbage collector to do its thing each time the worker resets, but at the very least, use up the memory that you have.
Untangled the return translation issue. If an object is returned, and the type of that object is stored in the heap, then that type is reported. Otherwise, if context is available, then the type is deduced from context. The point is that in the case of a thrown exception, the exception does exist on the heap and its type will be reported, otherwise the nominal case will obtain.
So, finally, Class_MangoFormal.forName() is specified, and we can move on.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateReturnUcon.java
branches/mango/Mango/Mango/src/mango/script/gui/MangoScriptMessageCellRenderer.java
branches/mango/Mango/Mango/src/mango/script/model/MangoScriptModel.java
branches/mango/Mango/Mango/src/mango/worker/Worker.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapObjectModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateModuleManager.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateReturnManager.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.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/secret memory command.txt
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateSym.java
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/forName(Ljava.lang.String_MangoFormal;)Ljava.lang.Class_MangoFormal;/className is undefined.zip
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateOther.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-06 05:48:58
|
Revision: 1807
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1807&view=rev
Author: frankrimlinger
Date: 2009-08-06 05:48:44 +0000 (Thu, 06 Aug 2009)
Log Message:
-----------
Wrote native implementation for Class_MangoFormal.getName().
Discovered the meaning behind "canonical representation". It turns out the javadoc for Class.getName() states that arrays represent the base class in "internal form", [Ljava.lang.object; and that classes are represented by their "binary name", java.lang.object. Modeled Class_MangoFormal.getName() accordingly. So, the conversion from MFL, which uses source code level representation, to canonical representation, is
Types.getCanonicalTypeName(FormalTypes.getTypeCode(source-level-rep))
Mystery revealed.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/Checkcast.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StringValue.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashMangoModel.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/agent/InstanceOfAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapModel.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/string/GetCanonicalTypeName.java
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_string.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/StringReq.java
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getName()Ljava.lang.String_MangoFormal;/
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getName()Ljava.lang.String_MangoFormal;/case.zip
branches/mango/Mango/mangoUserHome/system/System/java/lang/getName worksheet.txt
branches/mango/Mango/mangoUserHome/system/System/mango/cheat_sheet (Autosaved)
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/typeAssignment/Assign_formal_stringValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StringReq.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-07 04:44:12
|
Revision: 1810
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1810&view=rev
Author: frankrimlinger
Date: 2009-08-07 04:44:04 +0000 (Fri, 07 Aug 2009)
Log Message:
-----------
Added native implementation for Class_MangoFormal.isArray(). Currently favoring the idea of casing out and returning concrete 't and 'f, as oppose to a boolean valued utility. This makes for cleaner syntax, as the isArray() utility is now a <predicate>. Translation is now via semantic operator. Do the same for isPrimitive, isAssignableFrom, and isInterface.
There is an rewriter bug with getComponentType. fix this.
When Class_MangoFormal is done, migrate the HeapPtr stuff to the new type system.
Modified Paths:
--------------
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/system/System/mango/cheat_sheet.txt
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/IsArray.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsClassLoadableAssumption.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/semantics/AddSemanticsForIsArray.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/semantics/SemanticsForIsArray.java
branches/mango/Mango/mangoUserHome/frank/sessions/a.zip
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/isArray()Z/
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/isArray()Z/case.zip
branches/mango/Mango/mangoUserHome/system/System/java/lang/Worksheet for String_MangoFormal.isArray()Z.txt
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/translate/automatic/IsClassLoadable.java
branches/mango/Mango/mangoUserHome/system/System/mango/cheat_sheet (Autosaved)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-08 01:37:04
|
Revision: 1812
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1812&view=rev
Author: frankrimlinger
Date: 2009-08-08 01:36:57 +0000 (Sat, 08 Aug 2009)
Log Message:
-----------
Implementing new strategy for RuleViewSym secondary hashing. The basic contract of this hash is that rule patterns must hash to the same place as all expressions which match on such a pattern. The original idea to just take the top-level (ruleKey, numArgs) pair as the hash key is inadequate, but now serves as a primary hash. After the primary has is built for the rulebase, a census is taken. All the rules whose corresponding class is not variable length but is too coarse are then further subgrouped by "secondary pattern". The secondary pattern associates to each argument:
rulekey if the argument is a corresponding cons (rulekey ...)
arg if the argument is <patternImmutable>
#SWildCard ? otherwise
to form the key (secondaryPattern arg1 ... argn)
A rewrite candidate expression which hashes to a coarse class is then matched against each secondary pattern using simple grep logic, and the hits are forwarded to the rewrite engine for unification.
Hopefully this will eliminate unifier bottlenecks. The variable length rules are not believed to be a performance issue, but there is no factual basis for this belief.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/sym/RuleViewSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/events/Rewriter.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/rule/RuleGenerator.java
branches/mango/Mango/Mango/src/mango/worker/engine/unifier/UnifyEvent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/frank/sessions/a.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleCensus.java
branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getComponentType()Ljava.lang.Class_MangoFormal;/
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/core/sym/LengthViewSym.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-08 23:28:25
|
Revision: 1814
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1814&view=rev
Author: frankrimlinger
Date: 2009-08-08 23:28:10 +0000 (Sat, 08 Aug 2009)
Log Message:
-----------
The secondary hash idea still has the linear time in the number of rules matching problem, so decided on a filter tree instead. This reduces the matching problem to about (2^number of wildcards)*(number of arguments+2) steps. The filter design is
class RuleFilter{
RuleFilter wildFilter
HashMap<Object, RuleFilter > keyFilterMap
HashSet<Rule> rules
}
Pattern encoding starts at the topFilter, using the lead ruleKey. The variable length patterns bottom out immediately, everybody else then matches on argument length followed by the key for each individual argument, with wildcards matching on the wildFilter. When the pattern bottoms out, it adds the corresponding rule to the rules member of the bottom filter. When matching, each step will generally match on the wildFilter and a filter from the keyFilterMap, which is quite acceptable since number of wildcards <= number of arguments <4 with very few exceptions. The rules from each bottom filter are then concatenated to form the rules forwarded to the unifier for unification. This should dramatically decrease the load on the unifier.
With all this in place, hook up rule indexing update when rules are added/deleted, regardless of whether they are template, variable length, or "normal" rules. These updates are no longer handled via the messaging system, but happen naturally as rules are created/deleted. The details of template updating are elaborate and contained in the new "rule template" document.
The real reason for cleaning this up is to pave the way for new growth in the area of dynamic rule generation. In particular, stable rules and composition rules should be generated dynamically. Also, much could be done to ease the pain of translation rules.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/sym/RuleVariable.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/RuleGenerator.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/TemplateRuleManager.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClassNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClinitWasCalledSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/GenericMethodNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ImmutableSym.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/NullObject.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/Other.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/utilities/Util.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/InstructionSym.java
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilter.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilterManager.java
branches/mango/Mango/doc/rule template.txt
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/core/sym/PrimaryRuleGroup.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleCensus.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-09 12:45:29
|
Revision: 1815
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1815&view=rev
Author: frankrimlinger
Date: 2009-08-09 12:45:21 +0000 (Sun, 09 Aug 2009)
Log Message:
-----------
rule filter in progress for rewriting
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/CoreMangoActiveObject.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/ActiveObject.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Rule.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/TemplateRuleManager.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Tier.java
branches/mango/Mango/doc/rule template.txt
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-09 21:35:17
|
Revision: 1816
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1816&view=rev
Author: frankrimlinger
Date: 2009-08-09 21:35:09 +0000 (Sun, 09 Aug 2009)
Log Message:
-----------
Rev 1814 says rule add/delete operations are no longer handled by the messaging system. This is wrong. There is no change here, except that the notifyChanged() routine in MangoModelUtilities has been rewritten to just do a notifyDelete() followed by a notifyAdd(). The broken message ModifyCoreMangoObjectMsg is no longer needed and has been deleted. The AddActiveObjectMsg and DestroyActiveObjectMsg are already hooked up "naturally" to the corresponding ActiveObject routines, which ultimately filter down to rule indexing as appropriate. Fixed some bugs in this plumbing, and also routed name changes through a different message, so that needless deleting and adding is avoided. Prevented certain name changes that would cause trouble, as a stop-gap measure. Also fixed long-standing and annoying refresh bug in the rulebase window. The one thing that has been let go is order in which rewrite rules fire. The apparent order of the rules in the rule base is NOT preserved during rewriting if there have been rule modifications. However, rules which are order dependent for proper functioning should have been implemented as agents in the first place.
Template rule instantiation/destruction is now strictly just-in-time, according to the "rule template" document. Rulebase modification during an active session is now a well-defined, reliable thing to do. This opens the door for all kinds of dynamic rule building projects. But before this happens, the rule base really needs to be broken apart into separate entities with individualized persistence data access/editing characteristics.
Template indexing code is written. All template indexing creation code seems to be working, need to write the rest of the RuleFilter code and test the rewriter and then test template index removal. Also test rule/tier modification on-the-fly.
Then finish spec for Class_MangoFormal, and then dissolve the HeapPtr class into the typing system.
Revision Links:
--------------
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1814&view=rev
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/CoreMangoActiveObject.java
branches/mango/Mango/Mango/src/mango/core/CoreRule.java
branches/mango/Mango/Mango/src/mango/core/CoreRuleBase.java
branches/mango/Mango/Mango/src/mango/core/CoreTier.java
branches/mango/Mango/Mango/src/mango/core/gui/tablemodel/CoreRuleBaseTableModel.java
branches/mango/Mango/Mango/src/mango/core/gui/tablemodel/CoreTierTableModel.java
branches/mango/Mango/Mango/src/mango/core/gui/tablemodel/MangoModelUtilities.java
branches/mango/Mango/Mango/src/mango/core/gui/window/CoreRuleBaseWindowFactory.java
branches/mango/Mango/Mango/src/mango/util/LOG.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/ActiveObject.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Rule.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/TemplateRuleManager.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Tier.java
branches/mango/Mango/Mango/src/mango/worker/msg/NewWorkerMsg.java
branches/mango/Mango/Mango/src/mango/worker/msg/RulebaseMsg.java
branches/mango/Mango/doc/rule template.txt
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Added Paths:
-----------
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Pair.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/AddActiveObjectMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/DestroyActiveObjectMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/NameChangeActiveObjectMsg.java
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/AddCoreMangoObjectMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/DeleteCoreMangoObjectMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/ModifyCoreMangoObjectMsg.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-11 00:24:54
|
Revision: 1818
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1818&view=rev
Author: frankrimlinger
Date: 2009-08-11 00:24:46 +0000 (Tue, 11 Aug 2009)
Log Message:
-----------
Reworked the requirements "types" to support expression argument matching. It is not enough to separate mutually exclusive requirements by arbitrary distinct types. Realized that the "type" of a requirement must in fact be a minimal formal type, and such types must belong to distinct minimal equivalence classes. The minimal type of the argument is then used for the match. Expressions with no minimal type are assumed to NOT match on any typed requirement, which seems to be reasonable. Fleshed out the set of minimal types to support this concept.
Tying the typing system in tightly with the filter tree is conceptually very nice. All this code is in place, but need to debug before any putative performance improvement can be measured.
It turns out there are some EZ ways to use the typing system to automate stabilization, composition, and commutator template-binding for most expressions.
Introduce types <stabilizer> , <composer> , and for given rulekey, add the implications rulekey-> < stabilizer > and rulekey-> < composer > as desired. Then composition collapses to the single rule (o x state), where x satisfies < stabilizer >. This works because a kons inherits the type of is rulekey, except in special cases that are handled separately anyway. All you need is an action to distribute composition across arguments. Since the new rule indexing system no longer requires a pattern to be a kons, introduce the pattern x, where x satisfies < stabilizer >, and use an agent to stabilize each argument of x. Finally, to automate commutator template-binding, proceed as follows: for each discovered rule pattern, if the lead rulekey satisfies <commutator>, if the pair (rulekey,numArgs) adds to the HashSet commutatorPairs, then generate the template binding rule (rulekey, commutator_numArgs), and instantiate the corresponding template rules.
This is definitely bfc, as it eliminates a lot of very tedious rule making and even more tedious debugging of subtle problems introduced by botched rules. Debugging now consists of a simple examination of the types of a rulekey, from which all the logic now flows.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/module/definition/sym/ParamSym.java
branches/mango/Mango/Mango/src/mango/module/instance/method/sym/MethodInstanceSym.java
branches/mango/Mango/Mango/src/mango/module/instance/sym/InstanceManagerProxySym.java
branches/mango/Mango/Mango/src/mango/module/sym/ModuleReadOnlySym.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/BaseStack.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/BinderFrame.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/BinderHeap.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/BinderStack.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/BinderStat.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/ConjunctionSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/EquationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/HeapItemSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/HeapObjectSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/InequationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/LocalVar.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/OpStack.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/OpVar.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/StatItemSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/BaseInvariantAgentProxySym.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/InstanceManagerProxySymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/LoopInvocationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/MethodInvocationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/ModuleHypothesisSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/ModuleInvocationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/ParamSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/UserInvocationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/AlphaSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/CodeSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/FoundationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/GateSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/GenericMethodNameSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/InstructionNameReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/InstructionSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/InvocationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/LoopSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/MethodEntrySymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/MethodInstanceSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/MethodSymType.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/ModuleReadOnlySymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/PathSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/ResolvedInvocationNameSym.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/StringReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/TranslationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/UconSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/ClassNameSymbolReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FrameReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FunctionReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/HeapReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/InvocationNameSymbolReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/LocalVarReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/OpVarReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/PredTransformerReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/PredicateReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StackReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/StringValue.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UconReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Req.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilterManager.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleGenerator.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/mangoModel/sym/GateSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/CodeSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/LoopSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/MethodSym.java
branches/mango/Mango/Mango/src/mango/worker/mangoModel/sym/graphic/PathSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/sym/FoundationSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/HeapSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/revealed/HeapItemSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/revealed/HeapObjectSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/revealed/OpSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/revealed/StatItemSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/ModuleHypothesisSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/sym/TranslationSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/InstructionSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/sym/InvocationSym.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-11 08:30:29
|
Revision: 1820
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1820&view=rev
Author: frankrimlinger
Date: 2009-08-11 08:30:19 +0000 (Tue, 11 Aug 2009)
Log Message:
-----------
There are some order dependencies in the rulebase that are critical. In particular, there are some "clean up" rules which must occur last. To accommodate, when the rulebase is read in, each rule is assigned a sequence number. All rules generated subsequently get zero rank. The matching algorithm in the RuleFilterManager then sorts the produced vector of rules according to this ranking just prior to handing off the list to the rewriter.
New and modified rules are placed at the beginning, as far as the rewriter is concerned. If you really NEED a rule at a particular spot, then just save the rulebase and reload it.
Cleaned up persistence delegation, eliminating the horrible "coreSerialID" than was used for java/c++ communication long long ago.
Rewriter is kicking over but evidently some rules are not getting into the pipeline.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/control/action/input/RuleBaseAction.java
branches/mango/Mango/Mango/src/mango/core/CoreHitem.java
branches/mango/Mango/Mango/src/mango/core/CoreKons.java
branches/mango/Mango/Mango/src/mango/core/CoreKonsFactory.java
branches/mango/Mango/Mango/src/mango/core/CoreMFLexportProxySym.java
branches/mango/Mango/Mango/src/mango/core/CoreMFLexportProxySymFactory.java
branches/mango/Mango/Mango/src/mango/core/CoreMangoActiveObject.java
branches/mango/Mango/Mango/src/mango/core/CoreMangoObject.java
branches/mango/Mango/Mango/src/mango/core/CoreRule.java
branches/mango/Mango/Mango/src/mango/core/CoreRuleBase.java
branches/mango/Mango/Mango/src/mango/core/CoreSym.java
branches/mango/Mango/Mango/src/mango/core/CoreSymFactory.java
branches/mango/Mango/Mango/src/mango/core/CoreTier.java
branches/mango/Mango/Mango/src/mango/core/CoreVariable.java
branches/mango/Mango/Mango/src/mango/core/CoreVariableFactory.java
branches/mango/Mango/Mango/src/mango/core/gui/action/CloneCoreRuleAction.java
branches/mango/Mango/Mango/src/mango/core/gui/action/NewCoreRuleAction.java
branches/mango/Mango/Mango/src/mango/core/gui/action/NewCoreTierAction.java
branches/mango/Mango/Mango/src/mango/core/io/CoreDoublePersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreFloatPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreIntegerPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreKonsPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreLongPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreMFLexportProxySymPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CorePersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreRuleBasePersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreRulePersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreSymPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreTierPersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/CoreVariablePersistenceDelegate.java
branches/mango/Mango/Mango/src/mango/core/io/MangoEncoder.java
branches/mango/Mango/Mango/src/mango/core/numbers/CoreDouble.java
branches/mango/Mango/Mango/src/mango/core/numbers/CoreFloat.java
branches/mango/Mango/Mango/src/mango/core/numbers/CoreInteger.java
branches/mango/Mango/Mango/src/mango/core/numbers/CoreLong.java
branches/mango/Mango/Mango/src/mango/core/numbers/CoreNumber.java
branches/mango/Mango/Mango/src/mango/core/numbers/CoreNumberFactory.java
branches/mango/Mango/Mango/src/mango/core/util/CoreUtilities.java
branches/mango/Mango/Mango/src/mango/module/instance/sym/InstanceManagerProxySym.java
branches/mango/Mango/Mango/src/mango/module/model/ModuleManager.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/function/BaseInvariantAgentProxySym.java
branches/mango/Mango/Mango/src/mango/script/gui/action/ScriptSaveAction.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/RuleFilter.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilterManager.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilterStat.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClassNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ClinitWasCalledSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/GenericMethodNameSym.java
branches/mango/Mango/Mango/src/mango/worker/engine/sym/ImmutableSym.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/NullObject.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/mangoModel/sym/graphic/MethodSym.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/workFlow/translate/sym/TranslationSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.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/mangoUserHome/frank/rules/rulebase.zip
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-11 20:43:19
|
Revision: 1821
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1821&view=rev
Author: frankrimlinger
Date: 2009-08-11 20:43:12 +0000 (Tue, 11 Aug 2009)
Log Message:
-----------
Fixed requirement type bug. Only MINIMAL types are allowed. If your putative type isn't minimal, then you can't have a type at all, and the requirement becomes a wildcard. To enforce, used reflection to call getRequirementType() for each requirement and explicitly check the requirement for minimality. User then has the chance to fix any errors.
With this in place, achieving a unifier calls/matches rate of around 30-40%, about 1000 times the previous rate. The actual speed up in rewriter throughput is observable but not large, but a drag on scalability of the rule base has definitely been eliminated.
NEXT BUG: the devil must have his due. The gradation by requirement types is based on the "fact" that an object has at most one minimal type. But it ain't necessarily so. In particular, a LocalVarSym might have the minimal types int[] and <localVar>. Fortunately, there really is no need for a <localVar> to have such specific type information. We did this to get some translation capability on-the-cheap. Evidently the translator just has to work harder, and <localVar>s have to stick with the generic non-minimal types like <integralValue> and <object>.
There is a charming indeterminacy when an object has multiple minimal types. Sometimes the filter will get the "right" type and the rewriter will succeed, and other times the rewriter will fail. This has to do with the fact that order within a HashSet is highly indeterminate. To guard against this problem, multiple minimal types for an object must be detected during the request for minimal type and cause an IllegalStateException or at least a stern warning.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/core/RuleResourceManager.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/PredTransformerReq.java
branches/mango/Mango/Mango/src/mango/worker/engine/events/RewriteEvent.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Pair.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Req.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Rule.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilterManager.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Tier.java
branches/mango/Mango/Mango/src/mango/worker/engine/unifier/ActionCallBack.java
branches/mango/Mango/Mango/src/mango/worker/msg/RulebaseMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/ShowTypeRequestMsg.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
branches/mango/Mango/mangoUserHome/frank/sessions/a.zip
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-12 13:42:45
|
Revision: 1822
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1822&view=rev
Author: frankrimlinger
Date: 2009-08-12 13:42:39 +0000 (Wed, 12 Aug 2009)
Log Message:
-----------
tweaks for minimal types
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/ConjunctionSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/EquationSymReq.java
branches/mango/Mango/Mango/src/mango/ruleRequirement/binder/InequationSymReq.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/LocalVarSym.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-12 22:19:56
|
Revision: 1823
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1823&view=rev
Author: frankrimlinger
Date: 2009-08-12 22:19:46 +0000 (Wed, 12 Aug 2009)
Log Message:
-----------
In progress: brining sanity to state translation. Translation begins with a match of the targeted state, in particular, the heap, stack, and staticArea components are translated. Some terminology: if the stack has the form (push frame (pop (pop stack))), then frame is referred to as the "caller frame". If it has the form (push frame (pop stack)), then "called frame". These two cases correspond to method and loop specification, respectively. The "ambient method" is the method of the caller frame or the method containing the loop. A "parameter of the ambient method" refers the source-code level notion of parameter. (It is not meaningful to translate local variables which are not parameters when forming a specification, because the meaning of the variable has already be abstracted away.)
We start by determining the maps localVar and localType.
1. for each heap item pair of the form ((loc ref ^className), value), add ref->value to localType.
2. add x->getType(x) to localType for each parameter x of the ambient method, such that x has formal type <object>. Recall that getType() is the "java type" of x, determined by the ambient method info.
3. for each defined offset in the local variable array of the called frame, say local variable x with value obj, if x is a parameter of the ambient method, if x has formal type <object>, then add obj->x to localRef.
4. If the caller frame has a "return value", that is, a defined value obj for op0 (top operand on opStack) and obj has formal type <object>, then add obj -> method-return-type to localType, again as determined by the ambient method info.
5. To translate a HeapItemModel (ref,sa,value), first apply the localVar map, and then set up the translation for each mapped item, say x=(tr ref), y=(tr sa), z= (tr value).
a) if (refType(ref) is defined and is an array type, emit x[y]=z.
b) otherwise, if minimal type of sa is java_int, emit x[y]=z.
c) otherwise, if (refType(ref)) is defined and is not an array type, emit x.y=z
d) otherwise, emit x?y =z
Case b is based on the fact (?) that only an array could have a subaddress that was a concrete number. Case d hopefully will not happen but if it does, then hopefully the fix can be accomplished with the new improved typing system.
6. To translate a LocalItemModel or OpItemModel associated with the called frame, just apply localVar to the value in quesion, emitting local-var-name=(tr value) or op<i>=tr(value) as the case may be. If there is more than one frame, we are in a mutually recursive loop body, fun fun. This really hasn't been examined much, but for now, preface each frame with "Top Frame" or "Recursive Frame" as the case may be before emitting item translations.
7. To translate the return value of the caller frame, use existing logic for thrown exceptions, otherwise, let type=refType(value), emit Returns type: (tr value). Observe in this case there is no point applying localRef because it is empty. This is as it should be, as parameter assignments in the called method DO NOT feed back to the caller. The unhappy "call by reference" idiom of c++ does not exist in java.
8. To translate a StatItemModel (sa,value), apply localVar to value, and emit sa=(tr value). This makes sense since sa is always a concrete symbol representing a fully qualified field name. (Well, there is some hack involving setting sa to a number, but we will take that as it comes. Marc may have done this to represent static arrays?)
So, the complete translation is just the list of item translations, with the return value last, if it exists. If we are in the called frame case, and there is no return value, then append "No return value." to the list. That's all there is to it. Notice all the jvm model artifacts like heap and stack have vanished, as they should. Well, in the case of mutual recursion, there are still frames, not exactly sure how to proceed yet here. Anyways, what has appeared are all the translations for utility functions and more importantly, user introduced functions. These function translations hopefully impart meaning to the specification. If there is any point to this project, it is to allow the user to inject this meaning as painlessly as possible.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/control/msg/OpenEncapsulationTemplateRequestMsg.java
branches/mango/Mango/Mango/src/mango/control/msg/OpenInterpretationRequestMsg.java
branches/mango/Mango/Mango/src/mango/control/msg/OpenMFLEditorRequestMsg.java
branches/mango/Mango/Mango/src/mango/debugger/msg/ClearBreakPointMsg.java
branches/mango/Mango/Mango/src/mango/debugger/msg/SetBreakPointMsg.java
branches/mango/Mango/Mango/src/mango/graph/msg/Graph2DViewCreateRequestMsg.java
branches/mango/Mango/Mango/src/mango/graph/msg/Graph3DViewCreateRequestMsg.java
branches/mango/Mango/Mango/src/mango/graph/msg/MultiGraph3DViewCreateRequestMsg.java
branches/mango/Mango/Mango/src/mango/gumboModel/interaction/PopUpMenuEnabler.java
branches/mango/Mango/Mango/src/mango/module/definition/loop/msg/LoopDefinitionLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/method/msg/CreateMethodStubMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/method/msg/MethodDefinitionLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/msg/AddConjectureTranslateMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/msg/AddEquivalenceConjectureLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/msg/AddEquivalenceLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/msg/AddHypothesisTranslateMsg.java
branches/mango/Mango/Mango/src/mango/module/definition/msg/EliminateHypothesisLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/ApplyLinearLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/ContainsTestMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/GarbageCollectLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/GeneralizeLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/MapToScopeLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/MatchMakerLocatorMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/ShowModuleMsg.java
branches/mango/Mango/Mango/src/mango/module/msg/TranslateMsg.java
branches/mango/Mango/Mango/src/mango/source/agent/msg/SourceViewCreateRequestMsg.java
branches/mango/Mango/Mango/src/mango/tree/msg/TreeNodeOpenRequestMsg.java
branches/mango/Mango/Mango/src/mango/tree/msg/TreeRuleViewCreateRequestMsg.java
branches/mango/Mango/Mango/src/mango/tree/msg/TreeViewCreateRequestMsg.java
branches/mango/Mango/Mango/src/mango/tree/msg/UndoFormattingOpenRequestMsg.java
branches/mango/Mango/Mango/src/mango/worker/engine/rule/Rule.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/msg/RewriteLocatorMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/trap/RewriteTrap.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/EventLoopTrap.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/PopUpMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/PostCoreRequestMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/RedoLocatorMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/ReplaceRewriteLocatorMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/ShowTypeRequestMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/UndoLocatorMsg.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/WorkerCommand.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateModuleManager.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/trap/ScriptedTranslateTrap.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-13 05:36:48
|
Revision: 1824
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1824&view=rev
Author: frankrimlinger
Date: 2009-08-13 05:36:42 +0000 (Thu, 13 Aug 2009)
Log Message:
-----------
Fixed bug in LocalArrayModel which was computing incorrect base frame for local variables. Roughed out new design for state translation. Before implementing, need to wire the translation actions through a trap which will "map locals to scope", connecting to the TranslateModuleManager to perform the translation. The trouble is, we are translating from context, and we start out with "too much" context. Otherwise the parameters will not match properly for the localType map. NB: the map locals to scope operation is applied to the raw expressions, which generate the binder symbols when they rewrite. THEN you can create the models upon which the translation is based.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/module/msg/MapToScopeRequestMsg.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateLoopUcon.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateReturnUcon.java
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateThrownExceptionUcon.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/LocalArrayModel.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/LocalVarSym.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateModuleManager.java
branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip
Removed Paths:
-------------
branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateNoReturnUcon.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateLoopManager.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateReturnManager.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fra...@us...> - 2009-08-13 22:09:53
|
Revision: 1826
http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1826&view=rev
Author: frankrimlinger
Date: 2009-08-13 22:09:40 +0000 (Thu, 13 Aug 2009)
Log Message:
-----------
Completed the initialization of the localType map. The fact that a local variable slot can host mulitiple local variables of different names, and can take up one or two offsets, is a source of never ending anxiety. In this case, the issue is to get the method parameter names and bind them to their type and their offset. First, if the method is not static, offset 0 has "this", and the type of this is just the class of the method. Then, get the bcel list of parameter types. This is just obtained by parsing the signature, so it is a pretty safe bet. From the type, you can deduce whether you have category 1 or 2, i.e., one or two offsets. So now that you know the offset, and the fact that a parameter is defined at line 0, you can use bcel to get the name. Again, this is a safe bet, because the local variable table burned into the .class file is the final authority, and that is where bcel will go, given an offset and line number.
Onward.
Modified Paths:
--------------
branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/trap/ScriptedTranslateTrap.java
branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/trap/TranslateTrap.java
branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoMethodPeer.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|