You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(16) |
Jun
(42) |
Jul
(46) |
Aug
(48) |
Sep
(33) |
Oct
(26) |
Nov
(28) |
Dec
(38) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(35) |
Feb
(80) |
Mar
(112) |
Apr
(108) |
May
(102) |
Jun
(126) |
Jul
(89) |
Aug
(82) |
Sep
(36) |
Oct
(7) |
Nov
(1) |
Dec
(4) |
2010 |
Jan
(87) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fra...@us...> - 2009-08-18 22:25:23
|
Revision: 1839 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1839&view=rev Author: frankrimlinger Date: 2009-08-18 22:25:13 +0000 (Tue, 18 Aug 2009) Log Message: ----------- More subtle class name rehab in progress. LDC is turning into a real headache. A class name is not a type, so LDC is going to load java.lang.String, NOT Ljava.lang.String;. This means you can't use Types.getTypeName() to convert to java syntax, because it will gag on java.lang.String. Instead, use FormalTypes.jvmClassNameToSourceCodeClassName(). So what should this routine do with "I". Should it return "I" or "int". To find out, consider this example: public class I { static Class<?> whatHappens(){ return I.class; } static Class<?> whatHappens1(){ return int.class; } static Class<?> whatHappens2(){ return I[].class; } } The method whatHappens will perform LDC "I" of CLASS type, and whatHappens2 does LDC "[LI;" , but whatHappens1 is a real cop-out: putstatic java.lang.Integer.TYPE Sure enough, in the java doc, static?\194?\160Class<Integer> TYPE The Class instance representing the primitive type int. So, we assume that LDC never gets a primitive type name as a CLASS type. Therefore, FormalTypes.jvmClassNameToSourceCodeClassName() should just wrap with L; if there are no brackets, and then pass to Types.getTypeName(), which will then return the correct source code level name. If there are brackets, you can pass directly to getTypeName(), this is canonical name syndrome. So far so good, but now there is unfinished business. We really can't mess with java.lang.Integer.TYPE, as it represents a documented field of the Integer class. But we are already using "int" to represent the "class of the primitive type int". This could lead to problems, but oh well... In any event, need MangoFieldPeer class, because fields do need to be converted to MangoFormal syntax, i.e., java.lang.Integer_MangoFormal.TYPE. jvmClassNameToSourceCodeClassName() is tested and working as expected. Now clean up the fields with MangoFieldPeer. Modified Paths: -------------- branches/mango/Mango/javapathfinder-mango-bridge/mango/FormalTypes.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/CodeSurvey.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LDC.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip branches/mango/Mango/mangoUserHome/frank/sessions/a.zip branches/mango/Mango/mangoUserHome/system/SystemTests/src/systemTests/ClassTests.java Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/isAssignableFrom(Ljava.lang.Class_MangoFormal;)Z/ 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/java/lang/Class_MangoFormal/isPrimitive()Z/ branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/isPrimitive()Z/case.zip branches/mango/Mango/mangoUserHome/system/SystemTests/src/I.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-18 19:50:33
|
Revision: 1838 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1838&view=rev Author: frankrimlinger Date: 2009-08-18 19:50:26 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Fixed weirdo bug in getMangoFormalName. You can't just append _MangoFormal to a class name and test to see if it will load. FIRST you have to get rid of trailing []'s. So if you have class[][], test if class_MangoFormal will load, and if so, return class_MangoFormal[][]. This MangoFormal business is going to always be problematic, but no choice. So, for example, the specification for the following ClassTests method: public Class<?> getComponentType2(){ return String[][].class.getComponentType(); } is Returns java.lang.Class_MangoFormal: java.lang.String_MangoFormal[]. This completes testing of native implementation for Class_MangoFormal.getComponentType() Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/worker/mangoModel/BackupAlg.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/CodeSurvey.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoClassPeer.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoMethodPeer.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LDC.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip branches/mango/Mango/mangoUserHome/frank/sessions/a.zip branches/mango/Mango/mangoUserHome/system/SystemTests/src/systemTests/ClassTests.java Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType()Ljava.lang.Class;/ branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType()Ljava.lang.Class;/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType2()Ljava.lang.Class;/ branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getComponentType2()Ljava.lang.Class;/case.zip This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-18 18:37:22
|
Revision: 1837 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1837&view=rev Author: frankrimlinger Date: 2009-08-18 18:37:14 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Fixed various EZ bugs for virtual invocation and broken parametrization. Added more refinements for broke parametrization detection. Completed testing of native implementation for Class_MangoFormal.getName(). Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/debugger/msg/ContinueRewritingMsg.java branches/mango/Mango/Mango/src/mango/debugger/msg/SingleOffMsg.java branches/mango/Mango/Mango/src/mango/debugger/msg/SingleStepMsg.java branches/mango/Mango/Mango/src/mango/module/instance/loop/agent/LoopInstanceAgent.java branches/mango/Mango/Mango/src/mango/module/instance/method/agent/MethodInstanceAgent.java branches/mango/Mango/Mango/src/mango/module/sym/ModuleLevelSym.java branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/BuildInvocationUcon.java branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/Checkcast.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/classModel/IsInterface.java branches/mango/Mango/Mango/src/mango/worker/engine/events/Rewriter.java branches/mango/Mango/Mango/src/mango/worker/mangoModel/agent/CheckCast_getValueAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/FunctionSym.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/mangoUserHome/frank/sessions/systemTests/ClassTests/getName()Ljava.lang.String;/case.zip This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-18 05:00:06
|
Revision: 1836 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1836&view=rev Author: frankrimlinger Date: 2009-08-18 04:59:57 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Completed native implementation of Class_MangoFormal.getName() fixed ldc formal peer, which was not handling the case of a Class constant. Fixed bug caused by decision to blur distinction between an instantiation of a Class and the Class object. This may cause more trouble down the road. It seemed like a good idea at the time... Next bug: virtual invocation is still goofed up. There seems to be a mixup between getVirtualRunTimeMethod and getVirtualRunTimeException. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/classModel/GetInterfaceRunTimeException.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/translate/automatic/DoesNotThrow.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/bytecode/LDC.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/sessions/a.zip branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/ branches/mango/Mango/mangoUserHome/frank/sessions/systemTests/ClassTests/getName()Ljava.lang.String;/ branches/mango/Mango/mangoUserHome/system/SystemTests/src/systemTests/ClassTests.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-17 21:23:55
|
Revision: 1835 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1835&view=rev Author: frankrimlinger Date: 2009-08-17 21:23:41 +0000 (Mon, 17 Aug 2009) Log Message: ----------- Added check for "broken parametrizations", which occur when a native implementation refers to a parameter that is never defined. This sort of "operator error" is now detected and reported during instantiation. Fixed the broken parametrizations and completed rebuild of existing Class_MangoFormal sessions. Cleanup of HitemUtil class. Now to finish Class_MangoForam, add the last of the code upgrades, and declare MangoBaseline. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/module/definition/model/DefinitionManager.java branches/mango/Mango/Mango/src/mango/module/instance/method/agent/MethodInstanceAgent.java branches/mango/Mango/Mango/src/mango/module/instance/method/model/MethodInstanceManager.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/module/sym/ModuleLevelSym.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/worker/engine/hash/symbolHash/SymbolHashLogicAndArithmetic.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/Tier.java branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.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 branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/<init>()V/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/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/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 Added Paths: ----------- 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 Removed Paths: ------------- branches/mango/Mango/mangoUserHome/frank/sessions/a.zip branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/main([I)Z/Array length of x is greater than or equal to 10.zip branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getComponentType()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-08-17 04:40:17
|
Revision: 1834 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1834&view=rev Author: frankrimlinger Date: 2009-08-17 04:40:10 +0000 (Mon, 17 Aug 2009) Log Message: ----------- Fixed bug that was causing template rules to fire out of order. Fixed bug in sort routine for building rule filters, also causing rules to fire out of order. Unfortunately, the rulebase is riddled with subtle order dependencies. Someday this issue must be rationalized. Incidentally, these bugs were figured out because rule filters now know their name, so top.invert.1.= is the filter matching on expressions (invert (= ...)). Set RuleFilter.SHOW_FILTER_NAMES to true to see the names of all the non-empty filters. The best place to trap this is in RuleFilterManager.add(), which is only called when the RewriteEngine requests the rules matching on an expression. Added the formal type <notMinimal>. This is just a technical device to prevent certain types like <function> from being detected as minimal. This is another zen situation. A function could be boolean, meaning that it returns a boolean value. But not all boolean are <function>, and in fact, there is no distinct formal type which could imply <function>. So <function> automatically gets detected as a minimal type, when clearly it is not. To avoid this embarrassment, we introduce the <notMinimal> type, which is the type of no object in the Mango model. Therefore, it is safe to say <notMinimal> implies <function>, and <function> is no longer detected as minimal. Fixed bug involving boolean versus <predicate> type for user functions. User function declarations must now be taken more seriously, because at least the return type is taken seriously by the typing system. So if you say boolean when you mean <predicate>, the conditional rewriter will gag on your function instantiations. boolean : 0 or 1 <predicate>: 't or 'f Next bug: In Class_MangoFormal.getComponentType, translationSyms are appearing unexpectedly?? INVESTIGATE. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/module/instance/method/sym/MethodInstanceSym.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/ruleRequirement/function/LoopInvocationSymReq.java branches/mango/Mango/Mango/src/mango/ruleRequirement/function/MethodInvocationSymReq.java branches/mango/Mango/Mango/src/mango/ruleRequirement/function/ModuleInvocationSymReq.java branches/mango/Mango/Mango/src/mango/ruleRequirement/function/UserInvocationSymReq.java branches/mango/Mango/Mango/src/mango/ruleRequirement/symbols/MethodInstanceSymReq.java branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/FunctionReq.java branches/mango/Mango/Mango/src/mango/worker/WorkerControl.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/unifier/UnifyEvent.java branches/mango/Mango/Mango/src/mango/worker/msg/NewWorkerMsg.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.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 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 Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/<init>()V/case.zip branches/mango/Mango/mangoUserHome/frank/sessions/java/lang/Class_MangoFormal/getComponentType()Ljava.lang.Class_MangoFormal;/a.zip Removed Paths: ------------- branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateHeapItem.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateStatItem.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateThrownExceptionUcon.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase1.zip This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-16 20:48:58
|
Revision: 1833 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1833&view=rev Author: frankrimlinger Date: 2009-08-16 20:48:45 +0000 (Sun, 16 Aug 2009) Log Message: ----------- It turns out that if you forget to load the System, then java.lang.Object_MangoFormal does not exist and so cannot be loaded in favor of java.lang.Object. This is "operator error", but now Mango puts up a big warning if you do this. This concludes the specification of itsAWrap. Now back to java.lang.Class_MangoFormal. In addition to rebuilding existing specifications, must still write a few native implementations. Modified Paths: -------------- branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoClassPeer.java branches/mango/Mango/javapathfinder-mango-bridge/mango/scanner/MangoInvokeInstruction.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-16 19:18:13
|
Revision: 1832 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1832&view=rev Author: frankrimlinger Date: 2009-08-16 19:18:06 +0000 (Sun, 16 Aug 2009) Log Message: ----------- Completed rebuild of specification for itsAWrap class. Fixed wonderful typing bug, which illustrates the difference between <immutable> and <patternLiteral>. Consider the predicate (= x y), where x and y are local variables. Since x and y can represent any numbers, they certainly are not <immutable>. Now look what happens when this starts to translate. You might get an intermediate expression like (= "x" "y"). Well, it is tempting to think that "x" and "y" are <immutable>, since, after all, their values are unchanging. So, you deduce that (tr (= "x" "y")) --> (tr 'f) --> "false". Not a very satisfying deduction. But what is really going on is that "x" and "y" are <patternLiteral>. This means, as far as the unifier is concerned, these symbols appearing in a pattern could only match on themselves. Clearly "x" doesn't *know* it represents a local variable x, and so cannot be expected to match on x. However, like they say in traffic school, "ignorance is no excuse of the law". You can't be <immutable> unless you know beyond a shadow of doubt that you correspond to only one physical object of the concrete Mango Model. This is imaginary place where the *real* objects live, independent of any means of representing themselves. Although it is imaginary, it is critical to imagine it accurately when answering questions of this nature. As a rule of thumb: <pattenLiteral> is for syntax EZ <immutable> is for semantics. TRICKY In particular, a TranslationSym like "x" is <patternLiteral> but not <immutable>. On the other hand, a ClassNameSym *is* <immutable>, because the JVM model, which lives inside Mango Model, tells us that there is a unique class with any given name, so we are good-2-go in Mango Model world. But applying this test to "x", here is what happens. A local variable x which translates to "x" could map to loads of different objects in JVM model, so "x" has no chance of being <immutable>. "x" just doesn't pin down a concrete object the way ClassNameSym does. YIKES, what about a template class? Well, presumably class names have to be mangled before they hit the JVM, so we will never see unmangled class names. But if we do, then ClassNameSym is no longer <immutable> if it is a template class. The real danger is that some middleman will unmangle the class name, thinking it is doing us a favor. Because this such a zen subject, reviewed all classes that claim to be <immutable>. Kicked out ClinitWasCalledSym and GenericMethodNameSym. So the official <immutable>'s are now InstanceManagerProxySym InstructionSym InvocationSym (a lot of water under the bridge here) ClassNameSym InstructionNameSym InvocationNameSym Marker NullObject Plug StringSym MethodSym BaseInvariantAgentProxySym I am worried about StringSym, but leaving it in for now. Next bug: in ItsAWrap.<init>(), confusion between Object.<init> and Object_MangoFormal.<init>. You reap what you sow. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/module/definition/msg/AddConjectureTranslateMsg.java branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/Equals.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateReturnValue.java branches/mango/Mango/Mango/src/mango/worker/engine/events/RewriteEvent.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/workFlow/form/model/StackModel.java branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/ContextBinderSym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/model/WorkFlowUtil.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/sym/TranslationSym.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip branches/mango/Mango/mangoUserHome/frank/sessions/a.zip Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/<init>()V/ branches/mango/Mango/mangoUserHome/frank/sessions/baseline/itsAWrap/main([I)Z/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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-16 04:19:20
|
Revision: 1831 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1831&view=rev Author: frankrimlinger Date: 2009-08-16 04:19:13 +0000 (Sun, 16 Aug 2009) Log Message: ----------- Fixed more typing/translation bugs. Improvements in the handling of numbers have made the "relaxed number" concept completely unnecessary. All vestiges of relaxation have been eliminated. Next bug: conjecture in itsAWrap.main rewrites to 'f. Oops... probably another typing bug. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/module/definition/msg/EliminateHypothesisRequestMsg.java branches/mango/Mango/Mango/src/mango/ruleAction/conditionalTechniques/conditional/WithDiveCommutes.java 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/translate/engine/TranslateReturnUcon.java branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/PredicateReq.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/SymbolHashLogicAndArithmetic.java branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/agent/StabilizeParameterAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/ModuleInvocationSym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.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/baseline/itsAWrap/clear([I)V/loops/-baseline.itsAWrap.clear([I)V#8- dload_i_Code_01/op0 is less than 10.zip Added Paths: ----------- branches/mango/Mango/mangoUserHome/frank/rules/rulebase1.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/ Removed Paths: ------------- 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/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/Mango/src/mango/ruleRequirement/typing/numerical/RelaxedNumberReq.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-15 04:31:55
|
Revision: 1830 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1830&view=rev Author: frankrimlinger Date: 2009-08-15 04:31:46 +0000 (Sat, 15 Aug 2009) Log Message: ----------- Fixed some typing and requirement bugs, and got invariant detection working. Cleaned up some display issues. Next bug: no return state not translating. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/HeapBind.java branches/mango/Mango/Mango/src/mango/ruleAction/invariant/Invariant.java branches/mango/Mango/Mango/src/mango/ruleRequirement/function/BaseInvariantAgentProxySym.java branches/mango/Mango/Mango/src/mango/ruleRequirement/naturalLanguage/Instantiated.java branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/EnabledParameterReq.java branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/HeapModel.java branches/mango/Mango/Mango/src/mango/worker/workFlow/form/model/StackModel.java branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/LineNumberSym.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/FrameSym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/StackSym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/functionSpace/sym/ModuleInvocationSym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/agent/InvariantFactorizationAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/agent/InvariantHypoAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/sym/BaseInvariantAgentProxySym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/model/HitemUtil.java branches/mango/Mango/Mango/src/mango/worker/workFlow/msg/ShowTypeRequestMsg.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-14 21:50:48
|
Revision: 1829 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1829&view=rev Author: frankrimlinger Date: 2009-08-14 21:50:42 +0000 (Fri, 14 Aug 2009) Log Message: ----------- Working on invariant bug, almost certainly a typing issue. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/ruleAction/coreRewriter/comparison/Equals.java branches/mango/Mango/Mango/src/mango/ruleAction/invariant/Invariant.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/RuleFilterManager.java branches/mango/Mango/Mango/src/mango/worker/engine/unifier/UnifyEvent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/invariant/agent/BaseInvariantAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.java branches/mango/Mango/mangoUserHome/frank/rules/rulebase.zip 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/op0 is less than 10.zip This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-14 18:53:29
|
Revision: 1828 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1828&view=rev Author: frankrimlinger Date: 2009-08-14 18:53:22 +0000 (Fri, 14 Aug 2009) Log Message: ----------- Rehab of state translation (rev 1823) complete. Now rebuild existing sessions so typing and translation can settle down. Then onto advance rule auto-generation (rev 1818). When this is done, fold HeapPtr class into typing system (rev 1810). At this point we must cease development and declare MangoBaseline. Mango can then be cloned off and finally can start using jpf in sophisticated ways, starting with separation of context and composition (see below). Of course, there is still much testing to do in MangoBaseline, to run in parallel. An interesting problem arises when translating the called frame. In this case, non-parameter local variables are relevant, as a loop can and usually does have counters whose scope is that of the loop. The best we can do in this case is use the line number supplied in the frame context for the local variable look up. This should work, because the line number should be at the end of the loop body, and all locals whose scope is strictly interior to the loop body should have already evaluated out. We also deduce the method from the frame context, looking ahead to the day recursive methods are taken seriously. Ah, I finally get it. Using jpf, we can go backwards along the excution path, working our way up the call chain, collecting the context for each frame, and then translating accordingly. So even in the recursive case, we can cleanly separate issues requiring context from issues that don't, in particular, from state composition. Separation of context and composition is the number one priority, as soon as MangoBaseline is established. Revision Links: -------------- http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1823&view=rev http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1818&view=rev http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1810&view=rev Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashTyping.java 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/model/TranslationUtil.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/baseline/itsAWrap/clear([I)V/loops/-baseline.itsAWrap.clear([I)V#8- dload_i_Code_01/op0 is less than 10.zip This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fra...@us...> - 2009-08-14 05:14:07
|
Revision: 1827 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1827&view=rev Author: frankrimlinger Date: 2009-08-14 05:13:59 +0000 (Fri, 14 Aug 2009) Log Message: ----------- Completed heap translation. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/ruleAction/form/binder/HeapBind.java branches/mango/Mango/Mango/src/mango/worker/engine/hash/symbolHash/SymbolHashEnterpriseAndTranslation.java branches/mango/Mango/Mango/src/mango/worker/workFlow/form/sym/binder/executable/LocalVarSym.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslationUtil.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. |
From: <fra...@us...> - 2009-08-13 17:58:49
|
Revision: 1825 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1825&view=rev Author: frankrimlinger Date: 2009-08-13 17:58:40 +0000 (Thu, 13 Aug 2009) Log Message: ----------- TranslationModuleManager has been upgraded to an agent, and the heap, stack and stat expressions have been treated with map-locals-to-scope operation and rewritten. Now need to write code for the new agent per 1823. Then the really nice upgrade in 1818 for rule generation. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateArraySubaddress.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateHeapObject1.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateLocalVar.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateLoopUcon.java branches/mango/Mango/Mango/src/mango/ruleAction/translate/engine/TranslateOpVar.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/coreTechniques/agent/RewriteAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/coreTechniques/msg/RewriteLocatorMsg.java Added Paths: ----------- branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/agent/TranslateModuleAgent.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslationUtil.java Removed Paths: ------------- branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslateModuleManager.java branches/mango/Mango/Mango/src/mango/worker/workFlow/translate/model/TranslationManager.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 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-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-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-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-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: <st...@us...> - 2009-08-11 07:46:52
|
Revision: 1819 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1819&view=rev Author: staats Date: 2009-08-11 07:46:45 +0000 (Tue, 11 Aug 2009) Log Message: ----------- Modified Paths: -------------- trunk/extensions/complexcoverage/bin/binheap-concretize-config-16-2.txt trunk/extensions/complexcoverage/bin/binheap-concretize-config-2-16.txt trunk/extensions/complexcoverage/bin/binheap-concretize-config-32-1.txt trunk/extensions/complexcoverage/bin/binheap-concretize-config-4-8.txt trunk/extensions/complexcoverage/bin/binheap-concretize-config-8-4.txt trunk/extensions/complexcoverage/bin/binheap-constrain-config-16-2.txt trunk/extensions/complexcoverage/bin/binheap-constrain-config-2-16.txt trunk/extensions/complexcoverage/bin/binheap-constrain-config-32-1.txt trunk/extensions/complexcoverage/bin/binheap-constrain-config-4-8.txt trunk/extensions/complexcoverage/bin/binheap-constrain-config-8-4.txt trunk/extensions/complexcoverage/bin/binheap-constrain-config.txt trunk/extensions/complexcoverage/bin/binheap-random-config-64.txt trunk/extensions/complexcoverage/bin/binheap-reorder-config-64.txt trunk/extensions/complexcoverage/bin/binheap-trim-config-64.txt trunk/extensions/complexcoverage/bin/binheap-trim-config.txt 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-10 07:42:51
|
Revision: 1817 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1817&view=rev Author: frankrimlinger Date: 2009-08-10 07:42:45 +0000 (Mon, 10 Aug 2009) Log Message: ----------- The tree filter still exhibited some bunching up, eliminated by further gradation of the WILD key type. The idea is to consider mutually exclusive classes of requirements. A subset of requirements is partitioned by the relation r~s if some Hitem satisfies both r and s. Each partition then becomes a type, and the balance of the requirements contribute a WILD type. The symbol and typing requirements in particular have easily deduced mutually exclusive classes. Accordingly, the type of an argument is the type of its requirement if present, otherwise WILD. With all this in place, the filter is now quite respectable. Here are the stats: Max bucket size: 34 Number of oversize buckets: 11 Number of buckets: 3589 Average bucket size: 1.05 A printout of the offending buckets show that more work could be done to split them, but clearly into diminishing returns. It remains to write the expression matching code against the filter tree and test drive the rewriter. Modified Paths: -------------- 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/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/Cons.java branches/mango/Mango/Mango/src/mango/worker/engine/hash/Kons.java branches/mango/Mango/Mango/src/mango/worker/engine/rule/Req.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/msg/NewWorkerMsg.java Added Paths: ----------- 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/worker/engine/rule/RuleFilterStat.java Removed Paths: ------------- branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UnknownLocalVarReq.java branches/mango/Mango/Mango/src/mango/ruleRequirement/typing/UnknownOpVarReq.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 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-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. |