Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge branch 'master' of github.com:Araq/Nimrod into upstream | Zahary Karadjov | 2012-06-02 | 1 | -2/+6 |
|\ | |||||
| * | added system.||; lacks runtime support | Araq | 2012-05-23 | 1 | -2/+6 |
| | | |||||
* | | Added system.staticExec proc for executing external command at compile-time | Zahary Karadjov | 2012-06-02 | 1 | -1/+1 |
| | | |||||
* | | codegen for user-defined destructors | Zahary Karadjov | 2012-05-25 | 1 | -1/+71 |
| | | |||||
* | | stand-alone except and finally blocks | Zahary Karadjov | 2012-05-23 | 1 | -7/+27 |
|/ | | | | This is equivalent to the on-error and at-scope-exit operators in other languages | ||||
* | compiler finally supports 'object {.pragma.}' syntax | Araq | 2012-04-16 | 1 | -1/+1 |
| | |||||
* | avoid duplicated variable names in unrolled loops | Zahary Karadjov | 2012-04-15 | 1 | -2/+6 |
| | |||||
* | fixes #20 properly | Zahary Karadjov | 2012-04-15 | 1 | -3/+2 |
| | |||||
* | fix the usage of definedInScope in pegs.=~ | Zahary Karadjov | 2012-04-14 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | template `=~`*(s: string, pattern: TPeg): bool = when not definedInScope(matches): var matches: array[0..maxSubpatterns-1, string] It seems that this never worked as intended. I discovered it now, because when variables' names are preserved, multiple variables named `matches` were created. The reason this happens is that when the template is used as an if condition, the if scope is already entered, but the variables end up in the outer scope. This patch is consistent with how `expr` templates work, but makes the definition of a variable injection template like := a bit harder, yet still possible. (note that if foo := bar(): is still not creating properly scoped variable prior to the patch) | ||||
* | experimental support for preserving local variable names in the generated code | Zahary Karadjov | 2012-04-13 | 1 | -1/+11 |
| | |||||
* | when expressions, proper rendering for nkDo and nkLambda and parser support ↵ | Zahary Karadjov | 2012-04-05 | 1 | -2/+2 |
| | | | | for x.type and x.addr | ||||
* | expr params implemented for procs; paving the way for type classes | Zahary Karadjov | 2012-03-22 | 1 | -3/+1 |
| | |||||
* | merged branch overloading-for-macros | Zahary Karadjov | 2012-03-19 | 1 | -2/+1 |
|\ | |||||
| * | allowing multiple definitions of templates | Zahary Karadjov | 2012-03-14 | 1 | -2/+1 |
| | | |||||
* | | clean separation of PNimrodNode and tyExpr | Araq | 2012-03-16 | 1 | -8/+8 |
| | | |||||
* | | implemented 'static'; macros do not work anymore | Araq | 2012-03-15 | 1 | -0/+8 |
|/ | |||||
* | fixes #100 | Araq | 2012-03-10 | 1 | -0/+2 |
| | |||||
* | further steps for closure support | Araq | 2012-02-08 | 1 | -0/+4 |
| | |||||
* | further steps to closure support | Araq | 2012-02-06 | 1 | -5/+0 |
| | |||||
* | small fixes for tests on windows | Araq | 2012-01-31 | 1 | -1/+1 |
| | |||||
* | pragma on/off improvements; endb rewritten | Araq | 2012-01-28 | 1 | -7/+7 |
| | |||||
* | pragma blocks; fixed line information issue with user defined assertions | Araq | 2012-01-17 | 1 | -0/+14 |
| | |||||
* | implicit invokation of items/pairs iterators | Araq | 2012-01-08 | 1 | -24/+42 |
| | |||||
* | bugfix: type alias to generic; generic type not stripped away from for loop ↵ | Araq | 2012-01-07 | 1 | -1/+4 |
| | | | | variable | ||||
* | year 2012 for most copyright headers | Araq | 2012-01-02 | 1 | -1/+1 |
| | |||||
* | new len(openarray) implementation | Araq | 2011-12-31 | 1 | -1/+1 |
| | |||||
* | make trecinca|b tests green | Araq | 2011-12-31 | 1 | -1/+1 |
| | |||||
* | bugfix: compiler errors for explicit initialization of thread local ↵ | Araq | 2011-12-23 | 1 | -1/+2 |
| | | | | variables; os.nim does not rely on it anymore | ||||
* | bugfix: the code gen can now handle alias TLock = TSysLock; this fixes ↵ | Araq | 2011-12-23 | 1 | -1/+2 |
| | | | | threading bugs | ||||
* | path canonicalization for imported modules, relative paths written in rod files | Zahary Karadjov | 2011-12-11 | 1 | -1/+1 |
| | |||||
* | proc arguments are in scope when the result type definition is being processed | Zahary Karadjov | 2011-12-09 | 1 | -2/+4 |
| | | | | | This is intended for type deduction depending on the arguments proc foo(x: type): type(expr(x)) | ||||
* | path canonicalization and proper project relative paths | Zahary Karadjov | 2011-12-09 | 1 | -1/+1 |
| | |||||
* | 'assert' is now implemented without compiler magic | Araq | 2011-12-04 | 1 | -1/+1 |
| | |||||
* | implemented 'let' statement | Araq | 2011-11-29 | 1 | -11/+14 |
| | |||||
* | bugfix: 'when' sections in generic objects now work, so TThread[void] compiles | Araq | 2011-11-20 | 1 | -1/+3 |
| | |||||
* | macros and templates can be expanded anywhere where a type is expected. | Zahary Karadjov | 2011-11-18 | 1 | -4/+11 |
| | | | | | This allows for various type selection algorithms to be implemented. See tests / accept / compile / ttypeselectors.nim for examples. | ||||
* | lazy loading of body ast implemented | Araq | 2011-10-30 | 1 | -15/+15 |
| | |||||
* | eval context for macros lives as long as the current module is compiled | Araq | 2011-10-28 | 1 | -0/+3 |
| | |||||
* | compilation cache: various bugfixes; works for the compiler itself | Araq | 2011-10-27 | 1 | -1/+8 |
| | |||||
* | much more efficient rod file generation | Araq | 2011-10-18 | 1 | -1/+1 |
| | |||||
* | 'bind' as a declarative statement | Araq | 2011-10-10 | 1 | -3/+4 |
| | |||||
* | Cleaned up the circular dependecies and remaining issues | Zahary Karadjov | 2011-10-07 | 1 | -1/+1 |
| | | | | Changed: The []= operator for strings and sequences is now capable of splicing | ||||
* | Basic unit testing facilities (suites, fixtures, cases) | Zahary Karadjov | 2011-10-07 | 1 | -5/+9 |
| | | | | | | | | 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). | ||||
* | code generator supports constant sequences; more consistent compile time ↵ | Araq | 2011-10-07 | 1 | -15/+26 |
| | | | | evaluation | ||||
* | 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) ``` | ||||
* | bugfixes for generics; new threads implementation still broken | Araq | 2011-09-20 | 1 | -7/+0 |
| | |||||
* | added xmltree.innerText; fixes #49 | Araq | 2011-08-15 | 1 | -1/+4 |
| | |||||
* | further tests for var T result type; ttables test now fails :-( | Araq | 2011-08-10 | 1 | -2/+1 |
| | |||||
* | support for C++ code generation; importcpp and importobjc pragmas | Araq | 2011-08-07 | 1 | -5/+1 |
| | |||||
* | anonymous procs implemented; however no closure support yet | Araq | 2011-08-01 | 1 | -5/+6 |
| |