Commit Graph

5052 Commits

Author SHA1 Message Date
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
Araq
9303a02d6b Merge branch 'devel' of github.com:nim-lang/Nim into devel 2017-02-17 18:04:09 +01:00
fenekku
e9767d8809 Fix reverse on empty openArray (#5407)
Reversing an empty `openArray` would raise a RangeError. For instance for `a: seq[int] = @[]`, we have `a.high` return `-1` but `-1` is not a `Natural`. Leaving the array as-is is the expected behaviour.
2017-02-17 08:26:49 +01:00
Araq
5620e08563 minor documentation improvements 2017-02-17 00:00:39 +01:00
Araq
5d4ed1117d distros.nim: brew usually doesn't require 'sudo' 2017-02-16 22:53:32 +01:00
Dominik Picheta
a336bf2395 Fixes parseHeader("foo:") != ("foo", @[""]). Refs #5344. 2017-02-13 21:14:29 +01:00
Ruslan Mustakov
92665e6e9a Add hash proc for cstrings (#5386) 2017-02-13 13:38:30 +01:00
flyx
ac9c2126e6 Added BiggestUInt (#5378) 2017-02-13 11:20:07 +01:00
Federico Ceratto
0d1aa9225a Make walkDirRec docstring more clear (#5377) 2017-02-12 16:02:50 +01:00
Dominik Picheta
f9f86899b5 Implement streamed async/sync downloadFile and deprecate old one. 2017-02-11 14:00:53 +01:00
Dominik Picheta
1b4067a81b Implement streamed body reading in httpclient. 2017-02-11 12:43:16 +01:00
Dominik Picheta
77071eb767 FutureStream's cb call behaviour fixed + other fixes. 2017-02-11 12:42:30 +01:00
Dominik Picheta
4a7ea8f865 Add support for Async | Sync return types in {.multisync.} macro. 2017-02-11 12:39:37 +01:00
Dominik Picheta
2f502e2a9e Remove immediate FutureStream procs and make 'put' awaitable. 2017-02-10 20:40:32 +01:00
Dominik Picheta
ddd3d3f44a Improve implementation of takeAsync for FutureStreams. 2017-02-10 20:18:59 +01:00
Yuriy Glukhov
69fb2c6152 Fixed heapqueue.del for last elem (#5363) 2017-02-10 10:15:43 +01:00
Dominik Picheta
7766fdfec1 Implemented a first working version of FutureStreams. 2017-02-10 00:06:18 +01:00
Dominik Picheta
c4d5cc652f Work around issue with queues. Refs #4773. 2017-02-10 00:05:42 +01:00
Dominik Picheta
3286480985 Improve error message when a nil future is await'ed. 2017-02-09 23:07:10 +01:00
Dominik Picheta
e189004a03 WIP implementation of FutureStream. 2017-02-09 22:46:20 +01:00
Araq
3caf108425 system/unicode: check for buffer overflows; refs #5284 2017-02-08 15:22:36 +01:00
Dominik Picheta
0535b6b6bf Implement SSL SNI hostname setting for asyncnet. 2017-02-08 00:04:40 +01:00
Dominik Picheta
7c15120247 Add some tests to httpcore related to #5344. 2017-02-07 18:32:57 +01:00
Araq
8ae05c6555 cleaned up accept-close-race fix #5279 2017-02-07 14:59:46 +01:00
Araq
4790b6b203 Merge branch 'accept-close-race-5279' of https://github.com/endragor/Nim into endragor-accept-close-race-5279 2017-02-07 14:44:27 +01:00
Ruslan Mustakov
7a839d7b02 Move checkCloseError to nativesockets 2017-02-07 16:45:59 +07:00
Arne Döring
2c6c865b35 reenabled clear test, made clear working (#5323) 2017-02-02 23:06:13 +01:00
Araq
e236039d10 make tests on Windows green under --pedantic 2017-02-02 21:12:36 +01:00
Ruslan Mustakov
fb8168d338 Fix Windows accept() to fail future instead of raising
Resolves: #5279
2017-02-01 18:18:44 +07:00
Eugene Kabanov
d90f3f59ac Fixes for upcoming asyncdispatch and ioselectors. (#5309) 2017-02-01 12:12:26 +01:00
Ruslan Mustakov
8b10609452 Allow .async pragma on methods (#5312) 2017-02-01 08:50:30 +01:00
Andreas Rumpf
76eb20d2d3 deprecated nativesockets.dealloc, use freeAddrInfo instead; fixed stdlib deprecations 2017-01-30 08:50:57 +01:00
cheatfate
210ac5c138 One more fix for #5290. 2017-01-28 10:34:13 +02:00
Andreas Rumpf
1bf78618fe Merge branch 'fix5290' of https://github.com/cheatfate/Nim into cheatfate-fix5290 2017-01-27 18:51:46 +01:00
cheatfate
9c2721c8bb Fix mistake 2017-01-27 14:12:26 +02:00
cheatfate
e84efc4d01 asyncdispatch exception memory leaks fixes. 2017-01-27 12:14:53 +02:00
cheatfate
4b95819146 Fix #5290.
Some cosmetic changes.
2017-01-27 11:08:57 +02:00
Araq
376f6efa80 make segfaults compilation robust on Windows 2017-01-27 09:49:17 +01:00
Yuriy Glukhov
c8dcf8993f Added heapqueue.del (#5289) 2017-01-27 08:22:17 +01:00
cheatfate
6caefcc573 oops. 2017-01-26 18:41:22 +02:00
cheatfate
78e3bd392c Fix changes table must be SharedArray when hasThreadSupport. 2017-01-26 18:28:34 +02:00
Andreas Rumpf
303c49b9f3 memory tracker is aware of threads (still not threadsafe though) 2017-01-26 11:26:02 +01:00
David Krause
b20817c3fb added default param to strtabs.getOrDefault (#5280) 2017-01-26 10:34:02 +01:00
Jeff Ciesielski
74ae66ddbc Add volatile load/store (#5263)
Adds volatile load/store capability to the impure part of the standard
library.  Note that this currently only supports numerical types.

Should resolve https://github.com/nim-lang/Nim/issues/3382
2017-01-25 20:02:19 +01:00
Ruslan Mustakov
35d48765fb Use onThreadCreation to set default SSL context for each thread (#5265)
Fixes: #4998
2017-01-23 21:04:14 +01:00
Dominik Picheta
9e723166fe Merge pull request #5250 from yglukhov/http-redirect
Redirects support in request proc
2017-01-21 11:48:50 +01:00
Dominik Picheta
e634ee858c Merge pull request #5255 from enthus1ast/devel
added isAbsolute to uri.nim
2017-01-21 11:44:52 +01:00
enthus1ast
f2ce8eb372 more isAbsolute tests for uri.nim
Signed-off-by: enthus1ast <enthus1ast>
2017-01-21 02:54:38 +01:00