Jacek Sieka 0035f4fa66
Introduce chronos/futures (#405)
* move `Future[T]` into its own module along with some basic accessors
* mark all fields internal, exposing only read-only versions under the
old names
* introduce `init`/`completed`/etc as a way of creating a future (vs
newFuture)
* introduce `LocationKind` for `SrcLoc` access
* don't expose `FutureList` unless future tracking is enabled
* introduce `chronosStrictFutureAccess` which controls a number of
additional `Defect` being raised when accessing Future fields in the
wrong state - this will become true in a future version

In this version, `Future[T]` backwards compatibility code remains in
`asyncfutures2` meaning that if only `chronos/futures` is imported, only
"new" API is available.

This branch is a refinement / less invasive / minimal version of
https://github.com/status-im/nim-chronos/pull/373.
2023-06-07 20:04:07 +02:00
..
2023-06-07 20:04:07 +02:00
2023-06-05 22:21:50 +02:00
2023-05-25 17:31:35 +02:00
2023-06-05 13:02:13 +02:00
2023-06-05 13:03:38 +02:00
2023-05-23 12:39:35 +02:00
2023-05-23 12:39:35 +02:00
2023-05-23 12:39:35 +02:00
2023-06-05 22:21:50 +02:00
2023-06-05 13:03:38 +02:00
2023-03-31 07:35:04 +02:00
2023-03-31 07:35:04 +02:00
2023-05-25 17:31:35 +02:00