Commit Graph

4832 Commits

Author SHA1 Message Date
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
Rokas Kupstys
a3b8bf300d Added fiber API to winlean.nim 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
araq
1811e51ff5 fixes #5392 2017-02-15 22:09:16 +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
Anatoly Galiulin
6fa1dba515 Add `tearDownForeignThreadGc` function (#5369) 2017-02-13 13:37:20 +01:00
Anatoly Galiulin
279e4b0451 Fixes #5382 2017-02-13 13:35:40 +01:00
flyx
ac9c2126e6 Added BiggestUInt (#5378) 2017-02-13 11:20:07 +01:00
ionel anton
636b977457 Column details for postgres. (#5380) 2017-02-13 09:09:43 +01:00
Federico Ceratto
0d1aa9225a Make walkDirRec docstring more clear (#5377) 2017-02-12 16:02:50 +01:00
Araq
9b8150aef1 sysio: check for IO errors for write operations 2017-02-11 00:23:22 +01:00
Yuriy Glukhov
69fb2c6152 Fixed heapqueue.del for last elem (#5363) 2017-02-10 10:15:43 +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
Arne Döring
ca39e113d5 fix in using the linenoise function (#5351) 2017-02-08 10:25:57 +01:00
Andreas Rumpf
41d3660e3a Merge pull request #5348 from c-blake/devel
Update Stat to work with modern Unix impls
2017-02-08 08:20:38 +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
Charles Blake
3680cbaf25 Use old approach for Mac OSX which, as of 2016, does not yet support POSIX
high-resolution file times.
2017-02-07 09:39:41 -05:00
Charles Blake
53dfb21d6c Move Timespec up, use in Stat for st_?tim and define accessors for the seconds
portion of the Timespec.
2017-02-07 09:00:19 -05: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
Andreas Rumpf
d35c561759 fixes #4996 2017-02-05 12:10:57 +01:00
Yuriy Glukhov
3978845266 Use __NR_gettid instead of SYS_gettid (#5338) 2017-02-04 21:18:54 +01:00
cheatfate
95d8558f0c Fix #5331 and #5332. 2017-02-04 12:10:07 +01:00
Andreas Rumpf
04c4d3d77f critical realloc bugfix; refs #4818 2017-02-03 09:48:52 +01:00
Arne Döring
2c6c865b35 reenabled clear test, made clear working (#5323) 2017-02-02 23:06:13 +01:00
Araq
8af10ae3b9 Merge branch 'devel' into new-name-mangling 2017-02-02 21:56:34 +01:00
Araq
e236039d10 make tests on Windows green under --pedantic 2017-02-02 21:12:36 +01:00
Andreas Rumpf
fab69661ad new name mangling rules for easier debugging 2017-02-02 16:27:48 +01:00
Andreas Rumpf
f04d21f279 refactoring: explict config state instead of globals 2017-02-01 23:39:40 +01:00
Ruslan Mustakov
fb8168d338 Fix Windows accept() to fail future instead of raising
Resolves: #5279
2017-02-01 18:18:44 +07:00
Parashurama
c57fcf42df fix string slice & splice (#5311)
code fixes courtesy of @memophen
2017-02-01 12:13:01 +01: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
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