Commit Graph

2416 Commits

Author SHA1 Message Date
Neil Brown
d7c61a70c0 Fixed some indentation issues and added markers for things that are missing 2008-11-26 15:37:49 +00:00
Neil Brown
5d0391c98d Fixed it so that processes at the top-level are not inside let bindings 2008-11-26 15:28:36 +00:00
Neil Brown
caff6ae702 Added some more types, and import declarations 2008-11-26 15:27:16 +00:00
Neil Brown
b3c1a6f13b Filled out the very basics of a CHP backend, enough to get some proc headers 2008-11-26 15:11:51 +00:00
Neil Brown
e3c426e870 Added full-compile support for the CHP backend 2008-11-26 12:48:48 +00:00
Neil Brown
78716a2727 Added a CHP backend option to Tock 2008-11-26 12:24:21 +00:00
Neil Brown
aa10b0113d Allowed direction specifiers to be added to variables that are channel bundles when they are passed as arguments 2009-04-12 13:51:48 +00:00
Neil Brown
da43dcb3f5 Allowed multiple empty dimensions in mobile types, not just one 2009-04-12 13:51:32 +00:00
Neil Brown
5534d1c3d6 Fixed some problems with DATA TYPEs that were actually MOBILE stuff not being resolved at the right points 2009-04-12 13:50:59 +00:00
Neil Brown
47d565a3b9 Changed records to always use their original name in the C code
This fixes the problem with PROCs complaining that one munged version of the record name was not the same as another.

This will cause problems if two different record definitions for the same name are visible in the same file.
2009-04-12 13:06:49 +00:00
Neil Brown
7a7eefa33e Changed inline items to always be static
I'm not sure if this is a valid thing to do, but it solved a problem with the occam libraries where multiple occam files were including an inline FUNCTION from an include file, and this was causing problems at link time.
2009-04-12 13:02:58 +00:00
Neil Brown
8e10eb8811 Fixed a missing parameter on one of the support functions 2009-04-12 10:50:29 +00:00
Neil Brown
ddbec737f2 Got all the tests compiling again after recent changes
For some reason, the usage check tests are now very slow to run (perhaps because of all the operator definitions added to each one?), which needs further investigation.
2009-04-10 19:29:40 +00:00
Neil Brown
2690ec1d1b Fixed the munging of names to always use the Meta tag again 2009-04-10 19:28:03 +00:00
Neil Brown
e462da4a76 Added a system for specifying implicitly-used modules on the command-line
An implicitly used module is equivalent to a #USE directive before the first line of the main file.  This, combined with changes in occbuild, are my current way of implementing the automatic use of the forall module in occam.
2009-04-10 19:26:22 +00:00
Neil Brown
09ea5fd610 Fixed operators not being written correctly to include files 2009-04-10 18:26:39 +00:00
Neil Brown
ce0214cbf4 Fixed operators defined inside functions not being recorded in csOperators 2009-04-10 16:07:18 +00:00
Neil Brown
e53da5822f Fixed a problem where operators with % in the name were screwing up an error message 2009-04-10 16:06:49 +00:00
Neil Brown
2308c6571c Fixed assignment of arrays to work when dimensions are missing (helps with the initialisers for mobile allocations) 2009-04-09 17:09:50 +00:00
Neil Brown
98ffb74505 Corrected cgenVariableWithAM to work properly (and be a little cleaner) for generating VariableSizes 2009-04-09 17:09:23 +00:00
Neil Brown
f58c8fc2e8 Fixed lots of issues in declare array sizes so that it works properly with various nested mobiles 2009-04-09 17:08:42 +00:00
Neil Brown
a400b3e4f6 Added a pass to pull up values used as initialisers in mobile allocations 2009-04-09 17:08:27 +00:00
Neil Brown
794e9ba8df Made sure that dereferenced mobile arrays are pulled up 2009-04-09 17:06:07 +00:00
Neil Brown
92c92a3f65 Fixed various small mobile typing issues 2009-04-09 17:05:16 +00:00
Neil Brown
229f2197af Turned findMeta into a member of a FindMeta type-class 2009-04-09 11:13:37 +00:00
Neil Brown
998cf1c005 Fixed various bits of type-inference in OccamTypes 2009-04-09 10:00:03 +00:00
Neil Brown
debdef4f4f Fixed the generation of directed channels for the C++ backend 2009-04-08 19:14:29 +00:00
Neil Brown
de097bb138 Fixed type-checking on ambigious record fields, so that now the cgtests are happy again 2009-04-08 19:11:33 +00:00
Neil Brown
82be1bd726 Also fixed the types of the ..TOSTRING procs in the occam intrinsic list in Tock 2009-04-08 19:10:46 +00:00
Neil Brown
4a629c27ab Fixed rangetest to work again, given the changes to the names of the operators in the support headers 2009-04-08 19:10:08 +00:00
Neil Brown
69c05d7258 Fixed the types in the ..TOSTRING procs in the support headers 2009-04-08 19:09:51 +00:00
Neil Brown
41d52320de Corrected the C++ backend to obey csHasMain, and stop generating duplicate definitions for externally-originating classes 2009-04-08 16:45:51 +00:00
Neil Brown
ae61b22355 Corrected the C++ compilation commands, and gave the header a different extension 2009-04-08 16:45:08 +00:00
Neil Brown
cc4720832b Corrected a mistake in the last patch 2009-04-08 16:34:04 +00:00
Neil Brown
6814ac2679 Added a joinWith helper (short for concat . intersperse) and changed most of the uses in the code to use the helper function 2009-04-08 16:28:23 +00:00
Neil Brown
5a7f68a44f Removed some of the old C generation functions, and added a new one (genFunctionCall) to get the C++ backend compiling again 2009-04-08 16:07:01 +00:00
Neil Brown
5c353f10b7 A big patch to get ArrayUsageCheck compiling again, with the new operators 2009-04-08 15:44:35 +00:00
Neil Brown
d2fb80c516 Added a foldM1 function to the Utils module 2009-04-08 15:33:36 +00:00
Neil Brown
009cf8cc8b Added a helper function like functionOperator, but that only gives back a Just result if the operator is a non-overridden version 2009-04-08 15:15:47 +00:00
Neil Brown
397d8b7936 Resolved the types of the operators before searching through them for matches 2009-04-08 12:30:48 +00:00
Neil Brown
dc4cfe331b Made the operator search ignore the values of array dimensions, as it should do 2009-04-08 12:23:45 +00:00
Neil Brown
adf046a30e Fixed the implicit mobility module (it was only broken for Rain anyway) 2009-04-08 12:15:11 +00:00
Neil Brown
1ea35c6715 Fixed the name munging for declared user-defined operators 2009-04-08 12:14:05 +00:00
Neil Brown
1e21895276 Stopped abbreviations of arrays of records being pulled up 2009-04-08 12:13:23 +00:00
Neil Brown
dc64b5e664 Fixed the filename munging in the generated copy_ procs for records 2009-04-08 12:13:07 +00:00
Neil Brown
d782c91ed0 Added some missing occam operators to the various lists 2009-04-08 12:03:48 +00:00
Neil Brown
29a41fce72 Fixed the Check module to generates its BK based on the new operators-as-functions system -- it now compiles, but I haven't tested it thoroughly 2009-04-08 12:03:39 +00:00
Neil Brown
da4f4e1cd8 Changed an old use of the Not operator into the corresponding function call 2009-04-08 10:34:51 +00:00
Neil Brown
22cb9d35b6 Fixed the constant folding to understand the new operators-as-functions system, and only fold when the original built-in definition is being used 2009-04-08 10:28:26 +00:00
Neil Brown
6cb47fd1c3 Fixed one of properties that involved AFTER 2009-04-08 10:19:38 +00:00