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
750612629b
Corrected a bug caused by making Structured parameterised, where removeNesting only descended into Structureds the same type as the outer-most Structured (typically A.AST)
2008-02-08 12:11:35 +00:00
Neil Brown
e0d6c5eb08
Fixed the monomorphism restriction warnings in GenerateCTest
2008-02-08 01:11:20 +00:00
Neil Brown
7e7625385d
Pulled out various types and definitions from GenerateC into a common module, GenerateCBased
2008-02-08 01:08:42 +00:00
Neil Brown
a143fb75ef
Changed all the C/C++ backend functions to stop passing round GenOps everywhere; they now all properly pull it from the monad
2008-02-08 01:01:44 +00:00
Neil Brown
df832b450d
Changed the C/C++ backends to read GenOps from a reader-monad rather than passing the ops around (rough draft)
2008-02-08 00:33:44 +00:00
Neil Brown
ecf4ceee35
Fixed the calculation of the upper bound for replicators that feature in the background knowledge
2008-02-07 18:02:20 +00:00
Neil Brown
0427c00859
Fixed the calculation of the upper bound on replicators (from + for - 1, not simply for) for directly relevant replicators
2008-02-07 18:01:13 +00:00
Neil Brown
66cb9b0bc0
Added a lot of comments to the functions at the top of the ArrayUsageCheck module
2008-02-07 17:56:42 +00:00
Neil Brown
e379710bbd
Corrected a change that was accidentally recorded, switching primes for ats
2008-02-07 15:42:50 +00:00
Neil Brown
03ef5d23ba
A patch recording the fix for modulo in replication that got the test passing, that properly detects whether a replicated variable is featured anywhere in the problem
2008-02-07 15:37:56 +00:00
Neil Brown
f82b6cf6a7
Finished writing the long test for replicated modulo, which seems to pass
2008-02-07 15:35:39 +00:00
Neil Brown
32959ad3a3
Fixed a part of ArrayUsageCheck to make sure it generates valid arrays
2008-02-07 00:25:30 +00:00
Neil Brown
96c948bd6e
Simplified the setIndexVar/setIndexVar' functions and changed them to handle Modulo and Divide
2008-02-07 00:24:11 +00:00
Neil Brown
af0160e4fe
Added a test to show up a bug in handling replicator from/for values
2008-02-07 00:23:08 +00:00
Neil Brown
4cb02c4c71
Added lots more checks in ArrayUsageCheckTest that aim to produce a useful message when a usage check is failing
2008-02-06 23:55:25 +00:00
Neil Brown
74d5bc675d
Shorted the definition of generateMapping in ArrayUsageCheckTest
2008-02-06 23:55:01 +00:00
Neil Brown
4299951511
Moved the makeSize function from ArrayUsageCheck into Utils
2008-02-06 23:49:17 +00:00
Neil Brown
ba04340989
Changed the ArrayUsageCheckTest framework to give you a test failure (rather than an unhelpful Haskell error) when translateEquations fails to result in a valid array
2008-02-06 23:27:59 +00:00
Neil Brown
1ec341f671
Added another warning flag, -fwarn-incomplete-record-updates
2008-02-05 23:13:27 +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
3cb4e80749
Fixed a monomorphism restriction warning in the Unnest module
2008-02-05 22:53:37 +00:00
Neil Brown
caa0ddd2f9
Fixed a mistake in Makefile.am where one of the lines was not properly added to CompilerCommands
2008-02-05 22:47:59 +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
56a701551a
Added a case for the top-level AST to OrdAST
2008-02-05 22:36:12 +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
1b7e0985cc
Added labels to a few tests and began writing a new one for replicated variables and modulo
2008-02-04 08:06:32 +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
01c8343d7e
Simplified an expression in ArrayUsageCheck
2008-02-03 15:40:49 +00:00
Neil Brown
41194f757f
Added support for background knowledge to makeEquations in ArrayUsageCheck, and fed all the replicator bounds into it
2008-02-03 12:44:51 +00:00
Neil Brown
7d30bf612d
Moved flattenParItems up to the higher where clause in checkArrayUsage
2008-02-03 12:43:36 +00:00
Neil Brown
c81fb0670b
Added a function to gather up a common pattern in ArrayUsageCheck
2008-02-03 12:42:16 +00:00
Neil Brown
a856d39604
Moved addEq to the top-level of ArrayUsageCheck
2008-02-03 12:41:16 +00:00
Neil Brown
9c0dcb6008
Added a few more parallel usage tests
2008-02-02 18:59:20 +00:00
Neil Brown
0800fc7b87
Tweaked the formatting of an error message
2008-02-02 17:24:28 +00:00
Neil Brown
330266e682
Fixed the code for detecting if there was the same replicator at the beginning of a PAR group
2008-02-02 17:24:02 +00:00