Commit Graph

838 Commits

Author SHA1 Message Date
Eugene Kabanov
254fbcc548 Fixes #4719. (#5585) 2017-03-23 16:13:38 +01:00
Eugene Kabanov
e20af5cec6 Fix #4972. (#5567) 2017-03-19 07:16:13 +01:00
Eugene Kabanov
336a7c9b3f Fixes to support Dragonfly BSD. (#5552)
* Fix kqueue.nim and ansi_c.nim to support dragonfly.
* Fix ioselectors.nim, threads.nim to support dragonfly.
* Fix deprecated dealloc call in tioselectors.nim.
* Fix tfsmonitor.nim test to run only on Linux.
* Fix osproc.nim return wrong exit codes.
* Fix getAppFilename() for dragonfly.
* Fix proper exit code handling.
2017-03-17 08:22:11 +01:00
Araq
518696f3a7 hotfix: allocator: don't set origSize to 0 2017-03-15 17:51:26 +01: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
Araq
98c7bab8ea make memory tracker work without onThreadCreation 2017-03-14 15:45:35 +01:00
Araq
ced38f3fdb udpate channels.nim documentation 2017-03-08 22:56:21 +01:00
Yuriy Glukhov
73387e89a0 Fixed compilation error (#5462) 2017-03-02 14:58:26 +01:00
Federico Ceratto
d5054c3081 Add note about passing channels between threads. 2017-02-27 21:44:44 +00:00
Andreas Rumpf
895e2aea15 Merge pull request #5317 from rokups/feature/coroutines
Coroutine improvements
2017-02-26 23:24:29 +01:00
Araq
4f062c3be0 removed onThreadCreation; onThreadDestruction is now thread local 2017-02-26 20:42:19 +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
9a754156d7 Added support for exceptions in coroutines and added exception test
Fix bug where first coroutine ending would terminate main loop
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
Andreas Rumpf
ba29ca0c63 Merge branch 'devel' into faster-nimsuggest 2017-02-17 10:48:01 +01:00
araq
1811e51ff5 fixes #5392 2017-02-15 22:09:16 +01:00
Anatoly Galiulin
6fa1dba515 Add `tearDownForeignThreadGc` function (#5369) 2017-02-13 13:37:20 +01:00
Araq
9b8150aef1 sysio: check for IO errors for write operations 2017-02-11 00:23:22 +01:00
Andreas Rumpf
0bb18d1821 introduce nimMaxHeap define to fight memory overcommit 2017-02-10 09:22:28 +01:00
Araq
a20b4c674e sysio: minor improvements 2017-02-09 20:11:54 +01:00
Andreas Rumpf
52c38f8535 make tests green again 2017-02-08 22:42:48 +01:00
Andreas Rumpf
d23eb79849 make tests green again 2017-02-08 22:21:01 +01:00
Araq
3caf108425 system/unicode: check for buffer overflows; refs #5284 2017-02-08 15:22:36 +01:00
Araq
346ea6d171 system.nim: don't use deprecated symbols/constructs 2017-02-08 14:55:30 +01:00
Araq
794d36cf31 fixes #5349 2017-02-08 14:33:05 +01:00
Anatoly Galiulin
61b4bb5af5 Mark setupForeignThreadGc and initGC as gcsafe (#5353) 2017-02-08 10:26:15 +01:00
Yuriy Glukhov
3978845266 Use __NR_gettid instead of SYS_gettid (#5338) 2017-02-04 21:18:54 +01:00
Andreas Rumpf
04c4d3d77f critical realloc bugfix; refs #4818 2017-02-03 09:48:52 +01:00
Andreas Rumpf
f04d21f279 refactoring: explict config state instead of globals 2017-02-01 23:39:40 +01:00
Araq
b3e55e532b allocator: fixes regression: get alignment right for small objects 2017-01-31 21:21:08 +01:00
Andreas Rumpf
d12a5a6525 make getThreadId() work on OSX 2017-01-31 16:06:37 +01:00
araq
bd580e9d6e another attempt to getThreadId work on Linux 2017-01-31 15:44:11 +01:00
araq
eaa0eda72d make getThreadId() work on Linux 2017-01-31 13:49:32 +01:00
Araq
c32c39f1de make AVL tree node part of the memory regions; fixes hard to reproduce channel crashes 2017-01-31 13:08:47 +01:00
Araq
d59dd577f8 make AVL tree node part of the memory regions; fixes hard to reproduce channel crashes 2017-01-31 13:08:23 +01:00
Araq
b173499543 added system.getThreadId for various OSes (untested) 2017-01-31 13:06:19 +01:00
Araq
082f6f15e7 dirty changes to Nim's memory tracker; requires cleanups 2017-01-31 12:59:12 +01:00
Andreas Rumpf
51c764e048 fix the racy allocator properly 2017-01-31 08:55:18 +01:00
Araq
79f4b37d3b added test case; threadex example crashes now 2017-01-30 21:11:37 +01:00
Araq
b26e6e3589 fixes #5301 2017-01-30 19:01:03 +01:00
Andreas Rumpf
cb6c975d3a fixes repr regression 2017-01-27 07:06:22 +01:00
Andreas Rumpf
8d3d9ce5cc repr.nim: minor improvement when outputting addresses of cstrings 2017-01-26 23:50:19 +01:00
Andreas Rumpf
f7e3addb89 bugfix: onThreadDestruction callbacks should be run in reverse order 2017-01-26 11:28:25 +01:00
Andreas Rumpf
05a3c1b10a improvements to memtracking 2017-01-26 11:26:02 +01:00
Andreas Rumpf
303c49b9f3 memory tracker is aware of threads (still not threadsafe though) 2017-01-26 11:26:02 +01:00