Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fixes binding of overloaded procs | Araq | 2012-05-04 | 1 | -11/+19 |
| | |||||
* | completing the "types as first class values" reform | Zahary Karadjov | 2012-04-06 | 1 | -36/+47 |
| | |||||
* | the foundations of a type traits module; better error messages for expr, ↵ | Zahary Karadjov | 2012-04-06 | 1 | -5/+5 |
| | | | | typedesc and typeclasses params | ||||
* | when expressions, proper rendering for nkDo and nkLambda and parser support ↵ | Zahary Karadjov | 2012-04-05 | 1 | -0/+3 |
| | | | | for x.type and x.addr | ||||
* | Added ``global`` pragma that can be used to introduce new global variables ↵ | Zahary Karadjov | 2012-04-05 | 1 | -2/+4 |
| | | | | from within procs | ||||
* | typedesc and expr params | Zahary Karadjov | 2012-03-31 | 1 | -6/+36 |
| | | | | | | | | | | | | types are now valid proc/template/macro params and you can overload over them: proc foo(T: typedesc) # accept any type proc foo(T: typedesc{int}) # overload specifically for int proc foo(T: typedesc{int or float or Callable}) # overload for any type matching the constraints expr{type} is a param expecting compile time value of the designated type (or type class). when typedesc or expr params are used with a proc, the proc will be instantiated once for each unique type/value used as parameter. | ||||
* | genSym support for hygienic macros and templates. | Zahary Karadjov | 2012-03-26 | 1 | -1/+1 |
| | | | | | | | | | example: template hygienic(val: expr) = var `*x` = val echo `*x` *x was chosen as mnemonic for "opposite of public" and thus private | ||||
* | making tests green again | Zahary Karadjov | 2012-03-20 | 1 | -2/+2 |
| | |||||
* | merged branch overloading-for-macros | Zahary Karadjov | 2012-03-19 | 1 | -37/+63 |
|\ | |||||
| * | the test suite is mostly green again | Zahary Karadjov | 2012-03-16 | 1 | -12/+11 |
| | | |||||
| * | fix for template redefinition. test cases added. | Zahary Karadjov | 2012-03-15 | 1 | -1/+0 |
| | | |||||
| * | bootstraps fine with overloadable templates | Zahary Karadjov | 2012-03-14 | 1 | -30/+74 |
| | | |||||
* | | implemented 'static'; macros do not work anymore | Araq | 2012-03-15 | 1 | -1/+9 |
| | | |||||
* | | first steps for cleaner static/const distinction | Araq | 2012-03-13 | 1 | -1/+36 |
|/ | |||||
* | fixes #100 | Araq | 2012-03-10 | 1 | -1/+1 |
| | |||||
* | ERecoverableError exception contains the error message | Araq | 2012-02-25 | 1 | -2/+2 |
| | |||||
* | `do' keyword in the grammar for lambda blocks | Zahary Karadjov | 2012-02-10 | 1 | -1/+1 |
| | |||||
* | further steps for closure support | Araq | 2012-02-08 | 1 | -1/+2 |
| | |||||
* | further steps to closure support | Araq | 2012-02-06 | 1 | -2/+12 |
| | |||||
* | bugfix: tests/reject/tnoinst.nim is now rejected properly | Araq | 2012-01-13 | 1 | -0/+2 |
| | |||||
* | removed '^ deprecated' message | Araq | 2012-01-10 | 1 | -3/+1 |
| | |||||
* | implicit invokation of items/pairs iterators | Araq | 2012-01-08 | 1 | -1/+2 |
| | |||||
* | year 2012 for most copyright headers | Araq | 2012-01-02 | 1 | -1/+1 |
| | |||||
* | codegen uses alias analysis to generate better code | Araq | 2011-12-10 | 1 | -6/+0 |
| | |||||
* | alias analysis as required for the code gen and the HLO | Araq | 2011-12-08 | 1 | -22/+12 |
| | |||||
* | 'assert' is now implemented without compiler magic | Araq | 2011-12-04 | 1 | -0/+6 |
| | |||||
* | implemented 'let' statement | Araq | 2011-11-29 | 1 | -1/+2 |
| | |||||
* | bugfix: 'when' sections in generic objects now work, so TThread[void] compiles | Araq | 2011-11-20 | 1 | -5/+6 |
| | |||||
* | macros and templates can be expanded anywhere where a type is expected. | Zahary Karadjov | 2011-11-18 | 1 | -22/+21 |
| | | | | | This allows for various type selection algorithms to be implemented. See tests / accept / compile / ttypeselectors.nim for examples. | ||||
* | bugfix: s[1..n] = @[] produced wrong C code | Araq | 2011-11-14 | 1 | -4/+13 |
| | |||||
* | fixes #59 | Araq | 2011-11-02 | 1 | -0/+3 |
| | |||||
* | better code generation for constant aggregates | Araq | 2011-11-02 | 1 | -12/+10 |
| | |||||
* | compilation cache: slurped files are a dependency too | Araq | 2011-10-30 | 1 | -1/+3 |
| | |||||
* | compilation cache: various bugfixes; works for the compiler itself | Araq | 2011-10-27 | 1 | -4/+2 |
| | |||||
* | compilation cache: mostly working; generics not yet | Araq | 2011-10-25 | 1 | -3/+6 |
| | |||||
* | 'bind' as a declarative statement | Araq | 2011-10-10 | 1 | -1/+2 |
| | |||||
* | new syntactic construct: a{i} | Araq | 2011-10-08 | 1 | -6/+12 |
| | |||||
* | slurp uses path; unidecode is improved and threadsafe | Araq | 2011-10-08 | 1 | -1/+1 |
| | |||||
* | Cleaned up the circular dependecies and remaining issues | Zahary Karadjov | 2011-10-07 | 1 | -20/+5 |
| | | | | Changed: The []= operator for strings and sequences is now capable of splicing | ||||
* | getAst works correctly with existing AST values as template/macro arguments | Zahary Karadjov | 2011-10-07 | 1 | -11/+37 |
| | |||||
* | code generator supports constant sequences; more consistent compile time ↵ | Araq | 2011-10-07 | 1 | -21/+23 |
| | | | | evaluation | ||||
* | bugfix: overloading resolution for typeof | Araq | 2011-09-27 | 1 | -6/+8 |
| | |||||
* | renamed optional to discardable | Araq | 2011-09-24 | 1 | -1/+1 |
| | |||||
* | implemented optional pragma for implicit discard | Araq | 2011-09-24 | 1 | -2/+4 |
| | |||||
* | l-values are preserved modulo type distinction | Araq | 2011-09-24 | 1 | -0/+4 |
| | |||||
* | beginning of a taint mode; type system enhancements | Araq | 2011-09-24 | 1 | -1/+1 |
| | |||||
* | fixed some newly introduced bugs | Araq | 2011-09-21 | 1 | -4/+3 |
| | |||||
* | using statement (ala C#) implemented as macro (added as test). | Zahary Karadjov | 2011-09-20 | 1 | -1/+1 |
| | | | | simplified the usage of the interpolatedFragments iterator. | ||||
* | Moved the parseAST magics to evals.nim | Zahary Karadjov | 2011-09-20 | 1 | -36/+6 |
| | | | | | | | | | | | | | | 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. | ||||
* | Quick Fix: | Zahary Karadjov | 2011-09-20 | 1 | -1/+1 |
| | | | | | | | | | | | Constant expressions used in when statements and tuple indexing are properly evaluated now Even further step tested to be OK: ```nimrod proc semConstExpr(c: PContext, n: PNode): PNode = result = semAndEvalConstExpr(c, n) ``` |