Neil Brown
e78a30c231
Added an applyBottomUp function (non-monadic)
2008-12-02 17:17:22 +00:00
Neil Brown
6a0529a9ce
Took out the pregen sources from tock_SOURCES_hs, which I think would have caused them to be packaged (don't think we would want to, or at least we don't need to)
2008-12-02 17:06:39 +00:00
Neil Brown
4b9d186a65
Added the parameter to increase the context stack (for working with polyplate)
2008-12-02 17:06:17 +00:00
Neil Brown
44026e985a
Adjusted the clean rule to fit with the new Polyplate modules
2008-12-02 17:06:00 +00:00
Neil Brown
4fa324cbfe
Changed polyplate so that users should always supply their own headers (since it must have any appropriate imports)
2008-12-02 16:04:04 +00:00
Neil Brown
69e5d1d20d
Reworked GenInstances, and wired in the option relating to overlapping instances
2008-12-02 15:50:38 +00:00
Neil Brown
c9100fb467
Added the first version of GenInstances (taken from my latest improvements) and switched GenNavAST to use it, but it needs tidying up and to take account of the options it is given
2008-12-02 15:16:22 +00:00
Neil Brown
01fff6e617
Realised listify should return a list, and added depth-first and breadth-first versions
2008-12-02 14:18:11 +00:00
Neil Brown
b6176ee615
Added functions and schemes related to the new query functions
2008-12-02 14:10:43 +00:00
Neil Brown
a2063da839
Added some thoughts (and a new type-class) concerning possible uses of Polyplate
2008-12-02 13:49:36 +00:00
Neil Brown
82cae7691a
Fixed the remaining missing functions to get the Schemes compiling
2008-12-02 13:13:54 +00:00
Neil Brown
77251b842c
Added the Polyplate modules to the Tock build system and fixed various errors
2008-12-02 13:08:38 +00:00
Neil Brown
8b28fee077
Started a module (Schemes) containing various Polyplate traversal schemes
2008-12-02 12:59:17 +00:00
Neil Brown
df2b85ea27
Moved Polyplate into a sensible package (based on the Uniplate module names)
2008-12-02 12:26:12 +00:00
Neil Brown
e7231d8959
Added the first version of the standalone Polyplate module
2008-12-02 12:24:17 +00:00
Neil Brown
9403f4d68b
Filled in more expressions and corrected the generation of byte literals by borrowing code from the C backend
2008-11-27 09:25:34 +00:00
Neil Brown
ce86ec2337
Changed genMissing so that it generates a run-time error in the generated code
2008-11-27 09:25:07 +00:00
Neil Brown
e79ccf1b46
Fixed it so that names beginning with an upper-case letter are prefixed by an underscore in the CHP backend
2008-11-27 09:24:31 +00:00
Neil Brown
769ed4f3ca
Filled in a little more of the CHP backend
2008-11-26 20:39:51 +00:00
Neil Brown
70d7b941cc
Added support for more types and some expressions (mainly array stuff)
2008-11-26 18:47:32 +00:00
Neil Brown
ab8fd2434c
Made all the missing stuff call genMissing
2008-11-26 15:51:21 +00:00
Neil Brown
d962126fed
Added the framework for variable declarations
2008-11-26 15:47:22 +00:00
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