Nim/lib
Miran 40093b4a93
[backport:1.2] Avoid inlining of newObj and newObjRC1 calls (#17582)
This is taken from:
af69b3ceae

Full original comment:

This is to avoid heavy inlining happening when two allocation calls
would occur shortly after each other.

This inlining would sometimes be accompanied with an optimisation
as the compiler is able to see that cellToUsr ending the first
allocation call is shortly followed by an usrToCell call. The
pointer arithmetic is redundant and the compiler can eliminate it,
leaving only the cell address in a register (and later the stack)
instead of the actual pointer to the user data, as one would expect.

This combined with a GC collect cycle will cause the stack scan to
only notice the cell address, which is of no good due to a usrToCell
in the gcMark call which shifts that address to an adjacent cell.
This means that the actual cell of importance will not get marked
and thus cause a premature collection of that cell. BOOM.
2021-03-30 10:20:58 +02:00
..
arch/x86 Coroutine rework. 2017-02-20 17:24:19 +02:00
core added nkError to the AST (#17567) 2021-03-29 16:23:19 +02:00
deprecated/pure Replace double backticks with single backticks - Part 2 out of ~6 (#17206) 2021-02-28 23:15:26 -08:00
experimental use single backtick (#17100) 2021-02-18 22:47:21 -08:00
genode use single backtick (#17100) 2021-02-18 22:47:21 -08:00
genode_cpp Native access to Genode environment 2018-06-07 07:21:20 +02:00
impure fix RST parsing when no indent after enum.item (fix #17249) (#17257) 2021-03-12 08:33:21 +01:00
js Improve jsre (#17365) 2021-03-21 10:35:55 +01:00
nintendoswitch Rewrite the memory management code for Nintendo Switch (#8169) 2018-07-05 16:33:15 +02:00
packages/docutils RST: enable parsing of prefix roles (ref #17340) (#17514) 2021-03-29 18:32:49 +02:00
posix remove redundant void return in stdlib (#17464) 2021-03-23 08:28:53 +01:00
pure Fix void async in templates (#17562) 2021-03-30 08:07:45 +02:00
std remove std/ prefix from doc/lib.rst now that canonical import is shown in module docs (#17543) 2021-03-29 13:07:14 +02:00
system [backport:1.2] Avoid inlining of newObj and newObjRC1 calls (#17582) 2021-03-30 10:20:58 +02:00
windows fix #14010(fix std/registry + arc) (#17551) 2021-03-29 10:50:58 +02:00
wrappers Free the certificate after checking in checkCertName (#17558) [backport:1.2] 2021-03-29 10:49:19 +02:00
cycle.h
nimbase.h fix #16752: threadvar now works with importcpp types; osx now uses native TLS (--tlsEmulation:off), which can be orders of magnitude faster (#16750) 2021-01-27 22:35:43 +01:00
nimhcr.nim use single backtick (#17100) 2021-02-18 22:47:21 -08:00
nimhcr.nim.cfg Initial version of the hot-code reloading support for native targets (#10729) 2019-02-26 15:48:55 +01:00
nimrtl.nim use single backtick (#17100) 2021-02-18 22:47:21 -08:00
nimrtl.nim.cfg Initial version of the hot-code reloading support for native targets (#10729) 2019-02-26 15:48:55 +01:00
stdlib.nimble attempt to make the build green again 2017-01-07 02:55:15 +01:00
system.nim [docs]fix #17473 (#17565) 2021-03-29 14:39:49 +02:00
system_overview.rst RST backtick refactor (all *.rst except manual.rst and rst_examples.rst) (#17258) 2021-03-18 20:37:55 -07:00