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

mattwparas / steel / 18783850059
45%

Build:
DEFAULT BRANCH: master
Ran 24 Oct 2025 03:35PM UTC
Jobs 1
Files 119
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

24 Oct 2025 03:06PM UTC coverage: 49.847% (+6.2%) from 43.609%
18783850059

push

github

web-flow
implement the r7rs quotient and remainder procedures (#542)

* add <truncate/floor>-<quotient/remainder>

* move quotient and remainder code into the truncate-<op> definitions

while r7rs defines the quotient and remainder proceduers, it says, that
those are only "provided for backward compatibility" with r5rs, so i
think it makes sense to move the code into the canonical procedures.

i have decided against defining those as an actual alias for their
canonical versions, as i think those are the procedures people are more
likely to search for, making it valuable to find documentation
immediately.

* make modulo an alias for floor-remainder

* add the (euclidian-quotient) and (euclidian-remainder) procedures

these procedures are not actually part of the scheme spec, but they are
useful to have, are already provided by rust and the num crates and
there's no harm in adding them.

additionally mit-scheme also implements them.

* remainder/quotient/etc: don't crash on division by zero

before:

```
λ > (quotient 1 0)

thread 'main' (120257) panicked at crates/steel-core/src/primitives/numbers.rs:389:51:
attempt to divide by zero
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```

after:

```
λ > (quotient 1 0)
error[E11]: Generic
  ┌─ :1:2
  │
1 │ (quotient 1 0)
  │  ^^^^^^^^ truncate-quotient: division by zero
```

* allow bigints in the quotient and remainder procedures

* allow inexact integers in the quotient and remainder procedures

* allow inexact integers in floor-quotient and floor-remainder

a little bit more work, as those are not already pre-defined, so add
those in a separate commit.

* add truncate/, floor/ and euclidean/

* add quotient and remainder tests

* don't panic on overflow in quotient and remainder procedures

before:

```
λ > (truncate-quotient -9223372036854775808 -1)

thread 'main' (250996) panicked at crates/steel-core/src/primitives/numbers.rs:395:51:
attempt to divide with overflow
note: run wit... (continued)

146 of 233 new or added lines in 2 files covered. (62.66%)

743 existing lines in 66 files now uncovered.

15513 of 31121 relevant lines covered (49.85%)

3388751.84 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
87
55.76
1.88% crates/steel-core/src/primitives/numbers.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
79.63
-1.14% crates/steel-core/src/compiler/map.rs
1
69.31
12.59% crates/steel-core/src/compiler/passes/analysis.rs
1
33.71
2.2% crates/steel-core/src/gc.rs
1
45.71
4.67% crates/steel-core/src/parser/parser.rs
1
29.63
1.63% crates/steel-core/src/primitives/io.rs
1
69.23
1.66% crates/steel-core/src/primitives/symbols.rs
1
53.49
-0.63% crates/steel-core/src/primitives/time.rs
1
14.81
-0.57% crates/steel-core/src/steel_vm/cache.rs
1
0.0
0.0% libs/steel-webrequests/src/lib.rs
2
39.13
4.25% crates/steel-core/src/parser/ast.rs
2
71.04
18.19% crates/steel-core/src/parser/replace_idents.rs
2
56.34
-1.01% crates/steel-core/src/primitives/hashsets.rs
2
59.21
3.4% crates/steel-core/src/steel_vm/builtin.rs
2
18.18
-0.48% crates/steel-core/src/values/json_vals.rs
2
66.67
-4.76% crates/steel-core/src/values/transducers.rs
2
0.0
0.0% crates/steel-language-server/src/backend.rs
2
0.0
0.0% libs/steel-regex/src/lib.rs
3
23.81
-1.19% crates/steel-core/src/core/instructions.rs
3
74.1
3.7% crates/steel-core/src/parser/expander.rs
3
5.56
-1.11% crates/steel-core/src/primitives/control.rs
3
39.53
3.28% crates/steel-core/src/values/port.rs
3
0.0
0.0% libs/steel-async-webrequests/src/lib.rs
4
67.2
10.1% crates/steel-core/src/compiler/program.rs
4
31.82
-7.07% crates/steel-core/src/primitives/hashes.rs
4
20.25
-1.08% crates/steel-core/src/primitives/process.rs
4
34.51
-2.37% crates/steel-core/src/rerrs.rs
5
62.34
6.28% crates/steel-core/src/compiler/passes/mangle.rs
5
78.61
5.78% crates/steel-parser/src/parser.rs
6
29.79
-4.36% crates/steel-core/src/primitives/tcp.rs
6
65.32
1.96% crates/steel-core/src/primitives/transducers.rs
6
24.75
2.53% crates/steel-core/src/steel_vm/meta.rs
6
59.48
2.97% crates/steel-core/src/values/structs.rs
6
0.0
0.0% libs/steel-websockets/src/lib.rs
7
18.0
2.27% crates/steel-core/src/primitives/meta_ops.rs
7
3.34
-0.08% crates/steel-language-server/src/diagnostics.rs
8
77.05
0.38% crates/steel-core/src/compiler/passes/shadow.rs
8
31.87
-1.47% crates/steel-core/src/primitives/fs.rs
8
63.47
10.57% crates/steel-parser/src/ast.rs
9
15.29
-1.81% crates/steel-core/src/primitives/http.rs
9
79.67
1.82% crates/steel-core/src/primitives/strings.rs
10
70.22
10.39% crates/steel-core/src/parser/expand_visitor.rs
10
53.28
-3.2% crates/steel-core/src/primitives/hashmaps.rs
10
38.41
4.78% crates/steel-core/src/primitives.rs
10
0.0
0.0% libs/steel-webserver/src/lib.rs
11
67.69
1.4% crates/steel-core/src/primitives/ports.rs
11
43.02
1.11% crates/steel-gen/src/lib.rs
12
65.57
0.67% crates/steel-core/src/primitives/lists.rs
14
50.09
7.65% crates/steel-core/src/rvals/cycles.rs
15
0.0
0.0% libs/steel-sqlite/src/lib.rs
16
68.3
19.05% crates/steel-core/src/compiler/compiler.rs
17
35.29
1.34% crates/steel-core/src/rvals.rs
17
42.71
3.69% crates/steel-core/src/values/closed.rs
20
53.33
3.33% crates/steel-core/src/parser/kernel.rs
20
55.76
1.88% crates/steel-core/src/primitives/numbers.rs
21
1.45
-0.63% crates/steel-core/src/steel_vm/dylib.rs
21
11.41
-1.87% src/lib.rs
22
4.55
-0.91% crates/steel-core/src/primitives/git.rs
22
37.81
0.52% crates/steel-core/src/steel_vm/engine.rs
25
35.6
5.45% crates/steel-core/src/parser/tryfrom_visitor.rs
25
57.17
6.47% crates/steel-core/src/primitives/vectors.rs
26
73.4
-0.65% crates/steel-core/src/steel_vm/primitives.rs
30
74.58
23.8% crates/steel-core/src/compiler/modules.rs
32
0.0
0.0% libs/steel-markdown/src/lib.rs
36
43.3
0.44% crates/steel-core/src/steel_vm/vm/threads.rs
42
1.16
-0.07% crates/steel-core/src/steel_vm/ffi.rs
96
51.22
6.62% crates/steel-core/src/steel_vm/vm.rs
Jobs
ID Job ID Ran Files Coverage
1 18783850059.1 24 Oct 2025 03:35PM UTC 119
49.85
GitHub Action Run
Source Files on build 18783850059
  • Tree
  • List 119
  • Changed 91
  • Source Changed 0
  • Coverage Changed 91
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • dae6f4f0 on github
  • Prev Build on master (#18483448452)
  • Next Build on master (#18783878359)
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