package libsail

  1. Overview
  2. Docs
Sail is a language for describing the instruction semantics of processors

Install

Dune Dependency

Authors

Maintainers

Sources

sail-0.18.tbz
sha256=fcdbda14f1ed59fa30e23da34abe02547416e3c2a83fbeee5606e100a5edcf35
sha512=0bbd72706cb4c1ddf13ea1c42004ec498aa9db8a301020f0dd3d8ac582d1bed8a48c7a825b8e3e6f629279f1f900384f6966608e1cd59e7b1217776413c7fa27

doc/libsail/Libsail/index.html

Module LibsailSource

Sourcemodule Anf : sig ... end

The A-normal form (ANF) grammar

Sourcemodule Ast : sig ... end
Sourcemodule Ast_defs : sig ... end
Sourcemodule Ast_util : sig ... end

Utilities and helper functions for operating on Sail ASTs

Sourcemodule Bitfield : sig ... end
Sourcemodule Callgraph : sig ... end

Functions for generating and interacting with Sail call graphs.

Sourcemodule Chunk_ast : sig ... end

Module for breaking AST into syntactic chunks and interleaving comments.

Sourcemodule Constant_fold : sig ... end
Sourcemodule Constant_propagation : sig ... end

const_prop target ast ref_vars substs assigns exp performs constant propagation on exp where substs is a pair of substitutions on immutable variables and type variables, assigns is a substitution on mutable variables, and ref_vars is the set of variable which may have had a reference taken (and hence we cannot reliably track).

Sourcemodule Constraint : sig ... end

This module implements the interface with the Z3 (or other) SMT solver

Sourcemodule Effects : sig ... end

In Sail, we need to distinguish between pure and impure (side-effecting) functions. This is because there are few places, such as top-level let-bindings and loop termination measures where side effects must clearly be forbidden. This module implements inference for which functions are pure and which are effectful, and checking the above purity restrictions.

Sourcemodule Elf_loader : sig ... end
Sourcemodule Error_format : sig ... end
Sourcemodule Format_sail : sig ... end
Sourcemodule Frontend : sig ... end
Sourcemodule Graph : sig ... end

Generic graph type based on OCaml Set and Map

Sourcemodule Infix_parser : sig ... end
Sourcemodule Initial_check : sig ... end

Initial desugaring pass over AST after parsing

Sourcemodule Interactive : sig ... end
Sourcemodule Interpreter : sig ... end
Sourcemodule Jib : sig ... end
Sourcemodule Jib_compile : sig ... end

Compile Sail ASTs to Jib intermediate representation

Sourcemodule Jib_optimize : sig ... end
Sourcemodule Jib_ssa : sig ... end
Sourcemodule Jib_util : sig ... end

Utilities and helper functions for operating on Jib instructions and definitions

Sourcemodule Jib_visitor : sig ... end
Sourcemodule Lexer : sig ... end
Sourcemodule Libsail_sites : sig ... end
Sourcemodule Mappings : sig ... end
Sourcemodule Monad_params : sig ... end
Sourcemodule Monomorphise : sig ... end
Sourcemodule Nl_flow : sig ... end
Sourcemodule Outcome_rewrites : sig ... end
Sourcemodule Parse_ast : sig ... end
Sourcemodule Parser : sig ... end
Sourcemodule Parser_combinators : sig ... end
Sourcemodule Pattern_completeness : sig ... end
Sourcemodule Preprocess : sig ... end
Sourcemodule Pretty_print_common : sig ... end
Sourcemodule Pretty_print_sail : sig ... end
Sourcemodule Profile : sig ... end
Sourcemodule Project : sig ... end

Definition of Sail project files, and functions for working with them.

Sourcemodule Project_lexer : sig ... end
Sourcemodule Project_parser : sig ... end
Sourcemodule Property : sig ... end

This file implements utilities for dealing with $property and $counterexample pragmas.

Sourcemodule Reporting : sig ... end

Sail error reporting

Sourcemodule Rewriter : sig ... end

General rewriting framework for Sail to Sail rewrites

Sourcemodule Rewrites : sig ... end
Sourcemodule Sail2_instr_kinds : sig ... end
Sourcemodule Sail2_operators : sig ... end
Sourcemodule Sail2_operators_bitlists : sig ... end
Sourcemodule Sail2_prompt : sig ... end
Sourcemodule Sail2_prompt_monad : sig ... end
Sourcemodule Sail2_values : sig ... end
Sourcemodule Sail_file : sig ... end
Sourcemodule Sail_lib : sig ... end
Sourcemodule Scattered : sig ... end
Sourcemodule Smt_exp : sig ... end
Sourcemodule Smt_gen : sig ... end

Compile Sail builtins to SMT bitvector expressions

Sourcemodule Spec_analysis : sig ... end
Sourcemodule Specialize : sig ... end

Rewrites for removing polymorphism from specifications

Sourcemodule Splice : sig ... end
Sourcemodule State : sig ... end
Sourcemodule Target : sig ... end

Infrastructure for plugins to register Sail targets.

Sourcemodule Type_check : sig ... end

The type checker API

Sourcemodule Type_env : sig ... end
Sourcemodule Type_error : sig ... end

Type error utilities

Sourcemodule Type_internal : sig ... end
Sourcemodule Util : sig ... end

Various non Sail specific utility functions

Sourcemodule Value : sig ... end
Sourcemodule Value2 : sig ... end
Sourcemodule Visitor : sig ... end
OCaml

Innovation. Community. Security.