summary refs log tree commit diff stats
path: root/compiler/evals.nim
Commit message (Collapse)AuthorAgeFilesLines
* equality and hashing for closuresAraq2012-07-171-3/+2
|
* 'addSon' for types deprecated for 'int literal type' analysisAraq2012-07-091-1/+1
|
* made tests green againAraq2012-07-091-2/+2
|
* added devel/logging; weakrefs test; next steps for proper unsigned supportAraq2012-07-051-1/+1
|
* another bugfixAraq2012-06-211-1/+1
|
* Merge branch 'master' of github.com:Araq/NimrodAraq2012-06-191-0/+2
|\
| * better support for unsigned integers.Zahary Karadjov2012-06-111-0/+2
| |
* | somewhat working closuresAraq2012-06-191-1/+2
|/
* Merge branch 'master' of github.com:Araq/Nimrod into upstreamZahary Karadjov2012-06-021-1/+1
|\
| * added system.||; lacks runtime supportAraq2012-05-231-1/+1
| |
* | Added system.staticExec proc for executing external command at compile-timeZahary Karadjov2012-06-021-1/+43
|/
* fixes #109Araq2012-05-201-4/+5
|
* the foundations of a type traits module; better error messages for expr, ↵Zahary Karadjov2012-04-061-1/+19
| | | | typedesc and typeclasses params
* genSym support for hygienic macros and templates.Zahary Karadjov2012-03-261-5/+10
| | | | | | | | | example: template hygienic(val: expr) = var `*x` = val echo `*x` *x was chosen as mnemonic for "opposite of public" and thus private
* first steps for cleaner static/const distinctionAraq2012-03-131-31/+49
|
* attempt to make tests green againAraq2012-03-111-17/+28
|
* `do' keyword in the grammar for lambda blocksZahary Karadjov2012-02-101-1/+1
|
* version 0.8.14Araq2012-02-091-1/+1
|
* further steps for closure support; added 'system.rawProc', 'system.rawEnv'Araq2012-02-081-11/+43
|
* pragma blocks; fixed line information issue with user defined assertionsAraq2012-01-171-0/+2
|
* test t99bott.nim works nowAraq2012-01-061-20/+18
|
* year 2012 for most copyright headersAraq2012-01-021-1/+1
|
* alias analysis as required for the code gen and the HLOAraq2011-12-081-8/+1
|
* 'assert' is now implemented without compiler magicAraq2011-12-041-1/+2
|
* implemented 'let' statementAraq2011-11-291-2/+2
|
* proper error message when attempting to eval C'imported procsAraq2011-11-201-60/+51
|
* bugfix: 'when' sections in generic objects now work, so TThread[void] compilesAraq2011-11-201-2/+2
|
* bugfixes: objects still invalid for constants; fixed a typo concerning ↵Araq2011-11-151-1/+1
| | | | 'high' in eval context
* new kind of AST printer that prints indented treesZahary Karadjov2011-11-041-3/+0
| | | | | AST-to-string conversion procs renamed to repr, treeRepr and lispRepr for better consistency new dumpTree and dumpLisp procs for quick AST inspection of arbitrary nimrod blocks
* lazy loading of body ast implementedAraq2011-10-301-6/+8
|
* eval context for macros lives as long as the current module is compiledAraq2011-10-281-15/+36
|
* 'bind' as a declarative statementAraq2011-10-101-1/+1
|
* slurp uses path; unidecode is improved and threadsafeAraq2011-10-081-19/+19
|
* Cleaned up the circular dependecies and remaining issuesZahary Karadjov2011-10-071-16/+64
| | | | Changed: The []= operator for strings and sequences is now capable of splicing
* Basic unit testing facilities (suites, fixtures, cases)Zahary Karadjov2011-10-071-3/+8
| | | | | | | | Added: PNimrodNode.lineinfo for better error messages from macros Added: seq.splice For easier use from templates and macros, except stament now supports the list of exception types to be supplied in nkBraket node (array literal).
* getAst works correctly with existing AST values as template/macro argumentsZahary Karadjov2011-10-071-2/+51
|
* code generator supports constant sequences; more consistent compile time ↵Araq2011-10-071-9/+7
| | | | evaluation
* bugfix: internal error in evalFieldAccess; parseutils.interpolatedFragments ↵Araq2011-09-261-12/+16
| | | | optimized; tstringinterp.nim now works
* Moved the parseAST magics to evals.nimZahary Karadjov2011-09-201-1/+28
| | | | | | | | | | | | | | Added string interpolation helper routines in parserutils Added a proof-of-concept string interpolation user-land macros (currently, only as a test case): the interpolated expression could either be transformed to concat("literal string ", $(interpolated), " end") or "literal string $1 end" % [$(interpolated)] Added a very initial definition of Optional[T] generic type A new overload of ParseIdent was added in hope to get around the fact that the old one doesn't work correctly in macros, but the problem persists.
* Initial implementation of the parseExpr, parseStmt, getAst macro routines:Zahary Karadjov2011-09-201-1/+8
| | | | | | | | | | | | | | | | | | proc parseExpr*(s: string) : expr {.magic: "ParseExprToAst".} ## Compiles the passed string to its AST representation ## Expects a single expression proc parseStmt*(s: string) : stmt {.magic: "ParseStmtToAst".} ## Compiles the passed string to its AST representation ## Expects one or more statements proc getAst*(macroOrTemplate: expr): expr {.magic: "ExpandMacroToAst".} ## Obtains the AST nodes returned from a macro or template invocation ## example: ## macro FooMacro() = ## var ast = getAst(BarTemplate()) Handling of the node.toYaml magic moved to the evaluation engine.
* small bugfix for evalAraq2011-08-191-1/+1
|
* finally got rid of nkPassAsOpenArrayAraq2011-08-161-1/+0
|
* preparation for new 'is' operator; breaks bootstrapping again, sorry (use ↵Araq2011-07-311-3/+3
| | | | generated C code)
* bugfixes; step one for 'var T' as return type supportAraq2011-07-281-2/+3
|
* implemented write access to s[i] for macrosAraq2011-06-211-19/+34
|
* newStringOfCap implemented and used to optimize some procsAraq2011-05-081-1/+7
|
* const table supportAraq2011-04-291-14/+19
|
* got rid of some arcane module namesAraq2011-04-211-1/+1
|
* big repo cleanupAraq2011-04-121-0/+1110