aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2010-12-02Remove use of ACall subclasses for contrain phase.David Robillard5-127/+154
git-svn-id: http://svn.drobilla.net/resp/resp@279 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Work towards removing different classes for each type of expression.David Robillard8-239/+257
git-svn-id: http://svn.drobilla.net/resp/resp@278 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Represent code as list structure (i.e. traditional LISP lists built from ↵David Robillard14-450/+482
pairs), rather than tuple structure. Remove unused/crufty depoly stage. Remove cps from AST interface (but keep cps.cpp code around for later). Improved command line interface for compilation stages (options -T -L -S). git-svn-id: http://svn.drobilla.net/resp/resp@277 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Strip system stuff from test coverage.David Robillard1-1/+2
git-svn-id: http://svn.drobilla.net/resp/resp@276 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Add -T option to type-check and pretty-print with type annotations.David Robillard4-182/+184
Rename -p to -P (all 'stage' options, i.e. -P -T -S are uppercase for consistency). Clean up main program. Decent pretty printing. git-svn-id: http://svn.drobilla.net/resp/resp@275 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Update vim support files.David Robillard3-170/+170
git-svn-id: http://svn.drobilla.net/resp/resp@274 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Add basic emacs resp-mode (modified from scheme.el).David Robillard1-0/+391
git-svn-id: http://svn.drobilla.net/resp/resp@273 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-11-17Use single uint32_t for GC object header (mark and tag).David Robillard3-11/+14
git-svn-id: http://svn.drobilla.net/resp/resp@272 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-10-14Prefix internal "me" parameter with underscore.David Robillard2-5/+5
git-svn-id: http://svn.drobilla.net/resp/resp@271 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-09-30Preliminary work on algebraic data types and run-time typing.David Robillard12-53/+267
git-svn-id: http://svn.drobilla.net/resp/resp@270 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-09-15Better pretty printer.David Robillard1-20/+87
git-svn-id: http://svn.drobilla.net/resp/resp@269 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-22Simplify Engine function compilation interface.David Robillard5-80/+59
Removes duplicated code in various backends and reduces Engine code knowledge of AFn specifics (which belongs in compile.cpp). git-svn-id: http://svn.drobilla.net/resp/resp@268 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-22Simplify Engine::startFunction.David Robillard5-29/+19
git-svn-id: http://svn.drobilla.net/resp/resp@267 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-22Fix boolean compilation.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/resp@266 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-20Make AST::compile const and make Module compilation API take const AST*.David Robillard5-74/+74
git-svn-id: http://svn.drobilla.net/resp/resp@265 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Generalise `cons': a call to any symbol beginning with an uppercase characterDavid Robillard6-19/+34
(i.e. a type symbol), e.g. (Thing 2), is a call to a type constructor which creates a Tup containing the arguments, with the symbol as the first element in the type expression, e.g. (Thing 2) has type (Thing Int) and compiles to a tuple containing a single Int. The type constructor `Tup' can be used as a `cons' replacement to construct generic tuples. git-svn-id: http://svn.drobilla.net/resp/resp@264 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Move PEnv::parse implementation to parse.cpp and remove PEnv::parseTuple.David Robillard2-40/+47
git-svn-id: http://svn.drobilla.net/resp/resp@263 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Add quote to syntax (currently only a lexeme is quotable, no lists...)David Robillard9-8/+67
git-svn-id: http://svn.drobilla.net/resp/resp@262 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Coherent AString and Lexeme implementation.David Robillard11-36/+128
A Lexeme is any "token" read from input, a lexeme has not yet beeen parsed and could parse to anything, e.g. a string, an expression, a number, etc. Lexemes are not (yet?) exposed to the language or ever compiled. A String is a string literal, which can contain any character directly except " and \. There are two special escapes: \" and \\, any other character following a \ is a syntax error. Fix garbage collection of REPL objects, leading to type errors from type variable re-use because a type variable for a given AST's /address/ exists, but that address has actually been deleted and reused by new (i.e. make top level REPL expressions and types be GC roots). git-svn-id: http://svn.drobilla.net/resp/resp@261 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-18Give `def' statements type `Nothing.David Robillard1-0/+1
Causes REPL to succeed silently instead of printing an error. git-svn-id: http://svn.drobilla.net/resp/resp@260 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-18Update for LLVM 2.7.David Robillard3-21/+15
Factor out mostly duplicated code in Env::topLevel and Env::innerMost. git-svn-id: http://svn.drobilla.net/resp/resp@259 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-13Better (but still not correct...) computation of lifted function ↵David Robillard8-32/+44
implementation type. git-svn-id: http://svn.drobilla.net/resp/resp@258 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-13Add missing file.David Robillard1-0/+110
git-svn-id: http://svn.drobilla.net/resp/resp@257 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-13Better error reporting when unification fails (report both locations, and ↵David Robillard6-36/+72
preserve locations during substitution). git-svn-id: http://svn.drobilla.net/resp/resp@256 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-13Slightly less terrible "pretty" printing.David Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/resp/resp@255 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-13Restructure as a source translation based compiler.David Robillard16-304/+568
Implement support for closures (via lambda lifting phase). git-svn-id: http://svn.drobilla.net/resp/resp@254 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-08Exception specifiers.David Robillard5-74/+71
More efficient constraints construction (c') in unify(). git-svn-id: http://svn.drobilla.net/resp/resp@253 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-04-08Tuplr -> Resp (RESource Processing).David Robillard26-142/+142
git-svn-id: http://svn.drobilla.net/resp/resp@252 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-12-13Update for LLVM 2.6.David Robillard4-69/+83
git-svn-id: http://svn.drobilla.net/resp/tuplr@248 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-11-11Constiness.David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/resp/tuplr@247 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-11-11Fix docs.David Robillard1-13/+14
git-svn-id: http://svn.drobilla.net/resp/tuplr@246 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-17Print ellipses correctly.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@245 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-17Fix ellipses unification logic.David Robillard1-3/+2
git-svn-id: http://svn.drobilla.net/resp/tuplr@244 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Fix memory leaks.David Robillard3-15/+26
git-svn-id: http://svn.drobilla.net/resp/tuplr@243 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Fix globals.David Robillard3-18/+9
Don't add always empty top level environment frames (screws up Env::topLevel). git-svn-id: http://svn.drobilla.net/resp/tuplr@242 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Make start of llvm compile line look like the others.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@241 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Environment pretty/debug printing.David Robillard1-0/+13
git-svn-id: http://svn.drobilla.net/resp/tuplr@240 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Compile top level definitions to globalas.David Robillard5-9/+62
git-svn-id: http://svn.drobilla.net/resp/tuplr@239 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Make ellipses a new kind (AType::DOTS).David Robillard5-17/+23
git-svn-id: http://svn.drobilla.net/resp/tuplr@238 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Fix ellipses unification.David Robillard1-1/+2
git-svn-id: http://svn.drobilla.net/resp/tuplr@237 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16. operator for destructuring Tuples (cons).David Robillard10-9/+81
git-svn-id: http://svn.drobilla.net/resp/tuplr@236 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Cons.David Robillard9-30/+124
git-svn-id: http://svn.drobilla.net/resp/tuplr@235 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Fix crash caused by making symbols in type expressions types themselves.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@234 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Virtual destructor for Env.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@233 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Type and const correct Subst::apply.David Robillard3-19/+20
git-svn-id: http://svn.drobilla.net/resp/tuplr@232 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Tidy.David Robillard1-19/+20
git-svn-id: http://svn.drobilla.net/resp/tuplr@231 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Remove some use of ATuple::size().David Robillard4-14/+11
git-svn-id: http://svn.drobilla.net/resp/tuplr@230 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Remove all use of ATuple::at().David Robillard11-153/+211
git-svn-id: http://svn.drobilla.net/resp/tuplr@229 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Replace more use of at(0) with head().David Robillard9-26/+27
git-svn-id: http://svn.drobilla.net/resp/tuplr@228 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Replace use of ATuple::at(0) with ATuple::head().David Robillard3-12/+12
git-svn-id: http://svn.drobilla.net/resp/tuplr@227 ad02d1e2-f140-0410-9f75-f8b11f17cedd