Commit Graph

203 Commits

Author SHA1 Message Date
Neil Brown
b037b6a8ca Tidied up the new code relating to warnings, and moved it all into the Errors module (out of CompState and Pass) 2008-02-08 13:31:37 +00:00
Neil Brown
f17ff5071c Added a Warn monad for warnings, and incorporated a WriterT monad into the PassM stack to support the Warn monad, then changed all the rest of the code accordingly, including adding a Warn instance for the GenParser parser that hides it in the state 2008-02-08 13:22:23 +00:00
Neil Brown
95cdb39789 Generalised the type of the monad for the excludeConstr function, and correspondingly the functions that use it 2008-02-08 11:33:19 +00:00
Neil Brown
035c526bef Changed the TLP and PrettyShow modules to use CSMR instead of CSM 2008-02-08 11:29:09 +00:00
Neil Brown
c56cc6022a Switched everything in the EvalConstants module to use CSMR rather than CSM 2008-02-08 11:26:35 +00:00
Neil Brown
a3ebd96a86 Changed all the functions in the EvalLiterals, Types and ShowCode modules to use CSMR (instead of CSM) 2008-02-08 11:24:37 +00:00
Neil Brown
5f0eea493e Switched all the appropriate functions in CompState from CSM to CSMR 2008-02-08 11:24:16 +00:00
Neil Brown
de81b0e81c Added a version of PassM that only requires read access to the state (i.e. needs CSMR) called PassMR 2008-02-08 11:21:42 +00:00
Neil Brown
e3e9e912f2 Added a read-only version of CSM, named CSMR 2008-02-08 11:17:50 +00:00
Neil Brown
4299951511 Moved the makeSize function from ArrayUsageCheck into Utils 2008-02-06 23:49:17 +00:00
Neil Brown
1fd85fbe51 Added the -fwarn-missing-signatures option and added all missing type signatures for non-test modules (and most for test modules too) 2008-02-05 23:06:03 +00:00
Neil Brown
673d6a4f76 Reverted a change in the PrettyShow module because I'm no longer confident about it (original behaviour definitely worked) 2008-02-05 22:39:38 +00:00
Neil Brown
445d45752d Fixed the mode for printing out the flow-graph 2008-02-05 22:36:37 +00:00
Neil Brown
005ee78f03 Corrected a couple of bugs in the code for generating flow-graphs for quickcheck tests 2008-02-05 22:24:18 +00:00
Neil Brown
c001455fc2 Added a check for an empty list to oneofL 2008-02-05 22:18:22 +00:00
Neil Brown
416e385017 Added labels to all the QuickCheck tests to make it easier to see which one has failed 2008-02-05 22:15:17 +00:00
Neil Brown
fa1e9a6a08 Rearranged FlowGraph and fixed the tests
Previously, most of the flow-graph building functions were inside the where clause of buildFlowGraph.  They have been moved to the top-level (with only a few small changes to make this possible - the main one being to store the labelling functions in a reader monad, which only required changing a couple of lines) and used by an additional buildFlowGraphP function, that is now used by the tests to make them work simply.  None of the new top-level functions except buildFlowGraphP are exported from FlowGraph.
2008-02-05 22:04:49 +00:00
Neil Brown
acd57d74de Changed the A.Structured type to be parameterised
This patch is actually an amalgam of multiple (already large) patches.  Those patches conflicted (parameterised Structured vs. changes to usage checking and FlowGraph) and encountered a nasty bug in darcs 1 involving exponential time (see http://wiki.darcs.net/DarcsWiki/ConflictsFAQ for more details).  Reasoning that half an hour (of 100% CPU use) was too long to apply patches, I opted to re-record the parameterised Structured changes as this new large patch.  Here are the commit messages originally used for the patches (which, as mentioned, were already large patches):

A gigantic patch switching all the non-test modules over to using parameterised A.Structured
Changed the FlowGraph module again to handle any sort of Structured you want to pass to it (mainly for testing)
A further gigantic patch changing all the tests to work with the new parameterised Structured
Fixed a nasty bug involving functions being named incorrectly inside transformInputCase
Added a hand-written instance of Data for Structured that allows us to use ext1M properly
Fixed a few warnings in the code
2008-02-05 19:40:27 +00:00
Neil Brown
6c4e7ee713 Added a few more TestLabels 2008-02-05 16:19:16 +00:00
Neil Brown
093070454b Removed a use of the head function from PrettyShow 2008-02-05 16:19:00 +00:00
Neil Brown
c45b82be56 Removed the setting of csVerboseLevel in TestHarness that was accidentally committed 2008-02-04 08:05:16 +00:00
Neil Brown
1074407ef9 Added the ability to neatly print out a problem as a debug message 2008-02-03 15:41:29 +00:00
Neil Brown
1d9d47312a Implemented handling of replicators inside PARs in the control flow-graph building 2008-02-01 14:45:02 +00:00
Neil Brown
fdb612123c Added tests for parallel replicators in the flow-graph 2008-02-01 14:44:50 +00:00
Neil Brown
cb9aa03612 Fixed a nasty problem involving mixing the Meta tags while building the flow-graph, and added a comment about it 2008-02-01 14:34:17 +00:00
Neil Brown
30e890ef02 Corrected the bug involving replicated SEQs that are empty 2008-02-01 11:45:21 +00:00
Neil Brown
d3ad2e7af6 Added a couple more tests for empty replicated SEQs that show up a bug 2008-02-01 11:45:05 +00:00
Neil Brown
c663109378 Corrected how CASE options are handled in the flow-graph, and adjusted the accompanying tests 2008-02-01 11:34:03 +00:00
Neil Brown
2beda004b3 Corrected some more tests relating to the way empty A.Severals are handled 2008-02-01 11:21:43 +00:00
Neil Brown
e9a2143a28 Tweaked a slightly misleading error message when flow-graph tests fail 2008-02-01 11:14:54 +00:00
Neil Brown
5eb5a4c979 Corrected some tests to reflect the new way that empty A.Several items are handled when building the flow-graph 2008-02-01 11:12:31 +00:00
Neil Brown
0a22ebf34b Fixed up a couple of lines to properly handle the difference between Left False and Left True when building the flow-graph 2008-02-01 11:09:23 +00:00
Neil Brown
f8844edcb0 Corrected getNextParEdgeId in the flow-graph building to also actually increment the id ready for the next call 2008-02-01 11:08:53 +00:00
Neil Brown
83e04b92d4 Corrected the order the nodes are folded to match reality (rather than unintentionally reversing them) 2008-02-01 10:52:16 +00:00
Neil Brown
0672730894 Changed the way PARs are built up in the flow-graph, but haven't yet fixed the tests 2008-02-01 10:39:17 +00:00
Neil Brown
8fb60ff511 Added another test for PAR in FlowGraphTest 2008-01-30 20:47:27 +00:00
Neil Brown
5306e87463 Changed the tests for PAR in FlowGraphTest to match the intended new scheme 2008-01-30 20:37:47 +00:00
Neil Brown
a9427fe421 Corrected one test for SEQ in FlowGraphTest, and added another 2008-01-30 20:37:15 +00:00
Neil Brown
76e3a9b615 Corrected FlowGraphTest so it generates replicators inside IFs, not CASEs 2008-01-30 20:16:05 +00:00
Neil Brown
0dc94f9a32 Renamed the members of the OuterType data-type to be a little more distinctive 2008-01-30 19:58:20 +00:00
Neil Brown
b3cd170840 Fixed an oversight with duplicated Meta tags in testSeq in FlowGraphTest 2008-01-30 19:47:39 +00:00
Neil Brown
0f0be6e4a3 Added support for replicators to the quickcheck tests (actually applying the modification functions) 2008-01-30 19:14:33 +00:00
Neil Brown
c2c6bf24f8 Changed the QuickCheck flow-graph generators to generate a Process as the top level, rather than Structured, to make the test input more interesting 2008-01-30 18:57:00 +00:00
Neil Brown
0dc4b81be8 Corrected the item count for replicators in the QuickCheck FlowGraph tests 2008-01-30 18:56:33 +00:00
Neil Brown
45a8fa0b88 Added handling of sequential replicators when building the flow graph 2008-01-30 13:50:53 +00:00
Neil Brown
7c811f347c Added a couple of tests for sequential replicators 2008-01-30 13:50:28 +00:00
Neil Brown
b6132d6431 Added replicators to the flow graphs generated for the QuickCheck tests 2008-01-30 13:50:07 +00:00
Neil Brown
e94826c64e Added a function to GraphLabelFuncs for labelling replicators 2008-01-30 12:43:28 +00:00
Neil Brown
95d99706e3 Readjusted the parameters of flowAlgorithm so that the initial value for the starting node is passed in more obviously (since that was the only use of initVal, which has now been removed) 2008-01-29 21:05:37 +00:00
Neil Brown
28fd400d89 Adjusted the FlowGraph tests to check the roots of the graph, and added in the new root nodes where appropriate 2008-01-29 20:06:33 +00:00