Commit Graph

13194 Commits

Author SHA1 Message Date
LemonBoy
5afcd09cb3 Pervasive replacement of nkRecWhen in generic types
Long story short, even if the type contains no reference at all to its
generic parameters we still have to walk its AST and evaluate any
nkRecWhen nodes that semRecordNodeAux skipped due to the type being a
generic one.

We also must be careful to modify the type `n` node in place since it
may be referenced by the caller as seen in the tillegaltyperecursion
test.

Moreover we also can't have the nkSym drift away from their original
values in order not to break the JS nkObjConstr codegen.
2018-10-19 22:17:38 +02:00
Dominik Picheta
7532b37405 Don't skip poll() when no handles are present. (#8727)
Fixes #7886.

Fixes #7758.

Fixes #6929.

Fixes #3909.

Replaces #8209.
2018-08-23 16:31:28 +02:00
Tim
55a8649749 Decrease source code size in htmlparser and add one check (#8690) 2018-08-23 10:30:16 +02:00
Oscar Nihlgård
d6d3f092a3 Fix for module alias inside brackets (#8726) 2018-08-23 10:23:02 +02:00
awr1
bf973d29da Fixes #8719 (onFailedAssert now works for doAssert) (#8731) 2018-08-23 10:20:58 +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
1d93991929 Cleanup ttimes (#8714)
* Refactor fromWinTime

* Cleanup ttimes
2018-08-22 17:20:41 +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
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
Dominik Picheta
3e7aaa7087 Fixes #8716. (#8717) 2018-08-22 00:18:17 +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
LemonBoy
8e435d7b0c HTML generation in testament works again (#8702)
Fallout from the nil-str patch. Nothing to see here, move along.
2018-08-21 15:15:14 +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
Timothee Cour
0dd31a4f97 fix typo in changelog.md: nnkTupleConst => nnkTupleConstr 2018-08-21 13:10:38 +01:00
Dmitry Atamanov
b75808c7d9 Fixes ropes regressions due to the not-nil strings (#8687) 2018-08-20 16:55:22 +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
Στέφανος
f87a91a3ec Fixed a minor typo (#8685) 2018-08-20 09:40:56 +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
Dominik Picheta
ced1c13571 Use project name in install tmpl and ensure config dir is created. 2018-08-17 16:26:23 +01:00
Dominik Picheta
eff7e42d7b Fixed install scripts for #8653. 2018-08-17 16:21:37 +01:00
Oscar Nihlgård
5f184eca10 Update changelog 2018-08-17 15:51:02 +01:00
Oscar Nihlgård
33ed8f7e73 times.Timezone changes (#8527)
* Use floorDiv in times.nim

* New implementation of times.Timezone

* Tweak doc comments

* Fix typo
2018-08-17 11:12:58 +02:00
Oscar Nihlgård
b77d910e4e Remove broken push pragma from jscore (#8414) 2018-08-17 11:11:55 +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
Arne Döring
ce4383be3b fixes #8658; addQuoted on Option[T] (#8659) 2018-08-17 01:24:28 +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
Timothee Cour
af037546b0 fixes #7187 sequtils.toSeq produces the sequence from the iterator twice (#8586)
* cleanups refs #8584
* fixes #7187
2018-08-16 23:19:36 +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
Timothee Cour
87b2d2aad6 added a variant of quoteShellCommand that takes an openArray of arguments (#8272) 2018-08-16 14:10:16 +02:00
Araq
2870ca5d71 Merge branch 'araq-misc' into devel 2018-08-16 12:30:00 +02:00
Andreas Rumpf
d82dd3c47d attempt to make travis green 2018-08-16 09:05:19 +02:00
Timothee Cour
e05d0ea0bb tester.nim add more diagnostics (#8631) 2018-08-16 00:54:39 -04:00
Andreas Rumpf
e4c759fbff Merge branch 'devel' into araq-misc 2018-08-16 01:22:21 +02:00
Andreas Rumpf
b78114ce50 minor edit to the changelog 2018-08-16 00:23:37 +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
Andreas Rumpf
94684488d6 make more tests green 2018-08-14 21:15:03 +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