In October, we merged 70 PRs! 🎉
Thanks to a huge work from Nadrieril on trait resolution, the goal of handling all valid Rust code with hax frontend is now almost achieved. With these improvements and some bugfixes from W95Psp, we now produce JSON without errors for more than 99% of Rust’s top 800 crates!
W95Psp worked on a new data representation for communication between the frontend and the engine. This removes redundancy and gives great performance gains.
A new generic printer has been developed by W95Psp and is now available for backend development. The coq backend is the first to use it thanks to the migration work from cmester0.
I have worked on eliminating circular dependencies between the modules we generate. And also on allowing control flow (return
, break
and continue
) inside loops.
Last but not least, the effort to release v0.1.0 is almost finished. This comes with documentation and tooling improvements. For example, jschneider-bensch added a simple PSK based protocol as an example for the ProVerif backend.
Merged Pull Requests
- #1087: Fix two query panics
- #1084: fix(engine/simplify_question_marks): fix type arguments on
from
- #1079: Include defaulted items in
FullDefKind::TraitImpl
- #1077: fix(engine) Keep late_skip attributes in bundles
- #1074: feat(engine): profile each phase (mem usage, time, number of items)
- #1071: count_ones and bool->int
- #1069: Add
ImplExpr
information to associated types in an impl block - #1067: feat(book): allow F* extraction + TC from within the book
- #1063: Add module information to
FullDef
- #1062: fix(engine) Remove attributes on bundle aliases and filter out NotImplementedYet.
- #1061: feat(frontend/consts): float lits: use strings not bits, more support
- #1057: fix(exporter/constants): support usize casted to raw pointers constants
- #1056: fix(engine) Avoid wrapping return in a tuple.
- #1055: Include bodies in
FullDef
- #1054: Intern
DefId
s - #1053: Avoid a panic in
FullDef
- #1052: fix(exporter/thir): fix #1048
- #1050: Fix #1042
- #1049: fix(engine) Move variant constructors in recursive bundling.
- #1041: fix: rustc_private
- #1039: Fix 914
- #1037: Machine int constructors and conversions
- #1036: Upgrade rustc
- #1035: feat: check licenses
- #1031: Improve trait resolution
- #1030: Avoid bundling use items.
- #1029: feat: deduplicate types in haxmeta and JSON
- #1027: fix(frontend): this was reverted by mistake
- #1024: Reorganize
frontend/exporter/types
- #1023: PV backend example: Simple PSK based protocol
- #1022: some fixes for iterators.f_next and update_at_usize
- #1020: Quote items track replace
- #1018: fix(engine/import_thir): never drop bodies of constants
- #1015: fix(frontend): issue #1014
- #1012: fix: justfile
- #1011: fix(engine): also rename concrete idents within a projector.
- #1008: Support
impl Trait
in trait resolution - #1007: feat(cli): better version information
- #1006: Support more features
- #1002: Fix bug with recursive bundles depending on items from original modules.
- #1000: Cache
FullDef
translation and add more information to it - #999: Exporter get variant information works on unions
- #996: Cache many things
- #994: fix: DEV.md debug engine
- #990: Remove workaround in trait resolution for associated items
- #989: fix(engine): make consts fun. calls of arity 0 when there is an impl expr
- #988: feat(engine) Rewrite control flow inside loops.
- #987: Coq generic printer
- #984: feat: just use
just
- #981: Make options extensible
- #977: More improvements to trait resolution
- #970: Rework trait resolution to support GATs
- #969: Release
0.1.0-alpha.1
- #964: feat(contributing): add a
regressions
section - #961: Update README.md
- #960: feat(engine): add
ast_destruct
module - #959: Prefer
try_normalize_erasing_regions
- #958: feat(engine): add module
ast_builder
- #957: Ignore structs in variants renaming for bundling.
- #956: Run
cargo clippy --fix
- #955: feat(frontend): collect regular comments
- #952: feat(doc): add
CONTRIBUTING.md
- #950: feat(nix/utils): intro.
check-unimlemented-issue-coherency
- #949: fix(engine): change issue id
- #948: fix(engine/f*): convert an unimplemented to an assertion failure
- #947: fix(exporter+engine): drop default parameters on traits
- #945: feat(engine/f*): allow unsafe code
- #935: Handle cyclic module dependencies
- #851: fix(engine): expose type of local_ident.id
- #533: more principled generic printer