matthijs/master-project/cλash.git
15 years agoTFVec builtin should now completely work
Christiaan Baaij [Mon, 3 Aug 2009 07:51:55 +0000 (09:51 +0200)]
TFVec builtin should now completely work

15 years agoClean up imports in Generate.hs
Christiaan Baaij [Sun, 2 Aug 2009 19:17:21 +0000 (21:17 +0200)]
Clean up imports in Generate.hs

15 years agoUse createDirectoryIfMissing to create the vhdl directory, as it can create the paren...
Christiaan Baaij [Sun, 2 Aug 2009 19:07:46 +0000 (21:07 +0200)]
Use createDirectoryIfMissing to create the vhdl directory, as it can create the parent directories too

15 years agoReflect API changes of clash in clash-nolibdir
Christiaan Baaij [Sun, 2 Aug 2009 18:51:29 +0000 (20:51 +0200)]
Reflect API changes of clash in clash-nolibdir

15 years agoBring back listBind(ings) in Utils.hs by reorganising Translator.hs and GhcTools.hs
Christiaan Baaij [Sat, 1 Aug 2009 18:41:19 +0000 (20:41 +0200)]
Bring back listBind(ings) in Utils.hs by reorganising Translator.hs and GhcTools.hs

15 years agoFix a few comments so Haddock will complete
Christiaan Baaij [Fri, 31 Jul 2009 19:01:02 +0000 (21:01 +0200)]
Fix a few comments so Haddock will complete

15 years agoFurther clean up Translator.hs (almost done now)
Christiaan Baaij [Fri, 31 Jul 2009 18:46:17 +0000 (20:46 +0200)]
Further clean up Translator.hs (almost done now)

15 years agoCleanup Translator.hs
Christiaan Baaij [Fri, 31 Jul 2009 15:17:04 +0000 (17:17 +0200)]
Cleanup Translator.hs

Can be reduced in size even more by parameterizing the findcore functions
to work for both strings and annotations

15 years agoFail again when we find a global function
Christiaan Baaij [Fri, 31 Jul 2009 15:15:54 +0000 (17:15 +0200)]
Fail again when we find a global function

Was only disabled to fix the builtin TFVec function

15 years agoPartially fixed TFVec builtin function. Still needs to be verified
Christiaan Baaij [Fri, 31 Jul 2009 13:21:02 +0000 (15:21 +0200)]
Partially fixed TFVec builtin function. Still needs to be verified

15 years agoMerge branch 'master' of git://github.com/christiaanb/clash into cλash
Matthijs Kooijman [Fri, 31 Jul 2009 09:26:59 +0000 (11:26 +0200)]
Merge branch 'master' of git://github.com/christiaanb/clash into cλash

* 'master' of git://github.com/christiaanb/clash:
  Quick hack implementation of FSVec literals, needs to be fixed
  We need the latest vhdl package
  We now make a show function for all default datatypes.
  Add automated testbench generation according to supplied test input

Conflicts:
cλash/CLasH/Translator.hs

15 years agoQuick hack implementation of FSVec literals, needs to be fixed
Christiaan Baaij [Fri, 31 Jul 2009 07:19:57 +0000 (09:19 +0200)]
Quick hack implementation of FSVec literals, needs to be fixed

15 years agoWe need the latest vhdl package
Christiaan Baaij [Wed, 29 Jul 2009 12:08:54 +0000 (14:08 +0200)]
We need the latest vhdl package

15 years agoWe now make a show function for all default datatypes.
Christiaan Baaij [Wed, 29 Jul 2009 12:01:41 +0000 (14:01 +0200)]
We now make a show function for all default datatypes.

We need to figure out how to show custom datatypes in VHDL, for that
we will need a string representation for each constructor.

15 years agoAdd automated testbench generation according to supplied test input
Christiaan Baaij [Tue, 28 Jul 2009 14:52:18 +0000 (16:52 +0200)]
Add automated testbench generation according to supplied test input

Will not compile in VHDL yet as we need to implement the VHDL show method first

15 years agoShow type of binder in listBinding.
Matthijs Kooijman [Tue, 28 Jul 2009 13:40:41 +0000 (15:40 +0200)]
Show type of binder in listBinding.

15 years agoMake listBind use listBinding.
Matthijs Kooijman [Tue, 28 Jul 2009 13:38:30 +0000 (15:38 +0200)]
Make listBind use listBinding.

15 years agoExtend CoreShow for TyCons.
Matthijs Kooijman [Tue, 28 Jul 2009 13:26:58 +0000 (15:26 +0200)]
Extend CoreShow for TyCons.

This still does not completely show TyCons, since they are quite complex,
but at least distinguishes the various constructors and some useful info.

15 years agoRemove NoGenerics pragma, as the ghc bug 3391 is now fixed
Christiaan Baaij [Thu, 23 Jul 2009 21:18:35 +0000 (23:18 +0200)]
Remove NoGenerics pragma, as the ghc bug 3391 is now fixed

15 years agoAdd a clash wrapper that fills in the libdir from GHC.Paths
Christiaan Baaij [Thu, 23 Jul 2009 19:14:19 +0000 (21:14 +0200)]
Add a clash wrapper that fills in the libdir from GHC.Paths

15 years agoAlso add NoGenerics pragma to the other types.hs files
Christiaan Baaij [Thu, 23 Jul 2009 16:03:54 +0000 (18:03 +0200)]
Also add NoGenerics pragma to the other types.hs files

15 years agoFix core show
Christiaan Baaij [Thu, 23 Jul 2009 15:59:24 +0000 (17:59 +0200)]
Fix core show

15 years agoCurrently Generics support is broken in combination with deriveAccessors
Christiaan Baaij [Thu, 23 Jul 2009 15:22:47 +0000 (17:22 +0200)]
Currently Generics support is broken in combination with deriveAccessors

15 years agoAdd licence to top directory
Christiaan Baaij [Wed, 22 Jul 2009 11:38:20 +0000 (13:38 +0200)]
Add licence to top directory

15 years agoRemoved need for GHC.Paths, some functions however require a top libdir
Christiaan Baaij [Wed, 22 Jul 2009 11:33:44 +0000 (13:33 +0200)]
Removed need for GHC.Paths, some functions however require a top libdir

15 years agoUpdate .cabal file so that a default build is expected to be in the GHC tree
Christiaan Baaij [Wed, 22 Jul 2009 07:37:59 +0000 (09:37 +0200)]
Update .cabal file so that a default build is expected to be in the GHC tree

15 years agoMake sure clash is build using stage2 ghc when build in ghc build tree
Christiaan Baaij [Wed, 22 Jul 2009 07:31:30 +0000 (09:31 +0200)]
Make sure clash is build using stage2 ghc when build in ghc build tree

15 years agoChanged name of cabal file so it will work in the GHC build tree
Christiaan Baaij [Wed, 22 Jul 2009 07:27:03 +0000 (09:27 +0200)]
Changed name of cabal file so it will work in the GHC build tree

15 years agoChanged build-depends to only those libraries required to build clash
Christiaan Baaij [Mon, 20 Jul 2009 12:01:08 +0000 (14:01 +0200)]
Changed build-depends to only those libraries required to build clash

tfvec, tfp and th-lift-ng are however required to translate any haskell
file to VHDL. They will be included in the clash package

15 years agoWe now support Annotations to indicate top-level entity and initial state
Christiaan Baaij [Thu, 16 Jul 2009 13:25:10 +0000 (15:25 +0200)]
We now support Annotations to indicate top-level entity and initial state

15 years agoNo need for Main.hs now that clash is a library
Christiaan Baaij [Wed, 15 Jul 2009 18:14:06 +0000 (20:14 +0200)]
No need for Main.hs now that clash is a library

15 years agoAdepted the modules to their new structure
Christiaan Baaij [Wed, 15 Jul 2009 18:11:44 +0000 (20:11 +0200)]
Adepted the modules to their new structure

15 years agoMoved clash to it's own library directory, and started on library structure
Christiaan Baaij [Wed, 15 Jul 2009 17:29:53 +0000 (19:29 +0200)]
Moved clash to it's own library directory, and started on library structure

15 years agoMoved to new GHC API (6.11). Also use vhdl package for the VHDL AST
Christiaan Baaij [Wed, 15 Jul 2009 15:41:13 +0000 (17:41 +0200)]
Moved to new GHC API (6.11). Also use vhdl package for the VHDL AST

15 years agoRemove the (now unused) is_wild predicate.
Matthijs Kooijman [Tue, 14 Jul 2009 13:36:39 +0000 (15:36 +0200)]
Remove the (now unused) is_wild predicate.

15 years agoDon't create selector cases for unused binders.
Matthijs Kooijman [Tue, 14 Jul 2009 13:31:56 +0000 (15:31 +0200)]
Don't create selector cases for unused binders.

Previously, no selector cases were created for wild binders, using the
hacky is_wild predicate. Now, this checks the free variables of the case
value instead.

15 years agoMerge git://github.com/darchon/clash into cλash
Matthijs Kooijman [Tue, 14 Jul 2009 11:00:13 +0000 (13:00 +0200)]
Merge git://github.com/darchon/clash into cλash

* git://github.com/darchon/clash:
  Added resize function

15 years agoAdded resize function
Christiaan Baaij [Tue, 14 Jul 2009 08:28:03 +0000 (10:28 +0200)]
Added resize function

15 years agoRemove some unused code.
Matthijs Kooijman [Mon, 13 Jul 2009 13:50:23 +0000 (15:50 +0200)]
Remove some unused code.

15 years agoUse noSrcSpan instead of a dummy SrcSpan.
Matthijs Kooijman [Mon, 13 Jul 2009 13:50:07 +0000 (15:50 +0200)]
Use noSrcSpan instead of a dummy SrcSpan.

15 years agoSimplify eitherCoreOrExprArgs.
Matthijs Kooijman [Mon, 13 Jul 2009 13:33:37 +0000 (15:33 +0200)]
Simplify eitherCoreOrExprArgs.

15 years agoPulled 'varToVHDLExpr' into the TypeSession monad
Christiaan Baaij [Mon, 13 Jul 2009 13:25:53 +0000 (15:25 +0200)]
Pulled 'varToVHDLExpr' into the TypeSession monad

15 years agoNo longer any need to explicitly load module interface in 'toCore'
Christiaan Baaij [Mon, 13 Jul 2009 10:04:22 +0000 (12:04 +0200)]
No longer any need to explicitly load module interface in 'toCore'

We have to HscEnv from the original HaskellToCore compilation step
that already includes all the module interfaces we need.

15 years agoMerge branch 'cλash' of http://git.stderr.nl/matthijs/projects/master-project
Christiaan Baaij [Mon, 13 Jul 2009 10:01:00 +0000 (12:01 +0200)]
Merge branch 'cλash' of git.stderr.nl/matthijs/projects/master-project

* 'cλash' of http://git.stderr.nl/matthijs/projects/master-project:
  Generate proper VHDL for top level bindings with no arguments.
  Use is_local_var for limiting appsimpl and letsimpl.
  Add newline at the end of file.
  Add is_local_var predicate.
  Santize comment dashes position.
  Normalize all used global binders.

15 years agoGenerate proper VHDL for top level bindings with no arguments.
Matthijs Kooijman [Mon, 13 Jul 2009 09:57:25 +0000 (11:57 +0200)]
Generate proper VHDL for top level bindings with no arguments.

Previously, a = b bindings would always generate an unconditional
assignment. Now, they use genApplication to generate VHDL, and
genApplications knows how to generate unconditional assignments when b is
a local identifier, and a component instantiation when b is a top level
binder.

15 years agoUse is_local_var for limiting appsimpl and letsimpl.
Matthijs Kooijman [Mon, 13 Jul 2009 09:55:48 +0000 (11:55 +0200)]
Use is_local_var for limiting appsimpl and letsimpl.

Previously, appsimple and letsimpl would refrain from simplifying any Var
expression, since they are already simple. Now, they only refrain from
simplifying local variables, so references to top-level bindings will
still be simplified. This enables proper normalization of top level
bindings without arguments.

15 years agoAdd newline at the end of file.
Matthijs Kooijman [Mon, 13 Jul 2009 09:54:58 +0000 (11:54 +0200)]
Add newline at the end of file.

15 years agoAdd is_local_var predicate.
Matthijs Kooijman [Mon, 13 Jul 2009 09:52:44 +0000 (11:52 +0200)]
Add is_local_var predicate.

15 years agoOnly save normalized tfp integers in the tfp-cache
Christiaan Baaij [Mon, 13 Jul 2009 09:22:43 +0000 (11:22 +0200)]
Only save normalized tfp integers in the tfp-cache

15 years agoUse HscEnv from initial HsToCore transformation when translating tfp to int
Christiaan Baaij [Mon, 13 Jul 2009 09:08:10 +0000 (11:08 +0200)]
Use HscEnv from initial HsToCore transformation when translating tfp to int

15 years agoSantize comment dashes position.
Matthijs Kooijman [Mon, 13 Jul 2009 07:59:58 +0000 (09:59 +0200)]
Santize comment dashes position.

This allows us to comment some lines in and out without having to remember
the exact position of the comment dashes (to prevent unneeded changes in
git).

15 years agoNormalize all used global binders.
Matthijs Kooijman [Mon, 13 Jul 2009 07:43:31 +0000 (09:43 +0200)]
Normalize all used global binders.

Previously, only function-typed binders were normalized (not necessarily
limited to global ones!).

15 years agoGreat speed-up in type generation
Christiaan Baaij [Sat, 11 Jul 2009 20:23:59 +0000 (22:23 +0200)]
Great speed-up in type generation

Now just normalize tfp ints that are used as keys for the type map
Before these were translated to integers.

Save a map caches tfp ints, and their correspding integer literal

15 years agoCorrectly handle negate for unsigned integers
Christiaan Baaij [Thu, 9 Jul 2009 14:22:24 +0000 (16:22 +0200)]
Correctly handle negate for unsigned integers

15 years agoPartly fixed implementation for integer literals.
Christiaan Baaij [Wed, 8 Jul 2009 14:44:01 +0000 (16:44 +0200)]
Partly fixed implementation for integer literals.

But it still needs alot of fixing

15 years agoVERY Ad-hoc support of literals.
Christiaan Baaij [Wed, 8 Jul 2009 13:21:41 +0000 (15:21 +0200)]
VERY Ad-hoc support of literals.

Current implementation will probably fail in a lot of places

15 years agoAdded support for SizedInts and cleaned up some function related to SizedWords
Christiaan Baaij [Wed, 8 Jul 2009 12:20:10 +0000 (14:20 +0200)]
Added support for SizedInts and cleaned up some function related to SizedWords

15 years agoStarted adding numeric operations
Christiaan Baaij [Tue, 7 Jul 2009 12:39:16 +0000 (14:39 +0200)]
Started adding numeric operations

15 years agoCaching converted tfp integers to speedup translation
Christiaan Baaij [Mon, 6 Jul 2009 14:57:41 +0000 (16:57 +0200)]
Caching converted tfp integers to speedup translation

15 years agoUpdated cabal file to reflect change in TFVec, and the need for the filepath library
Christiaan Baaij [Fri, 3 Jul 2009 19:49:06 +0000 (21:49 +0200)]
Updated cabal file to reflect change in TFVec, and the need for the filepath library

15 years agoMerge branch 'cλash' of http://git.stderr.nl/matthijs/projects/master-project
Christiaan Baaij [Fri, 3 Jul 2009 19:42:19 +0000 (21:42 +0200)]
Merge branch 'cλash' of git.stderr.nl/matthijs/projects/master-project

* 'cλash' of http://git.stderr.nl/matthijs/projects/master-project:
  Let inlinefun inline everything non-representable.
  Unify typeprop and funprop into argprop.
  Extract only representable arguments.
  Add predicates for testing representability of types.

15 years agoMade Bit an instance of Lift so it can be used in vectorTH
Christiaan Baaij [Fri, 3 Jul 2009 19:41:04 +0000 (21:41 +0200)]
Made Bit an instance of Lift so it can be used in vectorTH

vectorTH works now, but you will need the latest version of TFVec

15 years agoLet inlinefun inline everything non-representable.
Matthijs Kooijman [Fri, 3 Jul 2009 17:32:10 +0000 (19:32 +0200)]
Let inlinefun inline everything non-representable.

This changes its name to inlinenonrep and makes it inline everything that
is not representable (which helps in particular for dictionary
construction expressions...).

I've not yet changed the conditions in various other transforms, so if
something silly would happen like having a dictionary as the value or
scrutinee of a case of let expression, things might go into an infinite
loop.

Also, since HTypes are generated very often now, things are really
starting to slow down...

15 years agoUnify typeprop and funprop into argprop.
Matthijs Kooijman [Fri, 3 Jul 2009 17:09:32 +0000 (19:09 +0200)]
Unify typeprop and funprop into argprop.

This also generalizes the conditions a bit by propagating anything that is
not representable.

15 years agoExtract only representable arguments.
Matthijs Kooijman [Fri, 3 Jul 2009 16:35:02 +0000 (18:35 +0200)]
Extract only representable arguments.

Previously, anything but types and functions was extracted. This
definition is slightly more general, but it should not matter for the
programs we work with.

15 years agoAdd predicates for testing representability of types.
Matthijs Kooijman [Fri, 3 Jul 2009 16:33:46 +0000 (18:33 +0200)]
Add predicates for testing representability of types.

These predicates try to build a VHDL type from a Core Type, to see if it
will be representable in hardware.

15 years agoLet mkHType also return errors using Either.
Matthijs Kooijman [Fri, 3 Jul 2009 11:40:43 +0000 (13:40 +0200)]
Let mkHType also return errors using Either.

15 years agoMerge git://github.com/darchon/clash into cλash
Matthijs Kooijman [Fri, 3 Jul 2009 11:27:57 +0000 (13:27 +0200)]
Merge git://github.com/darchon/clash into cλash

* git://github.com/darchon/clash:
  Keys for typemap can now deal with vector lengths based on type operators

Conflicts:
Generate.hs
VHDLTools.hs

15 years agoPut a TypeState in TransformState.
Matthijs Kooijman [Fri, 3 Jul 2009 11:16:55 +0000 (13:16 +0200)]
Put a TypeState in TransformState.

This will allow transforms to test if a Type is representable in VHDL.

15 years agoSplit off the type related VHDLState variables.
Matthijs Kooijman [Fri, 3 Jul 2009 11:10:05 +0000 (13:10 +0200)]
Split off the type related VHDLState variables.

These are now put in a substate of VHDLState, named TypeState. This allows
a TypeState to be put into TransformState later on as well.

15 years agoMake vhdl_ty and friends return errors with Either.
Matthijs Kooijman [Fri, 3 Jul 2009 10:28:55 +0000 (12:28 +0200)]
Make vhdl_ty and friends return errors with Either.

Previously, error messages were passed forward. However, this does not
allow a type lookup to gracefully fail, which will be needed for
normalization soon. Now, error messages are returned using an Either
value, so they can be ignored at top level if needed.

15 years agoKeys for typemap can now deal with vector lengths based on type operators
Christiaan Baaij [Fri, 3 Jul 2009 09:48:02 +0000 (11:48 +0200)]
Keys for typemap can now deal with vector lengths based on type operators

Implementation is very slow, evalCoreExpr has to be run every time we
lookup and insert a new vector.

15 years agoStop extracting dataconstructor arguments.
Matthijs Kooijman [Fri, 3 Jul 2009 09:33:03 +0000 (11:33 +0200)]
Stop extracting dataconstructor arguments.

Previously, dataconstructor arguments that had no arguments themselves
(eg. False, or High), would be extracted from an argument list, even
though they were just simple variable references. Since such a datacon can
be translated to a VHDL literal and VHDL supports mapping expressions (at
least constant expressions) to a port, there is no need for extraction
anymore.

15 years agoMerge git://github.com/darchon/clash into cλash
Matthijs Kooijman [Thu, 2 Jul 2009 14:47:18 +0000 (16:47 +0200)]
Merge git://github.com/darchon/clash into cλash

* git://github.com/darchon/clash:
  We now output VHDL types in the correct order
  Removed the need for a special vector-type map.
  Added builtin functions: concat, reverse, iterate, iteraten, generate and generaten

15 years agoWe now output VHDL types in the correct order
Christiaan Baaij [Thu, 2 Jul 2009 14:44:58 +0000 (16:44 +0200)]
We now output VHDL types in the correct order

15 years agoRemoved the need for a special vector-type map.
Christiaan Baaij [Thu, 2 Jul 2009 13:19:07 +0000 (15:19 +0200)]
Removed the need for a special vector-type map.

Vector types are stripped of their length and then used as key.
Note that is of course an invalid haskell type, and is only meant
for internal use.

15 years agoAdd TODO regarding removal of is_wild.
Matthijs Kooijman [Wed, 1 Jul 2009 15:00:49 +0000 (17:00 +0200)]
Add TODO regarding removal of is_wild.

15 years agoAdded builtin functions: concat, reverse, iterate, iteraten, generate and generaten
Christiaan Baaij [Wed, 1 Jul 2009 14:14:19 +0000 (16:14 +0200)]
Added builtin functions: concat, reverse, iterate, iteraten, generate and generaten

15 years agoAdded builtin functions shiftl, shiftr, null, rotl, rotr
Christiaan Baaij [Tue, 30 Jun 2009 15:01:48 +0000 (17:01 +0200)]
Added builtin functions shiftl, shiftr, null, rotl, rotr

15 years agoUpdated all error messages to include modulename and function name
Christiaan Baaij [Tue, 30 Jun 2009 11:28:41 +0000 (13:28 +0200)]
Updated all error messages to include modulename and function name

15 years agoAdded support for copyn and copy
Christiaan Baaij [Mon, 29 Jun 2009 15:17:50 +0000 (17:17 +0200)]
Added support for copyn and copy

15 years agoMerge branch 'cλash' of http://git.stderr.nl/matthijs/projects/master-project
Christiaan Baaij [Mon, 29 Jun 2009 13:06:34 +0000 (15:06 +0200)]
Merge branch 'cλash' of git.stderr.nl/matthijs/projects/master-project

* 'cλash' of http://git.stderr.nl/matthijs/projects/master-project:
  Make genMap support mapping applications.
  Allow arguments to builtins to be applications.

15 years agoAdded "lengthT"
Christiaan Baaij [Mon, 29 Jun 2009 13:06:21 +0000 (15:06 +0200)]
Added "lengthT"

15 years agoMerge git://github.com/darchon/clash into cλash
Matthijs Kooijman [Mon, 29 Jun 2009 12:49:25 +0000 (14:49 +0200)]
Merge git://github.com/darchon/clash into cλash

* git://github.com/darchon/clash:
  Added unzip
  Added "zip" function
  Added <+ and ++ operations
  Added support for instances of tfp integer, but poorly...
  Added select builtin
  Parameterized fold, so that it can be used for foldl and foldr

15 years agoMake genMap support mapping applications.
Matthijs Kooijman [Mon, 29 Jun 2009 12:47:56 +0000 (14:47 +0200)]
Make genMap support mapping applications.

This is a companion commit to the previous one, to handle the changes in
normal form introduced there. This only works for map so far, the other
higher order functions will be changed later.

15 years agoAllow arguments to builtins to be applications.
Matthijs Kooijman [Mon, 29 Jun 2009 12:45:56 +0000 (14:45 +0200)]
Allow arguments to builtins to be applications.

This allows things like "map (hwand Low) as" or even "map (hwand x) as" in
normal form. Previously, the "hwand Low" part would be put into its own
function, but that could only work when mapping expression without free
variables.

15 years agoAdded unzip
Christiaan Baaij [Mon, 29 Jun 2009 09:02:31 +0000 (11:02 +0200)]
Added unzip

Added typenames to typlerecordname to make unique id's

15 years agoAdded "zip" function
Christiaan Baaij [Mon, 29 Jun 2009 08:11:48 +0000 (10:11 +0200)]
Added "zip" function

15 years agoAdded <+ and ++ operations
Christiaan Baaij [Sat, 27 Jun 2009 08:05:01 +0000 (10:05 +0200)]
Added <+ and ++ operations

15 years agoAdded support for instances of tfp integer, but poorly...
Christiaan Baaij [Fri, 26 Jun 2009 12:28:34 +0000 (14:28 +0200)]
Added support for instances of tfp integer, but poorly...
They are always used as 'structural' parameters for functions
and as such should not be turned in to ports when these
arguments are applied.

15 years agoMerge branch 'cλash' of http://git.stderr.nl/matthijs/projects/master-project
Christiaan Baaij [Fri, 26 Jun 2009 11:09:19 +0000 (13:09 +0200)]
Merge branch 'cλash' of git.stderr.nl/matthijs/projects/master-project

* 'cλash' of http://git.stderr.nl/matthijs/projects/master-project:
  Let exprToVar give a useful error message.
  Use tcSplitSigmaTy for getting at value arguments.
  Add is_simple predicate for applications and vars.
  Add function-typed argument extraction transform.
  Add has_free_vars predicate.
  Remove TODO that was already solved.

15 years agoAdded select builtin
Christiaan Baaij [Fri, 26 Jun 2009 11:08:55 +0000 (13:08 +0200)]
Added select builtin

15 years agoLet exprToVar give a useful error message.
Matthijs Kooijman [Fri, 26 Jun 2009 10:37:50 +0000 (12:37 +0200)]
Let exprToVar give a useful error message.

15 years agoUse tcSplitSigmaTy for getting at value arguments.
Matthijs Kooijman [Fri, 26 Jun 2009 10:36:39 +0000 (12:36 +0200)]
Use tcSplitSigmaTy for getting at value arguments.

Previously, some handcoded filters with isValArg and isDictId were used,
which were not so robust.

15 years agoAdd is_simple predicate for applications and vars.
Matthijs Kooijman [Fri, 26 Jun 2009 10:24:04 +0000 (12:24 +0200)]
Add is_simple predicate for applications and vars.

15 years agoParameterized fold, so that it can be used for foldl and foldr
Christiaan Baaij [Fri, 26 Jun 2009 10:06:32 +0000 (12:06 +0200)]
Parameterized fold, so that it can be used for foldl and foldr

15 years agoAdd function-typed argument extraction transform.
Matthijs Kooijman [Fri, 26 Jun 2009 10:00:37 +0000 (12:00 +0200)]
Add function-typed argument extraction transform.

This transform creates new functions for any function-typed argument to a
builtin function.

15 years agoAdd has_free_vars predicate.
Matthijs Kooijman [Fri, 26 Jun 2009 09:59:59 +0000 (11:59 +0200)]
Add has_free_vars predicate.

15 years agoRemove TODO that was already solved.
Matthijs Kooijman [Fri, 26 Jun 2009 08:55:46 +0000 (10:55 +0200)]
Remove TODO that was already solved.

15 years agoMerge git://github.com/darchon/clash into cλash
Matthijs Kooijman [Thu, 25 Jun 2009 14:58:57 +0000 (16:58 +0200)]
Merge git://github.com/darchon/clash into cλash

Disabled foldr generation again, it should either be updated to the
shorter form from my last commits, but preferably foldl should be
abstracted to handle both.

* git://github.com/darchon/clash:
  Added builtin function foldr
  Foldl correctly handles empty vectors

Conflicts:
Generate.hs
GlobalNameTable.hs