Khaled Ismaeel
a6d16ca329
Add primitive support for generating migrations
2025-04-28 13:03:53 +02:00
Khaled Ismaeel
dc991a4523
Add primitive migration support to the CLI
2025-04-28 13:03:53 +02:00
Giacomo Vercesi
6509cad084
test_docs: remove useless global
...
The `verbose` was is not modified in the `log` function, so the use of
`global` is useless.
2025-04-24 13:22:14 +02:00
Ivan Krysak
ae3f19664a
ModelPasses: introduce fix-model
2025-04-17 11:19:17 +03:00
Ivan Krysak
0c99d5d5fb
IDBImporter: omit unnecessary typedefs
2025-04-17 11:19:17 +03:00
Ivan Krysak
2eed7f2410
IDBImporter: fix an incorrect type check
2025-04-17 11:19:17 +03:00
Ivan Krysak
c4f071dfe3
Importers: adopt primitive typedef flattening
2025-04-17 11:19:17 +03:00
Ivan Krysak
433af9ef6e
Adopt the new name deduplication pass
2025-04-17 11:19:17 +03:00
Ivan Krysak
f070f1f1e1
Model: sunset double name system
2025-04-17 11:19:17 +03:00
Giacomo Vercesi
d9e928dce9
fetch debuginfo: provide alternative urls via env
...
Allow the `fetch debuginfo` command to have the upstream server urls be
provided via environment variables rather than the command-line.
2025-03-13 18:03:50 +01:00
Giacomo Vercesi
f6b9e509a3
fetch debuginfo: actually check for PE/COFF
...
Add the code needed to check if the input file is actually a PE/COFF
file.
2025-03-13 18:03:50 +01:00
Giacomo Vercesi
fa44c4cf2f
fetch debuginfo: drop self.verbose
...
The `FetchDebugInfoCommand` contained assignment to `self.verbose` which
was unused. Drop it.
2025-03-13 18:03:50 +01:00
Giacomo Vercesi
74cbb83d10
fetch-debuginfo: add retries
...
Add retries when fetching debugging symbols via the `revng model
fetch-debuginfo` command. Retries only apply when the status code
returned by the server is within the expected ones.
2025-02-24 18:17:47 +01:00
Giacomo Vercesi
878356bd57
revng ptml: drop c.comparison PTML token
...
The `c.comparison` token was dropped by commit
0812989cb0 , drop it also in the color
conversion table of `revng ptml`.
2024-12-20 12:24:28 +01:00
Alessandro Di Federico
620d142d53
Reroganize and expand documentation
2024-12-11 16:15:37 +01:00
Alessandro Di Federico
0c7c20ad48
Introduce model, artifacts and analyses references
2024-12-11 16:15:27 +01:00
Alessandro Di Federico
5b7703aff3
Minor changes
2024-12-11 16:15:09 +01:00
Giacomo Vercesi
70217f00c9
revng opt: drop unwrapping of zstd modules
...
Drop support of uncompressing zstd-compressed modules in `revng opt` as
this functionality has been moved within `llvm`.
(This is a revert of commit dd8d158e47 )
2024-11-26 11:30:19 +01:00
Giacomo Vercesi
046be11be2
revng graphql: gracefully terminate daemon
...
When stopping an internal daemon, first try to use SIGINT and then
resort to SIGKILL. This is to avoid the signal handler exiting with a
non-zero return code during shutdown.
2024-11-25 17:52:27 +01:00
Giacomo Vercesi
9ee719f2c2
ptml/common: fix missing kwargs
...
Add the missing `kwargs` to the invocation of the wrapped `func` in
`suppress_brokenpipe`.
2024-11-22 16:05:16 +01:00
Giacomo Vercesi
38cd15d755
fetch_debuginfo: fix race condition
...
Fix a possible race condition that could arise if multiple instances of
`fetch-debuginfo` are run in parallel. This avoids the same file being
written by multiple processes and being moved early. This avoids a
`FileNotFoundError` and possibly data corruption due to the concurrent
situation.
2024-11-13 09:28:12 +01:00
Alessandro Di Federico
efcea8ae48
importBinary: fix error handling
2024-11-12 18:05:48 +01:00
Alessandro Di Federico
ba186a130c
s/module.ll/module.bc.zstd/g
2024-11-12 14:58:00 +01:00
Giacomo Vercesi
f0a5a48c8e
mass-testing: generate crash graphs for OOMs
...
Add graph/crash statistics generation for the OOM category as well.
2024-10-31 08:58:59 +01:00
Giacomo Vercesi
023b470473
mass-testing: implement cmd/env overrides
...
Implement override mechanisms via command-line and/or env for the
following aspects:
* The maximum memory set by `test-harness`
* The timeout handled by `test-harness`
* The number of concurrent jobs to spawn while running `revng mass-testing run`
2024-10-31 08:58:59 +01:00
Giacomo Vercesi
208e18cedb
revng.internal.cli: unify temporary_file
...
Unify the logic responsible for the `temporary_file` function, since its
body was duplicated three times over the codebase.
2024-10-31 08:58:59 +01:00
Giacomo Vercesi
e651eaa072
revng ptml: update color token mapping
...
Update the dict that takes care of mapping PTML tokens to their color
with the updated list of PTML tokens.
2024-10-31 08:58:59 +01:00
Giacomo Vercesi
dd8d158e47
revng opt: make compatible with zstd
...
Change the `revng opt` wrapper so that when a zstd-compressed module is
passed it is decompressed on the fly and passed to llvm's opt.
2024-10-30 21:57:56 +01:00
Giacomo Vercesi
3fe3a8524a
Implement mass testing
...
Add the `revng mass-testing` commands and auxiliary executables which
simplify running revng on a huge quantity of input executables.
2024-10-01 13:38:21 +02:00
Giacomo Vercesi
9a29c7117b
commands_registry.py: allow subcommands in subdirs
...
Allow external subcommands to live in subdirectories w.r.t. the main
directory.
2024-10-01 13:38:14 +02:00
Giacomo Vercesi
993f66d59c
revng cli: drop revng- prefix from libexec
...
Drop using the `revng-` prefix from all executables under
`libexec/revng/`. Now any executable found under there that is
executable and without extension will be considered a `revng`
subcommand, following the usual command-line rules.
2024-10-01 13:38:14 +02:00
Giacomo Vercesi
e1757b505d
support.py: fix _run_common
...
The `_run_common` function assumed that the `command` argument was
mutable. Change the logic so that it works with immutable collections
(e.g. `tuple`) as well.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
583988c922
try_run: do not close fds
...
When running a subprocess via `try_run` & friends, do not close the
inherited file descriptors.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
e9a445b3a8
commands_registry: move to revng.py
...
Move the `commands_registry` instance from the `commands_registry.py` to
`revng.py` where the actual implementation of the registry happens.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
4474eb68e2
fetch_debuginfo: download files atomically
...
Instead of directly writing the destination file, use the combination of
a `.tmp` suffix and `os.replace` to guarantee that the destination file
is written whole and not partially.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
f8ffe38687
Unify cache directory logic
...
Make the cache directory logic uniform in Python and C++, move the
respective implementations under support since it's project-wide logic
and not exclusive to debug-info.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
4ceea9badd
import_idb.py: use setup function
...
Use the `setup` function mechanism to register the command instead of
directly importing the commands registry.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
ba0f374eae
revng cli: add --wrapper option
...
Add the `--wrapper` option which allows the user to pass an arbitrary
wrapper to the invocation of executables.
2024-09-10 10:14:12 +02:00
Giacomo Vercesi
2dfca729bc
commands_registry: fix wrapper assertion
...
Add missing wrappers to the assertion that checks that only one wrapper
can be used at a time.
2024-09-10 10:14:12 +02:00
Alessandro Di Federico
670b519973
model compare: fix typos
2024-08-16 16:33:10 +02:00
Alessandro Di Federico
d28bc717c6
model compare: report best match upon failure
2024-08-16 13:36:19 +02:00
Alessandro Di Federico
99149c1b36
Drop revng lift
2024-08-07 16:07:59 +02:00
Alessandro Di Federico
7b00473859
PDBImporter: rework .pdb search
2024-08-05 17:41:34 +02:00
Alessandro Di Federico
3f60b74a28
fetch-debuginfo: soft fail if no network
2024-07-09 12:02:31 +02:00
Alessandro Di Federico
71b7fae69d
revng --version: emit component hashes
2024-06-30 19:36:48 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
b6625e8913
Model: simplify fixModel pass
...
Instead of getting reimplemented/updated, it now just reuses normal
type verification routines.
2024-06-27 11:05:50 +02:00
Ivan Krysak
23aed24be1
Model: make compare key-strict
...
Before now it only looked at `ID`s which made it incompatible with
models that reuse the same ID for different kinds.
2024-06-27 11:05:50 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
f8776ef8b5
Introduce revng tar-to-yaml
2024-06-20 10:24:50 +02:00