Commit Graph

2397 Commits

Author SHA1 Message Date
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
Neil Brown
26be673ce1 Made sure that user-defined types are resolved before looking for matching operator definitions 2009-04-08 10:18:14 +00:00
Neil Brown
62dfdec9ab Added a translation routine to the Types module to turn occam operators into C-friendly names 2009-04-07 16:12:37 +00:00
Neil Brown
3fd373e4ac Stopped calls to the user-defined operators being pulled up 2009-04-07 16:12:03 +00:00
Neil Brown
a3ec0aab7f Stopped the built-in operators from being transformed into PROCs 2009-04-07 16:11:18 +00:00
Neil Brown
ca3c982a7e Fixed transformConstr to work with the new helper functions 2009-04-07 16:10:42 +00:00
Neil Brown
8a35da4be4 Fixed the removeAfter pass to work on function calls to the AFTER operator 2009-04-07 16:09:12 +00:00
Neil Brown
58167432bb Added and fixed more of the occam operators in the support headers 2009-04-07 16:08:28 +00:00
Neil Brown
85790012b0 Allowed removeNesting to pull up functions (the only ones affected will be the built-in operators) 2009-04-07 16:07:46 +00:00
Neil Brown
8635039542 Stopped removeFreeNames from considering external things to be free names 2009-04-07 16:07:21 +00:00
Neil Brown
49d6e2aaaf Reworked how the stack sizes are recorded and merged together
The previous method, using the C preprocessor was both nasty, and crazily resource-intensive.  The new method stores stack size information in files that are read in and processed by the compiler when it comes time to link.
2009-04-07 16:03:52 +00:00
Neil Brown
0a67b804bb Added more intrinsically-defined operators to the list 2009-04-07 16:01:44 +00:00
Neil Brown
a8c9802f5d Changed the occam type checker to handle checking user defined operators better
They are now recursed into with no type context, then afterwards the type is deduced.  This seems to be how they were meant to work, and is also much faster than what I was doing.
2009-04-07 15:52:06 +00:00
Neil Brown
7031ab7fb8 Changed the lexer to make it lex the new (user-defineable) operators 2009-04-07 15:51:34 +00:00
Neil Brown
e648a87fd1 Turned REM into \ in the parser, as that was the easiest place to do it 2009-04-07 15:43:56 +00:00
Neil Brown
095e3e1680 Fixed the parsing of associative operators 2009-04-07 15:43:41 +00:00
Neil Brown
7bd4e3d309 Added functions to the list of things that need stack sizes, even if they are external
I think this is not quite right, but for now it fixes stack sizes not being generated for any non-inlined standard operators.
2009-04-07 15:42:37 +00:00
Neil Brown
6e4e9c1808 Implemented much more of the support functions, and renamed some of the uglier types 2009-04-06 13:24:26 +00:00
Neil Brown
c4f625b1ba Overhauled the support headers to add most of the missing occam operators as inline functions 2009-04-06 00:56:06 +00:00
Neil Brown
9260048da2 Quickly fixed the Rain frontend to compile with the operator changes 2009-04-05 23:08:12 +00:00