summary refs log tree commit diff stats
path: root/lib/system/alloc.nim
Commit message (Collapse)AuthorAgeFilesLines
* remove legacy code (#21134)ringabout2022-12-261-8/+2
| | | | | * remove legacy code * fixes
* fix #12122 (#21096)Bung2022-12-161-35/+35
|
* fixes #21062 (#21068)Andreas Rumpf2022-12-101-2/+3
|
* tyInt tyUint fit target int bit width (#20829)Bung2022-12-011-5/+5
|
* alloc uses atomic operations only when necessary (#20899)ringabout2022-11-231-5/+17
|
* move `system/atomics` out of system; `std/atomics` should be preferred (#20875)ringabout2022-11-221-0/+1
| | | | | | | | | | | | | * move `system/atomics` out of system; `std/atomics` should be preferred * add deprecation message * fixes * fixes * fixes * fixes more tests
* fixes a severe bug of testament (#20832)ringabout2022-11-171-0/+1
| | | | | | | | | | | | | | | | | | | * test azure * use exit 1 * try again * use useSysAssert * disable i386 * use refc for tlsEmulation on i386 * use refc * disable i386 Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
* move threads out of system (#20674)ringabout2022-10-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * move syslocks first * progress * clean up * go on * clean up * clean up * add imports syslocks * remove documentation * public deallocOsPages * fixes genode * fixes more * fixes boehmGC * cover more cases * fixes cyclic deps * fixes genode * cleanup * unpublic fields * cleanup * clean up
* threaded alloc (#20492)Andreas Rumpf2022-10-091-106/+225
| | | | | | | | * allocator: catch up with multi-threading techniques * removed the global thread lock * more atomics for fun and profit * added important sysAssert * stats remain thread local and don't have to be atomic * undo split chunk optimizations in the hope it makes the CI happy
* allocator: disable unnecessary stuff for ORC [backport] (#20489)Andreas Rumpf2022-10-031-95/+44
|
* Freeing critical sections via atexit in system/alloc and system/io (#19062)Tail Wag Games2021-10-291-0/+3
| | | | | | | | | | | | | | | * adding new system module sysexitprocs and including system exit procedures when registering exit handlers defined in userland * fixing failing tests and adding initialization guard to handle cases where the module's global init logic isn't invoked first as is the case with some gc implementaions * js backend shouldn't try to invoke actual system exit procs * fixing formatting in sysexitprocs.nim * 256 was too much - my max number of plugins in my engine is 64 and I require two hooks per runtime it looks like with tls emulation turned off, so for my purposes 128 should be sufficient * so atExit should be enough here, can get rid of all the extra cruft I had added on top since I didn't realize atExit already provided a stack * done being cute - since newruntime prevents correct cpp codegen for object variants apparently and breaks tests if I try to use std/exitprocs, ddSysExitProc is just going into both modules. Since system doesn't include system/io, polluting system with it doesn't make sense either... at least it is only importc'd when it is required in either module and we don't have to have any weird when defined(nimOwnedEnabled) with a comment explaining why
* fixes #18494 (#18783)Andreas Rumpf2021-09-021-8/+34
|
* added `nimAllocPagesViaMalloc` switch (#18490)Andreas Rumpf2021-07-151-1/+2
| | | | | * added switch * alloc.nim needs page aligned memory blocks
* minor cleanups (#17948)Andreas Rumpf2021-05-061-1/+1
|
* fixes #16214 [backport] (#16252)Andreas Rumpf2020-12-041-4/+4
|
* init checks and 'out' parameters (#14521)Andreas Rumpf2020-06-231-1/+2
| | | | | | | | | | | * I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
* forward type alignment information to seqs (#12430)Arne Döring2020-04-191-7/+10
|
* TlSF Alloctor: use less memory for --gc:arc (#13280)Andreas Rumpf2020-01-281-79/+100
|
* Removed lib/system/allocators.nim. seqs_v2 and strs_v2 now uses ↵Ico Doornekamp2020-01-231-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | allocShared0. (#13190) * Cleanup, remove lib/system/allocators.nim. seqs_v2 and strs_v2 now use allocShared0 by default. * Fixed -d:useMalloc allocShared / reallocShared / deallocShared. These now use the alloc/dealloc/realloc implementation that also takes care of zeroing memory at realloc. * Removed debug printfs * Removed unpairedEnvAllocs() from tests/destructor/tnewruntime_misc * More mmdisp cleanups. The shared allocators do not need to zero memory or throw since the regular ones already do that * Introduced realloc0 and reallocShared0, these procs are now used by strs_v2 and seqs_v2. This also allowed the -d:useMalloc allocator to drop the extra header with allocation length. * Moved strs_v2/seqs_v2 'allocated' flag into 'cap' field * Added 'getAllocStats()' to get low level alloc/dealloc counters. Enable with -d:allocStats * *allocShared implementations for boehm and go allocators now depend on the proper *allocImpl procs
* more fixes for --cpu:avr [backport] (#12748)Andreas Rumpf2019-11-271-2/+2
|
* new gensym handling (#11985)Andreas Rumpf2019-08-231-6/+6
| | | | | | | | | | | * new .gensym implementation * make astspec test green again * introduce a --useVersion switch to group compatibility switches * fixes #10180 * fixes #11494 * fixes #11483 * object constructor fields and named parameters are also not gensym'ed * disabled broken package
* styleCheck: make the compiler and large parts of the stdlib compatible with ↵Araq2019-07-101-2/+2
| | | | --styleCheck:error
* Remove immediate pragma (#11308)Arne Döring2019-05-291-2/+1
| | | | | * remove immediate from tests * remove immediate from the compiler
* right shift is now by default sign preserving (#11322)Arne Döring2019-05-291-4/+4
| | | | | | | | | | | * right shift is now by default sign preserving * fix hashString and semfold * enable arithmetic shift right globally for CI * fix typo * remove xxx * use oldShiftRight as flag * apply feedback * add changelog entry
* --newruntime: progressAndreas Rumpf2019-03-141-4/+0
|
* allocators: introduce --define:nimMinHeapPages for tuning mmap calls (omg ↵Andreas Rumpf2019-01-191-3/+3
| | | | they are slow on OSX...)
* Try to let memTracker compile (#8502)Christopher Dunn2018-08-051-5/+5
|
* fixed #7894 (#8496)jcosborn2018-08-011-1/+2
| | | make system tests run properly
* Implements alloc/dealloc counters for better leak debugging. (#8384)Dominik Picheta2018-07-211-0/+13
|
* Don't depend on string.h in codegen (#8299)Yuriy Glukhov2018-07-131-2/+2
|
* fix allocator corruption for large sizes (#7338)jcosborn2018-03-171-36/+45
| | | | | | * fix allocator corruption for large sizes * allow large chunks to coalesce and added test case * use correct constants in MaxBigChunkSize
* make the allocator take a special path for allocations bigger than 2GB; ↵Araq2018-02-271-2/+26
| | | | fixes #7120
* fixes the tracking of 'occupied memory'Andreas Rumpf2018-01-301-6/+96
|
* alloc.nim: Make 'logAlloc' produce a toy Nim program for easier memory tracingAndreas Rumpf2018-01-181-2/+2
|
* GC improvements; distinguish between thread local and globals in the marking ↵Araq2018-01-141-4/+4
| | | | step
* allocator: minor fix for deallocOsPagesAndreas Rumpf2017-12-111-0/+1
|
* make the new allocator workAraq2017-12-071-8/+15
|
* make allocator use the TLSF algorithm; work in progressAraq2017-12-071-30/+127
|
* fixes #3558Araq2017-10-161-7/+8
|
* fixes withRegion for --gc:stackAndreas Rumpf2017-06-191-1/+0
|
* memory manager: use less memory; corruption preventionAndreas Rumpf2017-04-021-59/+47
|
* Fixes #4719. (#5585)Eugene Kabanov2017-03-231-0/+3
|
* hotfix: allocator: don't set origSize to 0Araq2017-03-151-2/+2
|
* make memory tracker work without onThreadCreationAraq2017-03-141-4/+13
|
* introduce nimMaxHeap define to fight memory overcommitAndreas Rumpf2017-02-101-0/+5
|
* system.nim: don't use deprecated symbols/constructsAraq2017-02-081-1/+1
|
* critical realloc bugfix; refs #4818Andreas Rumpf2017-02-031-3/+4
|
* allocator: fixes regression: get alignment right for small objectsAraq2017-01-311-0/+2
|
* make AVL tree node part of the memory regions; fixes hard to reproduce ↵Araq2017-01-311-15/+15
| | | | channel crashes
* fix the racy allocator properlyAndreas Rumpf2017-01-311-1/+1
|