Commit Graph

5127 Commits

Author SHA1 Message Date
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