• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mattwparas / steel / 22936788704
51%

Build:
DEFAULT BRANCH: master
Ran 11 Mar 2026 05:10AM UTC
Jobs 1
Files 124
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Mar 2026 04:29AM UTC coverage: 50.756% (+0.3%) from 50.485%
22936788704

push

github

web-flow
make the port procedures respect `parameterize` (#644)

* allow defaulting the port for (read-port-to-<string/bytes>)

and adjust the docs for that

* make parameterizing work on read-char, read-byte, etc

trying to parameterize the read-char / read-byte / etc procedures
previously didn't work, as they were implemented in rust, where the
rust builtin would just fall back to stdin / stdout for default ports.

the easiest way to make parameterizing work is by making the rust
builtins hidden and basically writing wrapper procedures on the steel
side, where parameterizing already just works.

this also means, that the rust builtins can now just take two arguments
instead of trying to make it callable with only one, eliminating the
need for the `io_args` procedures.

before:

```
λ > (define port (open-output-string))
λ > (parameterize ([current-output-port port])
      (write-char #\a))
a
λ > (get-output-string port)
=> ""
```

after:

```
λ > (define port (open-output-string))
λ > (parameterize ([current-output-port port])
      (write-char #\a))
λ > (get-output-string port)
=> "a"
```

* copy port docs to scheme module

* cargo xtask docgen

* rename default-current-<direction>-port to just default-<direction>-port

those procedures were previously also used in the read-port etc
procedures, but since those have been moved to the steel side to fix
parameterizing, these are no longer needed as the rust-side private
builtins can just take a port unconditionally.

in my opinion calling them something with "current" is a little
misleading, as these are just constructors for the default error ports,
as they are not affected by parameterizing, which the
current-<direction>-port should be. additionally it the functions better
up with the private builtin wrapper procedures (their only call site),
as those are just called `#%default-<direction>-port`.

* add some tests for parameterizing

18 of 18 new or added lines in 2 files covered. (100.0%)

81 existing lines in 7 files now uncovered.

19714 of 38841 relevant lines covered (50.76%)

3611280.18 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
2
49.54
0.0% crates/steel-core/src/values/closed.rs
3
50.61
2.7% crates/steel-core/src/steel_vm/vm.rs
5
33.1
-3.52% crates/steel-core/src/rerrs.rs
8
37.77
0.98% crates/steel-core/src/rvals.rs
9
54.53
-1.89% crates/steel-core/src/values/structs.rs
11
38.71
-2.64% crates/steel-core/src/primitives.rs
43
48.74
-4.17% crates/steel-core/src/primitives/numbers.rs
Jobs
ID Job ID Ran Files Coverage
1 22936788704.1 11 Mar 2026 05:10AM UTC 124
50.76
GitHub Action Run
Source Files on build 22936788704
  • Tree
  • List 124
  • Changed 20
  • Source Changed 0
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6826565a on github
  • Prev Build on master (#22936143927)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc