ringabout
39864980d1
fixes #25446 ; [FieldDefect] with static: discard cast[pointer](default(pointer)) ( #25448 )
...
fixes #25446
supports this since `static: discard cast[pointer](nil)` works
2026-01-22 09:50:25 +01:00
ringabout
130eac2f93
fixes #25008 ; Compiler internal error with static overload ( #25234 )
...
fixes #25008
It seems that `semOverloadedCall` evaluates the same node twice using
`tryConstExpr` in order for `efExplain` to print all the diagnostic
output. The problem is that `tryConstExpr` has side effects, i.e., it
changes the slot index of variables after VM execution.
2025-10-28 11:47:20 +01:00
ringabout
f009ea6c3e
fixes #25208 ; generates a copy for opcLdConst in the assignments ( #25211 )
...
fixes #25208
```nim
type Conf = object
val: int
const defaultConf = Conf(val: 123)
static:
var conf: Conf
conf = defaultConf
```
```nim
# opcLdConst is now always valid. We produce the necessary copy in the
# assignments now:
```
A `opcLdConst` is generated for `defaultConf` in `conf = defaultConf`.
According to the comment above, we need to handle the copy for
assignments of `opcLdConst`
2025-10-16 18:22:06 +02:00
ringabout
9ff0333a4c
fixes #21353 ; fixes default closure in the VM ( #24070 )
...
fixes #21353
```nim
result = newNodeIT(nkTupleConstr, info, t)
result.add(newNodeIT(nkNilLit, info, t))
result.add(newNodeIT(nkNilLit, info, t))
```
The old implementation uses `t` which is the type of the closure
function as its type. It is not correct and generates ((nil, nil), (nil,
nil)) for `default(closures)`. This PR creates `(tyPointer, tyPointer)`
for fake closure types just like what cctypes do.
2024-09-09 11:22:37 +02:00
autumngray
540b414c86
fixes #23925 ; VM generates wrong cast for negative enum values ( #23951 )
...
Follow up of #23927 which solves the build error.
This is still only a partial fix as it doesn't take into account
unordered enums. I'll make a separate issue for those.
---------
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
2024-08-27 14:03:56 +02:00
ringabout
6336d2681b
adds a ubuntu 24.04 matrix with gcc 14 for tests ( #23673 )
...
ref https://forum.nim-lang.org/t/11587
2024-08-20 16:07:11 +02:00
metagn
58813a3b2e
make all generic aliases tyAlias ( #23978 )
...
fixes #23977
The problem is that for *any* body of a generic declaration,
[semstmts](2e4d344b43/compiler/semstmts.nim (L1610-L1611) )
sets the sym of its value to the generic type name, and
[semtypes](2e4d344b43/compiler/semtypes.nim (L2143) )
just directly gives the referenced type *specifically* when the
expression is a generic body. I'm blaming `semtypes` here because it's
responsible for the type given but the exact opposite behavior
specifically written in makes me think generating an alias type here
maybe breaks something.
2024-08-20 11:41:50 +02:00
ringabout
31d7554524
fixes #13481 ; fixes #22708 ; disable using union objects in VM ( #23362 )
...
fixes #13481 ;
fixes #22708
Otherwise it gives implicit results or bad codegen
2024-03-03 15:56:06 +01:00
metagn
3224337550
give typedesc param nodes type T not typedesc[T] [backport:2.0] ( #23115 )
...
fixes https://github.com/nim-lang/Nim/issues/23112 , fixes a mistake in
https://github.com/nim-lang/Nim/pull/22581
This makes `getType(t)` where `t` is a typedesc param with value `T`
equal to `getType(T)`.
2024-01-18 14:50:36 +01:00
metagn
bd6adbcc9d
fix isNil folding for compile time closures ( #22574 )
...
fixes #20543
2023-09-02 10:32:46 +02:00
metagn
2e4e2f8f50
handle typedesc params in VM ( #22581 )
...
* handle typedesc params in VM
fixes #15760
* add test
* fix getType(typedesc) test
2023-08-30 07:23:14 +02:00
metagn
942f846f04
fix getNullValue for cstring in VM, make other VM code aware of nil cstring ( #22527 )
...
* fix getNullValue for cstring in VM
fixes #22524
* very ugly fixes, but fix #15730
* nil cstring len works, more test lines
* fix high
2023-08-21 20:08:00 +02:00
Tomohiro
eb83d20d0d
Add staticFileExists and staticDirExists ( #22278 )
2023-08-18 16:47:47 +02:00
ringabout
31ba1046fc
add a test case for #22190 in case of regression ( #22217 )
2023-07-04 10:58:14 +08:00
ringabout
a8d0dda833
allow addressing elements of openArray[char] in VM ( #22045 )
...
allow addressing elements of openArray[char]
2023-06-08 14:08:49 +02:00
ringabout
eecf12c4b5
fixes #21708 ; skip colons for tuples in VM ( #21850 )
...
* fixes #21708 ; skip colon for tuples in VM
* skip nimnodes
* fixes types
2023-05-17 00:20:40 +02:00
ringabout
0ece98620f
closes #7590 ; add a test case ( #21846 )
2023-05-14 13:59:41 +08:00
metagn
02be212dae
clean up SOME pending/xxx/issue link comments ( #21826 )
...
* clean up SOME pending/xxx/issue link comments
* great
2023-05-11 10:23:52 +02:00
ringabout
a154950570
closes #10108 ; add a test case ( #21770 )
2023-05-03 06:42:32 +02:00
ringabout
b2c1dcbbc9
fixes explicit globals in macros ( #21502 )
2023-03-12 20:03:46 +01:00
ringabout
1b1412f3d1
fixes #10938 ; fixes #13312 ; fixes #13918 ; fixes #20985 ; always initializes global variables with null values in VM ( #21351 )
...
* fixes #10938 ; always initialize global variable in VM
* fixes importc vars
* there is a pre-existing issue regarding closure types in the VM
* add tests
2023-03-01 17:18:09 +01:00
ringabout
4b377b07fc
fixes #19201 ; fixes sink causes crash in VM ( #20658 )
2022-10-25 20:08:36 +02:00
ringabout
5602183234
'lock levels' are deprecated, now a noop ( #20539 )
...
* 'lock levels' are deprecated, now a noop
* fixes tests
2022-10-11 09:17:09 +02:00
ringabout
a132f5502a
closes #12994 ; add testcase ( #20511 )
2022-10-08 00:27:17 +08:00
Andreas Rumpf
f90620fb32
fixes #19198 [backport:1.6] ( #19209 )
...
* fixes #19198 [backport:1.6]
* added a test case
2021-12-04 07:43:20 +01:00
Timothee Cour
5f7db65257
followup #18453 ( #18582 )
2021-07-25 12:55:33 -07:00
Timothee Cour
ad70a65e0e
fix #18310 system.== in vm for NimNode ( #18313 )
...
* fix #18310 == in vm
* fixup
* fixup
2021-06-21 09:46:31 +02:00
flywind
5c12c711f7
follow up #17518 ( #17726 )
2021-04-15 19:25:35 +02:00
flywind
42e895feb1
close #15696 ( #17518 )
2021-03-25 21:20:58 -07:00
Timothee Cour
c17cad0992
close #8015 : const array indexing zeroes data in object variants at runtime ( #16782 )
2021-01-21 11:11:42 +01:00
Timothee Cour
0d0e43469f
fix #14340 ( #16386 )
2021-01-01 22:55:22 +01:00
flywind
6d442a40a6
use doAssert in tests ( #16486 )
2020-12-28 14:13:21 +01:00
Timothee Cour
3bdc000521
[backport] fix #15595 procvar == works in VM ( #15724 )
2020-10-26 22:19:05 +02:00
Timothee Cour
d4c2e2c53f
fix #15704 #15597 wrong VM register was freed ( #15705 )
...
* fix #15704 #15597 wrong VM register was freed
* same treatment for nkCheckedFieldExpr
* note concerning HighRegisterPressure
* bump NimPatch
* Update lib/system.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2020-10-26 09:13:37 +01:00
Timothee Cour
bf894ad3eb
close #8007 ( #15695 )
2020-10-23 23:16:47 +02:00
Danil Yarantsev
d22ab0fb96
Add tests to #15363 ( #15633 )
2020-10-19 13:16:56 +02:00
Timothee Cour
8a5f550491
followup after #15529 and #15534 ( #15536 )
2020-10-10 07:05:27 +02:00
Timothee Cour
8fb57d7451
close #13081 ( #15529 )
...
* close #13081
* fixup
2020-10-09 08:56:09 +02:00
Andreas Rumpf
0b2a3f6f7f
fixes #10886 [backport] ( #10897 )
2019-03-23 14:44:53 +01:00
LemonBoy
9c0e5c4c07
Harmonize the var/let and const handling ( #10410 )
...
Fixes #10333
2019-01-23 11:10:51 +01:00
Araq
3b783f7e13
Testament: refactoring; makes the test joiner green
2018-12-11 21:23:23 +01:00
Arne Döring
2a4c09ff88
megatest can be executed
2018-12-11 21:23:21 +01:00
Randy Smith
6c7abe6e5b
Fixes #9671 ( #9750 )
2018-11-19 09:22:21 +01:00
Miran
749dbce4c6
Merge tests into a larger file (part 5 of ∞) ( #9368 )
...
* merge magics
* merge metatype tests
* merge method tests
* merge objects tests
* change `import future` to `import sugar`
Nim in Action tests are left with `import future`, to ensure compatibility.
* merge overload tests
* merge proc tests
* merge procvar tests
* merge range tests
* merge seq tests
* merge sets tests
* remove wrong assert from `tsets3`
* fix `jsTests`
* better fix
2018-10-16 10:50:10 +02:00
Oscar Nihlgård
7ae9c4358e
Fix vm regression ( #8163 )
2018-06-30 13:38:52 +02:00
Oscar Nihlgård
d146045ed5
Fixes #6689 ( #8135 )
2018-06-30 09:16:46 +02:00
Oscar Nihlgård
ae69e571e1
VM regression fixes ( #8146 )
2018-06-29 16:00:53 +02:00
LemonBoy
f559e62e45
Adjust some tests to make them pass
...
The non-scoped behaviour of static blocks was exploited by those tests,
replace all the variables declared whithin one with compileTime marked
ones.
2018-06-25 15:56:13 +02:00
Oscar Nihlgård
440212a154
Fix for newStringOfCap in VM ( #7901 )
2018-06-04 13:38:26 +02:00
genotrance
c3cc52087f
Added a few useful os calls to VM ( #7440 )
2018-04-12 13:59:14 +02:00