Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

brings knowledge and systems to Primus #1075

Merged
merged 43 commits into from
Mar 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
66d97ed
initial implementation of the new modules
ivg Feb 27, 2020
eea0da0
publishes and documents the new interfaces
ivg Feb 27, 2020
4f9906b
fixes a bug in the has_component function
ivg Feb 27, 2020
3bf8e33
translates the binary program linker into a component
ivg Feb 27, 2020
7c7e082
catches exceptions raised from init
ivg Feb 27, 2020
b23d1d7
switches to the new component registration inteface
ivg Feb 27, 2020
708a1e2
restores the old behavior of the add_component function
ivg Feb 28, 2020
0641a9e
implements restricted mode
ivg Mar 2, 2020
6a6ffba
rectifies the start/stop observations
ivg Mar 3, 2020
4dfb7a6
adds name to start/stop events, hides more of transformer's effect
ivg Mar 3, 2020
5f869b2
exposes machine-kill and system-stop observation to Lisp
ivg Mar 3, 2020
5ba2a9f
mark unvisited nodes with dead
ivg Mar 3, 2020
b77d01c
tests that we have 100% coverage in the taint test
ivg Mar 3, 2020
3902373
the promiscuous mode and greed scheduler now respect Term.visited
ivg Mar 3, 2020
d2602cc
adds the progress and respect with-repetitions in run-in-isolation
ivg Mar 3, 2020
a9e23c2
rectifies the kill observation
ivg Mar 3, 2020
2b15aeb
fixes the restricted mode
ivg Mar 4, 2020
4e735e9
exposes the run function for the legacy main system
ivg Mar 4, 2020
5724ebd
switches run to run the Machine.Make(Knowledge) monad
ivg Mar 4, 2020
ca38ab3
adds -O3 to the root OMakefile
ivg Mar 4, 2020
a604c81
drops the run function, it is better to expose the system
ivg Mar 4, 2020
9074329
introduces Jobs, enables parameterization of systems in Jobs queue
ivg Mar 4, 2020
287c6af
switches run to the usage of the Job Queue
ivg Mar 4, 2020
ef5bd9e
adds an option to run only marked subroutines
ivg Mar 4, 2020
6d0265d
preliminary support for loading and running systems
ivg Mar 4, 2020
cfcf9f9
drops the legacy_system function uses the repo instead
ivg Mar 5, 2020
57c3c39
adds system/component printing facilities
ivg Mar 5, 2020
b6e8c71
initial checking of the set of system definitions
ivg Mar 5, 2020
4161fa9
a bit of cleanup
ivg Mar 5, 2020
0a705d6
adds to run the capability to run systems
ivg Mar 5, 2020
f928b6e
a little bit of renaming, plus extended the callbacks on Jobs
ivg Mar 5, 2020
d807840
makes observations observable
ivg Mar 6, 2020
fdf7eaa
documents the interpreter observations
ivg Mar 6, 2020
da09d2a
removes the debugging observation-blocked observation
ivg Mar 6, 2020
225938e
describes all the observations
ivg Mar 6, 2020
74509cf
adds a few more docs and deprecates Machine.{init,finished}
ivg Mar 6, 2020
f79ab4b
adds more docs.
ivg Mar 6, 2020
cff7ac8
polishes the primus documentation
ivg Mar 6, 2020
096e2d0
adds the new plugin to opam/opam
ivg Mar 6, 2020
0b7faa7
adds systems to the testsuite
ivg Mar 6, 2020
6ae0766
changed Result.t to result
ivg Mar 9, 2020
cfb139a
expects all w64 taint-no-deadcode to fail
ivg Mar 9, 2020
2958dd7
moves taint finalization to the machine-kill observation
ivg Mar 9, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions OMakefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ include _oasis_lib.om
OCAMLFLAGS_ANNOT = -annot -bin-annot
OCAMLFLAGS += $(OCAMLFLAGS_ANNOT)
OCAMLFLAGS += -opaque
OCAMLOPTFLAGS += -O3

# Until this point we allow to override variables via the command-line.
# That means all initializations from above can be changed by omake arguments
Expand Down
18 changes: 14 additions & 4 deletions lib/bap_primus/bap_primus.ml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,29 @@ module Std = struct
module Interpreter = Bap_primus_interpreter
module Time = Interpreter.Time
module Linker = Bap_primus_linker
module Value = Bap_primus_value
module Memory = Bap_primus_memory
module Observation = Bap_primus_observation
module Lisp = Bap_primus_lisp
module Analysis = Bap_primus_analysis.Machine
module System = Bap_primus_system
module Job = System.Job
module Jobs = System.Jobs
module Info = Bap_primus_info
module Components = System.Components
module Machine = struct
module type State = State
include Bap_primus_machine
type 'a state = 'a State.t
include Bap_primus_main
let finished = System.fini
let init = System.init
end
module Value = Bap_primus_value
module Memory = Bap_primus_memory
module Observation = Bap_primus_observation
module Lisp = Bap_primus_lisp
type generator = Generator.t
let sexp_of_value = Value.sexp_of_t
let value_of_sexp = Value.t_of_sexp
let compare_value = Value.compare
type system = System.t
type info = Info.t
end
end
Loading