Alexander Kernozhitsky
3788aa0a99
[backport] fixes #23748 ; do not skip materializing temporaries for proc arguments ( #23769 )
...
fixes #23748
(cherry picked from commit 4202b606b1 )
2024-06-30 18:54:32 +02:00
narimiran
51723bace8
getTemp has a different signature in Nim 2.0.x
2024-06-29 13:03:12 +02:00
ringabout
d259099ef0
fixes #23759 ; rework move for refc ( #23764 )
...
fixes #23759
(cherry picked from commit 56ed4e0bb9 )
2024-06-29 12:38:52 +02:00
ringabout
eaa8c7ca7a
fixes #23422 ; card regression ( #23437 )
...
fixes #23422
ref https://github.com/nim-lang/Nim/issues/20997
https://github.com/nim-lang/Nim/pull/21165
The function `cardSet` is used for large sets that are stored in the
form of arrays. It shouldn't be passed as a pointer
(cherry picked from commit 4b6a9e4add )
2024-05-21 18:35:04 +02:00
ringabout
fa78d937dc
fixes #22597 ; avoid side effects for call returning openArray types ( #23257 )
...
fixes #22597
```nim
proc autoToOpenArray*[T](s: Slice[T]): openArray[T] =
echo "here twice"
result = toOpenArray(s.p, s.first, s.last)
```
For functions returning openarray types, `fixupCall` creates a temporary
variable to store the return value: `let tmp = autoToOpenArray()`. But
`genOpenArrayConv` cannot handle openarray assignements with side
effects. It should have stored the right part of the assignment first
instead of calling the right part twice.
(cherry picked from commit d44b0b1869 )
2024-04-27 20:00:30 +02:00
narimiran
33817f2c30
Revert "fixes #22923 ; fixes =dup issues ( #23182 )"
...
This reverts commit fbb9ce4d5c .
2024-04-23 06:57:09 +02:00
ringabout
fbb9ce4d5c
fixes #22923 ; fixes =dup issues ( #23182 )
...
fixes #22923
(cherry picked from commit 29ac3c9986 )
2024-04-20 09:44:29 +02:00
Amjad Ben Hedhili
12f2c36aca
Make newSeqOfCap not initialize memory. ( #21842 )
...
It's used in `newSeqUninitialized`.
---------
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
(cherry picked from commit 8853fb0775 )
2024-04-17 15:53:16 +02:00
ringabout
6f00b46c4b
fixes move sideeffects issues [backport] ( #22439 )
...
* fixes move sideeffects issues [backport]
* fix openarray
* fixes openarray
(cherry picked from commit faf1c91e6a )
2024-04-17 12:39:44 +02:00
ringabout
09109c55c9
clean up gc:arc or gc:orc in docs and in error messages ( #22408 )
...
* clean up gc:arc/orc in docs
* in error messages
(cherry picked from commit 10a6e4c236 )
2024-04-17 10:54:56 +02:00
ringabout
57658b685c
fixes regression #23280 ; Operations on inline toOpenArray len return a wrong result ( #23285 )
...
fixes #23280
(cherry picked from commit 4b67cccf50 )
2024-02-07 20:25:45 +01:00
ringabout
b477c2adcc
fixes #17197 ; fixes #22560 ; fixes the dest of newSeqOfCap in refc ( #22594 )
...
(cherry picked from commit 5bd1afc3f9 )
2023-09-18 12:12:59 +02:00
Andreas Rumpf
1080f5eba2
produce better code for object constructions and 'result' [backport] ( #22668 )
...
(cherry picked from commit 8f5b90f886 )
2023-09-14 06:02:30 +02:00
ringabout
f0f3904ff0
implement ensureMove ( #22339 )
...
* implement `ensureMove`
* use an additional flag
* improve some logics
* progress: fixes discard ensureMove
* forbids nested expressions
* improve error messages
* checkpoint
* fixes cursor
* ADD MORE TESTS
* fixes cursorinference again
* tiny cleanup
* improve error messages
* fixes docs
* implement comments add more tests
* fixes js
2023-07-29 10:57:03 +02:00
ringabout
7d9fe106ec
fixes #22268 ; fixes move codegen ( #22288 )
2023-07-19 12:57:58 +02:00
Andreas Rumpf
a15db5d60b
fixes #22175 ( #22229 )
2023-07-06 15:15:50 +02:00
ringabout
dfa0d2569e
alternative to #22219 ; adds a pointer wrapper for T destructor ( #22225 )
...
* alternative to #22219 ; adds a pointer wrapper for T destructor
* clean up and add comments
* Update compiler/ccgtypes.nim
* tidy up
* fixes comments
* fixes cpp
* fixes cpp
2023-07-06 11:14:42 +02:00
ringabout
d139d99946
fixes #19101 ; zero initialization union casts ( #22185 )
...
* zero initialization union casts
* cleans up and adds a test case for #19101
* uses nimZeroMem
2023-06-29 10:51:18 +02:00
Andreas Rumpf
e8d0f1c3ae
fixes #16331 ; aliasing of tuple construction within a single assignme… ( #22113 )
...
* fixes #16331 ; aliasing of tuple construction within a single assignment, great coding style
* added test case
2023-06-16 20:59:59 +02:00
ringabout
edb64bcff4
fixes explicit deref block ( #22093 )
...
fixes explicit deref
2023-06-15 09:56:58 +02:00
ringabout
64b27edd3a
make move use =wasMoved internally ( #22032 )
...
* make `move` use `=wasMoved` internally
* fixes tests
* fixes spawn finally
* fixes views
* rename to internalMove
* add a test case
2023-06-09 15:53:12 +02:00
ringabout
1133f20fe2
lift the =dup hook ( #21903 )
...
* fixes tests again
* remove helper functions
* fixes closures, owned refs
* final cleanup
2023-06-02 16:03:32 +02:00
ringabout
108410ac34
fixes fieldDefect loses enum type info in ORC; consistent with VM and refc ( #21954 )
...
fixes fieldDefect loses enum type info in ORC
2023-05-29 14:59:59 +02:00
heterodoxic
af3fd5a010
fixes #15428 by updating deep open array copy codegen ( #21935 )
...
* fix #15428
* add test
2023-05-27 15:27:42 +02:00
heterodoxic
6128ef53c5
fix #10964 by honoring pointer deref syntax if a reified openarray is used to get an array's length ( #21925 )
...
* fix #10964
* add test
2023-05-27 06:54:41 +02:00
Juan M Gómez
44f059c75e
implements allow byref to work in params #21873 ( #21875 )
2023-05-21 00:19:09 +02:00
Juan M Gómez
a852b2e9cf
refactor gettypedesc so it accepts its own kind instead of symkind ( #21867 )
2023-05-19 21:31:57 +02:00
heterodoxic
cf1ab2a30b
fix #21848 ( #21852 )
2023-05-15 21:16:49 +02:00
ringabout
71dc929ad7
bring #21802 back; fixes #21753 [backport] ( #21815 )
...
* bring #21802 back; fixes #21753 [backport]
* adds tests and multiple fixes
* add test cases
* refactor and remove startId
* fixes custom hooks and adds tests
* handle tyUncheckedArray better
2023-05-11 10:29:11 +02:00
ringabout
4533e894ad
adds an experimental mm:atomicArc switch ( #21798 )
2023-05-08 16:25:47 +02:00
ringabout
b562e1e6d8
implement =dup hook eliminating wasMoved and =copy pairs ( #21586 )
...
* import `=dup` hook eliminating `wasMoved` and `=copy` pairs
* add dup
* add a test for dup
* fixes documentation
* fixes signature
* resolve comments
* fixes tests
* fixes tests
* clean up
2023-05-06 21:36:57 +02:00
heterodoxic
a929e513fa
amends #21690 to fix broken Nim to C++ source line mappings ( #21784 )
...
resync fork
2023-05-04 20:09:53 +08:00
heterodoxic
91abf35442
improve C/C++ debug output readability (1/N) ( #21690 )
...
* hacky attempt to reconcile default explicit constructors with enforcement of brace initialization, instead of memsetting imported objects to 0
* improve C/C++ debug output readability (1/N)
2023-04-28 10:30:16 +02:00
ringabout
9cb06d357e
fixes #21540 ; deref block at transf phase to make injectdestructors function properly ( #21688 )
...
* fixes #21540 ; deref block at transf phase to make injectdestructors function properly
* add a test case
* add one more test
* fixes the type of block
* transform block
2023-04-19 11:55:54 +02:00
ringabout
1ed54b7718
fixes #21632 ; enforce deref for wasMoved in ORC ( #21647 )
...
fixes #21632 ; enforce deref for `wasMoved`
2023-04-12 10:45:45 +02:00
tersec
51ced0d684
remove seq[T] setLen undefined behavior ( #21582 )
...
remove seq[T] setLen UB
2023-03-29 12:00:00 +02:00
ringabout
38d299dfc0
fixes #20139 ; hash types based on its path relative to its package path ( #21274 ) [backport:1.6]
...
* fixes #20139 ; hash types based on its path relative its project
* add a test case
* fixes procs
* better implementation and test case
---------
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2023-03-02 09:16:28 +01:00
Andreas Rumpf
50baf21eac
fixes #20422 ; emit nimPrepareStrMutationV2 for toOpenArray to keep th… ( #21459 )
...
fixes #20422 ; emit nimPrepareStrMutationV2 for toOpenArray to keep the abstraction of mutable strings which have immutable string literals
2023-03-02 08:36:02 +01:00
Andreas Rumpf
9fb4c2b3c7
fixes #21333 ; bad codegen for the at operator; [backport:1.6] ( #21344 )
2023-02-08 20:55:01 +01:00
Bung
c598d0b6ec
fix #15117 zero size array cause incorrect codegen for VCC compiler ( #21197 )
...
fix #15117
2022-12-30 00:50:12 +01:00
Bung
7a74c2dc3a
fix #14667 ( #21190 )
2022-12-28 08:28:48 +01:00
Bung
0b319fee3d
fix #20997 calling system.card[T](x: set[T]) with T of int8 or uint8 … ( #21010 )
...
* fix #20997 calling system.card[T](x: set[T]) with T of int8 or uint8 uses mismatched C array sizes
* fullfil set variant
2022-12-23 12:20:25 +01:00
ringabout
07be1791ba
fix #21045 ; getTime with vmopsDanger is broken; alternative to #21054 ( #21056 )
...
* fix #21045 getTime with vmopsDanger is broken; alternative to #21054
* typo
2022-12-10 18:57:19 +01:00
ringabout
b83bd282dc
fixes #20954 ; bounchecks for len(toOpenArray()) [backport] ( #20956 )
...
* bounchecks for len(toOpenArray())
* add a testcase
2022-12-05 22:27:18 +01:00
Andreas Rumpf
165d523edf
Revert "fixes #20699 ; generate an empty struct for void type" ( #20806 )
...
* Revert "fixes #20699 ; generate an empty struct for void type (#20790 )"
This reverts commit 8fcb9380f0 .
* better fix [backport]
2022-11-12 22:56:40 +01:00
tersec
6894a00409
reduce openArray-related C undefined behavior ( #20795 )
2022-11-09 18:08:44 +01:00
ringabout
7d15fdd375
implements display based subtype checking (6.4x faster without threads; 2.8x faster with threads) ( #20781 )
...
* WIP: fast 'of' operator based on the literature
* implement display based subtype checking
Co-authored-by: Araq <rumpf_a@web.de >
2022-11-08 13:08:01 +01:00
Bung
ecc8f61fe4
Fix #18079 Illegal storage access compiling call with nested ref/deref ( #20738 )
...
* add test case
* refactoring transformAddrDeref and fix #18079
* fix jsgen
2022-11-04 09:54:45 +01:00
Andreas Rumpf
81087c949f
fixes #20572 ( #20585 )
...
* fixes #20572
* added a test case
2022-10-17 23:48:51 +02:00
ringabout
f89ba2c951
add default field support for object in ARC/ORC ( #20480 )
...
* fresh start
* add cpp target
* add result support
* add nimPreviewRangeDefault
* reduce
* use orc
* refactor common parts
* add tuple support
* add testcase for tuple
* cleanup; fixes nimsuggest tests
* there is something wrong with cpp
* remove
* add support for seqs
* fixes style
* addd initial distinct support
* remove links
* typo
* fixes tuple defaults
* add rangedefault
* add cpp support
* fixes one more bugs
* add more hasDefaults
* fixes ordinal types
* add testcase for #16744
* add testcase for #3608
* fixes docgen
* small fix
* recursive
* fixes
* cleanup and remove tuple support
* fixes nimsuggest
* fixes generics procs
* refactor
* increases timeout
* refactor hasDefault
* zero default; disable i386
* add tuples back
* fixes bugs
* fixes tuple
* add more tests
* fix one more bug regarding tuples
* more tests and cleanup
* remove messy distinct types which must be initialized by original types
* add tests
* fixes zero default
* fixes grammar
* fixes tests
* fixes tests
* fixes tests
* fixes comments
* fixes and add testcase
* undo default values for results
Co-authored-by: flywind <43030857+xflywind@users.noreply.github.com >
2022-10-04 12:45:10 +02:00