Mirror of http://offog.org/git/tock.git . Tock (translator from occam to C from Kent) is a Haskell-based compiler for occam and related languages.
Go to file
Adam Sampson b1416bb0cf Change A.Dimension to take an Expression, not an Int.
This touches an awful lot of code, but cgtest07/17 (arrays and retyping) pass.

This is useful because there are going to be places in the future where we'll
want to represent dimensions that are known at runtime but not at compile time
-- for example, mobile allocations, or dynamically-sized arrays. It simplifies
the code in a number of places.

However, we do now need to be careful that expressions containing variables do
not leak into the State, since they won't be affected by later passes.

Two caveats (marked as FIXMEs in the source):

- Retypes checking in the occam parser is disabled, since the plan is to move
  it out to a pass anyway.
- There's some (now very obvious) duplication, particularly in the backend, of
  bits of code that construct expressions for the total size of an array
  (either in bytes or elements); this should be moved to a couple of helper
  functions that everything can use.
2008-03-18 16:45:38 +00:00
backends Change A.Dimension to take an Expression, not an Int. 2008-03-18 16:45:38 +00:00
checks Change A.Dimension to take an Expression, not an Int. 2008-03-18 16:45:38 +00:00
common Change A.Dimension to take an Expression, not an Int. 2008-03-18 16:45:38 +00:00
data Change A.Dimension to take an Expression, not an Int. 2008-03-18 16:45:38 +00:00
docextra Clean up the documentation hack a bit. 2008-02-28 14:43:53 +00:00
flow Wrap QuickCheck tests into HUnit tests. 2008-03-12 19:38:02 +00:00
frontends Change A.Dimension to take an Expression, not an Int. 2008-03-18 16:45:38 +00:00
pass Make agg_typesDone include constantsFolded. 2008-03-17 15:47:57 +00:00
support Do away with the killval hack. 2008-03-12 16:43:15 +00:00
testcases Implement short-form PLACE, and fix PLACE IN WORKSPACE/VECSPACE. 2008-03-17 18:47:54 +00:00
transformations Change A.Dimension to take an Expression, not an Int. 2008-03-18 16:45:38 +00:00
AUTHORS Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
cgtests.mk Changed the cgtests to no longer use a custom garbage collector 2008-03-10 17:23:37 +00:00
ChangeLog Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
compile-cgtests Added rules for getting and making the cgtests to the new Automake make system 2007-10-09 00:44:41 +00:00
configure.ac Added a check for C++CSP2 using pkg-config 2008-03-17 17:36:48 +00:00
COPYING Add licensing information. 2007-08-18 20:42:11 +00:00
COPYING.LIB Add licensing information. 2007-08-18 20:42:11 +00:00
GenOrdAST.hs Added a case for the top-level AST to OrdAST 2008-02-05 22:36:12 +00:00
GenTagAST.hs Changed two uses of gmapQ (const undefined) to the similar glength function in the SYB library 2008-02-24 12:32:25 +00:00
LANGUAGE Implement short-form PLACE, and fix PLACE IN WORKSPACE/VECSPACE. 2008-03-17 18:47:54 +00:00
Main.hs Fixed some unused module import warnings, now that PassM is not build of monad transformers 2008-03-10 17:19:45 +00:00
Makefile.am Removed the cgtests stuff from Makefile.am (now that it is in cgtests.mk) 2008-03-17 17:34:14 +00:00
NEWS Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
README Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
SYNTAX Give tock its own repo -- i.e. remove everything else and move tock up 2007-07-16 21:48:55 +00:00
TestMain.hs Add a pass for folding constants in occam. 2008-03-17 15:48:43 +00:00
TODO Give tock its own repo -- i.e. remove everything else and move tock up 2007-07-16 21:48:55 +00:00