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
e4c088721a
make nimsuggest compile again
2018-05-13 09:53:00 +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
Zahary Karadjov
cf13c5fba4
implement the export/except statement
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
Andreas Rumpf
b7116a28ee
compiler refactoring, pass config around explicitly
2018-05-05 18:47:29 +02:00
Andreas Rumpf
6408646b02
minor speedup: concept tests still green
2018-04-28 18:37:45 +02:00
Andreas Rumpf
4adc31ee3d
stuff that is green
2018-04-28 18:23:54 +02:00
Andreas Rumpf
f697596faf
semcheck: code cleanups
2018-04-28 07:49:36 +02:00
Andreas Rumpf
ee366f1746
.experimental can now be used to enable specific features
2018-04-24 09:34:29 +02:00
Andreas Rumpf
07f4e8a4ed
new 'var T' error messages with hyperlinks; closes #7373
2018-04-22 00:12:43 +02:00
Andreas Rumpf
b43025b754
fixes #5113
2018-04-21 23:58:24 +02:00
Andreas Rumpf
47335aab41
introduce nkTupleConstr AST node for unary tuple construction; breaking change
2018-04-13 17:45:58 +02:00
zah
121b9e26fb
Static[T] fixes ( #7333 )
...
* fix the usage of unresolved static[T] parameters in proc signatures
* fix tsametype and tmacrogenerics
* Allow creating composite type classes with concepts and using them in type signatures
* Allow integers to be used in ident concatenations
* Support using imported C++ generic types in proc signatures
* fixes #7230
* closes #7379
* re-enable some metatype tests
2018-03-24 15:28:09 +01:00
Andreas Rumpf
3be4f9111c
enforce 'var T' produces a view into the first parameter; refs #7373
2018-03-24 09:41:04 +01:00
Andreas Rumpf
6f747674be
more checking for 'var T' as return type; refs #7373
2018-03-24 08:37:09 +01:00
Araq
b0994c7f92
better error messages
2018-03-18 12:04:22 +01:00
Andreas Rumpf
eeea000582
make the 'canimport' template work
2018-03-06 15:57:46 +01:00
Araq
037ce16f44
improve the error message for mutability problems
2018-02-17 00:40:48 +01:00
Araq
ef6eda4cb4
better error messages: use <T1, T2> instead of (T1, T2) in order to prevent confusions with tuple types
2018-02-10 20:55:21 +01:00
Andreas Rumpf
c99f952dfb
basic 'lent T' test works
2018-01-21 03:04:22 +01:00
cooldome
2c9e56a783
Implement custom annotations ( #6987 )
2018-01-09 15:25:22 +01:00
Andreas Rumpf
437caf4358
Merge branch 'devel' into nimv2
2018-01-08 20:04:25 +01:00
Andreas Rumpf
ceb8ba4957
fixes #7018
2018-01-08 18:02:38 +01:00
Andreas Rumpf
2015895357
sink type begins to compile
2018-01-08 01:47:54 +01:00
Andreas Rumpf
e4081a7201
preparations for language extensions: 'sink' and 'lent' types
2018-01-07 23:09:26 +01:00
Araq
29db57a804
fixes reported 'proc foo(): int = result' codegen problem
2017-12-30 00:29:53 +01:00
Araq
0b0baece89
fixes #6980
2017-12-27 21:26:37 +01:00
Zahary Karadjov
70380882c5
fix #6108
2017-12-21 11:04:05 +01:00
Araq
ee67a67ac4
first steps in adding template/macro calls to stack traces
2017-12-21 10:03:33 +01:00
cooldome
3659fec725
Alternative fix for #4910 that covers #6892 ; fixes #6892 ( #6938 )
2017-12-17 23:56:21 +01:00
Araq
d244508b8a
fixes #6932
2017-12-17 14:23:57 +01:00
Araq
eab46c5b7e
runnableExamples feature: allow import statements and move them to the top level
2017-12-17 13:42:56 +01:00
Araq
be87fe9176
make tests green again
2017-12-15 13:24:47 +01:00
Araq
8db5b32ff7
make type vs proc ambiguous handling more consistent; fixes #6726 ; fixes #6693
2017-12-15 12:16:03 +01:00
Araq
fa92c519aa
more progress on destructors; removed old destructor based code as it proved confusing
2017-12-01 01:52:00 +01:00
Araq
5d2e86ea1a
the documentation generator now supports ':test:' for the testing of test snippets
2017-11-28 01:15:33 +01:00
Araq
a720539f5e
fixes system.runnableExamples; strutils makes use of runnableExamples
2017-11-26 03:24:59 +01:00
Araq
8d1a5dc8e7
the documentation generator now supports system.runnableExamples
2017-11-26 02:51:11 +01:00
Araq
3bd6b7ddc7
improve the error messages for bug #6692
2017-11-05 02:51:20 +01:00
Andreas Rumpf
a155130cf2
fixes #1860 ; macro generating a wrong nkSymChoice node
2017-10-30 15:37:34 +01:00
Andreas Rumpf
d7a896f19d
breaking change: 'and' and 'mod' do not produce a subrange type anymore; fixes #5854
2017-10-30 00:27:30 +01:00
Andreas Rumpf
f1dab39086
remove old implementation of the roof operator; make tests green again; close #6292
2017-10-29 20:36:07 +01:00
Andreas Rumpf
d52a1061b3
work in progress: new implementation for 'a[^1]'
2017-10-29 19:46:17 +01:00
Andreas Rumpf
70ea45cdba
deprecated unary '<'
2017-10-29 08:37:13 +01:00
Araq
4f2b79a380
topttree destructor finally works
2017-10-26 00:55:23 +02:00