Araq
d7543ed125
make nimsuggest compile again
2025-11-11 11:46:14 +01:00
Araq
820a51ee6d
stupid typo
2025-11-11 10:55:30 +01:00
araq
13d30b9341
progress
2025-11-11 10:51:02 +01:00
Araq
16480c4d02
experiment: big refactoring
2025-11-11 07:32:37 +01:00
araq
1ab4f1fe19
make explicit
2025-11-10 13:53:26 +01:00
Araq
908c4e41f4
progress
2025-11-09 19:21:09 +01:00
Araq
eb53434429
make CI happy
2025-11-09 17:28:18 +01:00
araq
a9bc2133fd
progress
2025-11-09 15:35:32 +01:00
araq
7cb0676bf0
progress
2025-11-09 11:40:26 +01:00
araq
cf4ac37643
progress
2025-11-09 09:50:11 +01:00
araq
44f3dcc9a3
wip
2025-11-08 23:42:04 +01:00
araq
2cb1c539e0
wip
2025-11-08 15:51:55 +01:00
araq
e173a6a7b5
added TLoc writing
2025-11-08 09:04:37 +01:00
araq
0bf8bbfd9f
progress
2025-11-08 08:52:19 +01:00
araq
940ce87c73
prepare for dependency tracking
2025-11-08 07:42:26 +01:00
Araq
e6a1c14d91
progress
2025-11-07 23:35:45 +01:00
araq
b4c942c4cd
wip
2025-11-07 21:27:08 +01:00
Andreas Rumpf
dc2fb81d9d
Merge branch 'devel' into demotomohiro-add-ast2nif2
2025-11-07 17:16:32 +01:00
araq
6a2f4d29c4
wip
2025-11-07 15:52:00 +01:00
Andreas Rumpf
a866bf2a39
VM: optimize 'return' slots; saves millions of node allocations for N… ( #25266 )
...
…imbus
2025-11-07 13:53:24 +01:00
ringabout
6d3254a86f
fixes #25251 ; SIGBUS with iterator over const Table lookup - premature temporary destruction ( #25255 )
...
fixes #25251
enforce a copy if the arg is a deref of a lent pointer since the arg
could be a temporary that will go out of scope
2025-11-07 13:53:24 +01:00
ringabout
116c220e3f
fixes #25263 ; provides a new switch mangle:nim/cpp for debug name mangling ( #25264 )
...
fixes #25263
- [x] documentation and changelogs
2025-11-07 13:53:24 +01:00
metagn
839cbeb371
js: replace push.apply with for loop for string add [backport] ( #25267 )
...
While `a.push.apply(a, b)` is better for performance than the previous
`a = a.concat(b)` due to the fact that it doesn't create a new array,
there is a pretty big problem with it: depending on the JS engine, if
the second array is too long, it can [cause a
crash](https://tanaikech.github.io/2020/04/20/limitation-of-array.prototype.push.apply-under-v8-for-google-apps-script/ )
due to the function `push` taking too many arguments. This has
unfortunately been what the codegen produces since 1.4.0 (commit
707367e1ca ).
So string addition is now moved to a compilerproc that just uses a `for`
loop. From what I can tell this is the most compatible and the fastest.
Only potential problem compared to `concat` etc is with aliasing, i.e.
adding an array to itself, but I'm guessing it's enough that the length
from before the iteration is used, since it can only grow. The test
checks for aliased nim strings but I don't know if there's an extra
protection for them.
2025-11-07 20:19:50 +08:00
Andreas Rumpf
809662a228
VM: optimize 'return' slots; saves millions of node allocations for N… ( #25266 )
...
…imbus
2025-11-07 11:05:13 +01:00
ringabout
6f73094263
fixes #25251 ; SIGBUS with iterator over const Table lookup - premature temporary destruction ( #25255 )
...
fixes #25251
enforce a copy if the arg is a deref of a lent pointer since the arg
could be a temporary that will go out of scope
2025-11-07 10:06:05 +01:00
ringabout
1d08c4e241
fixes #25263 ; provides a new switch mangle:nim/cpp for debug name mangling ( #25264 )
...
fixes #25263
- [x] documentation and changelogs
2025-11-06 16:41:13 +01:00
demotomohiro
43ff7b1dc4
loads modules imported by system module and create module sym before decode
2025-11-06 04:50:21 +09:00
demotomohiro
54aa552fb6
refers imported symbols like Nimony
2025-11-06 04:50:21 +09:00
demotomohiro
ab13900fad
saves/loads PSym.ast, constraint and instantiatedFrom
2025-11-06 04:50:21 +09:00
demotomohiro
f3178e4515
saves/loads flags of nkIdent node
2025-11-06 04:50:21 +09:00
demotomohiro
9f73412e93
saves/loads float Inf, NaN and NegInf literals
2025-11-06 04:50:21 +09:00
demotomohiro
91db9ac8f5
uses ItemId instead of PSym or PType for the set of decoded syms and types
2025-11-06 04:50:21 +09:00
demotomohiro
3c599ed7db
adds expression test code
2025-11-06 04:50:20 +09:00
demotomohiro
66d7a8e0b4
adds generics test code and fixes bug
2025-11-06 04:50:20 +09:00
demotomohiro
6a74316c0e
fixes assertion defect when encoding empty object type definition
2025-11-06 04:50:20 +09:00
demotomohiro
b50c453b14
adds procedure test code and fix bugs
2025-11-06 04:50:19 +09:00
demotomohiro
6f237be686
saves/loads symbol magic, options and offset
2025-11-06 04:50:19 +09:00
demotomohiro
8a4d921d6b
saves/loads PNode and PSym line info
2025-11-06 04:50:19 +09:00
demotomohiro
51eccea910
saves/loads PSym guard, bitsize and alignment
2025-11-06 04:50:19 +09:00
demotomohiro
5eeede3a43
uses PSym.item and PType.item as id in NIF
2025-11-06 04:50:19 +09:00
demotomohiro
25ca7ccc79
encodes/decodes itemId.module
2025-11-06 04:50:19 +09:00
demotomohiro
e9127b2567
adds Nim's AST to/from NIF
2025-11-06 04:50:19 +09:00
Andreas Rumpf
cfefd1d95b
produces vastly better error messages for implicit --import and --inc… ( #25258 )
...
…lude configuration options
2025-11-04 17:54:23 +01:00
ringabout
d54b5f3ae1
fixes #25252 ; Unexpected ambiguous call with fields over object with default fields ( #25256 )
...
fixes #25252
2025-11-04 20:08:07 +08:00
Yuriy Glukhov
99a222d63d
Respect noinit for generic types ( #25250 )
2025-10-31 16:59:24 +01:00
Yuriy Glukhov
7af4e3eefd
Fixes #25202 ( #25244 )
2025-10-28 12:48:22 +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
b8ce11dd9d
fixes #25027 ; nim doc uses doc comment from private field for public field ( #25239 )
...
fixes #25027
2025-10-23 19:19:27 +02:00
Ryan McConnell
544c26c0b8
add srcDir variable to nim.cfg ( #24919 )
...
There might be a way to do this but I couldn't find anything about it.
This is a very simple thing that goes a long way in certain situations.
Trying to avoid needing to switch to nimscript just to get:
```nim
# config.nims
import os
let srcDir = currentSourcePath.parentDir()
switch("define", &"ProjPath:\"{srcDir}\"")
```
with this change just needs:
```
# nim.cfg
d %= "ProjPath=$srcDir"
```
2025-10-23 09:05:05 +02:00
ringabout
c449c72498
fixes #25236 ; broken assignment hooks of union inside variant object in orc ( #25238 )
...
fixes #25236
2025-10-21 16:59:22 +02:00