aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2010-12-29Literal lists (i.e. list quoting).David Robillard9-80/+231
Compile type expressions. Only compile a top-level function if program has code to run (i.e. isn't just definitions). Cast tuples to Object when necessary to avoid LLVM IR type mismatches (for cons stores and return values). Fix memory leaks. git-svn-id: http://svn.drobilla.net/resp/resp@369 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-28Avoid string copy (store const char* for command line filenames instead of ↵David Robillard1-8/+9
std::string). git-svn-id: http://svn.drobilla.net/resp/resp@368 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-28Fix crash when def name is not a symbol.David Robillard1-3/+3
git-svn-id: http://svn.drobilla.net/resp/resp@367 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-28Use fst ("first") instead of head and rst ("rest") instead of tail.David Robillard10-46/+38
git-svn-id: http://svn.drobilla.net/resp/resp@366 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-28Add quote form, to allow expressions literal symbols and lists (lists not ↵David Robillard7-4/+52
yet implemented). Quoting is a thin lexical concept - a quote of a symbol/list compiles to a symbol/list, rather than interpreted as code (i.e. a variable/call, respectively). A quote of anything else is equivalent to its quotee, e.g. a quote of a String is simply that string (the quote is removed at an early stage by the compiler). There is no Quote data type, or explicit unquoting, or anything like that. git-svn-id: http://svn.drobilla.net/resp/resp@365 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-28Print type annotations for top-level expressions when -a is given.David Robillard1-9/+14
git-svn-id: http://svn.drobilla.net/resp/resp@364 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-28Tidy.David Robillard1-15/+15
git-svn-id: http://svn.drobilla.net/resp/resp@363 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-27Remove weird __tag_is form by adding a T_LITSYM type and using = operator.David Robillard9-45/+30
Step towards having first class symbols... git-svn-id: http://svn.drobilla.net/resp/resp@362 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-27Less code.David Robillard1-38/+18
git-svn-id: http://svn.drobilla.net/resp/resp@361 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-27Make ATuple a normal LISPey cons cell (it always was anyway).David Robillard5-40/+26
git-svn-id: http://svn.drobilla.net/resp/resp@360 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-27Kill AType.David Robillard14-429/+394
git-svn-id: http://svn.drobilla.net/resp/resp@359 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Remove AType::DOTS.David Robillard3-7/+13
git-svn-id: http://svn.drobilla.net/resp/resp@358 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Remove AType::PRIM.David Robillard5-15/+12
git-svn-id: http://svn.drobilla.net/resp/resp@357 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Remove apparently unnecessary concrete_type.David Robillard1-18/+2
git-svn-id: http://svn.drobilla.net/resp/resp@356 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26More sensible check for Fn type.David Robillard1-3/+1
git-svn-id: http://svn.drobilla.net/resp/resp@355 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Remove AType copy constructor.David Robillard3-9/+6
git-svn-id: http://svn.drobilla.net/resp/resp@354 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Begin killing AType.David Robillard1-17/+17
git-svn-id: http://svn.drobilla.net/resp/resp@353 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Update headers.David Robillard15-19/+19
git-svn-id: http://svn.drobilla.net/resp/resp@352 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-26Indent let decently.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/resp/resp@351 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-25Add let-over-lambda test case.David Robillard2-11/+28
git-svn-id: http://svn.drobilla.net/resp/resp@350 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-25Use type of primitive rather than type of first argument to determine type ↵David Robillard1-2/+2
of operation. git-svn-id: http://svn.drobilla.net/resp/resp@349 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-25Simplify let to fn, rather than deal with it through to compilation.David Robillard5-68/+66
The previous implementation of let was a premature optimization intended to make let cheap/free, but screws up closure creation and variable indexing because a new scope is created by something other than fn. Only compile top level expressions to globals (with associated store/retrieve overhead) in a REPL when it is necessary. Add `do' form (ala scheme `begin') to backend (used by `match' simplify). git-svn-id: http://svn.drobilla.net/resp/resp@348 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-25Print missing trailing `)'.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/resp@347 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-10Simplify if into nested 2-branch (scheme style) ifs at simplify stage.David Robillard5-95/+79
git-svn-id: http://svn.drobilla.net/resp/resp@346 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-10Fix type of lifted calls.David Robillard1-5/+3
git-svn-id: http://svn.drobilla.net/resp/resp@345 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-10Move simplification from lift stage to a new (post-typing) simplify stage.David Robillard6-46/+115
git-svn-id: http://svn.drobilla.net/resp/resp@344 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-10Partially update cps.cpp (still doesn't compile).David Robillard1-35/+23
git-svn-id: http://svn.drobilla.net/resp/resp@343 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-10Convert match form to if at lift stage (remove knowledge of match from ↵David Robillard4-42/+89
compile stage and backends). git-svn-id: http://svn.drobilla.net/resp/resp@342 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Sort code.David Robillard1-11/+11
git-svn-id: http://svn.drobilla.net/resp/resp@341 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Add option -a to annotate printed code (for -T and -L).David Robillard2-16/+20
git-svn-id: http://svn.drobilla.net/resp/resp@340 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Remove trailing whitespace.David Robillard1-8/+8
git-svn-id: http://svn.drobilla.net/resp/resp@339 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09More readable names for lifted fn implementations.David Robillard1-2/+4
git-svn-id: http://svn.drobilla.net/resp/resp@338 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Revert accidental change.David Robillard1-2/+0
git-svn-id: http://svn.drobilla.net/resp/resp@337 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Strip trailing whitespace.David Robillard6-35/+35
git-svn-id: http://svn.drobilla.net/resp/resp@336 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Document the free variable implementation (mostly in lift_symbol) better.David Robillard3-12/+22
git-svn-id: http://svn.drobilla.net/resp/resp@335 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Print newlines after def symbol if type annotation is printed.David Robillard1-2/+5
git-svn-id: http://svn.drobilla.net/resp/resp@334 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Print def form more tersely (no newline after symbol).David Robillard1-5/+4
git-svn-id: http://svn.drobilla.net/resp/resp@333 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Remove wildly outdated and false intro.resp.David Robillard1-148/+0
git-svn-id: http://svn.drobilla.net/resp/resp@332 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Decent pretty printing for all forms.David Robillard1-60/+71
git-svn-id: http://svn.drobilla.net/resp/resp@331 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Less code.David Robillard1-23/+11
git-svn-id: http://svn.drobilla.net/resp/resp@330 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Fix cpplint warnings.David Robillard12-17/+50
git-svn-id: http://svn.drobilla.net/resp/resp@329 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Add let form.David Robillard7-3/+129
git-svn-id: http://svn.drobilla.net/resp/resp@328 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Fix indentation.David Robillard1-4/+2
git-svn-id: http://svn.drobilla.net/resp/resp@327 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Sort code.David Robillard3-231/+233
git-svn-id: http://svn.drobilla.net/resp/resp@326 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09read_expression => PEnv::parse.David Robillard4-16/+10
git-svn-id: http://svn.drobilla.net/resp/resp@325 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Make environment always referenced by symbols.David Robillard9-77/+87
Intern symbol strings, but not ASymbol objects themselves, so each symbol can have a different Cursor. Fixes missing locations in error reporting. git-svn-id: http://svn.drobilla.net/resp/resp@324 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Const-correct parser.David Robillard4-14/+13
git-svn-id: http://svn.drobilla.net/resp/resp@323 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09ValVec => CVals.David Robillard1-3/+3
git-svn-id: http://svn.drobilla.net/resp/resp@322 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Consistent engine global[Set|Get] interface.David Robillard4-10/+10
git-svn-id: http://svn.drobilla.net/resp/resp@321 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Clean up engine code.David Robillard5-266/+311
git-svn-id: http://svn.drobilla.net/resp/resp@320 ad02d1e2-f140-0410-9f75-f8b11f17cedd