Commit Graph

4222 Commits

Author SHA1 Message Date
andri lim
25a41d5d90 fixes #7818, correct internal representation of generic objects array construction (#7824)
* defer skiptypes
* defer skiptypes for tyRef & tyPtr
* remove unneeded skipTypes
2018-05-29 09:38:52 +02:00
Zahary Karadjov
1c478db375 fix #7883; fix #7829 2018-05-26 20:46:22 +03:00
Dmitry Atamanov
e206a8d952 Use new binarySearch everywhere (#7876) 2018-05-25 00:04:30 +03:00
data-man
4da0135ace fixes filter bug for empty lines 2018-05-22 18:56:27 +03:00
andri lim
c12726d41e fixes #7696, add ConfigRef.arguments initialization (#7858) 2018-05-22 13:17:09 +02:00
data-man
a39b989ce2 fixes #7855 2018-05-21 23:41:32 +03:00
Araq
dc809bd485 fixes yet another indexing bug caused by the strict strings 2018-05-21 14:22:02 +02:00
coffeepots
43b1ac07d4 Fix typo in "out of bounds" error message 2018-05-18 18:37:28 +01:00
Yuriy Glukhov
6c0185d4b7 Allow better optimisations by removing NOINLINE from module init procs 2018-05-16 19:56:30 +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