Ștefan Talpalaru
ebb140edda
compile pragma: cache the result sooner ( #19554 )
...
extccomp.addExternalFileToCompile() relies on hashes to decide whether
an external C file needs recompilation or not.
Due to short-circuit evaluation of boolean expressions, the procedure
that generates a corresponding hash file is not called the first time an
external file is compiled, so an avoidable recompilation is triggered
the next build.
This patch fixes that by moving the proc call with a desired side
effect from its boolean expression, so it's executed unconditionally.
(cherry picked from commit 0c915b5e47 )
2022-03-09 16:45:51 +01:00
flywind
d7370ce269
fix broken CI ( #19472 )
...
* fix broken CI
* fix
* fix tests
(cherry picked from commit 56a901f9e1 )
2022-02-23 12:23:48 +01:00
flywind
971b639739
setjump => setjmp [backport: 1.2] ( #19496 )
...
(cherry picked from commit d0287748fe )
2022-02-23 11:39:10 +01:00
flywind
5e13d577ac
undefine C symbols in JS backend [backport:1.6] ( #19437 )
...
fix #19330 ; fix #19059
(cherry picked from commit 7b09fd70ab )
2022-02-23 11:38:52 +01:00
Dominik Picheta
b6024fe861
Merge pull request from GHSA-ggrq-h43f-3w7m
...
This fixes a CVE (currently
https://github.com/nim-lang/Nim/security/advisories/GHSA-ggrq-h43f-3w7m )
(cherry picked from commit cb894c7094 )
2022-02-23 11:37:43 +01:00
flywind
7994556f38
don't use a temp for addr [backport: 1.6] ( #19503 )
...
* don't use a temp for addr
fix #19497
* Update compiler/ccgcalls.nim
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com >
* add a test
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com >
(cherry picked from commit 27e548140b )
2022-02-08 08:35:28 +01:00
flywind
35c812fda1
nvro don't touch cdecl types [backport: 1.6] ( #19461 )
...
* nvro don't touch cdecl types; fix #19342 again
(cherry picked from commit 0c3892c3c7 )
2022-01-28 10:05:51 +01:00
Andreas Rumpf
a8e040ec30
bugfix: varargs count as open arrays ( #19447 )
...
(cherry picked from commit 6ea6225523 )
2022-01-26 07:57:21 +01:00
flywind
52d2ff601b
enable weave ( #19363 ) [backport:1.6]
...
* enable weave
* workaround CI
(cherry picked from commit 927fa890ec )
2022-01-20 18:06:44 +01:00
hlaaftana
fc0aec6f1b
Optimize lent in JS [backport:1.6] ( #19393 )
...
* Optimize lent in JS [backport:1.6]
* addr on lent doesn't work anymore, don't use it
* use unsafeAddr in test again for older versions
(cherry picked from commit 07c7a8a526 )
2022-01-20 18:06:11 +01:00
flywind
bc823b6487
nrvo shouldn't touch bycopy object[backport:1.2] ( #19385 )
...
fix nim-lang#19342
(cherry picked from commit 9b9ae8a487 )
2022-01-17 07:38:58 +01:00
Andreas Rumpf
5f70b1ab53
fixes #16617 [backport] ( #19300 )
...
(cherry picked from commit ac37eed5a2 )
2022-01-11 08:20:29 +01:00
Andreas Rumpf
0648cde117
fixes grammar typos [backport] ( #19289 )
...
(cherry picked from commit a61bbf7d8d )
2021-12-31 05:13:52 +01:00
Jason Beetham
26ed4e5413
Fixed object field access of static objects in generics ( #19283 ) [backport]
...
(cherry picked from commit fa96e56ad0 )
2021-12-31 05:13:27 +01:00
Ștefan Talpalaru
a2f5e98baa
nimRawSetjmp: support Windows ( #19197 )
...
* nimRawSetjmp: support Windows
Using `_setjmp()` directly is required to avoid some rare (but very
annoying) exception-related stack corruption leading to segfaults on
Windows, with Mingw-w64 and SEH.
More details: https://github.com/status-im/nimbus-eth2/issues/3121
Also add "nimBuiltinSetjmp" - mostly for benchmarking.
* fix for Apple's Clang++
(cherry picked from commit 69aabdab80 )
2021-12-11 05:47:32 +01:00
Andreas Rumpf
b7a0c08b4f
added --nimMainPrefix switch; fixes #15955 ; refs #16945 [backport:1.6] ( #19235 )
...
(cherry picked from commit 7ff43d07b2 )
2021-12-10 21:39:58 +01:00
Andreas Rumpf
ac57c3193d
fixes an old ARC bug: the produced copy/sink operations don't copy the hidden type field for objects with enabled inheritance; fixes #19205 [backport:1.6] ( #19232 )
...
(cherry picked from commit 32d4bf3525 )
2021-12-10 11:46:35 +01:00
Andreas Rumpf
7cf5e73fb7
fixes a converter handling regression that caused private converters to leak into client modules; fixes #19213 ; [backport:1.6] ( #19229 )
...
(cherry picked from commit 502ac4ed5e )
2021-12-10 11:46:26 +01:00
Tanguy
c14008d77f
fix #19193 ( #19195 ) [backport:1.2]
...
(cherry picked from commit cd592ed85b )
2021-12-08 08:33:12 +01:00
Etan Kissling
ee876aee28
allow HSlice bounded by constants of distinct types ( #19219 ) [backport:1.2]
...
When creating heterogenous slices of distinct types, the compiler does
not initialize the internal type's `size` before accessing it.
This then leads to this crash message:
```
compiler/int128.nim(594, 11) `false` masking only implemented for 1, 2, 4 and 8 bytes [AssertionError]
```
This patch initializes the `size` properly, fixing the problem.
(cherry picked from commit 0213c7313b )
2021-12-08 08:32:57 +01:00
Andreas Rumpf
8ed903d1d0
fixes #19159 [backport:1.6] ( #19210 )
...
(cherry picked from commit 1cbdc1573a )
2021-12-06 11:19:26 +01:00
Andreas Rumpf
bfa8188dac
fixes #19198 [backport:1.6] ( #19209 )
...
* fixes #19198 [backport:1.6]
* added a test case
(cherry picked from commit f90620fb32 )
2021-12-06 11:19:17 +01:00
Andreas Rumpf
56409c15c0
fixes #19015 [backport:1.6] ( #19204 )
...
(cherry picked from commit d584dd5b99 )
2021-12-06 11:19:08 +01:00
Andreas Rumpf
b614d97a2d
misc bugfixes [backport:1.2] ( #19203 )
...
(cherry picked from commit 23c117a950 )
2021-12-06 11:18:58 +01:00
Andreas Rumpf
2bb3a85a7c
renamed 'gc' switch to 'mm'; [backport:1.6] ( #19187 )
...
* renamed 'gc' switch to 'mm'; [backport:1.6]
* better docs
(cherry picked from commit a0073d2d4c )
2021-11-26 07:32:15 +01:00
flywind
1247043c90
fix marshal bugs in VM ( #19161 ) [backport:1.6]
...
(cherry picked from commit fe46c8b5f1 )
2021-11-22 16:30:41 +01:00
Andreas Rumpf
167881bb83
fixes #19051 [backport:1.6] ( #19133 )
...
(cherry picked from commit c6fc3b2eae )
2021-11-17 09:26:08 +01:00
Andreas Rumpf
3f6de926f0
fixes #14470 [backport:1.2] ( #19115 )
...
(cherry picked from commit 15157d06c3 )
2021-11-11 16:16:31 +01:00
Andreas Rumpf
95dce90467
fixes #19011 [backport:1.6] ( #19114 )
...
(cherry picked from commit 6ff61766da )
2021-11-11 16:16:11 +01:00
Andreas Rumpf
f85e09633d
fixes #19013 [backport:1.6] ( #19111 )
...
* fixes #19013 [backport:1.6]
* added test case
(cherry picked from commit b7c66ce860 )
2021-11-11 16:16:03 +01:00
Andreas Rumpf
575450dfec
fixes another effect inference bug [backport:1.6] ( #19100 )
...
* fixes another effect inference bug [backport:1.6]
(cherry picked from commit fce89cb60a )
2021-11-11 16:15:51 +01:00
Andreas Rumpf
6a2babac47
fixes #19078 [backport] ( #19090 )
...
(cherry picked from commit 9d51197aa4 )
2021-11-03 15:06:53 +01:00
haxscramper
a6e192f020
[FIX] Do not break formatted string line ( #19085 ) [backport]
...
Otherwise, compiler produces broken error message - `$1` is not interpolated
`Error: The $1 type doesn't have a default value. The following fields must be initialized: importGraph.`
(cherry picked from commit 4c510d5577 )
2021-11-03 15:06:40 +01:00
flywind
233c6e9fb3
fix #18410 (Errors initializing an object of RootObj with the C++ backend) [backport] ( #18836 )
...
* fix #18410
* one line comment
* typo
* typo
* cover cpp
(cherry picked from commit 2f730afe9e )
2021-11-03 15:06:31 +01:00
Derek 呆
97286db546
fix #18971 ( #19070 ) [backport:1.6]
...
since the example code return value from global variable, instead
of first argument, the `n.len` is 1 which causes compiler crashes.
(cherry picked from commit f755e452d2 )
2021-11-03 15:06:24 +01:00
Andreas Rumpf
b18b636ea6
use two underscores for easy demangling [backport:1.6] ( #19028 )
...
(cherry picked from commit 1a45da9150 )
2021-10-27 11:06:42 +02:00
Etan Kissling
861b625a66
allow converting static vars to openArray ( #19047 )
...
When assigning constant output to a seq, and then passing that static
seq to other functions that take `openArray`, the compiler may end up
producing errors, as it does not know how to convert `static[seq[T]]`
to `openArray[T]`. By ignoring the `static` wrapper on the type for
the purpose of determining data memory location and length, this gets
resolved cleanly. Unfortunately, it is relatively tricky to come up
with a minimal example, as there are followup problems from the failing
conversion, e.g., this may lead to `internal error: inconsistent
environment type`, instead of the relevant `openArrayLoc` error message.
(cherry picked from commit 490c4226a5 )
2021-10-27 11:03:22 +02:00
Jason Beetham
f0af4a36b9
Added setGlobalValue to VM api ( #19007 )
2021-10-17 16:24:43 +02:00
Timothee Cour
f77dea01fd
define nimVersion automatically and avoid needing -d:nimVersion140 ( #18726 )
...
* define `nimVersion` and avoid needing -d:nimVersion140
* fix changelog
2021-10-17 08:37:52 +02:00
flywind
73330711a3
make choosenim work on windows [backport] ( #18993 )
2021-10-14 23:55:05 +08:00
flywind
3493783d0f
test whether it is unnecessary ( #18893 )
2021-10-14 09:23:36 +02:00
flywind
2ac3ba713b
fix #18985 ( #18988 )
2021-10-13 14:57:25 +02:00
林亦恩
e645be4d0c
add ghci like type annotation buildEchoStmt (1049) ( #18875 )
...
* add ghci like type annotation buildEchoStmt (1049)
* Update compiler/semexprs.nim
* Update compiler/semexprs.nim
Co-authored-by: flywind <xzsflywind@gmail.com >
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
Co-authored-by: flywind <xzsflywind@gmail.com >
2021-10-13 11:35:47 +02:00
Dominik Picheta
2aa97a228a
Removes deprecated {.injectStmt.}. Fixes #18666 ( #18984 )
2021-10-13 11:09:45 +02:00
Juan Carlos
0ae2d1ea88
Improve error message when NodeJS is not installed and 'nim js -r' is run ( #18978 )
2021-10-12 15:41:30 +02:00
Andreas Rumpf
6f15af41a7
fixes a regression caused by overloadable enums even though they're opt-in ( #18970 )
2021-10-07 15:07:24 +02:00
Andreas Rumpf
8eef557157
fixes a 'mixin' statement handling regression [backport:1.2] ( #18968 )
2021-10-07 12:01:06 +02:00
flywind
677969f6ea
alternative to #18918 ( #18927 )
...
* fix #16558
* add testcase
2021-09-30 16:57:06 +02:00
Jason Beetham
f915b3aa86
Alternative to #18928 ( #18931 )
...
* fixed #18841
* Added test
2021-09-30 16:55:43 +02:00
Andreas Rumpf
c38ab3e257
fixes #18921 [backport] ( #18930 )
2021-09-30 12:09:42 +02:00