Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Overview

Given a file quickstart.wat, here’s how to parse and run this file:

# open Prelude;;
# open Owi;;
# Fmt_tty.setup_std_outputs ();;
- : unit = ()
# Logs.set_level ~all:true (Some Logs.Info);;
- : unit = ()
# Logs.set_reporter (Logs_fmt.reporter ())
- : unit = ()
# let filename = Fpath.v "quickstart.wat";;
val filename : Fpath.t = <abstr>
# let m =
    match Parse.Text.Module.from_file filename with
    | Ok script -> script
    | Error e -> assert false;;
mdx_gen.bc.exe: [INFO] parsing      ...
...
# let env = Env.Concrete.empty ~context:()
val env : Env.Concrete.t = <abstr>
# let modul, env =
    match Compile.Text.until_concrete_link env ~unsafe:false ~name:None m with
    | Ok v -> v
    | Error _ -> assert false;;
mdx_gen.bc.exe: [INFO] checking     ...
mdx_gen.bc.exe: [INFO] checking     ...
mdx_gen.bc.exe: [INFO] typechecking ...
...
mdx_gen.bc.exe: [INFO] linking      ...
...
# module I = Interpret.Concrete (Interpret.Default_parameters);;
module I :
  sig
    val modul :
      env:Env.Concrete.t ->
      modul:Env.Concrete.modul -> Env.Concrete.t Concrete_choice.t
  end
# let to_run = I.modul ~env ~modul
mdx_gen.bc.exe: [INFO] interpreting ...
val to_run : Env.Concrete.t Concrete_choice.t = <abstr>
# let () =
    match Concrete_choice.run_and_drop_state to_run Concrete_state.empty with
    | Ok _env -> ()
    | Error _ -> assert false;;
mdx_gen.bc.exe: [INFO] stack         : [  ]
mdx_gen.bc.exe: [INFO] running instr : call 0 (executed 0 times)
mdx_gen.bc.exe: [INFO] calling func  : func f
mdx_gen.bc.exe: [INFO] stack         : [  ]
mdx_gen.bc.exe: [INFO] running instr : i32.const 24 (executed 0 times)
mdx_gen.bc.exe: [INFO] stack         : [ i32.const 24 ]
mdx_gen.bc.exe: [INFO] running instr : i32.const 24 (executed 0 times)
mdx_gen.bc.exe: [INFO] stack         : [ i32.const 24 ; i32.const 24 ]
mdx_gen.bc.exe: [INFO] running instr : i32.add (executed 0 times)
mdx_gen.bc.exe: [INFO] stack         : [ i32.const 48 ]
mdx_gen.bc.exe: [INFO] running instr : drop (executed 0 times)