Skip to content

Lab 3 results

Build profile: -w ghc-9.8.4 -O1
In order, the following will be built (use -v for more details):

  • call-stack-0.4.0 (lib) (requires build)
  • colour-2.3.6 (lib) (requires build)
  • prettyprinter-1.7.1 (lib) (requires build)
  • tagged-0.8.9 (lib) (requires build)
  • transformers-compat-0.7.2 (lib) (requires build)
  • ansi-terminal-types-1.1 (lib) (requires build)
  • ansi-terminal-1.1.2 (lib) (requires build)
  • prettyprinter-ansi-terminal-1.1.3 (lib) (requires build)
  • optparse-applicative-0.18.1.0 (lib) (requires build)
  • tasty-1.4.3 (lib) (requires build)
  • tasty-hunit-0.10.2 (lib) (requires build)
  • miniwasm-0.0.0.0 (test:miniwasm-test) (first run)
    Starting call-stack-0.4.0 (lib)
    Starting tagged-0.8.9 (lib)
    Starting colour-2.3.6 (lib)
    Starting transformers-compat-0.7.2 (lib)
    Starting prettyprinter-1.7.1 (lib)
    Building call-stack-0.4.0 (lib)
    Building tagged-0.8.9 (lib)
    Building colour-2.3.6 (lib)
    Building transformers-compat-0.7.2 (lib)
    Building prettyprinter-1.7.1 (lib)
    Installing call-stack-0.4.0 (lib)
    Completed call-stack-0.4.0 (lib)
    Installing tagged-0.8.9 (lib)
    Completed tagged-0.8.9 (lib)
    Installing transformers-compat-0.7.2 (lib)
    Completed transformers-compat-0.7.2 (lib)
    Installing colour-2.3.6 (lib)
    Completed colour-2.3.6 (lib)
    Starting ansi-terminal-types-1.1 (lib)
    Building ansi-terminal-types-1.1 (lib)
    Installing ansi-terminal-types-1.1 (lib)
    Completed ansi-terminal-types-1.1 (lib)
    Starting ansi-terminal-1.1.2 (lib)
    Building ansi-terminal-1.1.2 (lib)
    Installing ansi-terminal-1.1.2 (lib)
    Completed ansi-terminal-1.1.2 (lib)
    Installing prettyprinter-1.7.1 (lib)
    Completed prettyprinter-1.7.1 (lib)
    Starting prettyprinter-ansi-terminal-1.1.3 (lib)
    Building prettyprinter-ansi-terminal-1.1.3 (lib)
    Installing prettyprinter-ansi-terminal-1.1.3 (lib)
    Completed prettyprinter-ansi-terminal-1.1.3 (lib)
    Starting optparse-applicative-0.18.1.0 (lib)
    Building optparse-applicative-0.18.1.0 (lib)
    Installing optparse-applicative-0.18.1.0 (lib)
    Completed optparse-applicative-0.18.1.0 (lib)
    Starting tasty-1.4.3 (lib)
    Building tasty-1.4.3 (lib)
    Installing tasty-1.4.3 (lib)
    Completed tasty-1.4.3 (lib)
    Starting tasty-hunit-0.10.2 (lib)
    Building tasty-hunit-0.10.2 (lib)
    Installing tasty-hunit-0.10.2 (lib)
    Completed tasty-hunit-0.10.2 (lib)
    Configuring test suite 'miniwasm-test' for miniwasm-0.0.0.0...
    Preprocessing test suite 'miniwasm-test' for miniwasm-0.0.0.0...
    Building test suite 'miniwasm-test' for miniwasm-0.0.0.0...
    [1 of 1] Compiling Main ( test/Main.hs, /root/miniwasm/dist-newstyle/build/aarch64-linux/ghc-9.8.4/miniwasm-0.0.0.0/t/miniwasm-test/build/miniwasm-test/miniwasm-test-tmp/Main.o )
    [2 of 2] Linking /root/miniwasm/dist-newstyle/build/aarch64-linux/ghc-9.8.4/miniwasm-0.0.0.0/t/miniwasm-test/build/miniwasm-test/miniwasm-test
    MiniWasm tests
    Small-step evaluation
    Nop: OK
    Drop: OK
    Unreachable: OK
    Add: OK
    Add64: OK
    LocalGet: OK
    LocalSet: OK
    MemSize: OK
    MemLoad: OK
    MemStore: OK
    Block: OK
    Loop: OK
    BrIf-Block: OK
    BrIf-Loop: OK
    Label-Nested: OK
    Call: OK
    Return: OK
    Frame-Nested: OK
    Locals64: OK
    Call64: OK
    Block-Tail-BrIf-True: OK
    Block-Tail-BrIf-False: OK
    Loop-Tail: FAIL
    test/Main.hs:21:
    expected: Config {funcs = [], memory = [], locals = [V_I64 0], stack = [], instrs = [Label {stackDepth = 2, continuation = [Loop (Params {unwrap = [I64,I32]}) (Results {unwrap = [I32]}) [I64_Const 1,I64_BinOp Sub,LocalSet 0,LocalGet 0,LocalGet 0,I64_Const 0,I64_RelOp Gt,BrIf 0,Drop,I32_Const 2,I32_BinOp Div]], innerStack = [V_I64 3,V_I32 6], body = [Plain (I64_Const 1),Plain (I64_BinOp Sub),Plain (LocalSet 0),Plain (LocalGet 0),Plain (LocalGet 0),Plain (I64_Const 0),Plain (I64_RelOp Gt),Plain (BrIf 0),Plain Drop,Plain (I32_Const 2),Plain (I32_BinOp Div)]},Plain (I64_Const 7),Plain (LocalSet 0)]}
    but got: Config {funcs = [], memory = [], locals = [V_I64 0], stack = [], instrs = [Label {stackDepth = 1, continuation = [Loop (Params {unwrap = [I64,I32]}) (Results {unwrap = [I32]}) [I64_Const 1,I64_BinOp Sub,LocalSet 0,LocalGet 0,LocalGet 0,I64_Const 0,I64_RelOp Gt,BrIf 0,Drop,I32_Const 2,I32_BinOp Div]], innerStack = [V_I64 3,V_I32 6], body = [Plain (I64_Const 1),Plain (I64_BinOp Sub),Plain (LocalSet 0),Plain (LocalGet 0),Plain (LocalGet 0),Plain (I64_Const 0),Plain (I64_RelOp Gt),Plain (BrIf 0),Plain Drop,Plain (I32_Const 2),Plain (I32_BinOp Div)]},Plain (I64_Const 7),Plain (LocalSet 0)]}
    Use -p '/Loop-Tail/' to rerun this test only.
    Full programs
    simpleAdd: OK
    isEven: OK
    factorial: OK
    factorial64: OK
    factorialRecursive: OK
    memorySimple: OK
    localsSimple: OK
    localsFunction: OK
    unreachable: OK
    loadOutOfBounds: OK
    storeOutOfBounds: OK

1 out of 34 tests failed (0.01s)


src/MiniWasm/Execution.hs:251:1: warning: [GHC-53633] [-Woverlapping-patterns]
Pattern match is redundant
In an equation for `valueToInt64': valueToInt64 _ = ...
|
251 | valueToInt64 _ = error "Invalid value type"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/MiniWasm/Execution.hs:256:1: warning: [GHC-53633] [-Woverlapping-patterns]
Pattern match is redundant
In an equation for `valueToInt32': valueToInt32 _ = ...
|
256 | valueToInt32 _ = error "Invalid value type"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/MiniWasm/Execution.hs:261:1: warning: [GHC-53633] [-Woverlapping-patterns]
Pattern match is redundant
In an equation for `valueToInt': valueToInt _ = ...
|
261 | valueToInt _ = error "Invalid value type"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-------------
Total: 99