Commit Graph

2343 Commits

Author SHA1 Message Date
Neil Brown
f4a294e989 Renamed the RainUsageCheckTest module to UsageCheckTest 2008-02-25 10:28:33 +00:00
Neil Brown
1edaacae89 Altered the AST to allow a function to be either an ExpressionList (classical occam) or a Process (Rain/proposed new occam) 2008-02-24 19:29:31 +00:00
Neil Brown
74f3cb7fc2 Removed the export of "m" in TestUtils, instead moving the definition to each module that uses it (less confusing that way) 2008-02-24 18:55:44 +00:00
Neil Brown
5d9e2d8e33 Changed rntState so that it "nulls" the bodies of procs and functions first 2008-02-24 15:54:18 +00:00
Neil Brown
caff04c548 Changed the use of everywhereM in underlyingType to use makeGeneric instead 2008-02-24 15:52:09 +00:00
Neil Brown
d5773ee4e0 Changed two uses of gmapQ (const undefined) to the similar glength function in the SYB library 2008-02-24 12:32:25 +00:00
Neil Brown
13c46d1fb2 Moved three pass-related modules out to their own directory 2008-02-24 12:32:21 +00:00
Neil Brown
062cd0415a Added a simple (-h/--help) option for printing the Tock help 2008-02-24 12:15:39 +00:00
Neil Brown
6d9534f9b9 Made running the properties configurable by a --sanity-check command-line option 2008-02-24 12:15:02 +00:00
Neil Brown
feabd450f0 Fixed a conflict between the prolifing-related changes and the dependence graph 2008-02-24 11:23:29 +00:00
Neil Brown
147d799563 Changed the replaceNames function so that it doesn't use everywhere 2008-02-23 18:34:02 +00:00
Neil Brown
ae49d236d6 Changed findMeta so that it would work even if the Meta data was not the first direct child of an item 2008-02-23 18:33:39 +00:00
Neil Brown
635f7bf1b0 Changed the backend passes in BackendPasses to not use the everywhere(M) function 2008-02-23 18:33:16 +00:00
Neil Brown
6a3452f8cd Added a useful function to Pass for applying a modification function to the Only parts of a Structured 2008-02-23 18:32:29 +00:00
Neil Brown
e8189e196b Removed the makePasses functions that did not deal with pre- and post- properties 2008-02-19 09:49:14 +00:00
Neil Brown
5cb964092d Added a new module full of properties about the AST, most now with associated validity checks 2008-02-19 09:49:05 +00:00
Neil Brown
2e6718ac50 Changed all the lists of passes to add pre- and post- properties 2008-02-19 09:43:40 +00:00
Neil Brown
859a6286ac Added functions to PassList that build a dependency graph from a list of properties (based on their pre- and post- properties) and use it to return an ordered pass list 2008-02-19 09:43:16 +00:00
Neil Brown
79f67d577f Added functions that allow you to specify the pre- and post- properties for a pass 2008-02-19 09:37:20 +00:00
Neil Brown
2bbcd4ec9a Added Eq and Ord instances for the Pass_ data structure (going solely by pass name) 2008-02-19 09:36:41 +00:00
Neil Brown
360abc195e Moved the enabling/disabling of passes based on CompState from PassList to the point of the declaration of the passes 2008-02-16 11:09:25 +00:00
Neil Brown
3ce0eaf452 Made the first adjustment to the Pass system, ready to introduce properties and a dependency graph. For now passes are still executed in list order 2008-02-16 10:19:14 +00:00
Neil Brown
21a3619d81 Turned division by variables into a non-special expression rather than rejecting it straight out 2008-02-11 15:20:36 +00:00
Neil Brown
cfac57ea88 Added support for modulo and divide items that are multiplied by another variable (during equation flattening) 2008-02-11 14:59:01 +00:00
Neil Brown
c23c575f73 Added some more testcases for array usage checking that involve complicated expressions 2008-02-11 14:40:28 +00:00
Neil Brown
2ea7e15570 Changed the QuickCheck tests to test multiplied variables more thoroughly 2008-02-11 14:26:55 +00:00
Neil Brown
fdb2e8d45d Printed out more information when generateMapping fails (keys to VarMap not matching) 2008-02-11 12:02:20 +00:00
Neil Brown
04be245677 Adjusted the printing out of FlattenedExp; useful on test failure 2008-02-11 11:31:20 +00:00
Neil Brown
9cb191b64c Corrected some bugs related to constant-divisor modulo, especially with negative divisor 2008-02-11 11:05:01 +00:00
Neil Brown
f403a90ccf Adjusted the ArrayUsageCheckTest QuickCheck tests to allow expressions in the top and bottom of modulo, and the top of divides 2008-02-11 11:03:32 +00:00
Neil Brown
b83acaf7c5 Corrected a few comments in ArrayUsageCheckTest 2008-02-11 10:17:27 +00:00
Neil Brown
e76ab116cb Simplified the definition of mkPattern slightly 2008-02-15 17:16:20 +00:00
Neil Brown
cd6e2175f2 Added a new "dump AST" pass 2008-02-14 12:45:11 +00:00
Neil Brown
63af1381f2 Reordered the pass list so that the usage checking happens earlier 2008-02-11 01:16:27 +00:00
Neil Brown
1151fab5ad Changed the error reporting so that we at least print the meta tag if we can't open the file to find the line 2008-02-11 01:15:56 +00:00
Neil Brown
3b9d75d488 Passed the correct meta tags to the die call when unsafe parallel usage is found 2008-02-11 01:15:25 +00:00
Neil Brown
c3353d6025 Changed the uninitialised-variables notification from a fatal error down to a warning 2008-02-11 00:56:10 +00:00
Neil Brown
18cf66944a Modified the array usage checking to treat any unknown expressions (function calls, etc) like variables were treated before 2008-02-10 23:58:32 +00:00
Neil Brown
57833f7f26 Fixed the broken QuickCheck tests for node replacement 2008-02-10 21:21:03 +00:00
Neil Brown
94d9fedd0e Tweaked some of the probabilities in the ArrayUsageCheckTest QuickCheck tests 2008-02-10 21:20:30 +00:00
Neil Brown
5e87aa1e73 Refactored the way the flow-graph building handles the different Structured items, and tweaked some tests accordingly 2008-02-10 20:07:02 +00:00
Neil Brown
c4b7bd1745 Implemented handling of replicated IFs in flow-graphs 2008-02-10 15:16:46 +00:00
Neil Brown
df8f9429e0 Added some tests for building flow-graphs based on replicated IFs 2008-02-10 15:16:30 +00:00
Neil Brown
1ba2925b7a Added proper support for the Divide item in the array usage checking 2008-02-09 20:12:52 +00:00
Neil Brown
16279f4d1d Added tests for the Divide item to the QuickCheck tests in ArrayUsageCheckTest 2008-02-09 20:12:30 +00:00
Neil Brown
41ab2d6bde Introduced scaling of Modulo and Divide items, and tweaked some of the parameters to make the tests a little shorter 2008-02-09 17:23:49 +00:00
Neil Brown
25be01cb47 Added a coefficient for modulo and divide items 2008-02-09 15:08:10 +00:00
Neil Brown
c6b384d5d6 A large change, introducing tags for modulo items during array usage checking so that they can be accurately tested 2008-02-09 14:52:07 +00:00
Neil Brown
534fbd8db1 Added a new helper function to Utils, and corrected a comment too 2008-02-09 14:50:56 +00:00
Neil Brown
d0b94e402c Added (constant divisor, for now) modulo to the QuickCheck tests in ArrayUsageCheckTest 2008-02-09 11:36:37 +00:00