Araq
c0c8828d9f
allow .experimental in a .push/pop environment; refs #8676
2018-08-27 11:20:30 +02:00
Araq
57a291db33
optimize away genericReset for result assignment; refs #8745
2018-08-27 09:10:40 +02:00
Vindaar
52f03fabc1
fixes #8781 by appending "_U" instead of 'U' ( #8787 )
2018-08-27 08:35:07 +02:00
LemonBoy
6f13184e40
More checks for custom pragmas placement ( #8765 )
...
We're not interested in custom pragmas attached to certain node kinds so
the compiler silently ignored them.
2018-08-25 07:56:05 +02:00
Timothee Cour
56de4c81b2
fixes #8739 ; allow --hint:foo:on --warning:bar:off ( #8757 )
2018-08-25 07:55:05 +02:00
cooldome
d5e1d102df
fixes 8754 ( #8755 )
...
* fixes 8754
* improve test
2018-08-24 09:57:38 +02:00
LemonBoy
b1c2416abd
Validate pragmas attached to for variables ( #8749 )
...
Fixes #8741
2018-08-24 09:40:17 +02:00
Andreas Rumpf
30621c4a89
improve error messages by filtering out highly unlikely mismatches
2018-08-24 00:09:08 +02:00
Andreas Rumpf
361a2d830a
enforce the condition of a 'when' condition to be of type bool; refs #8603
2018-08-23 17:54:04 +02:00
Andreas Rumpf
1546826006
add nimHasWarningX and nimHasHintX defines for feature detection purposes
2018-08-23 17:37:23 +02:00
Andreas Rumpf
ae0255ea67
make nimsuggest compile again
2018-08-23 17:36:24 +02:00
Araq
30597e643f
fixes merge conflict
2018-08-23 11:30:55 +02:00
Oscar Nihlgård
d6d3f092a3
Fix for module alias inside brackets ( #8726 )
2018-08-23 10:23:02 +02:00
Timothee Cour
52bee6baba
partially fix #8218 : nim doc --project ( #8737 )
2018-08-23 10:18:10 +02:00
Timothee Cour
b02bc66197
better formatting for recursive module dependency ( #8735 )
2018-08-23 08:19:03 +02:00
Oscar Nihlgård
7dcf435b4b
Fix abs & unary sub in semfold ( #8724 )
2018-08-22 15:59:33 +02:00
LemonBoy
d94ee75d1c
Pick skParam symbols when resolving type idents ( #8720 )
...
Fixes #8357
2018-08-22 15:49:43 +02:00
Araq
64517445ea
even more strict isNil handling for strings/seqs in order to detect bugs
2018-08-22 12:35:46 +02:00
cooldome
d0f4a929e0
fixes 8594 ( #8721 )
2018-08-22 12:16:18 +02:00
LemonBoy
a87341775a
Don't consider tyAnd/tyNot/tyOr/tyAnything as generic ( #8700 )
...
* Don't consider tyAnd/tyNot/tyOr/tyAnything as generic
`containsGenericType` was too shallow and didn't check all the branches.
The resulting half-processed nodes are often simplified by the constant
folding pass but when that's not possible we get a nasty error during
codegen.
Fixes #8693
* Move the blame onto the semFold pass
Slightly better evaluation of `is` forms.
2018-08-22 09:40:31 +02:00
Iván Montes
e66d9c9381
Cosmetic: fix typo on TRIPLESTR_LIT ( #8663 )
2018-08-21 22:17:19 +02:00
zah
96de224a63
Fix #8126 ( #8712 )
...
This is a temporary fix that will be reworked in a follow up commit
that aims to eliminate the tfExplicit flag from the compiler. The
complete and proper fix was considered too risky for inclusion just
before our 0.19 release.
2018-08-21 22:14:12 +02:00
Araq
f12a5431a1
make tests green again
2018-08-21 20:33:47 +02:00
LemonBoy
cf20c4460c
More robust handling of deprecated pragmas ( #8696 )
...
Prevent `deprecated` annotations to "slip" up to the parent module and
warn about unsupported annotations.
Accidentally fixes #7867
2018-08-21 15:07:44 +02:00
LemonBoy
bbe5e8326b
sfForward is also sfReorder for skModule symbols ( #8692 )
...
Take this into account while searching for undefined forward references.
Fixes #8665
2018-08-21 14:51:23 +02:00
Andreas Rumpf
ddaf2e3805
some progress on destructors for builtin seqs
2018-08-20 17:59:47 +02:00
LemonBoy
b28c7d434b
Update all the default parameters after an instantiation ( #8689 )
...
The old implementation relied on the (now?) wrong assumption that
default-valued parameters can only be placed after the required ones.
Fixes #8683
2018-08-20 16:54:13 +02:00
Andreas Rumpf
2def616069
exploit nil seqs for performance ( #8688 )
...
* changes $ for seqs to never produce 'nil'
* exploit the fact that empty seqs don't have to allocate in the code generator
2018-08-20 11:54:18 +02:00
Andreas Rumpf
696c0c48c7
fixes merge conflict
2018-08-19 15:14:03 +02:00
Andreas Rumpf
792829ad25
exploit the fact that empty seqs don't have to allocate in the code generator
2018-08-18 16:59:59 +02:00
LemonBoy
b5171f57ef
Expand tyAlias in typeToString ( #8634 )
...
Fixes #8339
2018-08-18 15:27:47 +02:00
Araq
887987bb1a
every .experimental feature has a corrsponding 'nimHasX' define; fixes #8644 ; refs #8672
2018-08-18 01:21:47 +02:00
alaviss
7898f2a785
scriptconfig: register passes once ( #8590 )
...
fixes #8235
2018-08-17 11:09:33 +02:00
Kaushal Modi
d73b19e379
Look for user nim.cfg in "nim/" subdir in usual config dir locations ( #8662 )
...
Fixes https://github.com/nim-lang/Nim/issues/8661 .
2018-08-17 10:52:10 +02:00
LemonBoy
ac0f5c83ca
Fixes 8535 ( #8591 )
...
* Goodbye postInitProc
* Give preInitProc its own scope
Avoid any conflict between the variables introduced by preInitProc and
initProc since both are codegen'd in the same function body.
* Fix codegen for global var init in emulated TLS
Fixes #8535
* Add test for #8535
* Keep a bogus stack frame around
* Remove more dead code
2018-08-17 00:34:27 +02:00
Andreas Rumpf
3ca8ebe778
fixes #8653
2018-08-16 18:49:22 +02:00
Emery Hemingway
2da0341b4d
Genode fixes ( #8501 )
...
* Genode fixes
- wrap strings in "Genode::Cstring" when logging
- define SIGABRT for Genode
- disable GCC -fstack-protector
- use log RPC for fatal messages
- add --os:genode build to appveyor
- define paramStr and paramCount
* Select fixups for Genode POSIX
2018-08-16 18:12:37 +02:00
Andreas Rumpf
e4c759fbff
Merge branch 'devel' into araq-misc
2018-08-16 01:22:21 +02:00
Andreas Rumpf
1061e26bc9
implements 'case statement macros' in order to encourage the development of pattern matching mechanisms that are not terrible to look at
2018-08-16 00:16:49 +02:00
Andreas Rumpf
da41fc1801
put the new for loop macros under an experimental switch named 'forLoopMacros'
2018-08-15 17:45:57 +02:00
Andreas Rumpf
27e1fbe7db
implement the --nilseqs switch properly
2018-08-15 16:56:32 +02:00
Andreas Rumpf
0da91aa744
changes how the now illegal 'string == nil' comparison is detected
2018-08-15 16:31:56 +02:00
LemonBoy
531c66d1ec
Allow taking address of skForVar variables ( #8632 )
...
Fixes #8630
2018-08-14 21:28:14 +02:00
LemonBoy
c04404635b
Fix unsound transform pass ( #8633 )
...
When a `var openArray[T]` function parameter goes trough the
`transformAddrDeref` pass we may lose the `var` specifier, leading to
nasty crashes at runtime.
2018-08-14 20:38:04 +02:00
Araq
f91a181f58
make tests green again
2018-08-13 23:16:03 +02:00
Araq
a0cde8cee6
Merge branch 'devel' into araq-misc
2018-08-13 20:16:18 +02:00
Araq
420ed0596b
fixes more nil handling regressions
2018-08-13 17:27:44 +02:00
cooldome
aa1cdebdc2
Converters to take into account constraints. Fixes #7520 ( #8593 )
2018-08-13 15:02:20 +02:00
Andreas Rumpf
dae5450947
WIP: disallow 'nil' for strings and seqs
2018-08-13 11:41:33 +02:00
LemonBoy
3cb963f114
Fixes 8616 ( #8617 )
...
* Don't leave dangling forward references to types
Fixes #8616
* Add a test case for #8616
2018-08-12 20:43:30 +02:00