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
Alessandro Di Federico
b0d897b87d
Minor changes
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
0ac71816a6
revng daemon: improve detection of interpreter
...
This ensures we wait for the right process.
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
9a35d6da40
revng graphql: improve error reporting
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
43349943a7
Stop serializing the model in the IR
2024-06-20 09:57:36 +02:00
Massimo Fioravanti
7ee8c8000d
Introduce revng pipe
2024-06-20 09:57:36 +02:00
Giacomo Vercesi
c1b59567c6
revng graphql: gracefully handle server disconnect
...
Gracefully handle the server disconnecting from a `revng graphql`
invocation. Instead of letting the stack trace be printed, output an
appropriate error message.
2024-06-06 16:35:26 +02:00
Ivan Krysak
44e5328477
Yield: add explicit directive support
2024-03-18 11:40:32 +00:00
Ivan Krysak
a3e9e689ca
cli/ptml: add support for the new asm tokens
2024-03-18 07:20:41 +00:00
Ivan Krysak
e1060ed6ed
cli/ptml: fix asm.helper support
2024-03-18 07:20:41 +00:00
Alessandro Di Federico
757f7e21d7
Import docs
2024-02-09 10:04:24 +01:00
Alessandro Di Federico
d9367954a4
Convert all public strings to kebab-case
2024-02-09 10:04:24 +01:00
Alessandro Di Federico
2bdca8ab03
Rename steps and analyses
2024-02-09 10:04:22 +01:00
Alessandro Di Federico
6f60d9b492
Introduce revng --rr
2024-02-09 10:04:19 +01:00
Giacomo Vercesi
d4532ab512
revng daemon: print debug log to stderr
...
When printing the current workdir, use stderr instead of stdout.
2024-01-26 19:13:58 +01:00