Idris2Doc : System.LLVM.Common

System.LLVM.Common

Common types and utilities for LLVM system operations.

This module defines the fundamental types and utilities used throughout
the LLVM system interface, including error handling, compilation context,
and common operations for running external LLVM tools.

Reexports

importpublic Control.Monad.Either as Either
importpublic Data.LLVM

Definitions

dataCompilationError : Type
  Compilation error types for LLVM operations.

Represents various errors that can occur during LLVM compilation,
optimization, linking, and execution operations.

Totality: total
Visibility: public export
Constructors:
LinkError : String->CompilationError
  Error during linking phase
AssembleError : String->CompilationError
  Error during assembly phase
CompileError : String->CompilationError
  Error during compilation phase  
RunError : String->CompilationError
  Error during execution phase
OptimizeError : String->CompilationError
  Error during optimization phase
OtherError : String->CompilationError
  General error not fitting other categories

Hint: 
ShowCompilationError
Compile : Type->Type
  Compilation monad for error handling

A monad that combines IO with error handling for compilation operations.
All LLVM system operations return results in this monad.

Visibility: public export
recordContext : Type
  Compilation context containing configuration and state.

Holds all the information needed for a complete LLVM compilation pipeline,
including optimization passes, modules, and file locations.

Totality: total
Visibility: public export
Constructor: 
MkContext : ListPass->MaybeString->String->String->List (String, String) ->ListString->ListString->String->Context

Projections:
.buildDir : Context->String
  Build directory for intermediate files
.extraBc : Context->ListString
  Extra bitcode file paths
.extraIr : Context->List (String, String)
  Extra LLVM IR files (name, content pairs)
.extraObj : Context->ListString
  Extra object file paths
.mainModule : Context->MaybeString
  Optional main module file path
.output : Context->String
  Output file path
.passes : Context->ListPass
  List of optimization passes to apply
.tempDir : Context->String
  Temporary directory for working files
.passes : Context->ListPass
  List of optimization passes to apply

Visibility: public export
passes : Context->ListPass
  List of optimization passes to apply

Visibility: public export
.mainModule : Context->MaybeString
  Optional main module file path

Visibility: public export
mainModule : Context->MaybeString
  Optional main module file path

Visibility: public export
.buildDir : Context->String
  Build directory for intermediate files

Visibility: public export
buildDir : Context->String
  Build directory for intermediate files

Visibility: public export
.tempDir : Context->String
  Temporary directory for working files

Visibility: public export
tempDir : Context->String
  Temporary directory for working files

Visibility: public export
.extraIr : Context->List (String, String)
  Extra LLVM IR files (name, content pairs)

Visibility: public export
extraIr : Context->List (String, String)
  Extra LLVM IR files (name, content pairs)

Visibility: public export
.extraBc : Context->ListString
  Extra bitcode file paths

Visibility: public export
extraBc : Context->ListString
  Extra bitcode file paths

Visibility: public export
.extraObj : Context->ListString
  Extra object file paths

Visibility: public export
extraObj : Context->ListString
  Extra object file paths

Visibility: public export
.output : Context->String
  Output file path

Visibility: public export
output : Context->String
  Output file path

Visibility: public export
context : {default [Level2] _ : ListPass} -> {defaultNothing_ : MaybeString} ->String-> {defaultbuildDir_ : String} -> {default [] _ : List (String, String)} -> {default [] _ : ListString} -> {default [] _ : ListString} -> {default"main"_ : String} ->Context
Visibility: export
runCmd : {default10_ : Int} ->String->Compile (String, Int)
Visibility: export
showMsg : {default10_ : Int} ->String->Compile ()
Visibility: export