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
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