Commit Graph

240 Commits

Author SHA1 Message Date
Giacomo Vercesi 4f7908753e Introduce the revng-daemon command 2022-04-26 15:59:35 +02:00
Giacomo Vercesi 172faebacf Introduce the revng.daemon GraphQL API
This commit introduces the `revng.daemon` Python module, a Flask-powered
web application that exposes the functionality from `revng.api` across a
GraphQL API
2022-04-26 15:59:35 +02:00
Giacomo Vercesi 7231ee607a Introduce PipelineC wrapper for Python
Add the revng.api module: a wrapper around the PipelineC API.
2022-04-26 15:59:35 +02:00
Giacomo Vercesi e5c9141ccc Refactor revng.cli.support
* Removed shadowed `relative` function
* Clean up imports
* Add type hints to functions
* Use Path where possible
2022-04-26 15:05:30 +02:00
Giacomo Vercesi bbce0b33e5 revng-check-conventions: introduce isort 2022-04-20 09:57:08 +02:00
Giacomo Vercesi 46821cee5f revng-check-conventions: introduce mypy 2022-04-20 09:57:01 +02:00
Giacomo Vercesi 31a836e48c revng-check-conventions: introduce flake8 2022-04-20 09:56:44 +02:00
Giacomo Vercesi d81dc49809 revng-check-conventions: license check 2022-04-20 09:55:18 +02:00
Pietro Fezzardi 7f65b1117a New AddPrimitiveTypesPipe
This pipe is executed during the Lift step and populates the model with
all the required primitive types.
2022-04-12 16:40:27 +02:00
Giacomo Vercesi 6b9cdbb0ec Python TupleTreeGenerator: cache type hints
This significantly speeds up loading the model.
2022-04-08 17:37:04 +02:00
Giacomo Vercesi a2b5dbb1dc TupleTreeGenerator: autogenerate Kind 2022-04-08 17:36:59 +02:00
Giacomo Vercesi 039f7db93e model::*: ensure Kind -> Class correspondence 2022-04-08 17:31:05 +02:00
Antonio Frighetto dddd8ecbcb Update EFA tests to support CFG out of the model 2022-04-05 15:37:57 +02:00
Alessandro Di Federico d70c19164e revng: append search prefixes upon recursion 2022-03-28 14:34:10 +02:00
Alessandro Di Federico 581eab5a28 YAML pipeline: s/module/module.ll/ 2022-03-28 12:17:05 +02:00
Massimo Fioravanti 8bbd3b9435 revng-pipeline: move from --quiet to --verbose 2022-03-28 12:17:05 +02:00
Massimo Fioravanti c05b5dbb28 Steps now represent the *end* of a step
A special "begin" step has been introduced.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti b362d926ec pipeline: drop implicit rank 0 2022-03-28 12:17:05 +02:00
Filippo Cremonese 70a460c46a TupleTreeGenerator: use dataclasses
Give up on pydantic.
2022-03-22 17:52:02 +01:00
Alessandro Di Federico 2b55d1df22 Adopt cmake-format 2022-03-17 18:52:18 +01:00
Alessandro Di Federico 173ad98661 revng driver: introduce --keep-temporaries 2022-03-17 16:46:02 +01:00
Alessandro Di Federico cdeb1ea507 revng driver: introduce --dry-run 2022-03-17 16:46:02 +01:00
Alessandro Di Federico 6832698e5b Introduce revng llvm pipeline
This is a wrapper to `revng-pipeline` designed to make the adoption of
pipelines easier for places where we are now using `revng opt`.
2022-03-17 16:46:02 +01:00
Alessandro Di Federico e753e28f43 revng: make more extensive use of relative paths 2022-03-17 16:46:02 +01:00
Alessandro Di Federico 0aef5adc32 Drop scripts/revng-translate reference 2022-03-17 16:46:02 +01:00
Alessandro Di Federico 586feabd3d Drop scripts/revng-model-dump 2022-03-17 16:46:02 +01:00
Alessandro Di Federico af6305725d Rewrite revng driver infrastructure
It really needed some fresh air.
2022-03-17 16:46:00 +01:00
Alessandro Di Federico df00a892dd Introduce revng.cli.lift 2022-03-17 14:10:50 +01:00
Alessandro Di Federico da7701bd4e Move all executables except revng to libexec/revng
We used to collect all binaries into the `bin/` directory. However this
led to confusions since certain commands where available both as
`revng-command` and `revng command`.

This commit moves all the executables except `revng` into
`libexec/revng`, which, according to FHS, is dedicated to "internal
binaries that are not intended to be executed directly by users or shell
scripts".
2022-03-17 14:10:50 +01:00
Alessandro Di Federico 0e387938be Move scripts/revng to revng/cli/revng.py 2022-03-16 22:10:15 +01:00
Alessandro Di Federico 997e7f60cb scripts/renvg: handle revng pipeline
Let `scripts/revng` intercept `revng-pipeline` invocations and add, not
only -load, but `-P` (pipelines) too.
2022-03-16 22:10:15 +01:00
Alessandro Di Federico 7d48059800 Turn revng-lift into a script 2022-03-11 15:37:12 +01:00
Alessandro Di Federico 0793e4afcb Turn lifting into a pass 2022-03-11 15:37:12 +01:00
Alessandro Di Federico cd7f1fced5 Update test results 2022-03-08 20:57:46 +01:00
Alessandro Di Federico 9608b337c6 Python formatting: switch to black 22 2022-03-02 15:40:27 +01:00
Alessandro Di Federico e7ae70e9a4 Record grandiso as a dependency 2022-02-23 18:03:45 +01:00
Filippo Cremonese 7f7a222410 python-model: handle importing multiple versions 2022-02-23 18:03:36 +01:00
Filippo Cremonese 09a995ba51 python-model: generate from jsonschema 2022-02-23 18:03:35 +01:00
Filippo Cremonese 23c40e3b51 revng: fix imports
Add missing log_error include and remove other unused imports.
2022-02-23 18:02:50 +01:00
Filippo Cremonese 6672eb8dbc Turn Python scripts into modules 2022-02-23 18:02:42 +01:00