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