summary refs log tree commit diff stats
path: root/lib/system/alloc.nim
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* added test case; threadex example crashes nowAraq2017-01-301-1/+5
|
* fixes #5301Araq2017-01-301-40/+55
|
* improvements to memtrackingAndreas Rumpf2017-01-261-1/+7
|
* memory allocator hotfix: do not allocate tremendous amounts of memoryAndreas Rumpf2017-01-131-11/+13
|
* disable new alloctor behaviour for emscriptenAndreas Rumpf2016-12-271-4/+5
|
* fixes #4818Araq2016-12-181-2/+22
|
* further memtracking improvementsAndreas Rumpf2016-11-241-0/+6
|
* bugfix: bottom of AVL tree is now threadsafeAndreas Rumpf2016-09-241-2/+2
|
* clean up a few stray c_stdout's in gc debug codeJacek Sieka2016-07-311-3/+3
|
* fix types of ansi_c/sysio to more closely match C ABIJacek Sieka2016-06-051-2/+2
| | | | | also fixes some instances of using C library functions when there are nim alternatives available