From: <fra...@us...> - 2009-08-26 22:42:49
|
Revision: 1858 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1858&view=rev Author: frankrimlinger Date: 2009-08-26 22:42:39 +0000 (Wed, 26 Aug 2009) Log Message: ----------- Fixed numerous bugs in implicit rule generation mechanism. Added feature to force generation of rules with a given arity even if there is no core rule pattern witness for that arity. This is necessary for a few passive rulekeys like "replace", which is used by the ExpLevelSym mechanism. Tracked down several troublesome rulekeys while replaying and bound them to their arities. Also made the new template types non-minimal, as they certainly don't need to be minimal and this was interfering with typing mechanism, in accordance with the law of unintended side-effects. Because the typing system is so powerful, it is likely it will speciate somewhere down the line. But for now it's based on a flat namespace. Getting away from flat introduces very complex issues, because ultimately all typing systems are flat, so what are you really doing? Added final rules to convert static access: ( getstatic #Smango.worker.engine.sym.ImmutableSym java.lang.Integer_MangoFormal.TYPE stat ) --> #Smango.worker.engine.sym.ClassObjectSym int for each of the 9 primitive types, as documented in Class.isPrimitive(). With this in place, Class_MangoFormal native implementation of isPrimitive tests correctly public boolean isPrimitiveTrue(){ return Integer.TYPE.isPrimitive(); } specified as Close Case: Returns boolean: true. public boolean isPrimitiveFalse(){ return Integer.class.isPrimitive(); } specified as Close Case: Returns boolean: false. This is particularly satisfying because never could get this right in the past. Next bug: for some reason, ClassTests.isPrimitive() for null input is putting the NullPointerException on the called frame instead of the caller frame. Use a.zip. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/control/action/input/RuleBaseAction.java branches/mango/Mango/Mango/src/mango/core/mfl/CoreMFLCreator.java branches/mango/Mango/Mango/src/mango/module/definition/loop/msg/LoopDefinitionRequestMsg.java branches/mango/Mango/Mango/src/mango/module/definition/method/msg/MethodDefinitionRequestMsg.java branches/mango/Mango/Mango/src/mango/module/definition/model/DefinitionManager.java branches/mango/Mango/Mango/src/mango/module/definition/msg/ManualDefinitionMsg.java branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/IsPrimitiveClass.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/symbolHash/SymbolHashRecent.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/TemplateRule.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/synthetic/CompositionRule.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/synthetic/ImplicitRule.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/synthetic/StableRule.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/synthetic/SyntheticRule.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/synthetic/TemplateBindingRule.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/synthetic/TemplateInstanceRule.java branches/mango/Mango/Mango/src/mango/worker/mangoModel/agent/ValueHAgent.java branches/mango/Mango/Mango/src/mango/worker/msg/NewWorkerMsg.java branches/mango/Mango/Mango/src/mango/worker/msg/RulebaseMsg.java branches/mango/Mango/javapathfinder-mango-bridge/mango/CompositionImplication.java branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java branches/mango/Mango/javapathfinder-mango-bridge/mango/StableImplication.java branches/mango/Mango/javapathfinder-mango-bridge/mango/TemplateImplication.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoClassPeer.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip branches/mango/Mango/mangoUserHome/frank/sessions/Casting/<init>()V/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/Casting/cast(DFILI;)LI;/Class name of objI may be cast to I.zip branches/mango/Mango/mangoUserHome/frank/sessions/Casting/cast(DFILI;)LI;/Class name of objI may not be cast to I.zip branches/mango/Mango/mangoUserHome/frank/sessions/Casting/cast(DFILI;)LI;/objI is undefined.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/<init>()V/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/compareTo(LI;)I/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/compareTo(Ljava.lang.Object_MangoFormal;)I/Class name of compareTo_LocalVar_at_offset_1_lineNumber_1 may be cast to I.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/compareTo(Ljava.lang.Object_MangoFormal;)I/Class name of compareTo_LocalVar_at_offset_1_lineNumber_1 may not be cast to I.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/compareTo(Ljava.lang.Object_MangoFormal;)I/compareTo_LocalVar_at_offset_1_lineNumber_1 is undefined.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/whatHappens()Ljava.lang.Class_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/whatHappens1()Ljava.lang.Class_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/whatHappens2()Ljava.lang.Class_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/I/whatHappens3()Ljava.lang.Class_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/Array length of x is greater than or equal to 10.zip branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/main([I)Z/x[5] equals x[6].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;/className is undefined.zip branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getComponentType()Ljava.lang.Class_MangoFormal;/Class name of this is an array.zip branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getComponentType()Ljava.lang.Class_MangoFormal;/Class name of this is not a loadable class.zip branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/isAssignableFrom(Ljava.lang.Class_MangoFormal;)Z/cls is defined.zip branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/isAssignableFrom(Ljava.lang.Class_MangoFormal;)Z/cls is undefined.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/<init>()V/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/compatibleFalse()Z/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/compatibleFalse(Ljava.lang.Class_MangoFormal;Ljava.lang.Class_MangoFormal;)Z/x is defined, y is defined.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/compatibleTrue()Z/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType()Ljava.lang.Class_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType(Ljava.lang.Class_MangoFormal;)Ljava.lang.Class_MangoFormal;/Class name of clazz is an array.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType2()Ljava.lang.Class_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getName()Ljava.lang.String_MangoFormal;/case.zip branches/mango/Mango/mangoUserHome/system/SystemTests/src/systemTests/ClassTests.java branches/mango/Mango/src/mango/views/LogWindow.java Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/sessions/a.zip branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/clear([I)V/loops/-baseline.itsAWrap.clear([I)V#8- dload_i_Code_01/a.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/isPrimitive(Ljava.lang.Class_MangoFormal;)Z/ branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/isPrimitiveFalse()Z/ branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/isPrimitiveFalse()Z/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/isPrimitiveTrue()Z/a.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/isPrimitiveTrue()Z/case.zip Removed Paths: ------------- branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getName()Ljava.lang.String;/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |