hegeltest 0.3.0-aarch64-linux → 0.3.1-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/lib/hegel/libhegel/libhegel-linux-arm64.so +0 -0
- data/lib/hegel/libhegel_version.rb +1 -1
- data/lib/hegel/runner.rb +2 -2
- data/lib/hegel/version.rb +1 -1
- data/skills/hegel-ruby/references/ruby/reference.md +15 -9
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d0372fb8bf6fc7928f6c0790df8b89c47ba5b705c823cc9133d950bb894fb840
|
|
4
|
+
data.tar.gz: 9db269f1bbd5c2dd97c41e9eaa23a633732f3ffb5b190825b970523b1d7b2a4c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4f7bc4b5b69bfbbcf7802a8b5f24e5c3535e2f2074e5112c86c73876d1f445dbc520d18ad907c08f9a6c862392464f18c660194f790a502c3f4f824d5131c187
|
|
7
|
+
data.tar.gz: 175551928ce3681380f273d2cb3d39ac8787a6fd7b4249ef4f92a2c4bd3f8ffbf39b4080377354eb184b5f9389405d41045515701477a168f87ce83316f59049
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.3.1] - 2026-10-15
|
|
6
|
+
|
|
7
|
+
### Engine: libhegel 0.45.7 (was 0.45.4)
|
|
8
|
+
|
|
9
|
+
The [libhegel 0.45.7 release notes](https://github.com/hegeldev/hegel-rust/releases/tag/libhegel-v0.45.7)
|
|
10
|
+
describe 0.45.7 alone. The
|
|
11
|
+
[engine changelog](https://github.com/hegeldev/hegel-rust/blob/libhegel-v0.45.7/hegel-c/CHANGELOG.md)
|
|
12
|
+
describes each engine release after 0.45.4, up to 0.45.7.
|
|
13
|
+
|
|
14
|
+
Each platform gem carries `libhegel` 0.45.7. The engine only adds to its C
|
|
15
|
+
interface, and these bindings do not use the addition. A caller has nothing
|
|
16
|
+
to change in code. The engine changes these messages for a caller:
|
|
17
|
+
|
|
18
|
+
- `from_regex` with a pattern that no string matches, such as `"(?!)"`,
|
|
19
|
+
raises `Hegel::Error` with a message that names the pattern and says
|
|
20
|
+
that it `matches no string`. Before, the run raised `Hegel::Error` with
|
|
21
|
+
a message that starts with `Unsatisfiable`.
|
|
22
|
+
- The FilterTooMuch health check message says how to suppress the check
|
|
23
|
+
with the `suppress_health_check` setting, and it says "rejected by
|
|
24
|
+
assume() or a filter". Before, it showed Rust syntax. The
|
|
25
|
+
`FailedHealthCheck:` and `Unsatisfiable` prefixes do not change.
|
|
26
|
+
|
|
5
27
|
## [0.3.0] - 2026-10-14
|
|
6
28
|
|
|
7
29
|
### Engine: libhegel 0.45.4 (was 0.45.1)
|
|
@@ -174,6 +196,7 @@ The engine is called through the `ffi` gem. Each platform gem carries the
|
|
|
174
196
|
matching `libhegel` 0.32.5 build. The platform-independent gem carries none,
|
|
175
197
|
so a run on it needs `HEGEL_LIBHEGEL_PATH` pointing at a local build.
|
|
176
198
|
|
|
199
|
+
[0.3.1]: https://github.com/meganemura/hegel-ruby/releases/tag/v0.3.1
|
|
177
200
|
[0.3.0]: https://github.com/meganemura/hegel-ruby/releases/tag/v0.3.0
|
|
178
201
|
[0.2.1]: https://github.com/meganemura/hegel-ruby/releases/tag/v0.2.1
|
|
179
202
|
[0.2.0]: https://github.com/meganemura/hegel-ruby/releases/tag/v0.2.0
|
|
Binary file
|
|
@@ -5,5 +5,5 @@ module Hegel
|
|
|
5
5
|
# Hegel::VERSION (the gem's own release): hegel-go and hegel-typescript keep
|
|
6
6
|
# the two separate too, so bumping the pinned engine can land as its own
|
|
7
7
|
# commit without also releasing a new gem version.
|
|
8
|
-
LIBHEGEL_VERSION = "0.45.
|
|
8
|
+
LIBHEGEL_VERSION = "0.45.7"
|
|
9
9
|
end
|
data/lib/hegel/runner.rb
CHANGED
|
@@ -178,9 +178,9 @@ module Hegel
|
|
|
178
178
|
# Pulls test cases from +run+ until hegel_next_test_case reports none
|
|
179
179
|
# left (a nil out-parameter, not an error). Never counts iterations
|
|
180
180
|
# itself: test_cases bounds generation, not how many times shrinking
|
|
181
|
-
# and rejected cases call the body. Measured against libhegel 0.45.
|
|
181
|
+
# and rejected cases call the body. Measured against libhegel 0.45.7, a
|
|
182
182
|
# run configured for 20 test cases whose body rejected nearly every case
|
|
183
|
-
# took
|
|
183
|
+
# took 913 to 1818 iterations. +stats+ does its own, different counting
|
|
184
184
|
# -- see GenerationStats above.
|
|
185
185
|
def drive(impl, ctx, run, stats, captures, &block)
|
|
186
186
|
loop do
|
data/lib/hegel/version.rb
CHANGED
|
@@ -494,12 +494,12 @@ expose) are not available in this binding; `codec:`, `min_codepoint:`, and
|
|
|
494
494
|
`max_codepoint:` are the alphabet controls it exposes today.
|
|
495
495
|
|
|
496
496
|
Other generators cover most character-set jobs. These results were measured
|
|
497
|
-
with libhegel 0.45.
|
|
497
|
+
with libhegel 0.45.7:
|
|
498
498
|
|
|
499
499
|
| Job | Generator | Measured output |
|
|
500
500
|
|---|---|---|
|
|
501
|
-
| Characters to include | `from_regex("[ぁ-んA-Z0-9]{1,5}", fullmatch: true)` | `"0"`, `"
|
|
502
|
-
| Characters to exclude | `from_regex("[^,\\t\\n]{0,6}", fullmatch: true)` | `""`, `"
|
|
501
|
+
| Characters to include | `from_regex("[ぁ-んA-Z0-9]{1,5}", fullmatch: true)` | `"0"`, `"お"`, `"Dぷぎ"`; 30 draws all matched the pattern |
|
|
502
|
+
| Characters to exclude | `from_regex("[^,\\t\\n]{0,6}", fullmatch: true)` | `""`, `"âb¤"`; 30 draws contained no comma, tab, or newline |
|
|
503
503
|
| A contiguous block | `text(min_codepoint: 0x300, max_codepoint: 0x36F)` | Every character of 100 draws was in U+0300 through U+036F |
|
|
504
504
|
| An arbitrary alphabet | `arrays(sampled_from(%w[ß a İ]), max_size: 4).map(&:join)` | 30 draws, each built only from `ß`, `a`, and `İ` |
|
|
505
505
|
|
|
@@ -512,14 +512,13 @@ inputs and reported this health check:
|
|
|
512
512
|
|
|
513
513
|
```
|
|
514
514
|
FailedHealthCheck: FilterTooMuch — it looks like this test is filtering out
|
|
515
|
-
too many inputs. 50 inputs were
|
|
516
|
-
inputs were generated. If this is expected, suppress the
|
|
517
|
-
suppress_health_check
|
|
515
|
+
too many inputs. 50 inputs were rejected by assume() or a filter while only
|
|
516
|
+
0 valid inputs were generated. If this is expected, suppress the
|
|
517
|
+
FilterTooMuch health check with the suppress_health_check setting.
|
|
518
518
|
```
|
|
519
519
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
[Settings](#settings).
|
|
520
|
+
This binding takes that setting as
|
|
521
|
+
`suppress_health_check: [:filter_too_much]`, listed in [Settings](#settings).
|
|
523
522
|
|
|
524
523
|
Unconfigured `text` draws from a much wider Unicode range. In 200 draws of
|
|
525
524
|
`text(min_size: 1, max_size: 4)`, the results included emoji, private-use
|
|
@@ -745,6 +744,13 @@ translated): `from_regex(/[a-z]{3}/)` raises `Hegel::Error` at draw time,
|
|
|
745
744
|
Regexp"`. Pass `my_regexp.source` explicitly for a pattern confirmed to
|
|
746
745
|
need no flags and to use only syntax the two grammars share.
|
|
747
746
|
|
|
747
|
+
A pattern that no string matches, such as `"(?!)"`, also raises
|
|
748
|
+
`Hegel::Error` at draw time. The engine writes the message, and it names
|
|
749
|
+
the pattern: `from_regex("(?!)")` raises
|
|
750
|
+
`"HEGEL_E_INVALID_ARG (-5): regex pattern \"(?!)\" matches no string the
|
|
751
|
+
generator can produce"`. Since libhegel 0.45.7 the engine makes this
|
|
752
|
+
check.
|
|
753
|
+
|
|
748
754
|
### `emails`
|
|
749
755
|
|
|
750
756
|
An RFC 5321/5322 email address `String`.
|