summary refs log tree commit diff stats
path: root/lib/system/gc_common.nim
Commit message (Collapse)AuthorAgeFilesLines
* Iterator over heap instances (#8548)Emery Hemingway2018-08-071-8/+14
| | | | | Provide "dumpHeapInstances" for iterating over type statistics of heaps. This can be used to present structured heap information as an alternative to "dumpNumberOfInstances".
* Implements alloc/dealloc counters for better leak debugging. (#8384)Dominik Picheta2018-07-211-0/+3
|
* gc_common: minor reformatingAndreas Rumpf2018-07-011-2/+2
|
* Expose GC_setStackBottom (#7885)Yuriy Glukhov2018-06-041-2/+2
|
* GC: also report total GC'ed heap size ignoring losses due to fragmentationAndreas Rumpf2018-01-211-1/+3
|
* GC: fixes size computation for leak detectionAndreas Rumpf2018-01-211-4/+4
|
* GC add 'string' to dumpNumberOfInstancesAndreas Rumpf2018-01-211-0/+5
|
* fixes size computations for 'dumpNumberOfInstances'Andreas Rumpf2018-01-191-1/+1
|
* leak detector: sort type based entries by total used bytesAndreas Rumpf2018-01-181-2/+28
|
* GC: enable precise global/thread local storage tracingAraq2018-01-151-0/+1
|
* GC improvements; distinguish between thread local and globals in the marking ↵Araq2018-01-141-0/+24
| | | | step
* make gc:v2 compile againAndreas Rumpf2017-09-221-5/+15
|
* added system.deallocHeap feature for Nim's native GCsAndreas Rumpf2017-07-221-0/+32
|
* added logic to the M&S GC to detect logical leaksAraq2017-06-161-0/+7
|
* Fixed compilation error (#5462)Yuriy Glukhov2017-03-021-3/+0
|
* Use constant nimCoroutines instead of defined(nimCoroutines)Rokas Kupstys2017-02-201-5/+5
| | | | Variable
* Cleanup of gc codeRokas Kupstys2017-02-201-146/+133
| | | | Cleanups
* Reworked gc support for coroutines. Nim now bootstraps with -d:nimCoroutinesRokas Kupstys2017-02-201-97/+97
| | | | | Added gc test to coro.nim Lots of misc improvements and comments in coro.nim
* Delete fiber context when it exits (memleak fix)Rokas Kupstys2017-02-201-2/+18
| | | | Few correctness changes to gc stack management.
* Coroutine rework.Rokas Kupstys2017-02-201-5/+2
| | | | | | | | | | | | | | | * ucontext backend (default on unix) * setjmp backend * fibers backend (default and required on windows) * Fixed coroutine loop timing issues * Fixed saving of xmm registers on x64 windows * Fixed alignment issues * Updated coroutine sample with cooperative fibonacci calculation. * Disable glibc security features only when platform jump functions are used * Removed dependency on fasm. * Using fiber api on windows. * Other platforms and compilers will use built in assembler and .S files or API provided by platform libc. * Replaced stack switching procs with `coroExecWithStack()` which never returns. This makes compiler always generate proper code.
* Add ``tearDownForeignThreadGc`` function (#5369)Anatoly Galiulin2017-02-131-9/+20
|
* system.nim: don't use deprecated symbols/constructsAraq2017-02-081-5/+5
|
* Mark setupForeignThreadGc and initGC as gcsafe (#5353)Anatoly Galiulin2017-02-081-1/+1
|
* docs for the heap dump featureAndreas Rumpf2017-01-161-0/+1
|
* M&S GC gets the heap dump featureAndreas Rumpf2017-01-151-0/+24
|
* call initAllocator in foreign threadJez Kabanov2016-10-051-0/+1
|
* clean up a few stray c_stdout's in gc debug codeJacek Sieka2016-07-311-3/+3
|
* prepare Nim codebase for upcoming parser changesAndreas Rumpf2016-07-151-2/+2
|
* GCs support ForeignCellsAndreas Rumpf2016-03-051-0/+25
|
* SpellcheckFederico Ceratto2016-02-291-2/+2
|
* Remove system.setupForeignThreadGc if `threads` option is off or TLSAnatoly Galiulin2016-01-281-12/+22
| | | | emulation is enabled
* Use ByteAddress instead of deprecated TAddressdef2016-01-241-4/+4
|
* Change TAddress to ByteAddressAndrey Sobolev2015-09-141-3/+3
|
* Support for GC working in Emscripten environmentAndrey Sobolev2015-09-111-5/+7
| | | | Support for GC working in Emscripten environment
* lib: Trim .nim files trailing whitespaceAdam Strzelecki2015-09-041-2/+2
| | | | via OSX: find . -name '*.nim' -exec sed -i '' -E 's/[[:space:]]+$//' {} +
* Coroutine support for i386/amd64 platforms unix/windows OSes ↵rku2015-07-311-0/+275
markAndSweep/refCounting GCs.
ss="s1">'ignored' elif st in "?": return 'untracked' elif st in "C": return 'conflict' else: return 'unknown' # Action Interface #--------------------------- def action_add(self, filelist=None): """Adds files to the index, preparing for commit""" if filelist != None: self._svn(self.path, ['add'] + filelist) else: self._svn(self.path, ['add']) def action_reset(self, filelist=None): """Equivalent to svn revert""" if filelist == None: filelist = self.data_status_subpaths().keys() self._svn(self.path, ['revert'] + filelist) # Data Interface #--------------------------- def data_status_subpaths(self): """Returns a dict indexed by files not in sync their status as values. Paths are given relative to the root. Strips trailing '/' from dirs.""" raw = self._svn(self.path, ['status'], catchout=True, retbytes=True) # logging.debug(raw) L = re.findall(r'^(.)\s*(.*?)\s*$', raw.decode('utf-8'), re.MULTILINE) ret = {} for st, p in L: # Detect conflict by the existence of .orig files if st == '?' and re.match(r'^.*\.orig\s*$', p): st = 'X' sta = self._svn_file_status(st) ret[os.path.normpath(p.strip())] = sta return ret def data_status_remote(self): """Checks the status of the repo regarding sync state with remote branch. I'm not sure this make sense for SVN so we're just going to return 'sync'""" return 'sync' def data_branch(self): """Returns the current named branch, if this makes sense for the backend. None otherwise""" return None branch = self._svn(self.path, ['branch'], catchout=True) return branch or None def data_info(self, rev=None): """Gets info about the given revision rev""" if rev == None: rev = self.HEAD rev = self._sanitize_rev(rev) if rev == self.HEAD and not self._has_head(): return None logging.debug('refspec is ' + str(rev)) L = self._log(refspec=rev) logging.debug(len(L)) if len(L) == 0: raise VcsError("Revision %s does not exist" % rev) elif len(L) > 1: raise VcsError("More than one instance of revision %s ?!?" % rev) else: return L[0]