Commit Graph

93 Commits

Author SHA1 Message Date
Neil Brown
936dc29fde Fixed some of the tests, and added another testcase for array passing, based on one of Carl's examples 2009-03-20 12:59:16 +00:00
Neil Brown
94d436cbaf Added the testcase I'm using for the implicit mobility stuff 2009-03-19 11:47:31 +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
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
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
df34d666ba Fixed the handling of OR in logical expressions, and added a testcase 2009-02-09 23:04:52 +00:00
Neil Brown
6818cdc114 Added a few more tests that helped me track down a bug I was introducing 2009-02-09 22:41:40 +00:00
Neil Brown
7cf83512c5 Added a testcase which I think highlights a problematic bug 2009-02-09 15:55:13 +00:00
Neil Brown
4e152a0f70 Added some more replicated tests with more complex combinations of IF conditions 2009-02-09 15:13:53 +00:00
Neil Brown
2e36a8a218 Fixed a typo in a test name 2009-02-09 13:13:19 +00:00
Neil Brown
1d4a62578a Fixed a typo in one of the testcases 2009-02-09 11:31:34 +00:00
Neil Brown
b4e79ca62e Realised that channels are not being parallel usage checked at all, and added testcases for them 2009-02-09 10:28:45 +00:00
Neil Brown
00a8be1984 Added some tests ready to check usage checking on channel arrays 2009-02-08 23:40:40 +00:00
Neil Brown
3604ab6412 Added some testcases related to checking the use of abbreviations 2009-02-08 23:25:30 +00:00
Neil Brown
e165030751 Stopped Tock checking arrays that are declared inside the PAR being examined
Fixes #84
2009-02-08 23:08:58 +00:00
Neil Brown
1c1860ce7e Added lots of new tests for parallel replicators with BK, all of which fail 2009-02-08 16:06:15 +00:00
Neil Brown
571815c571 Added another test which shows a problem with the usage checking 2009-02-05 16:27:57 +00:00
Neil Brown
2ecd91e36f Changed the array usage checking to always include equations involving replicators
This allows us to check situations like this:

PAR i = 0 FOR 10
  IF
    i = 0
      a[10] := 3
    TRUE
      a[i] := 3

Previously this would have been flagged unsafe (because 10 can overlap with 10 between the replicated branches).

But with this change, the equations on the replicators (including: i'>=i+1, i = 0, i' = 0) are included alongside 10=10, so there is no solution over all because the replicator equations prevent a solution (i.e. the 10 can't be used twice in parallel).
2009-02-05 15:47:41 +00:00
Neil Brown
42fa9b12e2 Added a lot more testcases related to background knowledge in usage checking 2009-02-05 14:53:42 +00:00
Neil Brown
0cbe5de96c Added a few more tests to help make sure I don't break anything 2009-02-04 13:08:11 +00:00
Neil Brown
d6530051ab Added another usage check tests 2009-02-04 11:54:50 +00:00
Neil Brown
6f607972e6 Added some more usage check tests, primarily for non-array variables used in odd ways in replicated PARs 2009-02-04 09:37:28 +00:00
Neil Brown
c7931bf800 Added more tests ready for channel-end inference 2009-01-23 14:47:59 +00:00
Neil Brown
d184721979 Added yet more tests for channel-ends 2009-01-21 00:00:31 +00:00
Neil Brown
16d8468b08 Added more channel end tests, involving abbreviations before use 2009-01-20 23:50:02 +00:00
Neil Brown
1adca155dd Added a file full of tests for inferring direction specifiers in PROC formals 2009-01-20 23:43:42 +00:00
Neil Brown
e001d9173c Defeated the GCC optimiser, to get a decent estimate of how slow multiplication is 2009-01-22 16:52:00 +00:00
Neil Brown
72a8824940 Had a go at implementing multiply overflow checking (with a single division, and pre-checks)
I also added an occam testcase to help time the different between * and TIMES.  But gcc optimises out the loop with TIMES under -O2, and with -O0 there is a factor of four difference.
2009-01-22 16:51:54 +00:00
Neil Brown
ec25ff9901 Added some tests for the type-checking of poison statements in Rain 2008-09-12 14:37:11 +00:00
Adam Sampson
62a0873d3d Implement channel direction decorators.
This is mostly straightforward: modify the parser to allow direction
decorators in the right places, and extend the type checker to match.
There's some slight awkwardness in that some of the Types functions
have to perform the same checks as the type checker (e.g. directing a
non-channel), so I've tidied up their error messages a bit.

At the backend, I've just added a little pass to strip out all the
DirectedVariables, since the other backend passes don't handle them
gracefully. From the occam/C point of view this is fine, but I'm not
sure if it's going to cause problems for C++.
2008-06-09 21:35:20 +00:00
Neil Brown
2a56189d30 Added an additional testcase for conditions in the usage checking 2008-06-07 20:29:21 +00:00
Neil Brown
cb6fb40440 Added some more testcases involving deduction from (sequential) replicator bounds 2008-06-06 10:39:12 +00:00
Neil Brown
b9b025a429 Added some tests for the new usage checking and reachability mechanisms 2008-06-05 23:11:00 +00:00
Adam Sampson
f2352019ab Implement INITIAL and RESULT abbreviations.
This adds the passes to transform INITIAL into the correct form.

Fixes #42.
2008-06-03 14:57:24 +00:00
Adam Sampson
6ee21f76c9 Initial work on supporting INITIAL and RESULT abbreviations.
This fixes the AST, parser and typechecker, and adds a pass to
transform Result back into Abbrev, but doesn't transform Initial yet.
(It actually works for trivial stuff anyway, but it won't do the right
thing for complex types or PROC parameters.)

It appears (to me) to make sense to support INITIAL/RESULT reshaping
and retyping too, so this does.

Refs #42.
2008-06-02 20:41:37 +00:00
Neil Brown
46ef8e7e65 Annotated the move Rain testcase with the expected results 2008-05-30 18:28:19 +00:00
Neil Brown
a7944ddf9f Changed the move testcase to use the correct Rain TLP interface 2008-05-30 17:32:06 +00:00
Neil Brown
a5fca4816b Added the beginnings of support for implicit mobility for Rain (just printing out the decisions for now) 2008-05-30 17:16:10 +00:00
Adam Sampson
8b3eba594d Add SubscriptCheck field to SubscriptFromFor etc.
This makes it possible to mark a slice as not needing runtime
checking, which is immediately useful for _sizes arrays.

This fixes cgtest03, which was previously failing to compile because
the _sizes array for one of the constants in it contained a runtime
check and thus wasn't itself constant. I've added a testcase file for
the relevant bit of code.
2008-05-26 17:36:26 +00:00
Neil Brown
926659cf70 Fixed the Rain lists testcase to adhere to the new type unification scheme 2008-05-20 21:56:25 +00:00
Neil Brown
f9d55d2c65 Expanded the Rain lists testcase 2008-03-25 18:45:19 +00:00
Neil Brown
ecb4758b64 Corrected a slight bug in the type tests 2008-05-18 09:34:04 +00:00
Neil Brown
abbca5f235 Added tests for channel communications (and type unification) 2008-05-17 19:43:44 +00:00
Neil Brown
0aeebfeeb8 Added more tests for the Rain type system, this time assignment 2008-05-17 14:19:50 +00:00
Neil Brown
3249381995 Added a Rain test file for the type checker 2008-05-17 13:17:12 +00:00
Adam Sampson
04da66531f Fix nesting.occ so it has a valid TLP signature. 2008-05-15 12:23:44 +00:00
Adam Sampson
c627214727 Resolve the v[s] ambiguity outside the parser.
This removes the last use of typeOf* from the parser.
2008-04-07 21:36:21 +00:00
Adam Sampson
feefcfd017 Resolve the c ! x ambiguity outside the parser.
Unfortunately there appears to be exactly one place you can do this, and it
turns out to be inside inferTypes (because you need to know the type of c
completely, and you can't type-infer x until you know if it's a tag or a
variable). It's definitely nicer than doing it in the parser, though.

I've also started adding "-- AMBIGUITY" comments in the parser.
2008-04-06 17:47:41 +00:00