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
edc3a7e910
Removed the die function (that has no source position) and as far as possible replaced all its uses with dieP and a valid position
2008-01-28 17:21:13 +00:00
Neil Brown
bdda623d7e
Added types to all the cases where the monomorhpism restriction applied
2008-01-26 20:51:11 +00:00
Neil Brown
26dd2fa5c4
Renamed the TestUtil and TreeUtil modules to TestUtils and TreeUtils, to be consistent with the Utils module
2007-12-13 19:05:29 +00:00
Neil Brown
7d175b1d0d
Added more documentation to the testing frameworks in the backends directory.
2007-11-12 17:51:54 +00:00
Neil Brown
7433e49d49
Added support for List types to the C and C++ backend, in genType at least
2007-10-27 11:24:24 +00:00
Neil Brown
7f59eec189
Changed the C and C++ backends (and tests) to handle declarations with initialisers properly
2007-10-25 00:27:12 +00:00
Neil Brown
6b95827cab
Added an optional initialiser-expression to Declaration in the AST, and changed the rest of the code accordingly
2007-10-24 23:50:00 +00:00
Neil Brown
83f654a273
Implemented the code for ClearMobile in the C and C++ backends
2007-10-24 20:54:37 +00:00
Neil Brown
dfee567ffc
Added tests for ClearMobile in the C and C++ backends
2007-10-24 20:52:39 +00:00
Neil Brown
48c1bea724
Added tests for the AllocMobile item in the C and C++ backends
2007-10-24 19:44:50 +00:00
Neil Brown
dd86b240b5
Implemented (most of the needed) support for AllocMobile in the C and C++ backends
2007-10-24 19:32:58 +00:00
Neil Brown
08c8d47e2f
Overhauled cgenVariable' in GenerateC so that it passes the new tests involving DerefVariable (while still passing all the previous tests)
2007-10-24 15:58:20 +00:00
Neil Brown
0eea361f95
Added tests for DerefVariable during the genVariable function for the C and C++ backends
2007-10-24 15:57:40 +00:00
Neil Brown
9f78582391
Added support for mobile types to the genType functions in the C and C++ backends
2007-10-21 14:37:05 +00:00
Neil Brown
441b700d8d
Added tests for the new mobile types in the C and C++ backends
2007-10-21 14:16:24 +00:00
Neil Brown
acca3d03fd
Removed the A.Main item from the AST entirely
2007-10-17 13:43:40 +00:00
Neil Brown
12191cb36a
Changed the C and C++ backends to take in a Structured rather than a Process as the top-level item
2007-10-17 13:25:21 +00:00
Neil Brown
30b7cc686b
Doubled the stack size for C++CSP processes, in order to get cg test 08 passing
2007-10-14 13:25:31 +00:00
Neil Brown
0fc7ceaf68
Fixed an issue where the size in counted array inputs in C++ was not being correctly calculated
2007-10-14 11:09:35 +00:00
Neil Brown
fed32e1531
Adjusted the tests for inputs to catch an error where the size in counted array inputs in C++ was not being correctly calculated
2007-10-14 11:09:08 +00:00
Neil Brown
c19ae03116
Added a pass that changes all C++CSP channels to be of type tockSendableArrayOfBytes, so that the channels can be retyped into each other
2007-10-14 10:28:43 +00:00
Neil Brown
3c101bae19
Removed my old cgmap function, in favour of the identical library function mapM_
2007-10-14 00:14:19 +00:00
Neil Brown
d4dabfd3bb
Removed unused code from the GenerateCTest module
2007-10-14 00:09:28 +00:00
Neil Brown
fd74473b9b
Removed a big load of unused code from the C++ code generation, that was related to the old way of handling protocols
2007-10-14 00:08:13 +00:00
Neil Brown
e9dbfbab3c
Added the input-case to case pass to the pass-list, and therefore removed all code dealing with input-case statements in the C and C++ backends (and corresponding tests)
2007-10-14 00:01:44 +00:00
Neil Brown
ffe8477237
Added a fix to prevent running a zero-length list of processes in CIF
2007-10-13 20:02:07 +00:00
Neil Brown
9e21e4fc0d
Added a C++ implementation of the genRetypeSizes function
2007-10-13 17:57:23 +00:00
Neil Brown
1885518b8d
Changed the C genRetypeSizes function to pass the tests
2007-10-13 17:54:46 +00:00
Neil Brown
acd09137f6
Added tests for genRetypeSizes in the C and C++ backends
2007-10-13 17:49:09 +00:00
Neil Brown
c74ae12810
Changed the type of genBytesIn again, to remove redundancy in its parameters
2007-10-13 16:16:52 +00:00
Neil Brown
a98ff8cad0
Removed the horrible tockBool type, now that we are no longer using vectors to store C++ arrays
2007-10-13 15:40:39 +00:00
Neil Brown
ed38f80db0
Changed the type of genRetypeSizes to removed the unused AbbrevMode parameter
2007-10-13 15:38:04 +00:00
Neil Brown
9a48683033
Refactored the C implementation of genBytesIn to better integrate the old genBytesIn' with genBytesIn
2007-10-13 15:01:51 +00:00
Neil Brown
ffd09847fe
Removed genBytesIn' from the GenOps, in favour of adding a parameter to genBytesIn, and changed the tests and code accordingly
2007-10-13 14:51:29 +00:00
Neil Brown
d5d4580aa3
Changed the type of genSlice, and put the C++ version into the GenOps dictionary, as well as adding tests for the function
2007-10-13 13:20:40 +00:00
Neil Brown
886659fd09
Changed the C++ backend to pass the RETYPES tests (primarily white-space changes, and also reordering the parameters for tockArrayView)
2007-10-13 12:58:20 +00:00
Neil Brown
324257198a
Changed the C backend to pass the RETYPES tests (mainly white-space changes)
2007-10-13 12:51:13 +00:00
Neil Brown
a1f0faac8f
Added tests for RETYPES specifications in the C and C++ backends
2007-10-13 12:50:39 +00:00
Neil Brown
ec43e592f0
Fixed the initialisation of C++ channel arrays to initialise the correct array
2007-10-11 01:32:36 +00:00
Neil Brown
8d0b5fbe1a
Added a helper function for receiving an array of bytes, and changed the C++CSP backend and tests to use the function
2007-10-11 00:51:07 +00:00
Neil Brown
4935a04aa4
Added the simplifyComms pass to the shared pass list for the compiler, and removed the corresponding code in the C backend that the pass replaces
2007-10-11 00:14:27 +00:00
Neil Brown
cc2040679b
Changed the C and C++ backends to pass the input tests
2007-10-10 20:46:23 +00:00
Neil Brown
3f6fe50438
Added tests for (non-case-protocol) inputs in the C and C++ backends
2007-10-10 20:45:05 +00:00
Neil Brown
32fa80be0f
Removed the kroc C wrapper file (kroc-wrapper-c.c) in favour of tacking it onto the end of each C file we create (to better facilitate all-in-one compilation)
2007-10-08 22:04:11 +00:00
Neil Brown
5b10466e68
Fixed the channel arrays (and abbreviations thereof) to have the correct types (correcting an earlier mistake), and added helper functions to the support headers for easy initialisation of the arrays
2007-10-07 23:03:15 +00:00
Neil Brown
4e6938e0ae
Fixed AnalyseAsm so that it can parse negative literals in the assembly code
2007-10-07 15:09:36 +00:00
Neil Brown
5450f77963
Added a test for genBytesIn in the C and C++ backends
2007-10-07 11:47:39 +00:00
Neil Brown
9c4f977416
Added tests for channels carrying counted arrays of arrays for the C and C++ backends
2007-10-06 23:50:20 +00:00
Neil Brown
5e1e51ac15
Refactored the C++ genOutputItem to merge some duplicate code
2007-10-06 23:08:05 +00:00