Skip to content

v0.19.0

Choose a tag to compare

@kkysen kkysen released this 01 Sep 20:26
· 2431 commits to master since this release
b9339f4

What's Changed

  • (c2rust-analyze) Relax the transmutable checks from two-way to one-way, now allowing for arrays and slices to decay by @kkysen in #841
  • c2rust-analyze: initial implementation of error recovery by @spernsteiner in #876
  • analyze: preserve refs by @spernsteiner in #923
  • (c2rust-analyze/tests) Specify --edition 2021 for the tests, fixing issues with imports and core (#912) by @kkysen in #935
  • analyze: fix panic on addr_of!(...) as ... by @spernsteiner in #945
  • analyze: add function attrs for testing by @spernsteiner in #942
  • analyze: add support for some unsupported casts by @spernsteiner in #929
  • (c2rust-analyze) Support ptr-to-ptr casts between safely transmutable types, for now limited to same-sized integers by @kkysen in #839
  • analyze: refactor rewrite::apply by @spernsteiner in #937
  • analyze: new implementation of MIR-to-HIR rewrite lifting by @spernsteiner in #934
  • analyze: generate casts around call arguments and results by @spernsteiner in #936
  • (c2rust-analyze/tests) Enable transpiled string literals in tests by @kkysen in #955
  • Add hypothetical lifetime to structure rewrites with empty generic type parameter lists by @aneksteind in #956
  • rewrite: add #[derive(Clone)] test case by @aneksteind in #958
  • Update README.md to add compile_commands.json setup for meson by @orowith2os in #954
  • Fix the permissions of some scripts by @mjgarton in #962
  • Do not rewrite ADTs mentioned in extern blocks by @aneksteind in #960
  • Improve Fedora detection by @mjgarton in #963
  • mark extern block function signatures as FIXED by @aneksteind in #966
  • [c2rust-analyze] Run analysis on pdg input by @fw-immunant in #894
  • analyze: account for Spans indexing into aggregated sources, not individual files by @fw-immunant in #967
  • add test case showing #905 is resolved by @aneksteind in #970
  • analyze: README: fix invocation by @fw-immunant in #972
  • analyze: generate shims for calls from non-rewritten to rewritten code by @spernsteiner in #939
  • add support for emitting casts to and from *mut T and Cell by @aneksteind in #968
  • analyze: recover from failures in shim generation by @spernsteiner in #979
  • fix mismatch in number of origin parameters for cast result by @aneksteind in #976
  • (c2rust-analyze) Add known_fns! for declaring the permissions on ptrs in known (i.e. libc) UnknownDef fns by @kkysen in #978
  • (c2rust-analyze) Allow calls to UnknownDef KnownFns with known ptr perms by @kkysen in #980
  • (c2rust-analyze) Remove UNIQUE from initial ptr perms before asserting it's empty by @kkysen in #981
  • instrument: README: fix invocation by @fw-immunant in #973
  • (c2rust-analyze/tests) Add a generic extern "rust-intrinsic" foreign fn` test (currently disabled as we crash on it) by @kkysen in #1001
  • provide statics with hypothetical origins by @aneksteind in #975
  • fix subset relation comment between fn argument nested lifetimes by @aneksteind in #1003
  • analyze: don't add fields to adt_metadata_table by @spernsteiner in #1004
  • (c2rust-analyze) Add almost all libc KnownFns used in lighttpd_rust_amalgamated by @kkysen in #998
  • analyze: refactor struct and static rewrites by @spernsteiner in #1005
  • analyze: add extern statics to gacx.static_tys by @spernsteiner in #1008
  • Add hypothetical lifetime parameters and arguments to function signatures by @aneksteind in #1000
  • replace allow_unused with leading underscore for TyGenericParams by @aneksteind in #1011
  • add test for unions by @aneksteind in #1012
  • analyze: add DefId filter by @spernsteiner in #1014
  • analyze: omit unused hypothetical lifetimes during rewriting by @spernsteiner in #1015
  • handle deconstruct_hir_ty for function pointers by @aneksteind in #1019
  • Test.lighttpd.md5 by @aneksteind in #1020
  • analyze: fix deconstruct_hir_ty adt/path case by @spernsteiner in #1023
  • Support intermediate casts in calls. by @aneksteind in #1022
  • analyze: assign fresh PointerIds to Ref and AddressOf rvalues by @spernsteiner in #1028
  • analyze: add pointee_type analysis by @spernsteiner in #1029
  • dataflow: avoid propagating offset permissions upward from field access by @aneksteind in #1031
  • build(deps): bump rustix from 0.37.19 to 0.37.25 by @dependabot in #1032
  • fix typos by @not-my-profile in #1016
  • c2rust-analyze: Move all of main.rs to analyze.rs except for fn main by @kkysen in #1035
  • c2rust-analyze: Add a cargo wrapper by @kkysen in #1036
  • Support llvm 17.0.0 by @thedataking in #1041
  • analyze: memcpy/memset, void* rewrites, and other fixes for algo_md5 by @spernsteiner in #1043
  • LLVM17: Fix preprocessor expression in AstExporter.cpp by @thedataking in #1044
  • c2rust transpile: When casting bools to floats, go through the integral type u8 by @dgherzka in #1030
  • support c2rust <path/to/*.c> in lieu of compile_commands.json by @aneksteind in #1037
  • Fix nix build by @hkalbasi in #1047
  • analyze: borrowck: cache results of polonius runs on disk by @spernsteiner in #1056
  • build(deps): bump shlex from 1.1.0 to 1.3.0 by @dependabot in #1062
  • Add support for LLVM18 by @thedataking in #1067
  • analyze: CLI options by @spernsteiner in #1057
  • ast-exporter: use major, not full, version for clang resource dir by @fw-immunant in #1075
  • Demonstrate use of PDG from dynamic analysis in static analysis by @fw-immunant in #1069
  • c2rust transpile: Allow any integral types in init lists, not just char and int by @kkysen in #1076
  • analyze: add C2RUST_ANALYZE_NO_CARGO env var to disable cargo integration by @spernsteiner in #1070
  • analyze: emit inline annotations for debugging by @spernsteiner in #1071
  • analyze: track reasons why functions are not rewritten by @spernsteiner in #1072
  • analyze: add --rewrite-mode pointwise by @spernsteiner in #1073
  • Fix noop deref warning by @LegNeato in #1082
  • analyze: initial implementation of NON_NULL static analysis by @spernsteiner in #1081
  • analyze: add scripts for computing pointwise metrics by @spernsteiner in #1074
  • c2rust-transpile: only delete compile_commands.json if it was a temp file by @fw-immunant in #1079
  • analyze: uncomment line in scripts/run_pointwise_metrics.sh by @spernsteiner in #1087
  • analyze: allow overriding dataflow for specific permissions by @spernsteiner in #1088
  • Switch to crossbeam-queue for events by @ahomescu in #1091
  • analyze: add NON_NULL rewrites by @spernsteiner in #1095
  • Fix ordering of clang libs for static linking by @thedataking in #1100
  • analyze: support rewriting field projections on nullable pointers by @spernsteiner in #1096
  • Fix c2rust-analyze panic for variadic functions by @ahomescu in #1105
  • analyze: borrowck performance improvements by @spernsteiner in #1111
  • transpile: remove git-testament dependency (for now) to remove time dependency to build on 1.80.0 by @kkysen in #1115
  • Release 0.19.0 by @kkysen in #1116

New Contributors

Full Changelog: v0.18.0...v0.19.0