Summary

csi2 (0/2)

build (fail)
          [INFO] Building Spade Compiler
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 44.79s
[INFO] Attempting to download surfer plugin wasm file.
[INFO] Done downloading surfer plugin
[INFO] Cloning "protocols"
[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 7857ff5 Bump to new Spade
error: I2CConfig is inaccessible
   ┌─ src/camera_config.spade:2:21
   │
 2 │ use protocols::i2c::I2CConfig;
   │                ---  ^^^^^^^^^ I2CConfig is inaccessible
   │                │     
   │                Because i2c is inaccessible
   │
   ┌─ build/libs/protocols/src/i2c.spade:7:1
   │  
 7 │ ╭ struct I2CConfig {
 8 │ │     clk_period: uint<20>,
 9 │ │     t_250ns: uint<20>
10 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   ┌─ build/libs/protocols/src/main.spade:2:1
   │
 2 │ mod i2c;
   │ ------- The item is inaccessible because i2c is inaccessible

error: ShortPacketStream is inaccessible
   ┌─ src/main.spade:14:24
   │
14 │ use lib::short_packet::ShortPacketStream;
   │                        ^^^^^^^^^^^^^^^^^ ShortPacketStream is inaccessible
   │
   ┌─ src/short_packet.spade:7:1
   │  
 7 │ ╭ struct ShortPacketStream {
 8 │ │     s: Option<ShortPacket>
 9 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 7 │ pub struct ShortPacketStream {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 7 │ pub(lib) struct ShortPacketStream {
   │ +++++++++

error: UartConfig is inaccessible
  ┌─ src/uart_config.spade:1:22
  │
1 │ use protocols::uart::UartConfig;
  │                ----  ^^^^^^^^^^ UartConfig is inaccessible
  │                │      
  │                Because uart is inaccessible
  │
  ┌─ build/libs/protocols/src/uart.spade:3:1
  │  
3 │ ╭ struct UartConfig {
4 │ │     bit_time: uint<15>,
5 │ │     parity: bool,
6 │ │     stop_bits: uint<3>
7 │ │ }
  │ ╰─' The inaccessible item is defined here
  │  
  ┌─ build/libs/protocols/src/main.spade:1:1
  │
1 │ mod uart;
  │ -------- The item is inaccessible because uart is inaccessible

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 Compiler
    Finished `release` profile [optimized] target(s) in 0.24s
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 7857ff5 Bump to new Spade
error: I2CConfig is inaccessible
   ┌─ src/camera_config.spade:2:21
   │
 2 │ use protocols::i2c::I2CConfig;
   │                ---  ^^^^^^^^^ I2CConfig is inaccessible
   │                │     
   │                Because i2c is inaccessible
   │
   ┌─ build/libs/protocols/src/i2c.spade:7:1
   │  
 7 │ ╭ struct I2CConfig {
 8 │ │     clk_period: uint<20>,
 9 │ │     t_250ns: uint<20>
10 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   ┌─ build/libs/protocols/src/main.spade:2:1
   │
 2 │ mod i2c;
   │ ------- The item is inaccessible because i2c is inaccessible

error: ShortPacketStream is inaccessible
   ┌─ src/main.spade:14:24
   │
14 │ use lib::short_packet::ShortPacketStream;
   │                        ^^^^^^^^^^^^^^^^^ ShortPacketStream is inaccessible
   │
   ┌─ src/short_packet.spade:7:1
   │  
 7 │ ╭ struct ShortPacketStream {
 8 │ │     s: Option<ShortPacket>
 9 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 7 │ pub struct ShortPacketStream {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 7 │ pub(lib) struct ShortPacketStream {
   │ +++++++++

error: UartConfig is inaccessible
  ┌─ src/uart_config.spade:1:22
  │
1 │ use protocols::uart::UartConfig;
  │                ----  ^^^^^^^^^^ UartConfig is inaccessible
  │                │      
  │                Because uart is inaccessible
  │
  ┌─ build/libs/protocols/src/uart.spade:3:1
  │  
3 │ ╭ struct UartConfig {
4 │ │     bit_time: uint<15>,
5 │ │     parity: bool,
6 │ │     stop_bits: uint<3>
7 │ │ }
  │ ╰─' The inaccessible item is defined here
  │  
  ┌─ build/libs/protocols/src/main.spade:1:1
  │
1 │ mod uart;
  │ -------- The item is inaccessible because uart is inaccessible

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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.

        

ethernet (1/1)

build (success)
          
        

fixed (1/1)

build (success)
          
        

mcp3002 (1/1)

build (success)
          
        

protocols (2/2)

build (success)
          
        
test (success)
          
        

ready_valid (1/1)

build (success)
          
        

spade-v (0/2)

build (fail)
          [INFO] Building Spade Compiler
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 1m 23s
[INFO] Attempting to download surfer plugin wasm file.
[INFO] Done downloading surfer plugin
[INFO] Cloning "protocols"
[INFO] Building spade code
[ERROR] Failed to build spade code
Cloning into '/builds/spade-lang/trawler/work/spade-v/build/libs/protocols'...
HEAD is now at 426e282 Fix failing SPI test
error: Op is inaccessible
   ┌─ src/alu.spade:36:38
   │
36 │ fn get_alu_op(insn_op: instructions::Op) -> AluOp {
   │                                      ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ src/cpu.spade:29:31
   │
29 │     op: spadev::instructions::Op,
   │                               ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ src/csr.spade:15:28
   │
15 │     op: inv &instructions::Op,
   │                            ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: AccessWidth is inaccessible
   ┌─ src/memory.spade:9:15
   │
 9 │ use lib::bus::AccessWidth;
   │               ^^^^^^^^^^^ AccessWidth is inaccessible
   │
   ┌─ src/bus.spade:19:1
   │  
19 │ ╭ enum AccessWidth {
20 │ │     Full,
21 │ │     HalfU,
22 │ │     HalfS,
23 │ │     ByteU,
24 │ │     ByteS
25 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
19 │ pub enum AccessWidth {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
19 │ pub(lib) enum AccessWidth {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ src/peripherals/led.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ src/peripherals/timer.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: Op is inaccessible
   ┌─ src/pfc.spade:51:23
   │
51 │     op: instructions::Op,
   │                       ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ src/program_load_adapter.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ProgramLoadSignals is inaccessible
   ┌─ src/uart_loader.spade:1:15
   │
 1 │ use lib::bus::ProgramLoadSignals;
   │               ^^^^^^^^^^^^^^^^^^ ProgramLoadSignals is inaccessible
   │
   ┌─ src/bus.spade:13:1
   │  
13 │ ╭ struct ProgramLoadSignals {
14 │ │     done: bool,
15 │ │     data: Option<AddrValue>
16 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
13 │ pub struct ProgramLoadSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
13 │ pub(lib) struct ProgramLoadSignals {
   │ +++++++++

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 Compiler
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 0.31s
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 426e282 Fix failing SPI test
error: Op is inaccessible
   ┌─ src/alu.spade:36:38
   │
36 │ fn get_alu_op(insn_op: instructions::Op) -> AluOp {
   │                                      ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ src/cpu.spade:29:31
   │
29 │     op: spadev::instructions::Op,
   │                               ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ src/csr.spade:15:28
   │
15 │     op: inv &instructions::Op,
   │                            ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: AccessWidth is inaccessible
   ┌─ src/memory.spade:9:15
   │
 9 │ use lib::bus::AccessWidth;
   │               ^^^^^^^^^^^ AccessWidth is inaccessible
   │
   ┌─ src/bus.spade:19:1
   │  
19 │ ╭ enum AccessWidth {
20 │ │     Full,
21 │ │     HalfU,
22 │ │     HalfS,
23 │ │     ByteU,
24 │ │     ByteS
25 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
19 │ pub enum AccessWidth {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
19 │ pub(lib) enum AccessWidth {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ src/peripherals/led.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ src/peripherals/timer.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: Op is inaccessible
   ┌─ src/pfc.spade:51:23
   │
51 │     op: instructions::Op,
   │                       ^^ Op is inaccessible
   │
   ┌─ src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ src/program_load_adapter.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ProgramLoadSignals is inaccessible
   ┌─ src/uart_loader.spade:1:15
   │
 1 │ use lib::bus::ProgramLoadSignals;
   │               ^^^^^^^^^^^^^^^^^^ ProgramLoadSignals is inaccessible
   │
   ┌─ src/bus.spade:13:1
   │  
13 │ ╭ struct ProgramLoadSignals {
14 │ │     done: bool,
15 │ │     data: Option<AddrValue>
16 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
13 │ pub struct ProgramLoadSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
13 │ pub(lib) struct ProgramLoadSignals {
   │ +++++++++

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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.

        

spade-v-hwtest-uart (0/3)

build (fail)
          [WARN] swim.toml contains 1 unknown field:
[WARN]   synthesis.?.extra_verilog
[INFO] Building Spade Compiler
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 1m 23s
[INFO] Attempting to download surfer plugin wasm file.
[INFO] Done downloading surfer plugin
[INFO] Cloning "protocols"
[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 426e282 Fix failing SPI test
error: Buses is inaccessible
   ┌─ src/led_blink.spade:9:18
   │
 9 │ use spadev::bus::Buses;
   │             ---  ^^^^^ Buses is inaccessible
   │             │     
   │             Because bus is inaccessible
   │
   ┌─ ../src/bus.spade:52:1
   │  
52 │ ╭ struct port Buses {
53 │ │     data: Bus,
54 │ │     instruction: Bus,
55 │ │     load_done: &bool,
56 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   ┌─ ../src/main.spade:2:1
   │
 2 │ mod bus;
   │ ------- The item is inaccessible because bus is inaccessible

error: Op is inaccessible
   ┌─ ../src/alu.spade:36:38
   │
36 │ fn get_alu_op(insn_op: instructions::Op) -> AluOp {
   │                                      ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/cpu.spade:29:31
   │
29 │     op: spadev::instructions::Op,
   │                               ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/csr.spade:15:28
   │
15 │     op: inv &instructions::Op,
   │                            ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: AccessWidth is inaccessible
   ┌─ ../src/memory.spade:9:15
   │
 9 │ use lib::bus::AccessWidth;
   │               ^^^^^^^^^^^ AccessWidth is inaccessible
   │
   ┌─ ../src/bus.spade:19:1
   │  
19 │ ╭ enum AccessWidth {
20 │ │     Full,
21 │ │     HalfU,
22 │ │     HalfS,
23 │ │     ByteU,
24 │ │     ByteS
25 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
19 │ pub enum AccessWidth {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
19 │ pub(lib) enum AccessWidth {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/peripherals/led.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/peripherals/timer.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/pfc.spade:51:23
   │
51 │     op: instructions::Op,
   │                       ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/program_load_adapter.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ProgramLoadSignals is inaccessible
   ┌─ ../src/uart_loader.spade:1:15
   │
 1 │ use lib::bus::ProgramLoadSignals;
   │               ^^^^^^^^^^^^^^^^^^ ProgramLoadSignals is inaccessible
   │
   ┌─ ../src/bus.spade:13:1
   │  
13 │ ╭ struct ProgramLoadSignals {
14 │ │     done: bool,
15 │ │     data: Option<AddrValue>
16 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
13 │ pub struct ProgramLoadSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
13 │ pub(lib) struct ProgramLoadSignals {
   │ +++++++++

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 Compiler
    Finished `release` profile [optimized] target(s) in 0.26s
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 426e282 Fix failing SPI test
error: Buses is inaccessible
   ┌─ src/led_blink.spade:9:18
   │
 9 │ use spadev::bus::Buses;
   │             ---  ^^^^^ Buses is inaccessible
   │             │     
   │             Because bus is inaccessible
   │
   ┌─ ../src/bus.spade:52:1
   │  
52 │ ╭ struct port Buses {
53 │ │     data: Bus,
54 │ │     instruction: Bus,
55 │ │     load_done: &bool,
56 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   ┌─ ../src/main.spade:2:1
   │
 2 │ mod bus;
   │ ------- The item is inaccessible because bus is inaccessible

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

error: Op is inaccessible
   ┌─ ../src/alu.spade:36:38
   │
36 │ fn get_alu_op(insn_op: instructions::Op) -> AluOp {
   │                                      ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/cpu.spade:29:31
   │
29 │     op: spadev::instructions::Op,
   │                               ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/csr.spade:15:28
   │
15 │     op: inv &instructions::Op,
   │                            ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: AccessWidth is inaccessible
   ┌─ ../src/memory.spade:9:15
   │
 9 │ use lib::bus::AccessWidth;
   │               ^^^^^^^^^^^ AccessWidth is inaccessible
   │
   ┌─ ../src/bus.spade:19:1
   │  
19 │ ╭ enum AccessWidth {
20 │ │     Full,
21 │ │     HalfU,
22 │ │     HalfS,
23 │ │     ByteU,
24 │ │     ByteS
25 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
19 │ pub enum AccessWidth {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
19 │ pub(lib) enum AccessWidth {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/peripherals/led.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/peripherals/timer.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/pfc.spade:51:23
   │
51 │     op: instructions::Op,
   │                       ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/program_load_adapter.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ProgramLoadSignals is inaccessible
   ┌─ ../src/uart_loader.spade:1:15
   │
 1 │ use lib::bus::ProgramLoadSignals;
   │               ^^^^^^^^^^^^^^^^^^ ProgramLoadSignals is inaccessible
   │
   ┌─ ../src/bus.spade:13:1
   │  
13 │ ╭ struct ProgramLoadSignals {
14 │ │     done: bool,
15 │ │     data: Option<AddrValue>
16 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
13 │ pub struct ProgramLoadSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
13 │ pub(lib) struct ProgramLoadSignals {
   │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 Compiler
    Finished `release` profile [optimized] target(s) in 0.24s
[INFO] Building spade code
[ERROR] Failed to build spade code
HEAD is now at 426e282 Fix failing SPI test
error: Buses is inaccessible
   ┌─ src/led_blink.spade:9:18
   │
 9 │ use spadev::bus::Buses;
   │             ---  ^^^^^ Buses is inaccessible
   │             │     
   │             Because bus is inaccessible
   │
   ┌─ ../src/bus.spade:52:1
   │  
52 │ ╭ struct port Buses {
53 │ │     data: Bus,
54 │ │     instruction: Bus,
55 │ │     load_done: &bool,
56 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   ┌─ ../src/main.spade:2:1
   │
 2 │ mod bus;
   │ ------- The item is inaccessible because bus is inaccessible

error: UartOut is inaccessible
    ┌─ build/libs/protocols/src/test.spade:2:16
    │
  2 │ use lib::uart::UartOut;
    │                ^^^^^^^ UartOut is inaccessible
    │
    ┌─ build/libs/protocols/src/uart.spade:114:1
    │  
114 │ ╭ enum UartOut {
115 │ │     Ok{val: uint<8>},
116 │ │     ParityError{val: uint<8>},
117 │ │     None
118 │ │ }
    │ ╰─' The inaccessible item is defined here
    │  
    = Consider adding `pub`
    │
114 │ pub enum UartOut {
    │ ++++
    = Or a more limited visibility like pub(lib) or pub(super)
    │
114 │ pub(lib) enum UartOut {
    │ +++++++++

error: Op is inaccessible
   ┌─ ../src/alu.spade:36:38
   │
36 │ fn get_alu_op(insn_op: instructions::Op) -> AluOp {
   │                                      ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/cpu.spade:29:31
   │
29 │     op: spadev::instructions::Op,
   │                               ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/csr.spade:15:28
   │
15 │     op: inv &instructions::Op,
   │                            ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: AccessWidth is inaccessible
   ┌─ ../src/memory.spade:9:15
   │
 9 │ use lib::bus::AccessWidth;
   │               ^^^^^^^^^^^ AccessWidth is inaccessible
   │
   ┌─ ../src/bus.spade:19:1
   │  
19 │ ╭ enum AccessWidth {
20 │ │     Full,
21 │ │     HalfU,
22 │ │     HalfS,
23 │ │     ByteU,
24 │ │     ByteS
25 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
19 │ pub enum AccessWidth {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
19 │ pub(lib) enum AccessWidth {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/peripherals/led.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/peripherals/timer.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: Op is inaccessible
   ┌─ ../src/pfc.spade:51:23
   │
51 │     op: instructions::Op,
   │                       ^^ Op is inaccessible
   │
   ┌─ ../src/instructions.spade:1:1
   │  
 1 │ ╭ enum Op {
 2 │ │     LUI,
 3 │ │     AUIPC,
 4 │ │     JAL,
   · │
57 │ │     INVALID
58 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 1 │ pub enum Op {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 1 │ pub(lib) enum Op {
   │ +++++++++

error: ControlSignals is inaccessible
   ┌─ ../src/program_load_adapter.spade:1:15
   │
 1 │ use lib::bus::ControlSignals;
   │               ^^^^^^^^^^^^^^ ControlSignals is inaccessible
   │
   ┌─ ../src/bus.spade:33:1
   │  
33 │ ╭ struct ControlSignals {
34 │ │     access_width: AccessWidth,
35 │ │     addr: uint<32>,
36 │ │     cmd: Command,
37 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
33 │ pub struct ControlSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
33 │ pub(lib) struct ControlSignals {
   │ +++++++++

error: ProgramLoadSignals is inaccessible
   ┌─ ../src/uart_loader.spade:1:15
   │
 1 │ use lib::bus::ProgramLoadSignals;
   │               ^^^^^^^^^^^^^^^^^^ ProgramLoadSignals is inaccessible
   │
   ┌─ ../src/bus.spade:13:1
   │  
13 │ ╭ struct ProgramLoadSignals {
14 │ │     done: bool,
15 │ │     data: Option<AddrValue>
16 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
13 │ pub struct ProgramLoadSignals {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
13 │ pub(lib) struct ProgramLoadSignals {
   │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 (0/3)

build (fail)
          [WARN] swim.toml contains 1 unknown field:
[WARN]   synthesis.?.extra_verilog
[INFO] Building Spade Compiler
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 1m 28s
[INFO] Attempting to download surfer plugin wasm file.
[INFO] Done downloading surfer plugin
[INFO] Building spade code
[ERROR] Failed to build spade code
error: Timing is inaccessible
   ┌─ src/main.spade:5:18
   │
 5 │ use ws2812::lib::Timing;
   │                  ^^^^^^ Timing is inaccessible
   │
   ┌─ src/lib.spade:8:1
   │  
 8 │ ╭ struct Timing {
 9 │ │     // 50 microseconds
10 │ │     us280: uint<19>,
11 │ │     // 0.4 microseconds
   · │
20 │ │     us1_25: uint<12>,
21 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 8 │ pub struct Timing {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 8 │ pub(lib) struct Timing {
   │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 Compiler
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `release` profile [optimized] target(s) in 0.40s
[INFO] Building spade code
[ERROR] Failed to build spade code
error: Timing is inaccessible
   ┌─ src/main.spade:5:18
   │
 5 │ use ws2812::lib::Timing;
   │                  ^^^^^^ Timing is inaccessible
   │
   ┌─ src/lib.spade:8:1
   │  
 8 │ ╭ struct Timing {
 9 │ │     // 50 microseconds
10 │ │     us280: uint<19>,
11 │ │     // 0.4 microseconds
   · │
20 │ │     us1_25: uint<12>,
21 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 8 │ pub struct Timing {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 8 │ pub(lib) struct Timing {
   │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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 Compiler
    Finished `release` profile [optimized] target(s) in 0.24s
[INFO] Building spade code
[ERROR] Failed to build spade code
error: Timing is inaccessible
   ┌─ src/main.spade:5:18
   │
 5 │ use ws2812::lib::Timing;
   │                  ^^^^^^ Timing is inaccessible
   │
   ┌─ src/lib.spade:8:1
   │  
 8 │ ╭ struct Timing {
 9 │ │     // 50 microseconds
10 │ │     us280: uint<19>,
11 │ │     // 0.4 microseconds
   · │
20 │ │     us1_25: uint<12>,
21 │ │ }
   │ ╰─' The inaccessible item is defined here
   │  
   = Consider adding `pub`
   │
 8 │ pub struct Timing {
   │ ++++
   = Or a more limited visibility like pub(lib) or pub(super)
   │
 8 │ pub(lib) struct Timing {
   │ +++++++++

Error: aborting due to previous error

Location:
    spade-compiler/src/main.rs:168:17
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.

        

This page was generated at 2026-01-21T08:15:44Z.