324 Commits

Author SHA1 Message Date
Roman Zajic
2e765379be
Merge branch 'master' into test-with-nightly-nimble 2024-07-01 09:05:16 +02:00
Roman
f65376b7a4
test: time Nimble setup installation 2024-06-27 15:18:28 +02:00
Roman
a8887e542c
test: time Nim installation 2024-06-27 14:37:55 +02:00
tersec
e00fea1f6e
fix deprecation warnings from results; deprecate shims/io module; rm deprecated shims/os module (#223) 2024-06-27 11:48:32 +00:00
Roman
5331b202d4
test: install older 1.6 with partial version 2024-06-26 14:49:38 +02:00
Roman
894921586a
test: install the newest Nim 2.1.1 2024-06-25 20:04:51 +02:00
Roman
f60a68f2d9
test: install old Nim 1.6.20 2024-06-25 19:49:00 +02:00
Roman
4c2b5dae1c
test: update PATH 2024-06-25 15:59:03 +02:00
Roman
9bcb7a3d11
test: switch to Nimble setup 2024-06-25 15:50:31 +02:00
Roman
167c4b5b31
fix: nim path output 2024-06-24 22:10:49 +02:00
Roman
4f2dc3ad54
fix: nimble version on relative path 2024-06-24 20:57:58 +02:00
Roman
8c2f640f47
test: nimble version on relative path 2024-06-24 20:56:52 +02:00
Roman
c509c77c0f
test: version on relative path 2024-06-24 20:39:58 +02:00
Roman
6cb6459180
test: version on absolute path 2024-06-24 20:28:06 +02:00
Roman
db92caef48
fix: syntax err 2024-06-24 20:07:56 +02:00
Roman
de03d15d0c
test: reduce to path info 2024-06-24 20:06:59 +02:00
Roman
ca27bb2197
test: check versions only 2024-06-24 19:51:43 +02:00
Roman
a02851870c
fix: check nin file exists 2024-06-19 22:01:19 +02:00
Roman
baecadaed7
fix: debug GITHUB_PATH 2024-06-19 21:43:26 +02:00
Roman
b84592870e
fix: check GITHUB_PATH 2024-06-19 21:31:12 +02:00
Roman
0d37f8364d
fix: syntax for writing to GITHUB_PATH 2024-06-19 21:17:58 +02:00
Roman
e7af41c255
fix: add path to Nim to env 2024-06-19 21:14:40 +02:00
Roman
cdce6ef5c2
fix: branch name in wf 2024-06-18 22:55:06 +02:00
Roman
412af51b63
test: install latest Nimble then Nim 2024-06-18 21:59:48 +02:00
Eugene Kabanov
bb086e69da
Fix Windows ACL flakiness issue (Windows error 1336). (#221)
* Add getHomePath(), getConfigPath() and getCachePath() implementations.
Fix ACL flakiness issue.
Add tests.

* Add getTempPath().
Normalize path endings for all xxPath() functions.

* Fix 2.0/devel compilation errors.
2024-06-17 07:04:14 +00:00
Jacek Sieka
28743363ff
keyed_queue: avoid copies, lookups (#220)
This change avoids many superfluous data copies and lookups by
exploiting `withValue` thus performing only one lookup with the same key
(instead of hasKey + actual lookup).

We also avoid several copies of the value which often is copied even
though only the next/prev pointers from the item are needed, for examle
during shifting and lru-appending.
2024-06-11 08:43:41 +02:00
tersec
a0a53c9116
deprecate stew/results (#219)
* deprecate stew/results

* Update stew/results.nim

* use evergreen OS image versions in GitHub Actions CI

* revert macos-latest
2024-06-10 19:11:33 +00:00
tersec
72aab089a2
rm deprecated pre-Nim 1.6 shims (#218) 2024-06-10 00:31:18 +00:00
andri lim
5284cce92e
Upgrade github actions to v4 (#213) 2024-06-01 21:32:57 +00:00
Jordan Hrycaj
104132fd02
Update LRU directives (#217)
why:
  Clarify pre-conditions needed for `lruAppend()` to work properly. In a
  nutshell, it needs to be used in concert with `lruFetch()` or
  `lruUpdate()`.
2024-04-22 16:10:23 +00:00
Jacek Sieka
a0c085a51f
strformat: compile-time format string parser (backport Nim 2.2) (#216)
https://github.com/nim-lang/Nim/pull/23356
2024-03-13 09:45:09 +01:00
Etan Kissling
1662762c01
rename RangeError -> RangeDefect in test name (#214)
The `Allocating with a negative size throws a RangeError` test actually
tests for `RangeDefect`, so rename the test accordingly.
2024-02-17 19:31:52 +00:00
andri lim
5a792e762f
Add push raises to shims/macros module (#212) 2024-02-12 12:20:12 +07:00
tersec
3aa92ab843
mark stew/shims/net as deprecated (#211) 2024-01-20 20:57:08 +00:00
Jacek Sieka
2c2544aec1
byteutils: openArray[char] version of toBytes (#210)
and compile-time tests
2023-11-14 11:53:47 +01:00
tersec
49ab3c1d59
don't require init on ValidIpAddress (#209)
* don't require init on ValidIpAddress

* Update stew/shims/net.nim

Co-authored-by: Jacek Sieka <jacek@status.im>

---------

Co-authored-by: Jacek Sieka <jacek@status.im>
2023-11-08 01:55:31 +00:00
Etan Kissling
3159137d9a
workaround codegen error for Base10.decode (#111)
Calling `Base10.decode` may lead to different structures being generated
for use with `uint64`.

The one normally generated is:

```
struct tyObject_Result__559ckyoL0ZZBsNFIYXjaoeg {NIM_BOOL o;
union{
struct {NCSTRING e;
} _o_1;
struct {unsigned long long v;
} _o_2;
};
```

But sometimes, it may be generated as:

```
struct tyObject_Result__xZhi1m1g75ioXsKjx9bN5bg {NIM_BOOL o;
union{
struct {NCSTRING e;
} _o_1;
struct {NU64 v;
} _o_2;
};
```

When the latter is generated, the compiler throws with:
```
error: passing 'tyObject_Result__xZhi1m1g75ioXsKjx9bN5bg' (aka 'struct tyObject_Result__xZhi1m1g75ioXsKjx9bN5bg') to parameter of incompatible type 'tyObject_Result__559ckyoL0ZZBsNFIYXjaoeg' (aka 'struct tyObject_Result__559ckyoL0ZZBsNFIYXjaoeg')
```
for
```
proc getInt*(ht: HttpTables, key: string): uint64 =
  let res = Base10.decode(uint64, ht.getString(key))
  if res.isOk():
    res.get()    # This line may lead to the compiler error above
  else:
    0'u64
```

By passing the type as a generic param, the `unsigned long long` version
gets consistently generated / used regardless of include order.

Minimal POC to trigger the bug, from `nimbus-eth2` root:
```
echo 'import beacon_chain/conf, beacon_chain/sync/sync_manager' >x.nim
nim c -d:"libp2p_pki_schemes=secp256k1" -r x
```
Swapping include order (`conf` after `sync_manager`) works.
2023-08-25 00:04:33 +02:00
Jordan Hrycaj
b17ac2e753
Disentangle cascaded unit tests for interval sets (#208)
why:
  Some sub-tests failed when run directly
2023-08-22 10:38:16 +01:00
tersec
326ef09a46
remove dead code under Nim 1.6+ (#206) 2023-07-31 21:07:48 +00:00
Jacek Sieka
02f0929fc4
avoid zeroMem (#207)
on cached data, it doubles read time (!)
2023-07-21 08:01:07 +02:00
tersec
7afe7e3c07
deprecate pre-1.6 shims (#205)
* deprecate pre-1.6 shims

* revert stddefects shim deprecation until CI stops testing 1.2
2023-07-15 17:17:27 +00:00
tersec
422b6e1435
remove Nim 1.2 and 1.4 support (#204) 2023-07-05 13:13:50 +00:00
Jacek Sieka
2cf408b960
Graduate stew/results -> results (#185)
Since the results package has seen "stable" use for quite a while now,
it's as good time a time as any to release 1.0 and migrate it out of
stew, thus signalling API stability of some sort.

Part of that "stabilization" is underway in the nim-results [issue
tracker](https://github.com/arnetheduck/nim-results/issues/30).
2023-07-05 12:50:21 +02:00
andri lim
5c519d8582
fix results compiletime regression (#203)
* fix results compiletime regression

* disable results.value compiletime test for pre 1.6 nim
2023-07-05 10:07:17 +02:00
Jacek Sieka
8bb07fac39
results: fix catch template for statements (#201)
* results: fix `catch` template for statements

* disable void catch tests on pre-1.6
2023-06-28 10:57:00 +02:00
Jacek Sieka
d085e48e89
results: add mapConvertErr, mapCastErr (#178)
We already have `mapConvert` and `mapCast` - this completes the API with
corresponding `Err` versions similar to `mapErr`.

The `Convert` / `Cast` operators are of somewhat dubious value - ie
they exist as "efficiency" shortcuts for `map` for the case that the
mapping should be done as a simple cast / conversion - an alternative
would be to deprecate these features and aim for some other, more
generic version that involves a type conversion library such as
https://github.com/status-im/nim-stew/pull/34, though this inherently,
and perhaps rightly, would be limited to "error-free" conversions.

Regardless, these helpers provide balance to the existing API.
2023-06-28 10:27:45 +02:00
tersec
9958aac68a
remove workaround for unsupported Nim 0.19 and earlier (#200)
* remove workaround for unsupported Nim 0.19 and earlier

* replace some proc with func
2023-06-15 13:13:41 +00:00
tersec
65ce2203f0
unconditionally pass through std/os and deprecate shim/os (#199) 2023-06-15 14:55:16 +02:00
tersec
607059fe31
rm copy of parseHex() from 1.2+ stdlib; some proc -> func (#197) 2023-06-15 14:21:51 +02:00
Jacek Sieka
273ce152a6
bitops2: fix resizing casts (#194) 2023-06-15 13:52:54 +02:00