Commit graph

71 commits

Author SHA1 Message Date
Jake Leahy
d88f46df38
Make async stacktraces less verbose (#21091)
* Name iterators something human readable

Remove intermediate async procs from stacktraces

Clean async traceback message from reraises message

* Remove unused import/variable

* Fix failing tests

Don't add {.stackTrace: off.} to anonymous procs (They already don't appear in stacktrace)

* Fix failing tests in pragma category

Now check that the nim is a routine type first so we don't run into any assertion defects

* Hide stack trace pragma in docs and update doc tests

User doesn't need to know if something won't appear so this more becomes verbose noise

If this is a bad idea we can always add a `when defined(nimdoc)` switch so we don't add {.stackTrace: off.} to the Future[T] returning proc for docs
2022-12-15 16:05:34 +01:00
Jake Leahy
c7493bbdd0
multisync now allows tuples in return type (#21074)
* Add test case

* Use .toStrLit() on param node first

This means that more complex types are fully rendered
2022-12-11 14:44:41 +01:00
Jake Leahy
f330b33e2b
Use a unique name for template in async macro return (#21058)
Use unique template name
2022-12-10 09:15:45 +08:00
Jake Leahy
da3274d1b3
Implicit return working for async proc (#20933)
* Implicit return working for asyncdispatch proc

Closes #11558

* Test case

* Test that return value is actually used

* Update tests/async/t11558.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2022-12-09 18:10:33 +01:00
metagn
739e1badb6
stdlib organization & documentation improvements (#20971)
* stdlib organization & documentation improvements

* fix CI

* Update doc/lib.md

Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>

* fix ci, remove jshttpcore, export in jsfetch instead

* fix alphabetical order violations

* add cmdline, db_odbc

Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
2022-12-06 09:37:03 +01:00
metagn
d1d141b135
new .redefine pragma for templates, warn on redefinition without it (#20211)
* test CI for template redefinitions

* adapt asyncmacro

* fix quote

* fix again

* try something else

* revert

* fix ioselectors_select, disable packages CI

* adapt more tests & simplify

* more

* more

* more

* rename to redefine, warn on implicit redefinition

* basic documentation [skip ci]

* Update compiler/lineinfos.nim

Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>

Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
2022-08-23 21:41:30 +02:00
huantian
ef7d7f2459
Better error message and tests for bad await (#19622)
* Better error message and tests for bad await

* Use compiles to check if await is valid

* temp: disable windows noasync test

* Better error report, simplify test

Co-authored-by: flywind <xzsflywind@gmail.com>
2022-04-13 23:03:46 +02:00
Timothee Cour
d6242d7fe1
simplify asyncfutures, asyncmacro (#17633) 2021-04-14 21:22:22 +02:00
Timothee Cour
97764c8dc9
remove un-needed {.push hint[ConvFromXtoItselfNotNeeded]: off.} in asyncfutures, asyncmacro (#17631) 2021-04-03 15:24:01 -07:00
Ardek Romak
9e88425d7c
Fix void async in templates (#17562)
* Fix https://github.com/nim-lang/Nim/issues/16159
* Add test for async in template
* Shorten the expression
* Even shorter

Co-authored-by: Clyybber <darkmine956@gmail.com>
2021-03-30 08:07:45 +02:00
Timothee Cour
c27cd83265
remove {.compileTime.} for procs with NimNode: redundant because of tfTriggersCompileTime (#17463) 2021-03-23 02:51:21 -07:00
flywind
a1a18cfe66
use single backtick (#17115) 2021-02-20 03:20:29 -08:00
ee7
297c8e403d
styleCheck: Fix some inconsistent identifiers (#16177) 2020-12-21 09:41:56 -08:00
flywind
7fc0c3dfbf
ref #5617 add lineinfo to complete (#16102) 2020-11-23 17:49:40 +01:00
flywind
6f1a72069a
fix #9695 asyncmacro: tfuturevar fails when activated [backport: 1.0] (#16090)
* fix asyncmacro

* Apply suggestions from code review

* Update lib/pure/asyncmacro.nim
2020-11-22 17:16:42 +01:00
Andreas Rumpf
dfd8a83f35
fixes #15804 (#15820)
* fixes #15804

* fix the existing test

* add the testcase for #15804

Co-authored-by: narimiran <narimiran@disroot.org>
2020-11-02 14:17:09 +01:00
Andreas Rumpf
04cecdf9c2
async: removed the 'unown' references, async never worked with --newruntime anyway and --newruntime is dead (#15374) 2020-09-20 18:01:07 +02:00
Timothee Cour
2867a33ebc
fix #14846; add macros.extractDocCommentsAndRunnables (#14849)
* fix #14846; add macros.extractDocCommentsAndRunnables

* fixup

* update tests

* address comment
2020-07-01 09:26:23 +02:00
Timothee Cour
2039e3e883
fix #13899 defer now works with async (#14723) 2020-06-19 15:08:00 +02:00
Danil Yarantsev
5d0cf883c1
Disable unused warnings for error await template too (#14531) 2020-06-01 11:56:07 +02:00
Danil Yarantsev
5150186c68
Disable unused warnings for await in async macro (#14517)
* Disable unused warnings for await in async macro

* Remove used for the error template
2020-05-31 12:43:27 +02:00
hlaaftana
9b01c6cf48
discardable async procs are now an error (#14176)
* add discard warning in manual
2020-05-01 09:49:13 +02:00
Jacek Sieka
7d6cbf290a
Error -> Defect for defects (#13908)
* Error -> Defect for defects

The distinction between Error and Defect is subjective,
context-dependent and somewhat arbitrary, so when looking at an
exception, it's hard to guess what it is - this happens often when
looking at a `raises` list _without_ opening the corresponding
definition and digging through layers of inheritance.

With the help of a little consistency in naming, it's at least possible
to start disentangling the two error types and the standard lib can set
a good example here.
2020-04-28 19:56:01 +02:00
Alexander Ivanov
56584414f3
Make await a template (#12085)
* Make await a template
* Generate await inside async/multisync
2020-04-25 20:27:03 +02:00
Clyybber
92c4aad205
Fix #13889 with testcase (#13896) [backport]
* Fix https://github.com/nim-lang/Nim/issues/13889

* Add testcase

* Reduce test time

Co-authored-by: Elie Zedeck RANDRIAMIANDRIRAY <elie.zedeck@gmail.com>
2020-04-06 16:25:24 +02:00
Andreas Rumpf
9134bb9cfb
macros for proc types, macros for types (#13778)
* new minor feature: macros for proc types, to be documented

* Finished the implementation and added tests

* [skip ci] Describe the new custom pragmas in the manual and the changelog

Co-authored-by: Zahary Karadjov <zahary@gmail.com>
2020-03-31 21:14:05 +02:00
Araq
861a5340fe fixes #13519 2020-03-11 09:26:57 +01:00
narimiran
aa513d78e7 [backport] run nimpretty on async 2019-09-30 13:57:58 +02:00
Andreas Rumpf
70e8551e37
async macro: general stability improvements [bugfix] (#11787) 2019-07-19 16:47:38 +02:00
Araq
edbe02b4e1 newruntime: progress to make 'async' work with --newruntime 2019-07-15 10:56:55 +02:00
Andreas Rumpf
ac458448d8 make async tests green again 2019-07-11 11:09:10 +02:00
Araq
bc7733827d make more parts of the stdlib compile with --styleCheck:error 2019-07-10 15:48:30 +02:00
Araq
55e8aefbea newruntime: async progress 2019-07-09 20:15:57 +02:00
Araq
2c2f2de614 asyncmacro produces 'owned' types 2019-07-09 11:38:00 +02:00
Andreas Rumpf
5f515410af
newruntime for async (#11650)
* fixes overloading resolution for passing owned(Future[string]) to Future[T]
* WIP: make --newruntime work with .async
* memtracker: make it compile again
* make Nimble compile again
2019-07-05 01:42:17 +02:00
Zed
3b4952da94 Fix header inconsistencies in documentation (#11071) 2019-04-23 08:40:20 +02:00
LemonBoy
d7ca7fd03e Small change in how tuples are handled in async macro
A small change that brings no functional change beside a flatter tree.
2019-02-04 22:16:55 +00:00
LemonBoy
792dbed57e Restore the docstring during the .async. transform (#10404) [backport]
Fixes #9816
2019-01-22 09:41:11 +01:00
alaviss
2a31f42d35 asyncmacro: add nnkSym support for getName() (#9204)
Fixes #9201
2018-10-09 15:53:13 +02:00
LemonBoy
2c0bfb34fd Fix regression w/ templates defined in async proc 2018-10-03 18:25:25 +02:00
LemonBoy
75a981cf80 Skip nested procedures in .async. macro
Fixes #3075
2018-09-22 17:30:17 +02:00
LemonBoy
90025e242d Minor fixes for asyncjs (#8894)
* Minor fixes for asyncjs

Mark internal procedures as used
Allow .async. for more node kinds
Make .async. work for nkStmtList

* Fix logic error in both the async macros
2018-09-07 16:42:38 +02:00
Dominik Picheta
6ee6f252d4 Rip out the try transformation in the async macro. 2018-06-06 19:18:24 +03:00
Zahary Karadjov
10142e4a80 Fix some usages of typedesc in async procs
This also fixes a compilation error in modules, based only on the
new async module (i.e. not importing the full asyncdispatch)
2018-04-13 13:31:55 +03:00
Arne Döring
84982e5e17 fix deprecation warnings in asyncmacro and htmlgen (#7573)
* fix deprecation warnings in asyncmacro and htmlgen

* removed todo
2018-04-12 13:54:49 +02:00
Dominik Picheta
2c905f5e81
Merge pull request #6962 from nim-lang/fixes/6100
Fixes #6100.
2018-01-10 23:11:26 +00:00
Araq
6cf2fcaaf1 optimized friendly stack traces 2017-12-28 09:21:22 +01:00
Dominik Picheta
3a790c9c72 Rename cb0 to asyncProcName_continue + other improvements to async tracebacks. 2017-12-28 09:21:22 +01:00
Dominik Picheta
52cc925e0e Fixes #6100. 2017-12-27 22:37:11 +00:00
Anatoly Galiulin
d02606064c Remove unneeded comment #6708 2017-11-13 15:16:44 +07:00