package quill

  1. Overview
  2. Docs
Interactive REPL and markdown notebooks

Install

dune-project
 Dependency

Authors

Maintainers

Sources

raven-1.0.0.alpha3.tbz
sha256=96d35ce03dfbebd2313657273e24c2e2d20f9e6c7825b8518b69bd1d6ed5870f
sha512=90c5053731d4108f37c19430e45456063e872b04b8a1bbad064c356e1b18e69222de8bfcf4ec14757e71f18164ec6e4630ba770dbcb1291665de5418827d1465

doc/src/quill/eval.ml.html

Source file eval.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(*---------------------------------------------------------------------------
  Copyright (c) 2026 The Raven authors. All rights reserved.
  SPDX-License-Identifier: ISC
  ---------------------------------------------------------------------------*)

let run ~create_kernel doc =
  let doc = ref doc in
  let on_event = function
    | Kernel.Output { cell_id; output } ->
        doc := Doc.update cell_id (Cell.append_output output) !doc
    | _ -> ()
  in
  let (kernel : Kernel.t) = create_kernel ~on_event in
  List.iter
    (fun cell ->
      match cell with
      | Cell.Code { id; source; _ } ->
          kernel.execute ~cell_id:id ~code:source;
          doc := Doc.update id Cell.increment_execution_count !doc
      | Cell.Text _ -> ())
    (Doc.cells !doc);
  kernel.shutdown ();
  !doc