Araq
2ff8d17369
added warning for confusing var declarations
2012-07-26 08:47:54 +02:00
Araq
39235e21f5
bugfixes for the symbol mangling; implements #129
2012-07-19 17:38:52 +02:00
Araq
8d99753d63
preparations for making 'closure' the default calling convention for proc types
2012-07-16 23:00:57 +02:00
Araq
049de0ef66
'addSon' for types deprecated for 'int literal type' analysis (3)
2012-07-09 20:04:19 +02:00
Araq
82b5e430cf
'addSon' for types deprecated for 'int literal type' analysis (2)
2012-07-09 08:22:55 +02:00
Araq
bb82e30508
bugfix: ha.echo should be accepted
2012-07-08 22:03:06 +02:00
Araq
b5d34242ca
added proc annotations: macros invoked as pragmas
2012-06-26 01:00:32 +02:00
Araq
869a5aa90d
doc2 improvements
2012-06-24 02:34:11 +02:00
Araq
7b4560337b
bugfixes for closures
2012-06-21 08:46:56 +02:00
Araq
40339aac62
added another macro regression
2012-06-20 00:45:57 +02:00
Zahary Karadjov
ce933c90a4
destructor pragma
2012-06-07 03:32:40 +03:00
Zahary Karadjov
65970efd97
destructors for case values
2012-06-07 02:14:25 +03:00
Zahary Karadjov
db8dbab766
fix bootstrapping on POSIX platforms
2012-06-06 20:38:57 +03:00
Zahary Karadjov
d10b524c9a
generate default destructors
2012-06-06 19:11:52 +03:00
Zahary Karadjov
88f7b7bc50
Merge branch 'master' of github.com:Araq/Nimrod into upstream
2012-06-02 19:52:06 +03:00
Zahary Karadjov
a1da1f987b
Added system.staticExec proc for executing external command at compile-time
2012-06-02 19:51:49 +03:00
Zahary Karadjov
337e1ecc7c
codegen for user-defined destructors
2012-05-25 19:02:14 +03:00
Araq
848c1b297f
added system.||; lacks runtime support
2012-05-23 02:05:28 +02:00
Zahary Karadjov
b1574bb0e0
stand-alone except and finally blocks
...
This is equivalent to the on-error and at-scope-exit operators in other languages
2012-05-23 02:25:16 +03:00
Araq
cb79bf9f16
compiler finally supports 'object {.pragma.}' syntax
2012-04-16 23:40:08 +02:00
Zahary Karadjov
57fe3e8c41
avoid duplicated variable names in unrolled loops
2012-04-15 02:53:32 +03:00
Zahary Karadjov
567b5b07ea
fixes #20 properly
2012-04-15 01:06:40 +03:00
Zahary Karadjov
42e0b08214
fix the usage of definedInScope in pegs.=~
...
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)
2012-04-14 13:32:51 +03:00
Zahary Karadjov
f25c638dc4
experimental support for preserving local variable names in the generated code
2012-04-13 21:03:49 +03:00
Zahary Karadjov
98b7bdaa50
when expressions, proper rendering for nkDo and nkLambda and parser support for x.type and x.addr
2012-04-05 22:43:37 +03:00
Zahary Karadjov
3a5cf3d63a
expr params implemented for procs; paving the way for type classes
2012-03-22 03:27:00 +02:00
Zahary Karadjov
e43f8d842b
merged branch overloading-for-macros
2012-03-19 12:06:38 +02:00
Araq
be1154106a
clean separation of PNimrodNode and tyExpr
2012-03-16 19:33:24 +01:00
Araq
4da067691e
implemented 'static'; macros do not work anymore
2012-03-15 00:28:28 +01:00
Zahary Karadjov
c45b714dfb
allowing multiple definitions of templates
2012-03-14 21:01:18 +02:00
Araq
e88123fb17
fixes #100
2012-03-10 12:43:04 +01:00
Araq
2c4a1dbc0c
further steps for closure support
2012-02-08 09:10:59 +01:00
Araq
632aece191
further steps to closure support
2012-02-06 00:19:56 +01:00
Araq
e4a4588b48
small fixes for tests on windows
2012-01-31 00:05:25 +01:00
Araq
8d19a93f1a
pragma on/off improvements; endb rewritten
2012-01-28 23:22:44 +01:00
Araq
78f4aacde9
pragma blocks; fixed line information issue with user defined assertions
2012-01-17 23:58:18 +01:00
Araq
2ae78c0cfb
implicit invokation of items/pairs iterators
2012-01-08 01:29:10 +01:00
Araq
7405278138
bugfix: type alias to generic; generic type not stripped away from for loop variable
2012-01-07 20:03:41 +01:00
Araq
4f1b89c30c
year 2012 for most copyright headers
2012-01-02 23:07:35 +01:00
Araq
0d8e6dda69
new len(openarray) implementation
2011-12-31 18:15:20 +01:00
Araq
d25fefc0ff
make trecinca|b tests green
2011-12-31 10:23:56 +01:00
Araq
76f91b90e2
bugfix: compiler errors for explicit initialization of thread local variables; os.nim does not rely on it anymore
2011-12-23 20:05:08 +01:00
Araq
69cc24cdf6
bugfix: the code gen can now handle alias TLock = TSysLock; this fixes threading bugs
2011-12-23 00:17:59 +01:00
Zahary Karadjov
d171a8b36f
path canonicalization for imported modules, relative paths written in rod files
2011-12-11 11:24:52 +02:00
Zahary Karadjov
de4b894541
proc arguments are in scope when the result type definition is being processed
...
This is intended for type deduction depending on the arguments
proc foo(x: type): type(expr(x))
2011-12-09 16:05:51 +02:00
Zahary Karadjov
e4e74034c2
path canonicalization and proper project relative paths
2011-12-09 04:40:59 +02:00
Araq
70cf34cbdc
'assert' is now implemented without compiler magic
2011-12-04 20:14:50 +01:00
Araq
7fcbdc6d42
implemented 'let' statement
2011-11-29 17:27:48 +01:00
Araq
72651de710
bugfix: 'when' sections in generic objects now work, so TThread[void] compiles
2011-11-20 16:13:03 +01:00
Zahary Karadjov
12bac28d23
macros and templates can be expanded anywhere where a type is expected.
...
This allows for various type selection algorithms to be implemented.
See tests / accept / compile / ttypeselectors.nim for examples.
2011-11-18 02:11:15 +02:00