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
Jeff Ciesielski
7f30d04d6a
Fix compilation for 16 bit targets ( #5286 )
2017-01-26 07:05:03 +01:00
Andreas Rumpf
eb96eaa5c2
onThreadDestruction feature added to Nim's threading model
2017-01-24 12:07:44 +01:00
Araq
572fd067cf
added system.runOnThreadCreationHandlers for initialization of thread local storage for the main thread
2017-01-20 20:32:41 +01:00
Araq
cdebcf23d9
new segfaults.nim stdlib module works on Windows
2017-01-20 17:08:11 +01:00
Araq
64a7d2fd08
ansi_c.nim: avoid deprecated 'expr' type
2017-01-20 13:17:45 +01:00
Andreas Rumpf
61937974e2
added system.onThreadCreation feature for safe thread local storage initializations
2017-01-18 13:41:55 +01:00
Andreas Rumpf
915cc86f5d
docs for the heap dump feature
2017-01-16 23:04:53 +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
9753782f96
memory allocator hotfix: do not allocate tremendous amounts of memory
2017-01-13 12:07:37 +01:00
Brandon Pickering
c98a8f3701
Handle different enum sizes in reprAux ( #5207 )
2017-01-11 05:54:04 +01:00
Fabian Keller
5f6f444d55
naive work-around for time redefinition ( #5193 )
2017-01-08 17:53:43 +01:00
Andreas Rumpf
a93ca14418
disable pinToCpu for OSX
2017-01-07 13:27:16 +01:00
Andreas Rumpf
847210b799
disable new alloctor behaviour for emscripten
2016-12-27 17:54:09 +01:00
Araq
77d5d0cdfe
NimScript: prepare for future Nimble improvements; should be completely compatible with old and upcoming Nimble versions
2016-12-23 12:26:28 +01:00
Araq
237252f90c
Merge branch 'devel' into sighashes
2016-12-19 11:35:45 +01:00
Araq
39ca8b8c8e
fixes #4818
2016-12-18 23:11:53 +01:00
Araq
414c2decbe
Merge branch 'devel' into sighashes
2016-12-13 12:18:45 +01:00