| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Boehm GC only needs interior pointer checking if pointers in global
variables or on the heap point to the interior of an object rather than
the beginning. If this does not happen, then checking for interior
pointers causes additional overhead, in particular because any objects
whose sizes are an exact multiple of two words gain another two words of
padding, wasting memory.
If checking of interior pointers is still desired, this can be achieved
by setting the environment variable GC_ALL_INTERIOR_POINTERS.
Pointers on the stack will always be treated as potential interior
pointers, as compiler optimizations may advance the only live reference
to a point past the beginning of an object.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* add unsetControlCHook to remove a Ctrl-C hook after it was set
Adds the inverse proc to setControlCHook in order to lift a Ctrl-C
hook after it has been set.
* remove check for noSignalHandler in system/excpt.nim
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which leaked implementation detail (#10070)
* add `isNamedTuple`; make $(1, 2) be (1, 2) instead of leaking implementation detail (Field0: 1, Field1: 2)
fixes this: #8670 (comment) /cc @alehander42 @Vindaar @mratsim
* Note: isNamedTuple is useful in other places, eg #10010 (comment)
* move isNamedTuple to helpers.nim to avoid exposing new symbol to system.nim
* remove workaround in tests/vm/tissues.nim failing test now that #10218 was makes it work
|
|
|
| |
thanks @timotheecour for spotting this
|
|
|
|
|
| |
* system: fix nimGC_getStackBottom doc
* system/helpers: avoid leaking docs to system
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
(#9948)
* Give better error message when profiler and memProfiler used at same time
* Move to profiler.nim
|
|\
| |
| |
| |
| |
| | |
* see what breaks with a global config.nims
* make tests green with a global config.nims file
|
| | |
|
|/
|
|
| |
add tests for vmops (#9925)
|
| |
|
| |
|
| |
|
|\
| |
| | |
replace misleading "stack overflow" message when reaching Nim's call depth limit
|
| |
| |
| |
| |
| |
| |
| | |
The new error message looks like this:
"Error: call depth limit reached in a debug build (2000 function calls).
You can change it with -d:nimCallDepthLimit=<int> or switch to a release
build with -d:release."
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add a test for issue #9389
* Fixes #9389.
* Make object contructors copy objects properly by checking whether the expressions passed to them don't need to be copied.
* Make mArrToSeq implementation actually check if a copy needs to be made.
* Avoid unnecessary copy in mChr impl
* Assume set constructor elements need no copy
* Add a test for issue #9410
* Add a test
* fix passing fat pointers (#9410)
* Enhance tests
* More tests and fixes
* Add more (failing) tests [ci skip]
* Added equality operator for fat pointers, more tests and fixes
* Fix printing uninitialized strings
* Fix mInc, mDec double eval, add more tests
* Tests
* Refactored, fixed multiple evals, revamped the tests, added missing ops
* Fix ups
* Fix #9643 and #9644
* add pointer normalization
|
|
|
|
|
|
|
|
|
| |
* gc/gc2: remove unused ref counting stuff
* also removes some false threading support - hasSharedHeap is always
false in gc/gc2
* gc: remove some threading cruft
* remove asgnRefNoCycle
* compiler: remove TLoc.dup (unused)
|
|
|
| |
fixes #9657
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
* Fixes #9434
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
By using `write` instead of `rawWrite` we'd end up asking the compiler
to generate the GC dynlib _while_ we were already generating another
dynlib!
Fixes #9123
|
|
|
|
|
|
|
|
| |
- Go's write barriers are now plugged-in in all the relevant points
- "gcGo" is correctly classified by usesWriteBarrier()
- some gogc structures and functions now use golib wrappers to keep GCC
version-specific conditions out of the compiler/stdlib code
- we no longer allow mixing the C malloc with Go's
- fix a problem with string copying
|
| |
|
|
|
|
|
|
|
| |
Declare the root symbol only once and have the other modules depending
on it emit an `extern` declaration.
Fixes #9013
|
| |
|
| |
|
|\
| |
| | |
Fix hashing for codegenProc (sic) types
|
| |
| |
| |
| |
| |
| |
| | |
Since the name mangling is inhibited we should take the user-supplied
name during the sighash computation.
Fixes #8964
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
The compiler is now smart enough to emit types only if needed without
all the importc tricks. This also fixes a codegen bug where, if all the
stars align correctly, typeinfo doesn't include any definition of
`TNimType` but uses it.
Found by @skilchen in #8938
|
| | |
|
|/ |
|
| |
|
| |
|