Commit Graph

2327 Commits

Author SHA1 Message Date
Neil Brown
65550b705e Added an AllSizesVariable item to the AST so that the backend inserts the right code for mobiles and non-mobiles 2009-03-20 11:31:14 +00:00
Neil Brown
f5ce1c8f89 Added the code to mobilise arrays inside protocols 2009-03-20 11:26:54 +00:00
Neil Brown
3c4f76ed46 Fixed the memory leaks arising from not clearing mobiles before an input 2009-03-19 18:18:17 +00:00
Neil Brown
7d3e9e8648 Stopped MTRelease being called with a NULL pointer 2009-03-19 16:59:19 +00:00
Neil Brown
65875f523f Added mobile cloning rather than using dereferencing to copy mobiles 2009-03-19 16:47:31 +00:00
Neil Brown
2e99bcfc5e Added the mobilisation of process parameters, but I think I need to clone, not dereference 2009-03-19 15:45:49 +00:00
Neil Brown
8abd09758c Fixed the implicit mobility module to mobilise arrays inside channels 2009-03-19 15:23:56 +00:00
Neil Brown
8e5e73e3a2 Fixed the support in the backends for mobile channel stuff 2009-03-19 15:23:35 +00:00
Neil Brown
ca61da25cf Added a function to the Types module to allow you to easily change the type of a SpecType 2009-03-19 15:13:00 +00:00
Neil Brown
26824883d6 Changed the implicit mobility to only look at mobile variables, and recorded what future use is causing a copy decision 2009-03-19 14:00:59 +00:00
Neil Brown
94d436cbaf Added the testcase I'm using for the implicit mobility stuff 2009-03-19 11:47:31 +00:00
Neil Brown
b970b9df33 Added command line options for occam 2 mobility, and turned it off by default 2009-03-19 11:38:48 +00:00
Neil Brown
a995d29c32 Moved the mobile stuff across to use the CCSP API 2009-03-19 11:33:09 +00:00
Neil Brown
4bc15aae48 Bashed the backend until it works with the new mobility passes (standard occam may be broken though) 2009-02-27 17:12:17 +00:00
Neil Brown
823592bd1d Added some passes to mobilise non-mobile arrays 2009-02-27 17:12:08 +00:00
Neil Brown
2dd8867c91 Removed C++CSP's mobile stuff so that I only have one unified system to deal with for now 2009-02-27 17:04:11 +00:00
Neil Brown
9614d5f7f9 Fixed the intrinsic PROCs to be generated correctly 2009-02-27 17:13:18 +00:00
Neil Brown
0d5c8f28fd Fixed a couple of helper functions to navigate through mobile arrays properly 2009-02-27 17:09:14 +00:00
Neil Brown
4041284feb Renamed a slightly confusing backend pass 2009-02-27 17:04:41 +00:00
Neil Brown
2a2ce367ca Added some missing cases in the ShowCode module 2009-02-27 17:02:34 +00:00
Neil Brown
564f611fb3 Fixed the types on the string intrinstics to be unsigned char rather than char 2009-02-27 17:01:46 +00:00
Neil Brown
c787aa9fa5 Fixed a bug in the occam type inference where channels of arrays were not being processed properly 2009-02-27 17:01:07 +00:00
Neil Brown
cd1b409f96 Removed cppremoveSpec, since it was doing the same as cremoveSpec 2009-02-27 10:49:45 +00:00
Adam Sampson
69b798735f Resolve user types when checking parallel array access. 2009-03-21 15:39:13 +00:00
Adam Sampson
77be0c1137 Add some testcases for usage-checking on user-defined array types.
These were based on KRoC bug #194, submitted by Jonathan May.
2009-03-21 15:37:56 +00:00
Adam Sampson
deedad4268 Add kyb as another possible name for the keyboard channel. 2009-03-21 15:22:58 +00:00
Neil Brown
d0d5cf6779 Fixed the C++ backend where I was trying to be too clever with the sizes 2009-02-11 14:19:34 +00:00
Neil Brown
6d112a244e Fixed when names are exempted from abbreviation checking by the PERMITALIASES pragma 2009-02-11 13:15:25 +00:00
Neil Brown
a1585c74a9 Fixed inferTypes so that it again handles Specifications in Structured ExpressionList in function definitions 2009-02-11 11:53:04 +00:00
Neil Brown
152f5fc252 Changed the abbreviation checking so that it doesn't check nonce names
When we pull up names (which happens before abbreviation checking), we create a lot of nonces with greater scope than the original variables.  When we go to abbreviation check this, we therefore set off lots of false alarms about originally safe code.  So to fix this, the easiest method seems to be turning off checking on all the names introduced by the compiler.
2009-02-11 11:23:39 +00:00
Neil Brown
18f23bf767 Fixed a small problem with the types of arrays of channel-ends in the C++ generation 2009-02-10 22:21:13 +00:00
Neil Brown
6d5c01ac69 Changed inferTypes so that directions are inferred when channels (and arrays of channels) are abbreviated 2009-02-10 22:20:51 +00:00
Neil Brown
4055746e19 Fixed typeOfVariable to handle directed inferred variables 2009-02-10 22:20:02 +00:00
Neil Brown
6db9b221af Moved the adding of direction specifiers out of the type inferrence pass into a new pass that runs before type inference 2009-02-10 21:34:42 +00:00
Neil Brown
24fa36ccda Modified the test harness so that it gives a meta tag on failure (in case we want it) 2009-02-10 21:33:53 +00:00
Neil Brown
e37fa37c79 Recoded abbrevCheckPass so that it is much more efficient (now does everything in one pass of the AST) 2009-02-10 13:14:45 +00:00
Neil Brown
9d44e3475c Swapped some uses of listify to fastListify, but the abbreviation checking is still very slow 2009-02-10 12:49:54 +00:00
Neil Brown
bcd670bfd2 Fixed a couple of problems with the usage checking 2009-02-10 12:40:24 +00:00
Neil Brown
68f808583b Added code to handle whole channels being passed to PROCs in the usage checking, and made sure they still obey the SHARED pragma 2009-02-10 12:34:28 +00:00
Neil Brown
3bdc5d0ff6 Fixed the usage checking so that it obeys the correct pragma for each type of check (and added another test) 2009-02-10 11:40:00 +00:00
Neil Brown
de9469fad3 Corrected some of the other tests that fail the new abbreviation checking 2009-02-10 11:32:36 +00:00
Neil Brown
cff10e2f28 Added a pass that checks that abbreviations are used properly 2009-02-10 11:32:10 +00:00
Neil Brown
e87e83f073 Fixed a test that was labelled with the wrong expectation 2009-02-10 11:31:00 +00:00
Neil Brown
05c87e6935 Added some testcases for the correct use of the right pragma (of SHARED and PERMITALIASES) 2009-02-10 01:13:31 +00:00
Neil Brown
81959bd76b Added quick preliminary support for the PERMITALIASES pragma 2009-02-10 01:01:23 +00:00
Neil Brown
14df1e09b7 Corrected some problems caused by moving the direction specifiers up to the whole array (the array wasn't then being pulled up) 2009-02-10 00:28:45 +00:00
Neil Brown
93af6b85a4 Updated the comments on the product* functions in the Utils module 2009-02-09 23:10:29 +00:00
Neil Brown
df34d666ba Fixed the handling of OR in logical expressions, and added a testcase 2009-02-09 23:04:52 +00:00
Neil Brown
84568cfbdd Added constraint generation after a branch is not taken in an IF 2009-02-09 22:46:08 +00:00
Neil Brown
33d18f07c2 Added support for negation in logical expressions and tidied up some other little bits of the code 2009-02-09 22:45:32 +00:00