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.
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.
val find : Bap_knowledge.Knowledge.Name.t -> system option
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.