|
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.
|