38 Commits

Author SHA1 Message Date
Giacomo Vercesi a746d5afc3 mass-testing-report: fix bugged formatTime
The `formatTime` function was bugged, returning invalidly formatted
strings when the second components was less than 10. Rework it to emit
proper formatting.
2026-03-31 17:00:48 +02:00
Giacomo Vercesi 1bcd1ef920 mass-testing-report: names for binaries
Instead of having all the binaries in the mass-testing-report be
downloaded with the name `input`, have them use a meaningful name
instead.
2025-12-12 15:46:49 +01:00
Ivan Krysak cc57e57fd1 TTG: remove support for optional: true fields
After this commit, every non-key field is treated as if it was optional
while every key field (plus every auto-generated `Kind` field) - as if
it was required.
2025-10-13 18:33:10 +03:00
Giacomo Vercesi 5f714f9f00 tuple_tree.ts: add toString to Reference
Add the `toString` method to the `Reference` class. This is needed to
allow `makeDiff` to function correctly if it encounters an instanced of
the class.
2025-09-08 17:36:12 +02:00
Khaled Ismaeel 4a56c313db Process enums separately in diff
Before this commit the logic was recursing upon finding
enums, which leads to incorrect behavior where `infoObject` is
`undefined`.
2025-06-25 15:40:40 +02:00
Giacomo Vercesi 6b7af19817 tuple_tree.ts: rename TypeHints to TypesMetadata
Rename the `TypeHints` to `TypesMetadata` (and related function
arguments) to better convey their contents.
2025-05-07 10:47:27 +02:00
Giacomo Vercesi 80ad54cc1d CMake: fix dependencies in typescript_module
The `typescript_module` function did not declare all its files
dependencies, leading to build errors. Add those dependencies to the
`DEPENDS` field.
2025-05-07 10:47:27 +02:00
Jurij Srebrnič c9731dc722 tuple_tree.ts: remove dead code in _applyDiff
Remove a branch from `_applyDiff` as the conditions for it to happen are
impossible.
2025-05-07 10:47:27 +02:00
Giacomo Vercesi faf448f320 mass-testing-report: fix incorrect duration
Fix missing padding zeros when displaying the runtime of an execution.
2025-05-05 16:02:40 +02:00
Giacomo Vercesi 140735a913 tuple-tree-generate-typescript: drop --prettier
The `prettier` binary is now assumed to be installed as part of the
system. No need to manually install it and use the `--prettier`
command-line option.
2025-03-13 14:06:02 +01:00
Giacomo Vercesi 5e386d2a8d model.ts: disable key sorting
Disable sorting of model keys, as that worsens the readability of the
model.
2025-02-05 10:38:16 +01:00
Giacomo Vercesi 7a01742421 mass-testing: show smallest binaries
Show on the overview page of mass-testing the smallest binary for OOMs
and timeouts, as these are probably show an early sign of some broken
aspect of the pipeline.
2024-11-13 09:28:12 +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 1cbd01804c mass-testing-report: handle empty crash stats
When generating crash statistics, handle the case where there are no
statistics for the specified category.
2024-10-31 08:58:59 +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
Ivan Krysak dfa7478685 Adopt reworked model::Type 2024-06-27 11:05:51 +02:00
Ivan Krysak edb2d11c9a TTG: add upcastable struct field support 2024-06-27 11:05:49 +02:00
Ivan Krysak ac587cbb4f Model: rename Type into TypeDefinition 2024-06-27 11:05:48 +02:00
Alessandro Di Federico c6fa8f77ee Fix typescript wrappers being rebuild every build 2024-02-09 10:04:26 +01:00
Giacomo Vercesi 293c0c9e25 tupletree.ts: Reference.resolve is now nullable
Allow `Reference.resolve` to return undefined if the reference's path
does not exist on the target object.
2024-01-26 19:13:58 +01:00
Giacomo Vercesi bc7cde4cf7 tuple_tree.ts: fix diffing for abstract types
The previous `makeDiff` implementation did account nor have enough
information to be able to upcast abstract types. This commit introduces
the necessary information for this to happen.
2023-11-03 16:30:40 +01:00
Giacomo Vercesi 2a239ddf47 Introduce PipelineDescription
Add the PipelineDescription object that describes the structure of a
pipeline. This will be used by all the downstream users instead of
pipeline accessor methods via PipelineC.
2023-09-14 15:44:33 +02:00
Giacomo Vercesi 27c065a54b model.ts: implement makeDiff speedups
Make `makeDiff` run faster by:
* Utilizing the information exposed by TYPE_HINTS which avoids having
  expensive runtime checks
* Optimize some of the hot parts of the codebase to lower run times
2023-07-21 13:19:04 +02:00
Giacomo Vercesi 3a006422d3 typescript/python model wrappers: fix structure
Change the way the python and typescript model wrappers handle
attributes in struct fields. Now all fields are populated and none of
the use `None`.
2023-07-21 09:34:00 +02:00
Giacomo Vercesi 406a21360a model.ts: add offset support to MetaAddress
Allow the `MetaAddress` class in typescript to independently compute the
offset to another MetaAddress.
2023-07-21 09:34:00 +02:00
Giacomo Vercesi 31cd2b53f9 rcc: add codespell
Add codespell to the list of checks performed by
revng-check-conventions. This should reduce the amount of typos present
in the revng codebase.
2023-05-11 10:05:32 +02:00
Giacomo Vercesi fcc0d2176c model.ts: format with new prettier
Apply the formatting changes imposed by the updated prettier version.
2023-05-08 16:03:03 +02:00
Alessandro Di Federico 564843165b tuple_tree.ts: refine ParsableType interface
Fixes an issue that was detected in recent typescript versions where the
`Parsable` interface was not fully defined.
2023-04-28 09:56:06 +02:00
Giacomo Vercesi 31bb77237f typescript: add setElementByPath function
add the setElementByPath function which allows setting a value in a
tuple tree give a tuple tree path to apply it to
Also apply some small fixes to the `tuple_tree.ts` codebase
2023-02-07 16:54:35 +01:00
Alessandro Di Federico 5de242c08f model.ts.tgz: do not generate at every build 2022-12-09 14:01:10 +01:00
Giacomo Vercesi 579cd2c558 npm: handle global install in lib64
Some distributions change the LIBDIR for global installation to lib64,
account for that when installing the model in CMAKE_BINARY_DIR
2022-10-24 14:27:52 +02:00
Giacomo Vercesi d36fddc71e revng-model: install in global mode
Install revng-model in global mode, so it is consistent with the
other installed packages
2022-10-24 09:58:55 +02:00
Giacomo Vercesi c084620ef2 Switch from yarn to npm 2022-09-02 03:49:56 +02:00
Alessandro Di Federico ebc9a41044 CMake: fix regeneration of TypeScript code
In `add_custom_command` is one of the entries of `DEPENDS` is not a file
(i.e., it's a custom command), the dependency is only an ordering
dependency.  This means that the command is not actually re-run when its
dependencies are invalidated.
2022-08-11 11:16:04 +02:00
Giacomo Vercesi a741e39f76 revng-check-conventions: introduce prettier
Adds the formatting tool prettier to allow formatting JS, TS, JSON,
YAML and HTML files.
2022-06-28 15:29:09 +02:00
Giacomo Vercesi 4219f236cf Generate model.ts.tgz installable package 2022-05-09 13:38:42 +02:00
Giacomo Vercesi a4ca82b50b Introduce TypeScript model generator 2022-05-09 13:37:35 +02:00
Giacomo Vercesi 4468cedbf1 CMake: generate node_modules 2022-05-09 13:37:03 +02:00