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
Giacomo Vercesi
73cd5a5655
revng daemon: allow manuanlly saving via SIGUSR2
...
This commit adds the functionality, in debug mode, for `revng daemon` to
save when the SIGUSR2 signal is sent.
2024-01-26 19:13:58 +01:00
Giacomo Vercesi
ca66b4ddfc
InitRevng: fix command line parsing
...
This commit fixes command line parsing of revng through the
REVNG_OPTIONS environment variable. Previously the env was prepended to
the actual command-line variables, now it's appended, allowing to
specify command line arguments that depend on `-load`s.
2024-01-26 17:46:21 +01:00
Alessandro Di Federico
028908a592
revng graphql: print analyses' errors
2024-01-02 15:08:26 +01:00
Massimo Fioravanti
e5347b2910
Remove llvm pipeline
2024-01-02 11:14:55 +01:00
Giacomo Vercesi
942cf50735
python: create python wheels
...
Package revng's python code in two wheels: `revng` and `revng_internal`.
The revng wheel contains the
`revng.{pipeline_description,model,tupletree}` modules, while the
`revng_internal` one everything under `revng.internal`.
2023-12-12 14:52:22 +01:00
Giacomo Vercesi
7deb85b863
revng daemon: implement plugin interface
...
Deprecate the `STARLETTE_MIDDLEWARES_*` environment variables in favor
of a plugin infrastucture, which allows plugins to register middlewares
and save hooks via a `setup` function.
2023-12-12 14:52:22 +01:00
Alessandro Di Federico
ca7041741f
fetch_debuginfo: fix PDB URL computation
...
The pefile library changed its API.
On top updating the code accordingly, we now also properly pad hex
numbers.
2023-12-12 12:04:33 +01:00
Alessandro Di Federico
35f31ad469
fetch_debuginfo: do not catch Exception
2023-12-12 12:04:32 +01:00
Alessandro Di Federico
8302717da7
fetch_debuginfo: use HTTPS for msdl.microsoft.com
2023-12-12 12:04:32 +01:00
Alessandro Di Federico
10dcb7be11
Fix semantics of model::Types purging passes
...
One of the two passes to purge unused types from the model had a
ill-defined semantics.
This commit simplifies them in two passes: one that purges all the types
unreachable from outside `Binary::Types` and one that does the same but
also preserves types with a `CustomName` or an `OriginalName`.
2023-12-05 16:19:39 +01:00
Giacomo Vercesi
d737a13117
manager.py: temporarily remove auto-saves
...
Remove the auto-save code that gets triggered when running analyses.
This improves performance since it doesn't force the manager to save to
storage. This is due to the manager eagerly serializing the pipeline
(both in terms of amount of data and which container should be
serialized), this is especially expensive when the resume directory is
backed by S3.
2023-11-03 16:30:40 +01:00
Giacomo Vercesi
046612f11c
revng.graphql: enforce index consistency
...
Force clients to provide the current index to run `produce` or
`runAnalysis`. Requests that do not provide the correct index return an
IndexError object.
2023-11-03 14:51:31 +01:00
Giacomo Vercesi
c83932003b
revng.daemon: also send index in invalidations
...
When sending invalidations via websocket, also send the new context
global index.
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
94aa2b51d2
Add Context Global Index
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
04698bb550
Return invalidations when deserializing container
...
When deserializing a container in the pipeline, return the invalidations
that have been caused by the container changing content.
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
56af9c1f9d
Propagate errors from Analysis/Pipes to daemon
...
Leverage the `rp_error` mechanism to propagate errors from analyses and
pipes to the GraphQL schema.
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
3b0d708a2f
Drop custom globals mutator from PipelineC
...
Remove globals mutator from PipelineC api, as there are analyses present
that allow changing them.
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
8dd0b64030
revng.daemon: add missing emit_event
...
The `runAnalysesList` resolve did not emit a `CONTEXT` event when run.
2023-11-03 12:13:57 +01:00
Giacomo Vercesi
f467671173
revng.api: drop the use of islice
...
The `itertools.islice` function does not support negative index slices,
rework the code of `collection.abc.Sequence` classes to use `range`
instead.
2023-11-03 12:13:57 +01:00
Giacomo Vercesi
58cef84e3a
cli.graphql: improve log messages
...
Explicitly state the analyses list being run rather than the generic
"Autoanalysis complete".
2023-11-03 12:13:57 +01:00