packages feed

pec-0.2.0: TODO

todo
- implement binding to c code and c libs
- have pec manage the namespaces, not ghc
- have pec do the type inference, not ghc
- Print, Show, Eq instances
- implement read-eval-print-loop interpreter (REPL)
- make libraries consistently use underscore (or camel case)
- make sure build deps are correct
- allow operators in export lists
- add import list(?)
- implement downward closures(?)
- haddock'ize modules
- write more example code (project euler,language shootout,etc.)
- add state machine optimization(?)
- add warning when _ is used as a name
- add check to ensure that variables are SSA
- add check to prevent recursion (what about function pointers?)
- allow for _ <- foo () (not just b <- foo ())
- improve compiler coverage
- revisit llvm operators do determine correct flags, e.g. nuw, exact
- implement unfold for containers

done
- update docs for release
- release grm
- properly create .ll files (i.e. with declare statements)
- do language design doc
- do compiler architecture doc
- add/reinstate llvm code generation
- implement filter, map, empty, fold, etc. for all containers
- add deps/building to grm
- Deque printing is not working
- error if module name doesn't match filename
- add a way to print ints
- rename files to make more consistent
- implement puts that doesn't tack on a newline
- add -i flag to search other directories
- use & and && instead of &&& and && by changing the name of and and band(?), same for or...
- don't rebuild files that haven't changed (unfortunately the istrings complicate things)
- add c code generation
- make the inline Haskell code (i.e. '>') play nice with comments
- add import "as"
- add qualified names
- make read only pointers
- datatype: string buffer
- datatype: stack
- implement prelude/ other library functions
- generate Counts, etc. in separate files
- get test infrastructure in place
- get coverage infrastructure in place
- make Bool work in case exp (make it constructed like all the rest)
- get arrays working
- add ascription
- fix operator precedence
- add top level type declarations for functions
- make code generation easier to read/debug
- make pretty printer robust
- call external Haskell pretty-printer for generated code
- consider removing module keyword.  Decided to keep it.  That way we can process streams, not just files.
- add the ability to generate arbitrary sized integers and words (e.g. I16, W64) (add boilerplate generation to pec.hs)
- add exports
- get variants working
- get tuples working
- get records working
- added arithmetic ops
- added bitwise ops
- make top level (non-procedure) values work
- add array initializer that takes a count and a value
- implement function pointers
- take all non-essential things out of Base and put them into pec libraries
- make library implementation easier by integrating haskell code into .pec files
- create separate .ll files and cat them together
- add rebuild all flag