Summary
- csi2 (0/2)
- ecp5stubs (1/1)
- ethernet (1/1)
- fixed (1/1)
- mcp3002 (1/1)
- playground_blinky (1/1)
- playground_floppy_fish (0/1)
- playground_tinytapeout (1/1)
- playground_vga (1/1)
- protocols (2/2)
- quickscope (0/1)
- ready_valid (1/1)
- spade-v (2/2)
- spade-v-hwtest-uart (0/3)
- templates-alchitry-cu (2/2)
- templates-ecpix5 (2/2)
- templates-go-board (2/2)
- templates-icestick (2/2)
- templates-icesugar-nano (2/2)
- templates-pico-ice40up5k (2/2)
- templates-tangnano20k (2/2)
- templates-tangnano4k (2/2)
- templates-tangnano9k (2/2)
- templates-tinyfpga-bx (2/2)
- templates-ulx3s_85k (2/2)
- vga_spade (1/1)
- ws2812 (3/3)
- ws2812-lithekod (3/3)
csi2 (0/2)
build (fail)
[INFO] Cloning "protocols"
[INFO] Cloning "ready_valid"
[INFO] Cloning "nstd"
[INFO] Building spade code
[ERROR] Failed to build spade code
Cloning into '/builds/spade-lang/trawler/work/csi2/build/libs/protocols'...
warning: redirecting to https://gitlab.com/spade-lang/lib/protocols.git/
HEAD is now at 3170518 Fix tests
Cloning into '/builds/spade-lang/trawler/work/csi2/build/libs/ready_valid'...
HEAD is now at d029c73 Bump Spade again
Cloning into '/builds/spade-lang/trawler/work/csi2/build/libs/nstd'...
HEAD is now at 92b6b79 Add pub markers
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:7:12
│
7 │ pub struct port Rv<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
7 │ pub struct port Rv<T> {
│ ----
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:148:8
│
148 │ struct port FifoOut<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
148 │ struct port FifoOut<T> {
│ ----
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:155:33
│
155 │ pub fn read_empty(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:161:32
│
161 │ pub fn read_full(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:9:11
│
9 │ where O: {uint_bits_to_fit(V) - 1},
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where O: {uint::bits_for(V) - 1},
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:10:11
│
10 │ O: {uint_bits_to_fit(V - 1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
10 │ O: {uint::bits_for(V - 1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/mem.spade:9:15
│
9 │ where W: {uint_bits_to_fit(C)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where W: {uint::bits_for(C)}
│ ~~~~~~~~~~~~~~
warning: Deprecated tuple syntax indexing
┌─ src/main.spade:61:27
│
61 │ align0: match aligned#0 { Some(_) => true, None => false, },
│ ^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/main.spade:62:27
│
62 │ align1: match aligned#1 { Some(_) => true, None => false, },
│ ^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:25:42
│
25 │ let (write, read) = inst fifo::<{uint_bits_to_fit(Depth - 1)}, T, Depth>$(
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
25 │ let (write, read) = inst fifo::<{uint::bits_for(Depth - 1)}, T, Depth>$(
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:131:33
│
131 │ reg(clk) timeout: uint<{uint_bits_to_fit(N)}> reset(rst: 0) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
131 │ reg(clk) timeout: uint<{uint::bits_for(N)}> reset(rst: 0) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:241:50
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint_bits_to_fit(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint::bits_for(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
error: Trait bound not satisfied. inv csi2::Csi2Debug does not implement core::Data
┌─ src/main.spade:35:5
│
35 │ dbg: inv &Csi2Debug
│ ^^^
│ │
│ inv csi2::Csi2Debug does not implement core::Data
│ The type of this argument is not Data which means it cannot be stored in a register.
36 │ ) -> FrontendOut {
│ ╭────────────────────'
│ │ ╭──────────────────'
37 │ │ │ reg * 2; // Domain crossing into the sysclk domain
38 │ │ │ let aligned = inst lane_aligner$(
39 │ │ │ sys_clk,
· │ │
67 │ │ │ FrontendOut(short_packets, raw_pixels)
68 │ │ │ }
│ ╰─│─' Required because of the trait bound specified here
│ ╰─' The value needs to be in a register because it is in this pipeline
│
= help: An value not being Data typically means it contains at least one `inv` type
= help: You can learn more about `Data` here: https://docs.spade-lang.org/typst/wires.html
= Consider making the argument a wire
│
35 │ wire dbg: inv &Csi2Debug
│ +++++
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
test (fail)
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 3170518 Fix tests
HEAD is now at d029c73 Bump Spade again
HEAD is now at 92b6b79 Add pub markers
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:7:12
│
7 │ pub struct port Rv<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
7 │ pub struct port Rv<T> {
│ ----
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:148:8
│
148 │ struct port FifoOut<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
148 │ struct port FifoOut<T> {
│ ----
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:155:33
│
155 │ pub fn read_empty(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:161:32
│
161 │ pub fn read_full(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/mem.spade:9:15
│
9 │ where W: {uint_bits_to_fit(C)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where W: {uint::bits_for(C)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:9:11
│
9 │ where O: {uint_bits_to_fit(V) - 1},
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where O: {uint::bits_for(V) - 1},
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:10:11
│
10 │ O: {uint_bits_to_fit(V - 1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
10 │ O: {uint::bits_for(V - 1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated tuple syntax indexing
┌─ src/main.spade:61:27
│
61 │ align0: match aligned#0 { Some(_) => true, None => false, },
│ ^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/main.spade:62:27
│
62 │ align1: match aligned#1 { Some(_) => true, None => false, },
│ ^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:25:42
│
25 │ let (write, read) = inst fifo::<{uint_bits_to_fit(Depth - 1)}, T, Depth>$(
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
25 │ let (write, read) = inst fifo::<{uint::bits_for(Depth - 1)}, T, Depth>$(
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:131:33
│
131 │ reg(clk) timeout: uint<{uint_bits_to_fit(N)}> reset(rst: 0) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
131 │ reg(clk) timeout: uint<{uint::bits_for(N)}> reset(rst: 0) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:241:50
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint_bits_to_fit(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint::bits_for(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ~~~~~~~~~~~~~~
error: Trait bound not satisfied. inv csi2::Csi2Debug does not implement core::Data
┌─ src/main.spade:35:5
│
35 │ dbg: inv &Csi2Debug
│ ^^^
│ │
│ inv csi2::Csi2Debug does not implement core::Data
│ The type of this argument is not Data which means it cannot be stored in a register.
36 │ ) -> FrontendOut {
│ ╭────────────────────'
│ │ ╭──────────────────'
37 │ │ │ reg * 2; // Domain crossing into the sysclk domain
38 │ │ │ let aligned = inst lane_aligner$(
39 │ │ │ sys_clk,
· │ │
67 │ │ │ FrontendOut(short_packets, raw_pixels)
68 │ │ │ }
│ ╰─│─' Required because of the trait bound specified here
│ ╰─' The value needs to be in a register because it is in this pipeline
│
= help: An value not being Data typically means it contains at least one `inv` type
= help: You can learn more about `Data` here: https://docs.spade-lang.org/typst/wires.html
= Consider making the argument a wire
│
35 │ wire dbg: inv &Csi2Debug
│ +++++
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
ecp5stubs (1/1)
build (success)
ethernet (1/1)
build (success)
fixed (1/1)
build (success)
mcp3002 (1/1)
build (success)
playground_blinky (1/1)
build (success)
playground_floppy_fish (0/1)
build (fail)
[INFO] Cloning "vga"
[INFO] Cloning "fixed"
[INFO] Building spade code
[ERROR] Failed to build spade code
Cloning into '/builds/spade-lang/trawler/work/playground_floppy_fish/swim_floppy_fish/build/libs/vga'...
warning: redirecting to https://gitlab.com/spade-lang/lib/vga_spade.git/
HEAD is now at d3cd108 Bump Spade
Cloning into '/builds/spade-lang/trawler/work/playground_floppy_fish/swim_floppy_fish/build/libs/fixed'...
warning: redirecting to https://gitlab.com/spade-lang/lib/fixed.git/
HEAD is now at 8adaa72 Bump Spade
error: Trait bound not satisfied. inv bool does not implement core::Data
┌─ src/main.spade:98:3
│
98 │ game_over: inv &bool,
│ ^^^^^^^^^
│ │
│ inv bool does not implement core::Data
│ The type of this argument is not Data which means it cannot be stored in a register.
99 │ ) -> Color {
│ ╭──────────────'
│ │ ╭────────────'
100 │ │ │ let player_size = 32;
101 │ │ │ let pipe_gap = 90;
102 │ │ │ let player_in_y = y > sext(player_pos.to_int()) && y < sext(player_pos.to_int() + player_size);
· │ │
126 │ │ │ color
127 │ │ │ }
│ ╰─│─' Required because of the trait bound specified here
│ ╰─' The value needs to be in a register because it is in this pipeline
│
= help: An value not being Data typically means it contains at least one `inv` type
= help: You can learn more about `Data` here: https://docs.spade-lang.org/typst/wires.html
= Consider making the argument a wire
│
98 │ wire game_over: inv &bool,
│ +++++
error: Type of expression is not fully known
┌─ build/libs/fixed/src/main.spade:75:46
│
75 │ if guard_bits == 0 || guard_bits == ~0 {
│ ^ The type of this expression is not fully known
│
= note: Found incomplete type: Number<_> + core::ops::BitNot
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
playground_tinytapeout (1/1)
build (success)
playground_vga (1/1)
build (success)
protocols (2/2)
build (success)
test (success)
quickscope (0/1)
build (fail)
[INFO] Cloning "ready_valid"
[INFO] Cloning "protocols"
[INFO] Cloning "nstd"
[INFO] Building spade code
[ERROR] Failed to build spade code
Cloning into '/builds/spade-lang/trawler/work/quickscope/build/libs/ready_valid'...
HEAD is now at 30e51db Make escape_bytes public
Cloning into '/builds/spade-lang/trawler/work/quickscope/build/libs/protocols'...
HEAD is now at 3170518 Fix tests
Cloning into '/builds/spade-lang/trawler/work/quickscope/build/libs/nstd'...
HEAD is now at 92b6b79 Add pub markers
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:7:12
│
7 │ pub struct port Rv<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
7 │ pub struct port Rv<T> {
│ ----
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:148:8
│
148 │ struct port FifoOut<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
148 │ struct port FifoOut<T> {
│ ----
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:155:33
│
155 │ pub fn read_empty(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:161:32
│
161 │ pub fn read_full(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:9:11
│
9 │ where O: {uint_bits_to_fit(V) - 1},
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where O: {uint::bits_for(V) - 1},
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:10:11
│
10 │ O: {uint_bits_to_fit(V - 1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
10 │ O: {uint::bits_for(V - 1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/mem.spade:9:15
│
9 │ where W: {uint_bits_to_fit(C)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where W: {uint::bits_for(C)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:25:42
│
25 │ let (write, read) = inst fifo::<{uint_bits_to_fit(Depth - 1)}, T, Depth>$(
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
25 │ let (write, read) = inst fifo::<{uint::bits_for(Depth - 1)}, T, Depth>$(
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:131:33
│
131 │ reg(clk) timeout: uint<{uint_bits_to_fit(N)}> reset(rst: 0) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
131 │ reg(clk) timeout: uint<{uint::bits_for(N)}> reset(rst: 0) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:241:50
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint_bits_to_fit(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint::bits_for(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
error: _ has no method `into_element_stream`
┌─ src/main.spade:52:4
│
52 │ ╭ Rv(&data_in, ready.1)
53 │ │ .inst fifo_buffer::<SampleBuffer>(clk, rst)
54 │ │ .read_empty(empty.1)
55 │ │ .data
· │
58 │ │ })
59 │ │ .inst into_element_stream(clk, rst)
│ ╰─────────────────────────────────────────^
error: `ready_valid::FifoOut<core::Data>` has no method `read_empty`
┌─ src/main.spade:54:8
│
52 │ ╭ Rv(&data_in, ready.1)
53 │ │ .inst fifo_buffer::<SampleBuffer>(clk, rst)
54 │ │ .read_empty(empty.1)
│ │ ^^^^^^^^^^ No such method
│ ╰──────────────────────────' This has type `ready_valid::FifoOut<core::Data>`
error: Field access on {unknown} which is not a struct
┌─ src/main.spade:52:4
│
52 │ ╭ Rv(&data_in, ready.1)
53 │ │ .inst fifo_buffer::<SampleBuffer>(clk, rst)
54 │ │ .read_empty(empty.1)
│ ╰──────────────────────────^ Expected a struct, found {unknown}
│
= help: Field access is only allowed on structs
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
ready_valid (1/1)
build (success)
spade-v (2/2)
build (success)
test (success)
spade-v-hwtest-uart (0/3)
build (fail)
[WARN] swim.toml contains 1 unknown field:
[WARN] synthesis.?.extra_verilog
[INFO] Cloning "protocols"
[INFO] Cloning "ready_valid"
[INFO] Cloning "nstd"
[INFO] Building spade code
[ERROR] Failed to build spade code
Cloning into '/builds/spade-lang/trawler/work/spade-v-hwtest-uart/hwtest_uart/build/libs/protocols'...
HEAD is now at 3170518 Fix tests
Cloning into '/builds/spade-lang/trawler/work/spade-v-hwtest-uart/hwtest_uart/build/libs/ready_valid'...
HEAD is now at d029c73 Bump Spade again
Cloning into '/builds/spade-lang/trawler/work/spade-v-hwtest-uart/hwtest_uart/build/libs/nstd'...
HEAD is now at 92b6b79 Add pub markers
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:7:12
│
7 │ pub struct port Rv<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
7 │ pub struct port Rv<T> {
│ ----
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:148:8
│
148 │ struct port FifoOut<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
148 │ struct port FifoOut<T> {
│ ----
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:155:33
│
155 │ pub fn read_empty(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:161:32
│
161 │ pub fn read_full(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:9:11
│
9 │ where O: {uint_bits_to_fit(V) - 1},
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where O: {uint::bits_for(V) - 1},
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:10:11
│
10 │ O: {uint_bits_to_fit(V - 1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
10 │ O: {uint::bits_for(V - 1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/mem.spade:9:15
│
9 │ where W: {uint_bits_to_fit(C)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where W: {uint::bits_for(C)}
│ ~~~~~~~~~~~~~~
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:49:27
│
49 │ range: (trunc(UPPER_DMEM#0), trunc(UPPER_DMEM#1)),
│ ^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:49:48
│
49 │ range: (trunc(UPPER_DMEM#0), trunc(UPPER_DMEM#1)),
│ ^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:57:32
│
57 │ if zext(address) < LOWER_DATA_MEM_RANGE#1 { lower_data_mem_out }
│ ^^^^^^^^^^^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:58:37
│
58 │ else if zext(address) < LED_RANGE#1 { 0 }
│ ^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:59:37
│
59 │ else if zext(address) < TIMER_RANGE#1 { stage(-1).timer_out }
│ ^^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:25:42
│
25 │ let (write, read) = inst fifo::<{uint_bits_to_fit(Depth - 1)}, T, Depth>$(
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
25 │ let (write, read) = inst fifo::<{uint::bits_for(Depth - 1)}, T, Depth>$(
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:131:33
│
131 │ reg(clk) timeout: uint<{uint_bits_to_fit(N)}> reset(rst: 0) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
131 │ reg(clk) timeout: uint<{uint::bits_for(N)}> reset(rst: 0) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:241:50
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint_bits_to_fit(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint::bits_for(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
error: Trait bound not satisfied. inv bool does not implement core::Data
┌─ src/led_blink.spade:26:5
│
26 │ led: inv &bool,
│ ^^^
│ │
│ inv bool does not implement core::Data
│ The type of this argument is not Data which means it cannot be stored in a register.
27 │ ) -> Buses {
│ ╭──────────────'
│ │ ╭────────────'
28 │ │ │ // Build the bus signals
29 │ │ │ let data_control = inst new_mut_wire();
30 │ │ │ let insn_control = inst new_mut_wire();
· │ │
66 │ │ │ )
67 │ │ │ }
│ ╰─│─' Required because of the trait bound specified here
│ ╰─' The value needs to be in a register because it is in this pipeline
│
= help: An value not being Data typically means it contains at least one `inv` type
= help: You can learn more about `Data` here: https://docs.spade-lang.org/typst/wires.html
= Consider making the argument a wire
│
26 │ wire led: inv &bool,
│ +++++
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
pnr (fail)
[WARN] swim.toml contains 1 unknown field:
[WARN] synthesis.?.extra_verilog
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 3170518 Fix tests
HEAD is now at d029c73 Bump Spade again
HEAD is now at 92b6b79 Add pub markers
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:7:12
│
7 │ pub struct port Rv<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
7 │ pub struct port Rv<T> {
│ ----
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:148:8
│
148 │ struct port FifoOut<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
148 │ struct port FifoOut<T> {
│ ----
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:155:33
│
155 │ pub fn read_empty(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:161:32
│
161 │ pub fn read_full(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/mem.spade:9:15
│
9 │ where W: {uint_bits_to_fit(C)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where W: {uint::bits_for(C)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:9:11
│
9 │ where O: {uint_bits_to_fit(V) - 1},
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where O: {uint::bits_for(V) - 1},
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:10:11
│
10 │ O: {uint_bits_to_fit(V - 1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
10 │ O: {uint::bits_for(V - 1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:49:27
│
49 │ range: (trunc(UPPER_DMEM#0), trunc(UPPER_DMEM#1)),
│ ^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:49:48
│
49 │ range: (trunc(UPPER_DMEM#0), trunc(UPPER_DMEM#1)),
│ ^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:57:32
│
57 │ if zext(address) < LOWER_DATA_MEM_RANGE#1 { lower_data_mem_out }
│ ^^^^^^^^^^^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:58:37
│
58 │ else if zext(address) < LED_RANGE#1 { 0 }
│ ^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:59:37
│
59 │ else if zext(address) < TIMER_RANGE#1 { stage(-1).timer_out }
│ ^^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:25:42
│
25 │ let (write, read) = inst fifo::<{uint_bits_to_fit(Depth - 1)}, T, Depth>$(
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
25 │ let (write, read) = inst fifo::<{uint::bits_for(Depth - 1)}, T, Depth>$(
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:131:33
│
131 │ reg(clk) timeout: uint<{uint_bits_to_fit(N)}> reset(rst: 0) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
131 │ reg(clk) timeout: uint<{uint::bits_for(N)}> reset(rst: 0) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:241:50
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint_bits_to_fit(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint::bits_for(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ~~~~~~~~~~~~~~
error: Trait bound not satisfied. inv bool does not implement core::Data
┌─ src/led_blink.spade:26:5
│
26 │ led: inv &bool,
│ ^^^
│ │
│ inv bool does not implement core::Data
│ The type of this argument is not Data which means it cannot be stored in a register.
27 │ ) -> Buses {
│ ╭──────────────'
│ │ ╭────────────'
28 │ │ │ // Build the bus signals
29 │ │ │ let data_control = inst new_mut_wire();
30 │ │ │ let insn_control = inst new_mut_wire();
· │ │
66 │ │ │ )
67 │ │ │ }
│ ╰─│─' Required because of the trait bound specified here
│ ╰─' The value needs to be in a register because it is in this pipeline
│
= help: An value not being Data typically means it contains at least one `inv` type
= help: You can learn more about `Data` here: https://docs.spade-lang.org/typst/wires.html
= Consider making the argument a wire
│
26 │ wire led: inv &bool,
│ +++++
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
test (fail)
[WARN] swim.toml contains 1 unknown field:
[WARN] synthesis.?.extra_verilog
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 3170518 Fix tests
HEAD is now at d029c73 Bump Spade again
HEAD is now at 92b6b79 Add pub markers
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:7:12
│
7 │ pub struct port Rv<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
7 │ pub struct port Rv<T> {
│ ----
warning: The port keyword no longer has any effect on structs.
┌─ build/libs/ready_valid/src/main.spade:148:8
│
148 │ struct port FifoOut<T> {
│ ^^^^ struct port and struct are now the same thing
│
= Consider removing `port`
│
148 │ struct port FifoOut<T> {
│ ----
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:155:33
│
155 │ pub fn read_empty(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
error: Unexpected `:`, expected `Identifier`
┌─ build/libs/ready_valid/src/main.spade:161:32
│
161 │ pub fn read_full(self, wire: inv &bool) -> FifoOut<T> {
│ ^ expected `Identifier`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:9:11
│
9 │ where O: {uint_bits_to_fit(V) - 1},
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where O: {uint::bits_for(V) - 1},
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:10:11
│
10 │ O: {uint_bits_to_fit(V - 1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
10 │ O: {uint::bits_for(V - 1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/mem.spade:9:15
│
9 │ where W: {uint_bits_to_fit(C)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
9 │ where W: {uint::bits_for(C)}
│ ~~~~~~~~~~~~~~
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:49:27
│
49 │ range: (trunc(UPPER_DMEM#0), trunc(UPPER_DMEM#1)),
│ ^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:49:48
│
49 │ range: (trunc(UPPER_DMEM#0), trunc(UPPER_DMEM#1)),
│ ^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:57:32
│
57 │ if zext(address) < LOWER_DATA_MEM_RANGE#1 { lower_data_mem_out }
│ ^^^^^^^^^^^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:58:37
│
58 │ else if zext(address) < LED_RANGE#1 { 0 }
│ ^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated tuple syntax indexing
┌─ src/led_blink.spade:59:37
│
59 │ else if zext(address) < TIMER_RANGE#1 { stage(-1).timer_out }
│ ^^^^^^^^^^^^^ `#` syntax for tuple indexing is deprecated
│
= note: replace `#` with `.`
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/option_ext.spade:25:42
│
25 │ let (write, read) = inst fifo::<{uint_bits_to_fit(Depth - 1)}, T, Depth>$(
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
25 │ let (write, read) = inst fifo::<{uint::bits_for(Depth - 1)}, T, Depth>$(
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:131:33
│
131 │ reg(clk) timeout: uint<{uint_bits_to_fit(N)}> reset(rst: 0) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
131 │ reg(clk) timeout: uint<{uint::bits_for(N)}> reset(rst: 0) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/ready_valid/src/main.spade:241:50
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint_bits_to_fit(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
241 │ reg(clk) (array, num_left): ([T; N], uint<{uint::bits_for(N)}>) reset(rst: (std::undef::undef(), 0)) =
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
warning: Deprecated type-level function `uint_bits_to_fit`
┌─ build/libs/nstd/src/array.spade:70:19
│
70 │ where NSize: {uint_bits_to_fit(N-1)}
│ ^^^^^^^^^^^^^^^^
│
= Use `uint::bits_for` instead
│
70 │ where NSize: {uint::bits_for(N-1)}
│ ~~~~~~~~~~~~~~
error: Trait bound not satisfied. inv bool does not implement core::Data
┌─ src/led_blink.spade:26:5
│
26 │ led: inv &bool,
│ ^^^
│ │
│ inv bool does not implement core::Data
│ The type of this argument is not Data which means it cannot be stored in a register.
27 │ ) -> Buses {
│ ╭──────────────'
│ │ ╭────────────'
28 │ │ │ // Build the bus signals
29 │ │ │ let data_control = inst new_mut_wire();
30 │ │ │ let insn_control = inst new_mut_wire();
· │ │
66 │ │ │ )
67 │ │ │ }
│ ╰─│─' Required because of the trait bound specified here
│ ╰─' The value needs to be in a register because it is in this pipeline
│
= help: An value not being Data typically means it contains at least one `inv` type
= help: You can learn more about `Data` here: https://docs.spade-lang.org/typst/wires.html
= Consider making the argument a wire
│
26 │ wire led: inv &bool,
│ +++++
Error: aborting due to previous error
Location:
spade-compiler/src/main.rs:174:23
Error:
0: Failed to build spade code
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
templates-alchitry-cu (2/2)
build (success)
pnr (success)
templates-ecpix5 (2/2)
build (success)
pnr (success)
templates-go-board (2/2)
build (success)
pnr (success)
templates-icestick (2/2)
build (success)
pnr (success)
templates-icesugar-nano (2/2)
build (success)
pnr (success)
templates-pico-ice40up5k (2/2)
build (success)
pnr (success)
templates-tangnano20k (2/2)
build (success)
pnr (success)
templates-tangnano4k (2/2)
build (success)
pnr (success)
templates-tangnano9k (2/2)
build (success)
pnr (success)
templates-tinyfpga-bx (2/2)
build (success)
pnr (success)
templates-ulx3s_85k (2/2)
build (success)
pnr (success)
vga_spade (1/1)
build (success)
ws2812 (3/3)
build (success)
pnr (success)
test (success)
ws2812-lithekod (3/3)
build (success)
pnr (success)
test (success)
This page was generated at 2026-03-21T11:31:17Z.