Commit Graph

6987 Commits

Author SHA1 Message Date
Your Name 35537a3bc4 tmp 2026-04-11 14:02:09 +02:00
Your Name 2e3b2ae7e0 tmp 2026-02-26 14:33:19 +01:00
Giacomo Vercesi 7743743e60 python: install wheel at build time
Install the wheels at build time, then copy the installed files
statically when installing.
2026-02-25 22:14:08 +01:00
Your Name 8840dc86fa tmp 2026-02-25 22:13:24 +01:00
Your Name 9bf14f0ae5 tmp 2026-02-22 09:46:39 +01:00
Your Name db6905c2a2 nix flake 2026-02-21 08:55:25 +01:00
Alessandro Di Federico 82845fc393 CMakeLists.txt: make PYTHON_INSTALL_PATH nix-friendly 2026-02-21 08:48:15 +01:00
Alessandro Di Federico cd09b0688b Merge branch 'feature/pypeline-tracing-2' 2026-02-17 11:06:16 +01:00
Giacomo Vercesi 5ed18e65b7 docs: drop use of orc shell 2026-02-16 14:01:04 +01:00
Giacomo Vercesi 728ee2bb96 Add end-to-end test for --debug 2026-02-16 12:17:56 +01:00
Giacomo Vercesi cdfe858840 clift NameImporter: handle empty FunctionOps
Handle the case where a clift `FunctionOp` is present but has no body in
`NameImporter`.
2026-02-16 12:17:56 +01:00
Lauri Vasama 43c0c8435b Fix Clift UnionAttr mutation 2026-02-16 10:34:39 +01:00
Giacomo Vercesi e14d1cee6f Add native runner tests 2026-02-16 10:34:39 +01:00
Giacomo Vercesi df4f8b76ac pypeline: re-organize tests
Split the tests into two subdirectories: those that work in pure python
and those that use the C++ bindings.
2026-02-16 10:34:39 +01:00
Giacomo Vercesi f1878f1194 pypeline: drop TraceRunner
Drop the `pypeline-trace-run` executable, as its purposed has been
superseded by the combination of `--debug` and native pipe/analysis
runners.
2026-02-16 10:34:39 +01:00
Giacomo Vercesi a94c6a2636 pipebox: use native runners
When running in debug mode, use the native runners where possible.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi 25ba3115c4 pypeline: implement native run-{pipe,analysis}
Implement C++-only command-line executables that allow running a single
pipe/analysis without the involvement of python.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi 6b40322a3c revng2: implement wrappers
Implement wrappers in the `revng2` CLI, this allows running command with
e.g. `--gdb` to allow debugging.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi 27f419c8cd Fix and ban namespace clobbering
Fix an instance where the `std` namespace got clobbered into the global
namespace by accident.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi f9ac4db8ba Remove use of PIE compiler options
The position-indipendence of the code is set by the build environment.
2026-02-16 10:34:38 +01:00
Alessandro Di Federico dc74fc4c25 Merge branch 'feature/clift-variables-and-comments' 2026-02-13 16:46:24 +01:00
Lauri Vasama d37d32e4b2 Add Clift function type to-do 2026-02-13 08:41:39 +02:00
Lauri Vasama b8348f17b2 Overhaul Clifter structure
Split function specific state into a separate FunctionClifter class with
limited lifetime.
2026-02-13 08:41:39 +02:00
Lauri Vasama 07fbf344c2 Implement Clift PTML instruction tag emission 2026-02-13 08:41:39 +02:00
Lauri Vasama 57c49e4302 Implement Clift statement comment import 2026-02-13 08:41:39 +02:00
Lauri Vasama db8fd8de39 Avoid sanitizing identifiers in Clift name import 2026-02-13 08:41:39 +02:00
Lauri Vasama 46e8b64bb9 Implement Clift backend statement comment emission 2026-02-13 08:41:39 +02:00
Lauri Vasama 60e1684127 Generalize CommentPlacementHelper 2026-02-13 08:41:39 +02:00
Lauri Vasama dd75b0aebc Improve Clift local name import
* Names are now only imported for locals with valid handles.
* Stack frame variable is now handled separately.
2026-02-13 08:41:39 +02:00
Lauri Vasama 8b709ea532 Assign local variable and label handles in Clifter
Handles were previously assigned in the model name import pipe, but as
they are not expected to change often, they can be improted in the
Clifter. Additionally, in some cases it may be desirable to emit C
using generated names instead of those imported from the model, in which
case no handles would be available.
2026-02-13 08:41:39 +02:00
Lauri Vasama b0139bd5e5 Add stack frame variable rank 2026-02-13 08:41:39 +02:00
Lauri Vasama 4c5544816a Enable explicit automatic naming for locals 2026-02-13 08:41:39 +02:00
Lauri Vasama 6947a31a0c Add stack frame variable automatic naming 2026-02-13 08:41:39 +02:00
Lauri Vasama cb95b94785 Rename StackFrameVariableName 2026-02-13 08:41:39 +02:00
Lauri Vasama aa2597d13b model::Function: add stack frame name and comment
* StackFrameType() is removed.
* StackFrame() is introduced in its place.
* Use StackFrame().Type() to acess the stack frame type.
2026-02-13 08:41:39 +02:00
Lauri Vasama 811478771e Make local op name attributes inherent
The handle was already inherent, but was not being used. Discardable
attributes were instead previously used for both handle and name.
2026-02-13 08:41:39 +02:00
Lauri Vasama 47f030248c Add ExpressionRegionOpInterface 2026-02-13 08:41:39 +02:00
Lauri Vasama ba9c756d07 Improve StatementRegionOpInterface 2026-02-13 08:41:39 +02:00
Lauri Vasama 757f278134 Add ptml::DoxygenEmitter, CDoxygenEmitter
These streams allow emitting Doxygen comments in C and other languages
using various Doxygen style options.
2026-02-13 08:41:39 +02:00
Lauri Vasama 17c173b3d9 Add CTokenEmitter::CommentEmitter interface 2026-02-13 08:41:39 +02:00
Lauri Vasama c93e9f17fc Add CTokenEmitter documentation 2026-02-13 08:41:39 +02:00
Lauri Vasama 61cbd93bab Overhaul PTMLEmitter
* PTMLEmitter is now a concept subsuming Emitter.
* PTMLStreamEmitter is a concrete emitter implementing PTMLEmitter.
* Indentation no longer includes PTML tags.
* PTMLTagEmitter is no longer default-constructible or reusable.
2026-02-13 08:39:03 +02:00
Lauri Vasama e127f433ad Factor indentation out of ptml::Emitter 2026-02-11 12:50:40 +02:00
Lauri Vasama 21fa80f831 Introduce ptml::Emitter concept 2026-02-11 12:48:33 +02:00
Lauri Vasama 021d99cc39 Rename ptml::Emitter to ptml::PTMLEmitter 2026-02-11 12:48:33 +02:00
Lauri Vasama 04b035749b Add ptml::tokens::Punctuation 2026-02-11 12:48:33 +02:00
Lauri Vasama f65ca96368 Add clift op interface descriptions 2026-02-11 12:48:33 +02:00
Lauri Vasama 8cbc0e6d24 Move CTokenEmitter into namespace ptml 2026-02-11 12:48:33 +02:00
Lauri Vasama 6b764ccbd1 Use octal escapes instead of hexadecimal
A hexadecimal escape sequences consume an unlimited number of
hexadecimal digits, causing invalid code emission in the case that the
sequence is followed by an unrelated hexadecimal digit.
2026-02-11 12:48:33 +02:00
Alessandro Di Federico 3976ba5859 Merge branch 'feature/pypeline-improve-memory-usage' 2026-02-05 15:01:41 +01:00