Andreas Rumpf
feef109e60
make tests green again
2018-05-18 20:53:41 +02:00
Andreas Rumpf
f86ca02960
make semantic checking free of globals
2018-05-18 15:59:44 +02:00
Andreas Rumpf
a4e2b0c153
platform.nim doesn't use globals anymore; prepare msgs.nim for not using globals
2018-05-18 15:18:00 +02:00
Andreas Rumpf
b2c7910fb6
compiler/ropes.nim has no global error handler anymore
2018-05-17 15:45:41 +02:00
Andreas Rumpf
bf6c2c5ccf
preparations of making compiler/msgs.nim free of global variables
2018-05-17 15:21:22 +02:00
Araq
2a7fc84c86
remove ast.emptyNode global; cleanup configuration.nim
2018-05-16 03:06:07 +02:00
Araq
479212995a
ccgutils: code cleanup, no globals
2018-05-16 02:05:00 +02:00
Araq
635451591d
extccomp: no globals anymore
2018-05-16 02:01:55 +02:00
Andreas Rumpf
c73cd5349e
documentation generator works again
2018-05-15 10:03:06 +02:00
Andreas Rumpf
5bf6ad9fa3
make tests green on Unix
2018-05-15 01:39:56 +02:00
Araq
02b78d3f94
make tests green again
2018-05-14 21:38:18 +02:00
Araq
5526252fa0
fixes testament compilation
2018-05-14 17:45:44 +02:00
Andreas Rumpf
328e7a1005
options.nim: no global variables anymore
2018-05-13 17:52:21 +02:00
Andreas Rumpf
297038f704
move more globals into the config object
2018-05-13 14:19:42 +02:00
Andreas Rumpf
e4c088721a
make nimsuggest compile again
2018-05-13 09:53:00 +02:00
Andreas Rumpf
dc4aa47c29
bootstrapping works
2018-05-13 09:07:11 +02:00
Andreas Rumpf
342e50e26c
compiler compiles again; simple programs do work
2018-05-13 08:51:11 +02:00
Andreas Rumpf
8ca5b71c6a
the remaining passes all compile again
2018-05-13 00:45:52 +02:00
Andreas Rumpf
1284827df2
C code generator compiles again
2018-05-12 23:45:51 +02:00
Andreas Rumpf
050789a8f4
sem pass compiles again
2018-05-12 21:30:42 +02:00
Andreas Rumpf
dd35111ff2
semstmts compiles again
2018-05-12 19:45:19 +02:00
Andreas Rumpf
ce859d8c16
more modules compile again
2018-05-12 16:35:59 +02:00
Andreas Rumpf
05724645f8
more modules compile again
2018-05-12 11:58:44 +02:00
Andreas Rumpf
fedc136985
transf and vmgen compile again
2018-05-12 09:38:41 +02:00
Andreas Rumpf
1310279691
lambda lifting compiles again
2018-05-12 08:30:55 +02:00
Andreas Rumpf
bb8c47b496
pragmas compiles again
2018-05-11 18:53:18 +02:00
Andreas Rumpf
84bc04ba32
sigmatch compiles again
2018-05-11 18:04:11 +02:00
Andreas Rumpf
efc2ce1b7e
docgen compiles again
2018-05-11 16:06:36 +02:00
Andreas Rumpf
3c4ceea427
move more global variables into ConfigRef
2018-05-11 15:28:26 +02:00
Andreas Rumpf
a8a544a8f7
avoid more global variables
2018-05-11 15:01:28 +02:00
Andreas Rumpf
2e76a92fe1
sempass2 compiles again
2018-05-11 14:18:39 +02:00
Andreas Rumpf
7eb39d9d26
guards.nim does compile
2018-05-11 13:07:16 +02:00
Andreas Rumpf
e1a921ce4f
lookups compiles again
2018-05-10 15:05:05 +02:00
Andreas Rumpf
a6e53ec47b
semfold compiles again
2018-05-10 14:38:12 +02:00
Andreas Rumpf
5bf31fcabe
big refactoring: mores stuff compiles
2018-05-10 13:39:23 +02:00
Andreas Rumpf
0d56dd4677
big refactoring: magicsys compiles again
2018-05-10 13:12:42 +02:00
Andreas Rumpf
61e57cfa13
big refactoring: parser compiles again
2018-05-10 10:49:51 +02:00
Oscar Nihlgård
7cf87dfac6
VM fix for refs
2018-05-08 17:00:00 +02:00
Zahary Karadjov
cf13c5fba4
implement the export/except statement
2018-05-07 09:37:49 +02:00
Zahary Karadjov
7297613900
Bugfix: The compiler were not inserting proper downcasts for generic types
...
This resulted in a codegen error in C++ mode, because the generic
types were not defined in modules where calls requiring downcasts
were used (generating a downcast forces the inclusion of the full
definition of the involved types).
2018-05-07 09:37:49 +02:00
Zahary Karadjov
4ab1cfb0b0
fix a compiler crash related to the new strings in C++ mode
2018-05-07 09:37:49 +02:00
Zahary Karadjov
ae5c946a32
Support thread-local variables declared inside procs; fixes #7565
2018-05-07 09:37:49 +02:00
Zahary Karadjov
b0d85b0adf
Backwards-compatible support for keyword arguments in the command syntax
2018-05-07 09:37:49 +02:00
Zahary Karadjov
e678a4285d
Bugfix: Allow matching on nkExprEqExpr against varargs[untyped]
...
This enables macros accepting arbitrary keyword arguments:
log("foo", prop1 = "bar", prop2 = "baz")
As an added bonus, simple templates with varargs arguments can now
forward their params to procs accepting keyword arguments.
2018-05-07 09:37:49 +02:00
Zahary Karadjov
2b8bf8fc4a
A motivating example for the new bindSym behavior.
...
The example is a proof-of-concept logging library, allowing you to define
lexically-scoped environments where certain logging attributes are applied
automatically to all logging statements.
fixes tmacro1 (use of `bindSym` inside static blocks)
2018-05-07 09:37:49 +02:00
Zahary Karadjov
bdcb729597
Better support for treating templates and macros as symbols.
...
This allows you to pass a template or a macro to another macro
which can then inspect the implementation of the former template/macro
using `getImpl`.
Since templates can be freely redefined, this allows you to treat
their symbols as compile-time variables that have lexical scope.
A motivating PoC example for a logging library taking advantage of
this will be provided in the next commit.
Implementation details:
* The name of a template or a macro will be consider a symbol if
the template/macro requires parameters
* For parameterless templates/macros, you can use `bindSym`, which
was extended to also work outside of compile-time procs.
2018-05-07 09:37:49 +02:00
alaviss
7897026e57
pretty, prettybase: simplify relative paths ( #7779 )
...
This allows nimble to be built with compiler as a nimble package
2018-05-07 07:30:13 +02:00
Andreas Rumpf
79ec95a9b5
remove hardly used TimeMachine feature
2018-05-06 20:07:42 +02:00
Andreas Rumpf
d8dd43e500
fixes #7757
2018-05-06 10:50:04 +02:00
alaviss
97056fbb9b
fixes #7774 ( #7783 )
2018-05-06 10:34:22 +02:00