Giacomo Vercesi
a94c6a2636
pipebox: use native runners
...
When running in debug mode, use the native runners where possible.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi
6b40322a3c
revng2: implement wrappers
...
Implement wrappers in the `revng2` CLI, this allows running command with
e.g. `--gdb` to allow debugging.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi
d7e605fe63
pypeline: add debug mode
...
Add the functionality the the pipeline infrastructure and CLI to run
individual pipe and analyses as subcommands instead of in-process. This
allow better debuggability of individual pipes.
2026-01-29 15:00:12 +01:00
Giacomo Vercesi
8f2d0191d7
Pipe: add needed_files functions
...
In preparation for debugging individual pipes add an additional method
to the `Pipe` interface, `needed_files`, which allows the pipe to
statically report which files it will request ahead of time.
2026-01-29 14:54:24 +01:00
Giacomo Vercesi
1b732501ae
revng2 quick: swap artifact and binary args
2026-01-29 14:54:24 +01:00
Giacomo Vercesi
62c1b44a54
revng: allow execution while in a venv
...
If a venv is running, the `revng` script should re-exec to allow the
correct modules to be loaded and allow running the `main` function of
the respective modules.
2026-01-29 14:54:24 +01:00
Giacomo Vercesi
9d8845de95
revng2: do not print stacktrace on SIGINT
2026-01-29 14:54:06 +01:00
Giacomo Vercesi
fd14580619
pipebox: improve signal handling
...
Improve the handling of signals by leveraging the `Py_AtExit`
functionality to trigger cleanup when the interpreter exits.
When receiving SIGINT handle it specially because exceptions in python
are only thrown when the interpreter is running and not when C code is.
2026-01-20 12:29:12 +01:00
Giacomo Vercesi
265af3768f
Binary importers: fix debug info detection
...
Fix the behavior of binary importers by propagating the path of the
input binary from revng2 downwards, allowing finding `.debug` files in
the correct paths.
2025-12-19 10:28:29 +01:00
Giacomo Vercesi
94b9ecad6c
mass-testing: exclude paths from flamegraph
...
Add a new option to the mass-testing `meta.yml` that allows skipping
some paths when generating the flamegraph. In the case of revng this
allows skipping the intermediate python frames.
2025-12-12 15:46:49 +01:00
Giacomo Vercesi
8af5e1d05c
Implement revng2 quick artifact
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
e3b263d9da
Implement revng2 project init
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
f7231a29da
Add yield-cfg to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
255748228a
Add yield-call-graph-slice to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
83e770551b
Add yield-call-graph to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
0d732f7a72
Add emit-cfg artifact to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
3a387238dc
Add cleanup-ir to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
05dc279ef2
Add emit-c-as-single-file to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
0ffce5c5b2
Add emit-c to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
281484ad79
Add initial-auto-analysis list to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
e35f5750de
Add ConvertFunctionsToCABI analysis to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
9e8e4cdf85
Add AnalyzeDataLayout analysis to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
5a6efb0fa2
Add DetectStackSize analysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
c1217dcfc3
Add DetectABI analysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
405733369b
Add ImportWellKnownModelsAnalysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
47038d46ec
Add ParseBinaryAnalysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
4086469dc1
Add make-segment-ref to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
d664a59827
Add detect-stack-size to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
35ef98e83f
LLVMPipe: make passes key lowercase
...
Since the rest of the pypeline yaml file is lowercase, convert the
`Passes` key of the configuration used by `pure-llvm-passes-*` to
lowercase.
2025-12-10 15:05:53 +01:00
Alessandro Di Federico
bce32d9669
Default to --emit-hex-constant-literals-from=4096
2025-11-28 11:21:18 +01:00
Giacomo Vercesi
b1b5778822
Add infrastructure for custom invalidation
...
Add infrastructure to pypeline to allow for pipes to provide custom
invalidation, by implementing an `invalidate` function.
2025-11-26 16:13:28 +01:00
Giacomo Vercesi
8cff10e13b
Introduce analyses that manipulate the model
...
Add 4 analyses to the pipebox that allow setting and verifying the model
and its diffs.
2025-11-26 16:13:28 +01:00
Giacomo Vercesi
2f7a055121
pypeline: convert pipe names to kebab-case
2025-11-26 16:13:28 +01:00
Giacomo Vercesi
4a1edec018
get_registry: use name for selected classes
...
Use the `name` class attribute to build the registry when discovering
subclasses of `Pipe`, `Analysis` and `Container`.
2025-11-26 14:59:43 +01:00
Tommaso Fontana
9f5ca81401
Pypeline: introduce analysis lists
...
Now in the pipeline.yml you can specify lists of analysis that are run
sequentially.
2025-11-24 16:41:15 +01:00
Giacomo Vercesi
ca3c5113d9
Add recompile-isolated to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
8f5e7feb4f
Add recompile savepoint to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
159ca6b965
Add LinkForTranslation to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
af4b447f89
Add CompileRootModule to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
7462c2daeb
Add LinkSupport to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
d5aeb306f6
Add YieldAssembly to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
a834f874c9
Add ProcessAssembly to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
080c5017f1
Add HexDump to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
b77833d2bf
Add enforce-abi savepoint to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
77f925c792
Add PromoteCSVs to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
a685cd1055
Add EnforceABI to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
9f46ddac6b
Add isolate savepoint to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
0758a95110
Add AttachDebugInfo to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
0df05f97b7
Add Isolate to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
819538a5df
Add CollectCFG to pypeline
2025-11-18 17:47:54 +01:00