Module System.Repository

The systems repository.

Maintains the mapping between system names and system definitions.

The primus-systems plugin is populating this repository with the systems found in the predefined search paths. See bap --primus-systems-help for more information.

It is also possible to add new systems manually. The system that is guaranteed to be in the repository is the bap:legacy-main system that denotes the system that is composed of the components added via the Machine.add_component function.

val add : system -> unit

add system registers the system in the repository.

The function fails if a system with the same name is already registered.

val get : ?package:string -> string -> system

get ?package string is the system designated by the specified name.

The function fails if there is no such system is in the repository.

val update : ?package:string -> string -> f:(system -> system) -> unit

update ?package name ~f calls f on the system desingated by the name.

The function fails if there is no such system is in the repository.

find name looks up a system with the given name.

Returns None if there is no system with the given name in the repository.

val list : unit -> info list

list () provides information about all systems in the repository.