Commit Graph

505 Commits

Author SHA1 Message Date
Adam Sampson
2c4ccfbf39 Update all the copyright notices.
I've checked these all against the Darcs history using a script
(check-copyright, in my misccode collection). Anything Neil or I did as
part of our PhDs is copyright University of Kent; more recent work
belongs to us, as appropriate.
2011-07-21 11:38:13 +00:00
Adam Sampson
1555d0f5eb Port to use QuickCheck 2.
Most of this is trivial -- e.g. getting rid of dummy definitions of
coarbitrary, which is a separate typeclass in QC2, and changing the
parameter specs to use the new Args type.

The chunk of code that runs a QC test as an HUnit test is now quite a
bit simpler because QC's top-level interface returns a result. However,
this means that some gymnastics are required to get at the right
definition of Result in different places -- QC2 has two different types
called Result, and we use both for different jobs!
2011-07-20 15:10:10 +00:00
Neil Brown
7b80564828 Removed all uses of rec, which seems to be a reserved word these days 2010-04-10 19:39:54 +00:00
Neil Brown
728fa5f328 Fixed up the implicit mobility to work with oak (but needs some more work to make sure normal mobility still functions) 2009-05-27 18:01:03 +00:00
Neil Brown
734685d715 Fixed genOverArray to be okay with mobile arrays 2009-05-22 21:57:00 +00:00
Neil Brown
703bfe1afe Added better error messages for problems with C types in the backend 2009-05-19 12:58:22 +00:00
Neil Brown
af1e4b6b7f Added an EXIT intrinsic that's useful for profiling 2009-05-25 17:08:11 +00:00
Neil Brown
d98c5079ca Cleaned up all the warnings in Tock's code (most unused modules, or unused functions) 2009-05-19 09:05:38 +00:00
Neil Brown
853a52cc00 Finished the name change from Polyplate to Alloy
Most of this was a find-and-replace, PolyplateM -> AlloyA.  But I also fixed some of the opsets and removed types that were no longer needed, and so on.
2009-05-11 15:22:58 +00:00
Neil Brown
44eabe4baa Reworked Polyplate to have a simpler way of expressing opsets, and also simplified PolyplateM and PolyplateMRoute 2009-05-06 11:32:19 +00:00
Neil Brown
f4eea82bb7 Fixed a bug where C. externals were turned into blocking calls, and B. externals were turned into normal external calls
This turned out to be the reason for the slowness in parrot_attack.
2009-04-19 23:09:18 +00:00
Neil Brown
d29b5b67cf Got the tests compiling again after the changes to the AST for extended rendezvous 2009-04-19 17:34:36 +00:00
Neil Brown
cb4250b1b2 Implemented the SETAFF intrinsic 2009-04-19 17:29:20 +00:00
Neil Brown
b0ea943c72 Fixed the creation of the header define when there are characters such as dashes in the file name 2009-04-19 17:01:35 +00:00
Neil Brown
838de8a366 Corrected various test failures in the C backend 2009-04-19 15:01:00 +00:00
Neil Brown
3a5565471f Added support for extended rendezvous throughout the compiler 2009-04-19 16:26:37 +00:00
Neil Brown
41cf599ebe Fixed non-top-level records in the C backend 2009-04-19 13:22:24 +00:00
Neil Brown
40e0399e4c A whole lot of changes, described in #101 that help with records and separate compilation
The scheme may be strange, but a lot of KRoC compiles with it (and I think the cgtests will compile again now too)
2009-04-18 21:35:26 +00:00
Neil Brown
48018a0acf Fixed up some of the backend passes tests (and corrected the pass itself) 2009-04-18 19:48:08 +00:00
Neil Brown
57ffc7bfa4 Split out a chunk of CompState into a CompOpts type for things that can be set on the command-line 2009-04-17 21:10:14 +00:00
Neil Brown
7dbff25b29 Moved csGlobalSizes to be a StateT on the appropriate backend pass 2009-04-17 19:29:50 +00:00
Neil Brown
378ef07893 Adjusted all the other modules to reflect the new change to CSM 2009-04-17 17:40:00 +00:00
Neil Brown
b0faa0e387 Fixed the sizes for mobile arrays of mobile arrays
The pass was folding the two arrays together, then digging too far into the dimensions of the outer array, rather than looking at the dimensions of the inner array.
2009-04-16 18:42:27 +00:00
Neil Brown
f909c6fd03 Fixed external calls so that passing mobile arrays to and from external calls now works 2009-04-16 18:29:14 +00:00
Neil Brown
437c6bd3ef Fixed genBytesIn for mobile arrays 2009-04-16 17:39:24 +00:00
Neil Brown
cdab6af65a Fixed the allocation of mobile arrays of mobile things so that the pointers in the new array are set to 0 2009-04-16 17:19:40 +00:00
Neil Brown
5a5b91e387 Fixed the passing of mobile arrays to old-style external calls 2009-04-16 14:19:25 +00:00
Neil Brown
a8b1697df6 Fixed the types for MOBILE array allocations that are inferred from something with unknown dimensions 2009-04-16 10:45:02 +00:00
Neil Brown
720388c764 Added a pass for MOBILE params to FORKed processes 2009-04-16 10:44:46 +00:00
Neil Brown
ee787b911c Rejigged the calculation of stack sizes to do partial subsitution for sizes files when they are generated 2009-04-16 10:25:43 +00:00
Neil Brown
c8136b7ef4 Fixed some problems with mobile stuff in the C backend 2009-04-16 10:25:16 +00:00
Neil Brown
ff9cabd80b Changed csParProcs to be a map that indicates whether the process is a wrapper for FORK or PAR 2009-04-16 10:25:02 +00:00
Neil Brown
a12c4cc814 Got most of the C++ backend working again, at least on the early cgtests 2009-04-14 15:33:34 +00:00
Neil Brown
535054eed0 Added a missing sanity check when allocating mobile arrays 2009-04-15 19:36:14 +00:00
Neil Brown
d07a4cb496 Fixed a function in AnalyseAsm to not read in the same sizes file twice, and made sure that sizes files are not emitted with their path 2009-04-15 17:17:22 +00:00
Neil Brown
f11db734a8 Added in kroc_argc and kroc_argv that is expected by one of the occam modules 2009-04-15 17:11:03 +00:00
Neil Brown
5f87855cc7 Fixed the backend so that it does not think stack sizes are needed for external functions 2009-04-15 17:10:29 +00:00
Neil Brown
681b1aa878 Added a couple of new pragmas (TOCKINCLUDE and TOCKNATIVELINK) to help with modules 2009-04-15 17:09:22 +00:00
Neil Brown
5fe8d4ba6a Fixed a couple of small things in the C backend that were causing GCC to spew out lots of warnings 2009-04-15 12:06:29 +00:00
Neil Brown
ca3fc18748 Fixed the backend to work out the header extension better 2009-04-14 17:03:55 +00:00
Neil Brown
5f5dac41d1 Fixed the backend to work with channels that shared at one end only 2009-04-14 17:01:09 +00:00
Neil Brown
46f9e1f7e4 Changed AnalyseAsm to give more helpful error messages when there is a problem 2009-04-14 16:59:53 +00:00
Neil Brown
f257100ba8 Added support for the SETPRI intrinsic 2009-04-14 11:05:27 +00:00
Neil Brown
c2b31d3c78 Fixed the listify function, especially for the C backend, so that the ordering is what we want, regardless of whether it makes sense 2009-04-13 22:40:25 +00:00
Neil Brown
d36503e15d Fixed a couple of problems in the backend with channel bundles 2009-04-13 20:37:21 +00:00
Neil Brown
f2c4ada01b Removed PolyplateSpine in favour of using PolyplateM (and the State monad) everywhere 2009-04-13 20:37:14 +00:00
Neil Brown
9069282ca2 Added support to the backend for FORK and FORKING 2009-04-13 14:58:07 +00:00
Neil Brown
c8b724d2be Merged the latest set of changes from the trunk into the Polyplate branch
I also added the import list to all the Data.Generics imports in the tests (as I did for the other modules recently)
2009-04-10 20:38:29 +00:00
Neil Brown
8f767ff0d4 Made all the imports of Data.Generics have an import list
This makes sure that we catch all leftover instances of using SYB to do generic operations that we should be using Polyplate for instead.  Most modules should only import Data, and possibly Typeable.
2009-04-09 15:36:37 +00:00
Neil Brown
e61a23855a Fixed all the conflicts while merging into the Polyplate branch 2009-04-09 11:01:39 +00:00