Commit Graph

152 Commits

Author SHA1 Message Date
Andreas Rumpf
70e94b8c9e GCs: use add instead of & 2017-09-29 11:20:28 +02:00
Andreas Rumpf
f7f3a25be8 first steps of making 'opt' a first class type for Nim 2017-09-25 13:19:36 +02:00
Andreas Rumpf
88b65ea957 fixes #6234 2017-08-11 20:14:44 +02:00
Andreas Rumpf
e968fbb7dd added system.deallocHeap feature for Nim's native GCs 2017-07-22 11:38:47 +02:00
Andreas Rumpf
6f89323385 make the GCs more robust 2017-07-20 18:42:08 +02:00
Yuriy Glukhov
27c8efda9d decTypeSize on growObj (#5465) 2017-03-15 10:58:34 +01:00
Samantha Marshall
93753926f5 adding support for using llvm ASAN (#5536) 2017-03-14 23:33:56 +01:00
Rokas Kupstys
f80ddbbcc6 Use constant nimCoroutines instead of defined(nimCoroutines)
Variable
2017-02-20 17:24:19 +02:00
Rokas Kupstys
9f8863169a Cleanup of gc code
Cleanups
2017-02-20 17:24:19 +02:00
Rokas Kupstys
d69b701dde Coroutines realtime support 2017-02-20 17:24:19 +02:00
Rokas Kupstys
c3d1b732d6 Reworked gc support for coroutines. Nim now bootstraps with -d:nimCoroutines
Added gc test to coro.nim
Lots of misc improvements and comments in coro.nim
2017-02-20 17:24:19 +02:00
Rokas Kupstys
ff1bf74554 Delete fiber context when it exits (memleak fix)
Few correctness changes to gc stack management.
2017-02-20 17:24:19 +02:00
Rokas Kupstys
373e667dbc Coroutine rework.
* 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.
2017-02-20 17:24:19 +02:00
Araq
346ea6d171 system.nim: don't use deprecated symbols/constructs 2017-02-08 14:55:30 +01:00
Araq
79f4b37d3b added test case; threadex example crashes now 2017-01-30 21:11:37 +01:00
Andreas Rumpf
03916fa3b1 M&S GC gets the heap dump feature 2017-01-15 10:12:28 +01:00
Andreas Rumpf
823fbd4e40 default GC can do a sort of heap dump via -d:nimTypeNames and dumpNumberOfInstances() 2017-01-14 04:00:06 +01:00
Andreas Rumpf
36a9703866 Merge branch 'devel' into sighashes 2016-12-06 10:08:38 +01:00
Yuriy Glukhov
44ff8baf2a Show cell type name in writeCell 2016-12-06 00:31:26 +02:00
Araq
d2cbf7f242 more fixes 2016-12-02 08:37:51 +01:00
Araq
49667798eb further progress; more tests are green 2016-11-28 21:45:29 +01:00
Andreas Rumpf
d2d851a1f3 Merge pull request #4878 from yglukhov/gc-frameinfo
Cosmetics
2016-11-28 10:31:06 +01:00
Andreas Rumpf
249fd5e56b further memtracking improvements 2016-11-24 08:27:19 +01:00
Yuriy Glukhov
d857b4bc0e DRY frame info setting out to a template. 2016-11-03 19:16:10 +02:00
Araq
6a1b8e691f fixes #4764, fixes #4731, fixes #4724 2016-09-14 19:59:32 +02:00
Jacek Sieka
b3846124e6 clean up a few stray c_stdout's in gc debug code 2016-07-31 08:34:42 +08:00
Yuriy Glukhov
59d17cb341 Fixed crash with leakDetector and threads enabled. 2016-07-11 16:23:15 +03:00
Jacek Sieka
64b0485207 fix types of ansi_c/sysio to more closely match C ABI
also fixes some instances of using C library functions when there are
nim alternatives available
2016-06-05 12:03:20 +08:00
Andreas Rumpf
55ec99b70b new GC listens to GC_ref/GC_unref 2016-05-23 12:54:01 +02:00
Andreas Rumpf
dcf830bba9 fixes #3184 2016-05-22 14:28:53 +02:00
Andreas Rumpf
7e134b5388 fixes #3793 2016-05-16 15:29:51 +02:00
Andreas Rumpf
d8bce8b83d GC with primitive MS 2016-05-16 00:28:00 +02:00
Ruslan Mustakov
0dc35b7841 Replaced ignoreStackAndRegisters with stackSize in GC_step 2016-05-11 20:02:12 +06:00
Ruslan Mustakov
f288eb7543 Added ignoreStackAndRegisters parameter to GC_step 2016-05-10 21:52:44 +06:00
Andreas Rumpf
ad7e219117 GCs support ForeignCells 2016-03-05 19:59:15 +01:00
Andreas Rumpf
fb149d2eef fixes #1895 2016-01-30 14:23:03 +01:00
def
4e0f8cf595 Use ByteAddress instead of deprecated TAddress 2016-01-24 14:02:20 +01:00
Araq
d7433d02bc fixes typo 2015-12-01 00:53:30 +01:00
Araq
999c107c52 fixes #3245 2015-08-25 15:13:39 +02:00
rku
43bfda057b Coroutine support for i386/amd64 platforms unix/windows OSes markAndSweep/refCounting GCs. 2015-07-31 17:59:50 +03:00
pdw
2ca90a20a1 lib/system/g-w - Dropped 'T' from types 2015-06-04 13:18:37 +02:00
Reimer Behrends
2a08bbdf31 Fix GC scanning of registers on x86_64 architectures.
It is possible for jmp_buf to not be word-aligned or addresses
in the register dump to not be word-aligned. This can result in
either addresses in registers being missed or even addresses on
the stack past the register area not being scanned properly.
2015-05-07 14:35:39 +02:00
def
573fa9b891 Clean up GCs a bit 2015-03-10 15:31:55 +01:00
Araq
ee57bb3e3e fixes --gc:none regression; made some tests green 2015-03-10 12:32:47 +01:00
Araq
c40aac8e20 GC: get rid of pathological behaviour for stack marking 2015-03-08 13:08:19 +01:00
def
d875951124 sizeof(char) is always 1 2015-03-04 03:22:06 +01:00
Federico Ceratto
657dca5c3b Fix typos 2015-02-15 16:20:32 +00:00
Araq
683b82a2ec fixes #2070 2015-02-10 20:19:44 +01:00
def
dfdd84f2c9 Make ESTP compile 2015-01-23 23:18:20 +01:00
Araq
7524610b31 fixes #1796 2015-01-05 02:27:24 +01:00