Commit Graph

2506 Commits

Author SHA1 Message Date
Neil Brown
cdcbebd2ae Fixed the instances generated for Maps 2008-12-14 15:38:01 +00:00
Neil Brown
263dfd6fd3 Allowed the different instances for the Polyplate classes to be written out to separate files (to help GHC's memory usage down a bit) 2008-12-14 15:37:05 +00:00
Neil Brown
cd9b8462b4 Made Tock depend again on the BUILT_SOURCES (which I broke in an earlier patch) 2008-12-14 15:36:30 +00:00
Neil Brown
d24a984442 Fiddled with the PolyplateSpine class and added code to generate the instances 2008-12-09 16:18:06 +00:00
Neil Brown
189032e275 Fixed up the full traversal of the tree to allow specification of a default value 2008-12-09 11:20:39 +00:00
Neil Brown
a7f04a030c Added more stuff relating to the spine view in Polyplate, but now reconsidering its necessity 2008-12-05 16:48:16 +00:00
Neil Brown
bcbd18e5b7 Changed the build system, since GenNavAST now (indirectly, via CompState) relies on OrdAST existing 2008-12-03 17:39:04 +00:00
Neil Brown
24a7b7aba8 Changed GenNavAST to also generate instances for CompState 2008-12-03 17:37:29 +00:00
Neil Brown
c83c383181 Fixed the GenClassPerType option to actually generate the forwarding instance from PolyplateM to the type-specific class 2008-12-03 17:36:40 +00:00
Neil Brown
360b076be9 Made genMapInstance and genSetInstance generate instances for the directly contained types 2008-12-03 17:30:57 +00:00
Neil Brown
29b79000f1 Made the instance generation obey the settings for GenClassOption 2008-12-03 17:19:16 +00:00
Neil Brown
24364c0cbe Pulled out the final bits of the instance generation that I want to make configurable 2008-12-03 17:07:43 +00:00
Neil Brown
7ee2475363 Pulled out more commonality, this time relating to contexts 2008-12-03 16:55:48 +00:00
Neil Brown
14d6dec1d1 Pulled out some of the details of generating a Polyplate instance into a helper function, to help make it easier to configure 2008-12-03 16:41:01 +00:00
Neil Brown
624e10b9ff Added a special case for sets, and some documentation explaining why this mechanism is needed 2008-12-03 15:42:52 +00:00
Neil Brown
85f917df2f Added a mechanism for having special cases for awkward types (such as Map) during the instance generation 2008-12-03 15:32:43 +00:00
Neil Brown
890e7ea9a6 Fixed many of the modules to use the new Polyplate-based Traversal system 2008-12-02 18:06:10 +00:00
Neil Brown
a3bcb32937 Switched the Pass and Traversal modules over to Polyplate, breaking most of the other modules 2008-12-02 17:33:55 +00:00
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