Alessandro Di Federico
cd9e945b1f
daemon/test.py: do not use memfd
2022-10-10 10:29:44 +02:00
Alessandro Di Federico
8a25ce53e7
daemon/test.py: use log function
2022-10-07 08:53:49 +02:00
Alessandro Di Federico
781324bedd
Drop graphlib-backport: we require Python 3.10
2022-10-07 08:53:49 +02:00
Alessandro Di Federico
32ffba9dfb
Drop unused Python requirement: psutil
2022-10-07 08:53:49 +02:00
Alessandro Di Federico
de06f76b2b
Stop checking Python requirements
2022-10-07 08:53:49 +02:00
Alessandro Di Federico
8f5659e0c7
Put Python packages into lib/python*/site-packages
2022-10-07 08:53:49 +02:00
Pietro Fezzardi
43cb77e6a3
TypeSystemPrinter: route edge to the top of nodes
2022-10-06 17:53:47 +02:00
Alessandro Di Federico
17149bacb7
Merge branch 'feature/revng-distributable-revamp'
2022-10-06 15:13:04 +02:00
Giacomo Vercesi
ff48b9de75
Introduce revng daemon-self-test
...
This new command will, given an executable, try to produce all
artifacts. By default it will run `revng daemon`, however an external
address can be provided to test remote daemons, e.g. running inside a
container.
2022-10-06 15:12:36 +02:00
Giacomo Vercesi
e5963395dc
Drop requests in favor of aiohttp
...
Drop the use of requests in the daemon tests, use aiohttp instead as
it allows the use of unix sockets, which simplifies the creation of
multiple ephimeral daemons
2022-10-04 14:20:03 +02:00
Giacomo Vercesi
5d02e7258f
revng.daemon test: fail if daemon exit code != 0
2022-10-04 14:13:56 +02:00
Giacomo Vercesi
d7265ff160
PipelineC: allow signal masking
...
Some users of PipelineC might be interested in preserving
pre-existing signals, this commits adds this functionality.
2022-10-04 14:13:56 +02:00
Giacomo Vercesi
7fda1ef459
PipelineC: drop AbortHook
...
Handle crashes via signal handlers. Switch python's revng.api from
a normal python function to faulthandler, which works also in the
case of harsher interruptions (e.g. SIGABRT).
2022-10-04 14:13:56 +02:00
Giacomo Vercesi
159fa8558d
revng.api: Count owned pointers and shutdown
...
rp_shutdown must be called after all the owning pointers given by
PipelineC are freed, in order to guarantee this easily, the python
ApiWrapper will use an atomic counter, which when shutdown has been
signaled and counter reaches zero will automatically call rp_shutdown
2022-10-04 14:13:55 +02:00
Giacomo Vercesi
a935cc3073
revng daemon: switch from hypercorn to uvicorn
...
Hypercorn is experiencing weird behaviour when running tests and
receiving SIGPIPEs when a couple of F5s are issued from the browser.
The switch to uvicorn fixed these issues.
2022-10-04 14:13:55 +02:00
Giacomo Vercesi
4f5e9c5986
revng.daemon.util: Remove dead code
2022-10-04 14:13:55 +02:00
Alessandro Di Federico
574eb1c22a
Merge branch 'feature/rework-pipeline-containers'
2022-10-03 10:34:52 +02:00
Massimo Fioravanti
049ba69d43
Pipeline: containers can now enumerate their kinds
2022-09-29 15:55:30 +02:00
Massimo Fioravanti
dc23473d85
Introduce Loader::getRegistered{Pipes,Analyses}
2022-09-29 15:55:16 +02:00
Massimo Fioravanti
445bc2aa8c
Pipeline: introduce registry for container types
2022-09-29 15:52:26 +02:00
Massimo Fioravanti
9363bbd70a
Pipeline: every container type has now a C++ type
2022-09-29 15:51:17 +02:00
Giacomo Vercesi
df68b2c7c0
revng ptml: merge cat and strip
...
Merge the cat and strip subcommands within `revng ptml`
Refactor codebase so that both color and plaintext output are handled
in a unified manner.
2022-09-29 15:43:17 +02:00
Giacomo Vercesi
bf4122ed0a
Introduce v2 of revng-check-conventions
2022-09-29 15:21:59 +02:00
Alessandro Di Federico
9dd0b139c0
PromoteCSVs: helpers no longer return structs
...
PromteCSVs creates wrappers around helpers. These helpers used to return
a struct in case the helper was changing a CSV.
In order to simplify the downstream pipeline, we now use out arguments
instead of returning a struct.
2022-09-29 10:53:47 +02:00
Alessandro Di Federico
5a7c120433
Translator: stop translation if leaving +x page
...
If a basic block is starting in a traslated page, but it extends out of
it, stop translation.
2022-09-29 09:02:52 +02:00
Alessandro Di Federico
8d4b3833ec
InvokeIsolatedFunctions: adopt splitBasicBlockBefore
2022-09-26 18:10:12 +02:00
Alessandro Di Federico
3307fb4a46
api.Manager: use TemporaryDirectory if no workdir
2022-09-26 18:09:01 +02:00
Alessandro Di Federico
52755aa4b4
TTG: fix temporary file leak in TypeScript backend
2022-09-26 18:09:01 +02:00
Alessandro Di Federico
df17c199c8
s/object..o/object.o/
2022-09-26 18:09:01 +02:00
Alessandro Di Federico
f6d5cd24dd
Give pretty names to temporary files
2022-09-26 18:09:01 +02:00
Alessandro Di Federico
02c69b0421
TemporaryFile: use RemoveFileOnSignal
2022-09-26 18:05:38 +02:00
Alessandro Di Federico
692dbeb42a
Merge branch 'feature/yield-call-graph-pipeline'
2022-09-26 13:42:33 +02:00
Ivan Krysak
5190f8f6c8
Yield: move PTML out of assembly namespace
...
This fixes an old issue: the headers were moved out out of assembly
a while back while cpp files had been forgotten.
2022-09-26 12:11:20 +02:00
Ivan Krysak
f0afb1066b
Yield: rework testing and add call graph tests
2022-09-26 12:11:13 +02:00
Ivan Krysak
6724b6d9cd
revng/Yield/Pipes: streamline file naming
2022-09-26 12:10:47 +02:00
Ivan Krysak
bb37d48dad
Yield: introduce YieldCallGraphSlicePipe
2022-09-26 12:09:28 +02:00
Ivan Krysak
3cd801dbac
SVG: introduce slices-to-SVG converter
2022-09-26 12:09:03 +02:00
Ivan Krysak
15f0c816c6
SVG Exporter: adopt ptml::Tag
2022-09-26 12:08:47 +02:00
Ivan Krysak
63019a3850
Yield: add a Graph keyword to SVG emitters
2022-09-26 12:08:22 +02:00
Ivan Krysak
2e9269caf8
Yield: implement pipes::*::getContract in .h
2022-09-26 12:07:54 +02:00
Ivan Krysak
6638055ecf
TupleTreeCompatible: drop NotTupleTreeCompatible
2022-09-26 12:01:56 +02:00
Ivan Krysak
fd994728bd
Yield: introduce call graph slicing
2022-09-26 12:01:43 +02:00
Ivan Krysak
cf5c010a7c
Layouter: introduce simple tree specialization
2022-09-26 10:33:43 +02:00
Ivan Krysak
7e051e3a23
Layouter: improve configuration documentation
2022-09-26 10:33:43 +02:00
Ivan Krysak
0ac31f8e92
Layouter: adopt the new entry detection algorithm
2022-09-26 10:33:43 +02:00
Pietro Fezzardi
c7105cda4d
GraphAlgorithms: generic entry point detection
2022-09-26 10:33:43 +02:00
Ivan Krysak
b267868356
CFG: fix calculateViewBox for entryless graphs
2022-09-26 10:33:43 +02:00
Ivan Krysak
0c7785bc38
Layouter & SVG: improve handling of empty graphs
2022-09-26 10:33:43 +02:00
Ivan Krysak
05d1426dca
CrossRelations: drop unnecessary serialization
2022-09-26 10:33:43 +02:00
Massimo Fioravanti
3ed1ce9902
Read-only containers: support multiple readers
2022-09-26 10:33:43 +02:00