Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | implicit generics types as return types. removed the error message for ↵ | Zahary Karadjov | 2012-04-21 | 3 | -57/+59 |
| | | | | capturing incorrect uses of ``proc`` | ||||
* | produce errors on proc types with implicit empty param lists. | Zahary Karadjov | 2012-04-20 | 1 | -6/+8 |
| | |||||
* | allow the use of built-in type constraints in type sections | Zahary Karadjov | 2012-04-20 | 1 | -34/+27 |
| | |||||
* | made built-in types primary expressions to allow infix operators to be used ↵ | Zahary Karadjov | 2012-04-20 | 3 | -54/+52 |
| | | | | with them | ||||
* | fixed incorrect C++ code generation for sequences. more revealing type names ↵ | Zahary Karadjov | 2012-04-18 | 1 | -5/+16 |
| | | | | in the generated code | ||||
* | grammar: the built-in type classes are now valid expressions | Zahary Karadjov | 2012-04-18 | 1 | -62/+34 |
| | |||||
* | more Objective-C and C keywords are now escaped | Zahary Karadjov | 2012-04-18 | 2 | -7/+15 |
| | |||||
* | compiler finally supports 'object {.pragma.}' syntax | Araq | 2012-04-16 | 2 | -1/+6 |
| | |||||
* | bugfix: 'error' statement pragma works as expected again | Araq | 2012-04-16 | 1 | -7/+11 |
| | |||||
* | fixes #105 | Araq | 2012-04-16 | 1 | -2/+4 |
| | |||||
* | Merge branch 'master' of github.com:Araq/Nimrod | Araq | 2012-04-15 | 15 | -239/+421 |
|\ | |||||
| * | Merge branch 'master' of github.com:Araq/Nimrod into upstream | Zahary Karadjov | 2012-04-15 | 1 | -14/+20 |
| |\ | |||||
| * | | avoid duplicated variable names in unrolled loops | Zahary Karadjov | 2012-04-15 | 2 | -2/+7 |
| | | | |||||
| * | | fix threading tests | Zahary Karadjov | 2012-04-15 | 2 | -4/+10 |
| | | | |||||
| * | | fixes #20 properly | Zahary Karadjov | 2012-04-15 | 4 | -38/+36 |
| | | | |||||
| * | | 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 | 6 | -22/+146 |
| | | | |||||
| * | | Proper C scopes for if, try and case statements | Zahary Karadjov | 2012-04-12 | 2 | -77/+97 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | even thought the setjmp implementation for try statement won't be used in C++, using properly scoped variables for them is beneficial, because we'll be able to establish a 1:1 relation between nimrod scopes and C scopes. Once we have that, we'll be able to keep the original names of local variables to greatly improve the debugging experience (i.e. watch expressions and hover tooltips will work). | ||||
| * | | C variables are created in their enclosing block instead of their enclosing ↵ | Zahary Karadjov | 2012-04-12 | 8 | -151/+180 |
| | | | | | | | | | | | | function | ||||
* | | | @ is a sigil-like operator | Araq | 2012-04-15 | 2 | -129/+49 |
| |/ |/| | |||||
* | | Merge branch 'master' of github.com:Araq/Nimrod | Araq | 2012-04-13 | 18 | -80/+202 |
|\| | |||||
| * | re-enable rodfiles tests; fixes #91 | Zahary Karadjov | 2012-04-11 | 2 | -2/+8 |
| | | |||||
| * | Merge branch 'master' of github.com:Araq/Nimrod into upstream | Zahary Karadjov | 2012-04-10 | 1 | -1/+5 |
| |\ | |||||
| * | | proper order of initialization for .global. variables | Zahary Karadjov | 2012-04-10 | 3 | -2/+10 |
| | | | |||||
| * | | completing the "types as first class values" reform | Zahary Karadjov | 2012-04-06 | 4 | -40/+50 |
| | | | |||||
| * | | the foundations of a type traits module; better error messages for expr, ↵ | Zahary Karadjov | 2012-04-06 | 8 | -12/+65 |
| | | | | | | | | | | | | typedesc and typeclasses params | ||||
| * | | when expressions, proper rendering for nkDo and nkLambda and parser support ↵ | Zahary Karadjov | 2012-04-05 | 5 | -18/+53 |
| | | | | | | | | | | | | for x.type and x.addr | ||||
| * | | Added ``global`` pragma that can be used to introduce new global variables ↵ | Zahary Karadjov | 2012-04-05 | 5 | -10/+20 |
| | | | | | | | | | | | | from within procs | ||||
* | | | performance improvements for ropes | Araq | 2012-04-13 | 1 | -14/+20 |
| |/ |/| | |||||
* | | fixed another docgen bug; initial mongodb wrapper | Araq | 2012-04-06 | 1 | -1/+5 |
|/ | |||||
* | Merge branch 'master' of github.com:Araq/Nimrod into upstream | Zahary Karadjov | 2012-03-31 | 16 | -69/+80 |
|\ | |||||
| * | implemented support for the AVR CPU and standalone OS | Araq | 2012-03-31 | 2 | -5/+17 |
| | | |||||
| * | tests tcnstseq and tcnstseq3 work again | Araq | 2012-03-28 | 2 | -2/+5 |
| | | |||||
| * | bugfix #100 again | Araq | 2012-03-28 | 5 | -12/+11 |
| | | |||||
| * | attempt to fix a bug concerning implicit type conversions in case statements | Araq | 2012-03-27 | 3 | -29/+24 |
| | | |||||
| * | fixes #102 | Araq | 2012-03-23 | 1 | -0/+1 |
| | | |||||
| * | bugfix: GC marker procs; making tests green again | Araq | 2012-03-23 | 2 | -2/+8 |
| | | |||||
| * | some bugfixes for symbolfiles | Araq | 2012-03-23 | 3 | -19/+14 |
| | | |||||
* | | typedesc and expr params | Zahary Karadjov | 2012-03-31 | 12 | -45/+166 |
| | | | | | | | | | | | | | | | | | | | | | | | | 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 | 5 | -70/+22 |
| | | | | | | | | | | | | | | | | | | example: template hygienic(val: expr) = var `*x` = val echo `*x` *x was chosen as mnemonic for "opposite of public" and thus private | ||||
* | | generic types can be used like type classes. distinct can be applied to type ↵ | Zahary Karadjov | 2012-03-25 | 8 | -76/+88 |
| | | | | | | | | classes. | ||||
* | | tyOrdinal now means "integral types". tyTypeClass created to take care of ↵ | Zahary Karadjov | 2012-03-22 | 7 | -30/+43 |
|/ | | | | type constraints | ||||
* | expr params implemented for procs; paving the way for type classes | Zahary Karadjov | 2012-03-22 | 4 | -28/+74 |
| | |||||
* | Merge branch 'master' of github.com:Araq/Nimrod | Araq | 2012-03-21 | 3 | -19/+17 |
|\ | |||||
| * | untyped proc/template/macro params default to expr | Zahary Karadjov | 2012-03-20 | 2 | -17/+15 |
| | | |||||
| * | making tests green again | Zahary Karadjov | 2012-03-20 | 1 | -2/+2 |
| | | |||||
* | | implemented marker procs for the GC resulting in huge speedups | Araq | 2012-03-21 | 2 | -4/+138 |
| | | |||||
* | | Merge branch 'master' of github.com:Araq/Nimrod | Araq | 2012-03-19 | 15 | -155/+238 |
|\| | |||||
| * | missed file from the previous commit | Zahary Karadjov | 2012-03-19 | 1 | -0/+7 |
| | | |||||
| * | merged branch overloading-for-macros | Zahary Karadjov | 2012-03-19 | 15 | -155/+231 |
| |\ |