xioren
478f717377
Move async example to asynchronous version of proc ( #18078 )
...
* improve runnableExamples in std/httpclient
* Add synchronous example.
* Update lib/pure/httpclient.nim
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com >
2021-05-24 20:56:31 -07:00
Timothee Cour
d217888e56
close #18009 parseJson JInt vs JFloat; preserve -0.0 as JFloat to distinguish from 0.0 ( #18067 )
2021-05-23 23:06:14 +02:00
Ștefan Talpalaru
a1c82c39af
asyncdispatch+stackTraceOverride: fix premature collection ( #18039 ) [backport:1.2]
...
Copying StackTraceEntry instances when nimStackTraceOverride is defined
breaks the link between a cstring field that's supposed to point at
another string field in the same object.
Sometimes, the original object is garbage collected, that memory region
reused for storing other strings, so when the StackTraceEntry copy tries
to use its cstring pointer to construct a traceback message, it accesses
unrelated strings.
This only happens for async tracebacks and this patch prevents that by
making sure we only use the string fields when nimStackTraceOverride is
defined.
Async tracebacks also beautified slightly by getting rid of an extra line
that was supposed to be commented out, along with the corresponding debugging output.
There's also a micro-optimisation to avoid concatenating two strings just
to get their combined length.
2021-05-19 19:19:11 +02:00
Andreas Rumpf
7052503ca8
make strformat part of the prelude ( #18046 )
2021-05-19 19:18:16 +02:00
Antonis Geralis
6e0fe965da
add sink and lent annotations for xmltree and streams ( #18037 )
2021-05-18 08:16:07 +02:00
Timothee Cour
d83b25db1e
fix #18007 : std/json now serializes nan,inf,-inf as strings instead of invalid json ( #18026 )
...
* fix #18007 : std/json now serializes nan,inf,-inf as raw strings instead of invalid json
* fix roundtrip
* fix tests
* fix changelog
* simplify
* add runnableExamples
* fix typo [skip ci]
2021-05-16 23:54:10 +02:00
Timothee Cour
45490497e3
fix #17467 1st call to rand is now non-skewed; allow seed == 0 ( #17468 )
...
* fix #17467 1st call to rand is now non-skewed; allow passing 0 as seed
* changelog + fallback
* document behavior for seed == 0
* address comments
* _
* fix tests, disable kdtree
* re-enable kdtree with -d:nimLegacyRandomInitRand
2021-05-11 11:04:59 +02:00
Andreas Rumpf
983a2aa11c
Revert "Fix parseUri to sanitize urls containing ASCII newline or tab ( #17967 )" ( #17984 )
...
This reverts commit f4dd95f3be .
2021-05-09 23:33:31 +02:00
Beshr Kayali
f4dd95f3be
Fix parseUri to sanitize urls containing ASCII newline or tab ( #17967 )
...
* Fix parseUri to sanitize urls containing ASCII newline or tab
* Fix ups based on review
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com >
* Additional fix ups based on review
- Avoid unnecessary `removeUnsafeBytesFromUri` call if parseUri is strict
- Move some parseUri tests to uri module test file
Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com >
* Update changelog
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com >
Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com >
2021-05-09 19:24:00 +01:00
Timothee Cour
eba1c3fd24
merge initUri() overloads, improve uri examples ( #17970 )
...
* deprecate `uri.initUri` and improve uri examples
* remove `func initUri*()` and make isIpv6 optional
* fixup
2021-05-08 16:58:30 +02:00
Andreas Rumpf
c14427dbf3
ORC: cursor inference bugfix ( #17973 )
...
* fixed a .cursor inference bug
* added a test case
2021-05-08 16:47:06 +02:00
Timothee Cour
38b41f893a
fix #17941 : UnusedImport works for var/let/const/type invoked inside a generic ( #17942 )
...
* fix #17941 : UnusedImport works for var/let/const/type invoked inside a generic
* fixup
2021-05-08 09:56:46 +02:00
Ardek Romak
9d86639a0b
Export sslHandle in net and asyncnet. ( #17573 )
2021-05-06 15:02:37 -07:00
Juan Carlos
bf5dfe481a
parsecsv fix style ( #17933 )
...
* ReSync with Devel
* Fix style in parsecsv
* Update lib/pure/parsecsv.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2021-05-04 13:13:23 +02:00
Timothee Cour
78e2d299df
typo: nonexistant => nonexistent ( #17918 )
...
* typo: nonexistant => nonexistent
* fix test (ordering differs because of https://github.com/nim-lang/Nim/issues/17910 )
2021-05-02 00:26:41 +02:00
Timothee Cour
ee6d56141c
fix #17911 rawProc for cpp ( #17912 )
2021-05-01 11:12:13 +02:00
Andreas Rumpf
fb86271556
system.nim cleanup some exported constants which should never have be… ( #17909 )
...
* system.nim cleanup some exported constants which should never have been exported
2021-05-01 11:10:40 +02:00
flywind
9f75e8abc1
[std/base64] uses runnableExamples ( #17882 )
...
* [std/base64] uses runnableExamples
* Update lib/pure/base64.nim
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com >
2021-05-01 07:27:50 +02:00
Timothee Cour
d32ab61e61
fix #17905 : hash(closure) was not being tested ( #17906 )
2021-04-30 12:40:39 -07:00
Timothee Cour
e4db733d80
fix #17888 : remove undefined behavior for posix.open; fix tempfiles.createTempFile ( #17889 )
...
* fix #17888 : remove undefined behavior for posix.open; fix tempfiles.createTempFile
* fix for tests/async/tasyncfile.nim
* hide mode for now
* add notice regarding stability
2021-04-29 13:42:56 +02:00
flywind
5edddd68d0
improve cache line size ( #17885 )
...
* improve cache line size
- 64bit system tend to use cache line of 64 bytes
- add align
https://trishagee.com/2011/07/22/dissecting_the_disruptor_why_its_so_fast_part_two__magic_cache_line_padding
Though I'm not sure, what do you think? @timotheecour
* Update lib/pure/concurrency/threadpool.nim
2021-04-29 13:39:36 +02:00
flywind
016a8ccd7a
[std/encodings]move to tests ( #17866 )
2021-04-29 09:51:54 +02:00
Michael Krieger
7637cff9cf
Fix documentation of strutils.stripLineEnd ( #17883 )
...
It does not return anything.
2021-04-28 11:33:08 -07:00
flywind
d881a05bf6
[std/encodings] fix iconv headers on OpenBSD ( #17872 )
2021-04-27 10:14:26 -07:00
flywind
66022423aa
[std/pegs] increase test coverage ( #17871 )
2021-04-27 11:09:58 +02:00
flywind
b1c7c994b0
[std/parsecfg]use runnableExamples ( #17868 )
...
* [std/parsecfg]use runnableExamples
* Apply suggestions from code review
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com >
2021-04-27 10:24:59 +02:00
Timothee Cour
3f58b7face
add -d:nimLegacyNoHashRef for a transition period which avoids defining hash(ref) ( #17858 )
2021-04-27 08:23:01 +02:00
flywind
01bca8cd4f
fix gbk encodings on windows ( #17843 )
2021-04-26 14:48:25 +02:00
flywind
68e522ecec
Remove confusing <//> ( #17830 )
2021-04-26 09:04:52 +02:00
flywind
6e8f0f8cfc
add colon ( #17834 )
2021-04-24 18:33:29 +01:00
Joey
f1ce173283
Fix Httpclient headers from being modified accidentally ( #17808 )
2021-04-21 07:42:04 +02:00
Andreas Rumpf
a9b62de895
CIs: attempt to use csources_v1 ( #16282 )
...
* CIs: attempt to use csources_v1
* also updated the BSDs
* also updated azure pipelines
* std modules should not itself use the 'std/' import dir...
* compiler has to be careful with std/ for v1 booting
2021-04-21 07:41:33 +02:00
flywind
eb221dcc27
[std/deques] move data instead of copy + destroy ( #17800 )
2021-04-20 19:00:44 +02:00
shirleyquirk
fdd4391534
Fix buffer-overrun bug in net ( #17728 ) [backport:1.0]
2021-04-16 14:22:51 +02:00
Timothee Cour
d19e4310dc
std/hashes: hash(ref|ptr|pointer) + other improvements ( #17731 )
2021-04-16 14:21:26 +02:00
Timothee Cour
611b88763f
start using import {.all.} ( #17736 )
2021-04-16 12:54:49 +02:00
Timothee Cour
d6242d7fe1
simplify asyncfutures, asyncmacro ( #17633 )
2021-04-14 21:22:22 +02:00
flywind
8b5769133c
remove unnecessary assignment ( #17702 )
2021-04-12 08:58:46 +02:00
shirleyquirk
0bc943ad54
followup strformat PR. backslash escapes, tests, docs ( #17700 )
...
* Allow use of colons inside fmt
allowing colons inside fmt by replacing the format specifier delimiter lets arbitrary nim code be run within fmt expressions.
Co-authored-by: flywind <xzsflywind@gmail.com >
* formatting,documentation,backslash escapes
Adding support for evaluating expressions by special-casing parentheses causes this regression: `&"""{ "(hello)" }"""` no longer parses.
In addition, code such as &"""{(if open: '(' else: ')')}""" wouldn't work.
To enable that, as well as the use of, e.g. Table constructors inside curlies, I've added backslash escapes.
This also means that if/for/etc statements, unparenthesized, will work, if the colons are escaped, but i've left that under-documented.
It's not exactly elegant having two types of escape, but I believe it's the least bad option.
* changelog
* added json strformat test
* pulled my thumb out and wrote a parser
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
Co-authored-by: flywind <xzsflywind@gmail.com >
2021-04-12 07:32:37 +02:00
shirleyquirk
a5b30c94c2
[feature] add arbitrary code execution to strformat ( #17694 )
...
* changed parser to ignore ':' within parens
* Update strformat.nim
* Update lib/pure/strformat.nim
Co-authored-by: flywind <xzsflywind@gmail.com >
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2021-04-11 13:07:23 +02:00
Emery Hemingway
8aa5991bea
Genode platform fixes ( #17521 )
...
* Genode: move dyncall failures to runtime
Do not use the "error" pragma to warn that dynamic library loading is
not implemented, print a message at runtime and exit.
* Genode: use stricter dataspace type in page allocator
* Genode: remove compiler configuration from nim.cfg
Self-hosting Nim is not supported on Genode and defining the
cross-compilation environment can be done externally.
* Genode: use new mutex API
* Genode: call nim_component_construct as a C procedure
* Genode: implement echo for NimStringV2
2021-04-09 16:29:10 +02:00
Andreas Rumpf
86a1dcf928
hashes: Made the runnableExample easier to understand ( #17689 )
2021-04-09 15:36:06 +02:00
Andrey Makarov
42687457b0
further progress on rst roles & directives ( fix #17646 ) ( #17659 )
...
* further progress on rst roles & dir-s (fix #17646 )
* fix documents according to the messages
* fix bug 17 from #17340
2021-04-08 19:00:14 +02:00
konsumlamm
1b03accac7
Improve endians module ( #17674 )
...
Extend documentation
Add runnableExamples
2021-04-08 14:08:58 +02:00
Andreas Rumpf
643dbc743b
use strstr for a faster find implementation ( #17672 )
...
* use strstr for a faster find implementation
* stress the -d:release and -d:danger switches
2021-04-08 00:54:47 +02:00
flywind
834d5641e8
use sink and lent in deques ( #17661 )
...
* use sink and lent in deques
* Update lib/pure/collections/deques.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2021-04-07 14:17:48 +02:00
flywind
34c1c631bb
close #4451 ( #17627 )
2021-04-06 22:08:59 +02:00
Miran
020c0a3344
don't run one example on 32-bit machines ( #17655 )
...
This example seems to break our 32-bit nightlies builds.
This is just a temporary solution (TM) until we figure out a better one.
2021-04-06 18:52:12 +02:00
Timothee Cour
97764c8dc9
remove un-needed {.push hint[ConvFromXtoItselfNotNeeded]: off.} in asyncfutures, asyncmacro ( #17631 )
2021-04-03 15:24:01 -07:00
flywind
a807233aeb
fix #17615(runnableExamples silently ignored if placed after some code) ( #17619 )
...
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com >
2021-04-02 18:26:30 -07:00