Giacomo Vercesi
82591a72c9
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-11 17:25:36 +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
Giacomo Vercesi
fe73243cc5
pypeline-cli: fix autocomplete with pipebox init
...
Make it so the pipebox is initialized early if the pypeline CLI is in
autocomplete mode, otherwise some pipes might break.
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
afcdea4381
pypeline: also consider image/svg as text
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
cd3cd5c4d1
pypeline: fix Request.check
...
The function `Request.check` did not work properly due to
`Container.contains_all` performing the check with the operands swapped.
Fix the call and improve the body of `ObjectSet.issubset`.
Also improve the error message, highlighting the missing objects.
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
fdb0b4f025
revng2 project analyze: fix analysis arguments
...
When setting the variable names for the analysis' configuration,
sanitize the analysis' name, as it might contain dashes and other
undesirable characters.
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
681e9543cf
LocalStorageProvider: use table for model_paths
...
When running `invalidate`, use a temporary table to store the
invalidated model paths that need to be used. This saves to template
them into the query and allows them to be recycled later when the
`dependency` table needs to be cleaned up.
2025-11-26 16:13:28 +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
a821c0c268
pipeline yaml: allow specifying pure analyses
...
Some analyses do not require any container to run, these can be now
specified as a standalone array.
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
e3a47de0f1
Analysis: drop name argument in constructor
...
In the same vein as the `Pipe`'s counterpart, this feature is unused,
drop it for now.
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
Giacomo Vercesi
5e9bfa1d45
Artifact: fix typo in write_to_disk
...
Fix a typo in `write_to_disk` where the file open mode was set to `rb`
when it should have been `wb`.
2025-11-26 14:59:43 +01:00
Tommaso Fontana
b7cf7d3266
Pypeline: add pype tests
...
Add some basic tests for the pype CLI command.
2025-11-24 16:41:15 +01:00
Tommaso Fontana
4e73bc05f3
Pypeline: fix pipebox args usage string on cli
...
The usage strings didn't always show '-- [PYPEBOX ARGS...]' or didn't
show it at the end of the usage string. This commit fixes it.
2025-11-24 16:41:15 +01:00
Tommaso Fontana
91299b0c18
Pypeline: change daemon pipeline format
...
Now the dameon's pipeline endpoint doesn't return just the parsed yaml
but it returns a format that's easier to use for the UI.
2025-11-24 16:41:15 +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
Tommaso Fontana
fe3a5b6287
Pypeline: add --tar, --yaml to pype commands
...
Now commands 'pype project artifact' and 'pype pipeline run_pipe' now
accepts --format to specify in which format to serialize the resulting
container, and have --tar and --yaml shortcuts. Moreover, these commands
and 'pipe pipeline run_analysis' can automatically figure out the format
of containers so the user won't have to specify them most of the time.
2025-11-24 16:41:15 +01:00
Tommaso Fontana
4d25ba057d
Pypeline: add yaml and tar format for containers
...
Now containers can be dump and loaded in both yaml and tar. Also the
container can automatically try to figure out the format of the
container. Moreover, now containers have to_bytes and from_bytes.
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