From: <fra...@us...> - 2009-05-08 16:44:52
|
Revision: 1493 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1493&view=rev Author: frankrimlinger Date: 2009-05-08 16:44:45 +0000 (Fri, 08 May 2009) Log Message: ----------- Cleanup and addition of rulebase preference and Priority.E AUTO. The plan is to remove the "Input Manager" and "Java Code Entrypoints" windows, as this functionality has been subsumed. However, the "New Worker", "Reset", "MFL Editor", and "Rulebase" buttons now migrate to the "Specification" window. Here is the top-level logic for automation of mango. This will be great for getting demos off the ground without trouble. Nominally,at startup, "Rulebase" enabled, "New Worker" and "Reset" disabled. 1. If, at startup, there is a valid rulebase specified in the preferences, then it is read in, and the "New Worker" button will be enabled. "Rulebase" disabled. 2. If the "Fire new worker on startup" preference is checked, then, the New Worker action will fire automatically. "New Worker" disabled and "Reset" enabled 3. If the "Open Definition Window Automatically" preference is checked, then the default target selected by the targeting algorithm will be used to open the definition window. 4. If the "Generate Specification Automatically" preference is checked, then the SPECIFICATION extension of JPF will do its thing. Of course there will still be some user interaction, but only when the specification listeners deem it necessary to query the user. In this case, the user will be told what the issue is and suggested ways to proceed will be offered. This will allow the user to learn by doing. NOTE: SPECIFICATION will need to cache some backtracking information in the rulebase, in order to deduce which paths have already been specified. This finally stretches the original rulebase concept completely beyond the breaking point. A rational structure for persistent data will obviously have a hierarchical data base structure, but this must be addressed in a future lifetime. 5. Once the specification is done, "Rulebase" will be enabled. If "Save Rulebase and Session Automatically" is set, then this is done. Otherwise, the user will be prompted to do this. if the "Reset Automatically" preference is checked, then the reset will occur automatically and the process will repeat. The same preference rules will apply, except in step 1, the existing rulebase will be recycled, just flushing the worker image, as is already done now. These steps will be accomplished via Commands. Since this all of this is happening transparently to the notion of a session, a new lowest priority level "AUTO" has been added to Priority, and the "LOW" priority has been renamed "SESSION". Observe that these new Commands now defer to user preferences when deciding whether or not to post successors. Also, this level of automation will be the first real test of the new "nested ack" capability. Also, the AUTO worker thread persists for the lifetime of mango, only the higher priority threads are killed on reset. If worst comes to worst, you must add a "Cold Reset" to kill off the AUTO thread and really start from scratch. Modified Paths: -------------- branches/mango/MangoJPF/Mango/src/mango/control/msg/ReplayedMsg.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/ApplyCoreRuleAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/CloneCoreRuleAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/CoreCutAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/CorePasteAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/DownloadCoreRuleAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/ImportCoreRuleAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/ImportCoreTierAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/NewCoreRuleAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/action/NewCoreTierAction.java branches/mango/MangoJPF/Mango/src/mango/core/gui/tablemodel/CoreRuleBaseTableModel.java branches/mango/MangoJPF/Mango/src/mango/core/gui/tablemodel/CoreTierTableModel.java branches/mango/MangoJPF/Mango/src/mango/core/gui/tablemodel/CoreVariableTableModel.java branches/mango/MangoJPF/Mango/src/mango/debugger/msg/ClearBreakPointMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/AddConjectureRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/AddConjectureTranslateMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/AddEquivalenceAutoRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/AddHypothesisAutoRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/AddHypothesisRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/AddHypothesisTranslateMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/CloseDefinitionMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/DeleteUnusedParametersMsg.java branches/mango/MangoJPF/Mango/src/mango/module/definition/msg/EliminateHypothesisRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/instance/msg/SubmitStandingHypothesisMsg.java branches/mango/MangoJPF/Mango/src/mango/module/msg/ApplyLinearRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/msg/GarbageCollectRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/msg/GeneralizeRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/msg/MapToScopeRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/module/msg/MatchMakerRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/script/util/ScriptAndPostAction.java branches/mango/MangoJPF/Mango/src/mango/worker/Mango.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/coreTechniques/msg/RewriteRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/AddCoreMangoObjectMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/DeleteCoreMangoObjectMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/ModifyCoreMangoObjectMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/ReplaceRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/ScheduleRequestMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/SetActiveCoreMangoObjectMsg.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/TrapCommand.java branches/mango/MangoJPF/Mango/src/mango/worker/workFlow/msg/WorkerCommand.java branches/mango/MangoJPF/Mango/src/mango/workstation/Workstation.java branches/mango/MangoJPF/ThreadSupport/src/threadModel/Priority.java branches/mango/MangoJPF/ThreadSupport/src/threadModel/ScriptableCommand.java branches/mango/MangoJPF/ThreadSupport/src/threadTest/CommandUtilities.java branches/mango/MangoJPF/ThreadSupport/src/threadTest/ScriptTest.java branches/mango/MangoJPF/javapathfinder-mango-bridge/gov/nasa/jpf/SCANNER.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/BranchChoiceGenerator.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/CodeSurvey.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/INVOKETARGET.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/InvocationUtil.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoTargetLauncher.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/ScannerMJI.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/TargetChoiceGenerator.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/TargetListener.java branches/mango/MangoJPF/src/mango/intro/ConfigurationDetails.java branches/mango/MangoJPF/src/mango/intro/LoginDialog.java Removed Paths: ------------- branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/InstructionTemplates.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |