src/core |
opam-core library |
Generic standard and system library
|
opamVersion.ml |
(generated) Current opam version |
opamCoreConfig.ml |
Configuration options for this lib (record, global reference and setter) |
opamVersionCompare.ml |
Version comparison function used throughout. From the Dose suite. |
opamJson.ml |
Wrapper on Jsonm; only needed for some debug options |
opamStd.ml |
Generic stdlib functions (String, List, Option, Sys submodules...) |
opamConsole.ml |
Console output, ANSI color, logging and user querying |
opamCompat.ml |
Compatibility layer (Bytes, etc.) for different OCaml versions |
opamSHA.ml |
Pure OCaml implementation of SHA256/512 hashing functions |
System handling |
opamProcess.ml |
Process and job handling, with logs, termination status, etc. |
opamSystem.ml |
Bindings of lots of filesystem and system operations |
opamHash.ml |
Type and computation of file checksums |
opamFilename.ml |
Higher level file and directory name manipulation AND file operations,
wrappers on OpamSystem using the filename type |
---|
opamDirTrack.ml |
Tracking of changes in a given filesystem subtree |
opamParallel.ml |
Parallel execution of jobs following a directed graph |
opamUrl.ml |
URL parsing and printing, with support for our different backends |
Windows support |
opamStubs.ml |
C stubs for Windows. A “dummy” alternate is provided for Unix, which doesn’t require any C code |
opamStubsTypes.ml |
Types in the stubs definitions (shared between both implementations) |
src/stubs |
opam-stubs library |
C stubs. This library is built on Windows-only and automatically pulled into opam-core if needed
|
opamInject.c |
Code for process injection shared between opamWindows.c and opam-putenv.c |
opamWindows.c |
C stubs themselves |
src/format |
opam-format library |
Definition of opam datastructures and its file interface
|
opamFormatConfig.ml |
Configuration options for this lib (record, global reference and setter) |
opamTypes.mli |
Definitions of many types used throughout |
opamTypesBase.ml |
Helper functions on the base types. Often opened |
opamPath.ml |
Defines the file hierarchy in ~/.opam |
Basic types, used as keys |
opamPackage.ml |
The package type, and package name type (name+version, values often called "nv" in the code) |
opamRepositoryName.ml |
The repository type |
opamSwitch.ml |
The switch type |
opamVariable.ml |
Opam variables with scope (global or module) |
opamSysPkg.ml |
The system package type |
More advanced types |
opamFilter.ml |
Formulas on variables, as used in opam files build scripts |
opamFormula.ml |
Formulas on packages, opt. with sub-formulas on versions, and conversion
functions |
File format |
opamLineLexer.mll |
A simple lexer to list of lines, which are lists of words |
opamInterpLexer.mll |
Opam format variable interpolation processor |
opamPp.ml |
Bidirectional transformations on top of the parser and printer |
opamFormat.ml |
opam config files syntax and conversion tools |
opamFile.ml |
Handles all opam file formats as record types and submodules, conversion to and from syntax |
src/repository |
opam-repository library |
Handling of remote sources
|
opamRepositoryConfig.ml |
Configuration options for this lib (record, global reference, setter, initialisation) |
opamRepositoryBackend.ml |
Signature for repository handlers and some helpers for the repository type |
opamRepositoryPath.ml |
Defines the file hierarchy in repositories |
opamDownload.ml |
Configuration init and handling of downloading commands |
opamHTTP.ml |
Main HTTP backend |
opamLocal.ml |
Rsync backend, for local or ssh sources |
opamVCS.ml |
Layer for handling version control sources |
opamDarcs.ml |
Darcs support (through OpamVCS) |
opamGit.ml |
Git support (through OpamVCS) |
opamHg.ml |
Mercurial support (through OpamVCS) |
opamRepository.ml |
Operations on repositories (update, fetch...) based on the above backends |
src/solver |
opam-solver library |
Solver and Cudf interaction
|
opamSolverConfig.ml |
Configuration options for this lib (record, global reference, setter, initialisation) |
opamActionGraph.ml |
Handles graphs of actions (package changes), based on ocamlgraph |
opamCudfCriteria.ml |
Cudf criteria helper functions (string conversion, etc.) |
opamCudfSolver.ml |
Bindings to implementation of CUDF solvers, either built-in or external |
opamCudf.ml |
Solver interaction, conversion of answer to solution |
opamSolver.ml |
Entry point, conversion of universe to cudf, dependencies computation |
Built-in solver backends |
opamBuiltinMccs.ml.real |
Direct interface to the mccs solver, if present |
opamBuiltinZ3.ml.real |
Direct interface to the Z3 solver, if present |
src/state |
opam-state library |
Handling of the ~/.opam hierarchy, repository and switch states
|
opamStateConfig.ml |
Configuration options for this lib (record, global reference, setter, initialisation) |
opamScript.ml |
(generated) Shell config scripts as OCaml strings |
opamStateTypes.mli |
Defines the types holding global, repository and switch states |
opamFormatUpgrade.ml |
Handles upgrade of an opam root from earlier opam versions |
opamSysPoll.ml |
Detection of host system (arch, os, distribution) |
opamGlobalState.ml |
Loading and handling of the global state of an opam root |
opamRepositoryState.ml |
loading and handling of the repository state of an opam root (i.e. what is in ~/.opam/repo) |
opamSwitchState.ml |
Loading and querying a switch state |
opamPackageVar.ml |
Resolution and handling of opam variables + filters |
opamFileTools.ml |
Generic tools for handling package metadata |
opamSwitchAction.ml |
Switch-related actions and changes |
opamEnv.ml |
Process environment setup and handling, shell configuration |
opamPinned.ml |
Specific query and handling of pinned packages |
opamUpdate.ml |
Synchronisation and downloading of repositories and package sources |
opamSysInteract.ml |
Interaction with system package manager, for external dependencies management |
opamSpdxList.ml |
(generated) SPDX short IDs licenses list, used for linting packages |
src/client |
opam-client library and exec |
Actions on the opam root, switches, installations, and front-end
|
opam-client library |
opamClientConfig.ml |
Configuration options for this lib (record, global reference, setter, initialisation), plus helper for global setup |
opamAction.ml |
Handles concrete actions on packages, like installations and removals |
opamSolution.ml |
Interface with the solver, processing of full solutions through actions |
opamConfigCommand.ml |
Functions for the "opam config" subcommand |
opamPinCommand.ml |
Functions for the "opam pin" subcommand |
opamRepositoryCommand.ml |
Functions for the "opam repository" subcommand |
opamSwitchCommand.ml |
Functions for the "opam switch" subcommand |
opamListCommand.ml |
Functions for the "opam list" subcommand |
opamLockCommand.ml |
Functions for the "opam lock" subcommand |
opamInitDefaults.ml |
Defines the built-in "opamrc" to use by default on "opam init" |
opamClient.ml |
High-level execution of the main user commands ("install", "upgrade",
"remove"), and wrapper for Pin commands |
opamAuxCommands.ml |
Some command helpers and extra opam management functions |
opamAdminRepoUpgrade.ml |
Handles converting package repositories from the format of older opam
versions to the current format |
opamAdminCheck.ml |
Implements the repository checks of the 'opam admin check' command. |
opamGitVersion.mli |
(generated) Current git version of opam |
opamArg.ml |
Command-line argument parsers and helpers |
opamArgTools.ml |
Command-line argument cli versioning helpers |
opamAdminCommand.ml |
All sub-commands of the "opam admin" command |
opamCommands.ml |
Opam CLI commands and their handlers as Cmdliner terms |
opamCLIVersion.ml |
Functions for the CLI versioning |
opamCliMain.ml |
Front-end wrappers and callers for the main opam entry point |
Main opam CLI |
opamMain.ml |
Main opam entry point |
src/crowbar |
crowbar tests |
Crowbar generators and tests for internal data structures
|
test.ml |
Main crowbar tests entry point |
opamCrowbar.ml |
Definition of utils structures and functions |
opamXxx_crowbar.ml |
Definition of tests for module Xxx |
src/tools |
Extra tools and utilities |
Auxiliary standalone tools |
opam_admin_top.ml |
Tiny library for admin-scripts, included in opam-admin.top |
opam-putenv.c |
Tiny C tool used on Windows for cross-architecture process injection |
opam_installer.ml |
Handles opam's ".install" files |