tock-mirror/common
Neil Brown e457d82f0c Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies)
This may seem like an odd change, but it simplifies the logic a lot.  I kept having problems with passes not operating on externals (e.g. functions-to-procs, adding array sizes, constant folding in array dimensions) and adding a special case every time to also process the externals was getting silly.

Putting the externals in the AST therefore made sense, but I didn't want to just add dummy bodies as this would cause them to throw up errors (e.g. in the type-checking for functions).  So I turned the bodies into a Maybe type, and that has worked out well.

I also stopped storing the formals in csExternals (since they are now in csNames, and the tree), which streamlined that nicely, and stopped me having to keep them up to date.
2009-04-04 14:56:35 +00:00
..
CommonTest.hs Go back to passing the value to the type-contains function. 2008-04-02 16:11:13 +00:00
Errors.hs Added a set of enabled warnings to CompState 2008-11-20 13:17:05 +00:00
EvalConstants.hs Fixed the reading of floating point literals to work for negative numbers 2009-04-03 17:53:10 +00:00
EvalLiterals.hs Fixed the reading of floating point literals to work for negative numbers 2009-04-03 17:53:10 +00:00
GenericUtils.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
Intrinsics.hs Added the intrinsic CAUSEERROR 2009-04-03 15:14:24 +00:00
OccamEDSL.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
Pattern.hs Added the -fwarn-missing-signatures option and added all missing type signatures for non-test modules (and most for test modules too) 2008-02-05 23:06:03 +00:00
PrettyShow.hs Corrected a small warning in PrettyShow 2009-04-04 12:49:01 +00:00
ShowCode.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
TestFramework.hs Moved all the testPass* functions into the TestMonad, using unsafePerformIO for running them inside QuickCheck 2008-03-05 16:06:14 +00:00
TestHarness.hs Modified the test harness so that it gives a meta tag on failure (in case we want it) 2009-02-10 21:33:53 +00:00
TestUtils.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
TreeUtils.hs Added an augmented version of Adam's gmapMFor that uses the same generics techniques, but also gives a route to the node to the transformation function 2008-11-06 18:32:35 +00:00
Types.hs Fixed constant folding to resolve any user types involved 2009-03-31 16:11:00 +00:00
Utils.hs Updated the comments on the product* functions in the Utils module 2009-02-09 23:10:29 +00:00