Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
5b377f4
first petch to eliminate [core::option]
Lin23299 Sep 5, 2025
bd8a1fc
added hash table for re-polymorphize
Lin23299 Sep 10, 2025
9bbdcb6
wip: trying to match the lid using hash table
Lin23299 Sep 10, 2025
15684eb
wip: passed array2d
Lin23299 Sep 11, 2025
d5880d9
wip: trying to rewrite slice_len using re-ploy
Lin23299 Sep 11, 2025
13f6d25
passed slice_len by updated bonus_check and moving [drop_unused] afte…
Lin23299 Sep 12, 2025
9ce8401
Merge branch 'AeneasVerif:main' into mono
Lin23299 Sep 12, 2025
caaeee8
wip: trying to fix from_fn by adding fn_ptrs into the re-poly map
Lin23299 Sep 12, 2025
674333f
wip: minor fix of slice_copy
Lin23299 Sep 15, 2025
42deeed
wip: trying to find the trait func impl for from_fn
Lin23299 Sep 15, 2025
ff718b0
merge
Lin23299 Sep 16, 2025
300c02c
fixed the name inconsistency caused by [improve_names]
Lin23299 Sep 16, 2025
3c50bda
wip: fixed trivial case of from_fn and map
Lin23299 Sep 16, 2025
ce3f6ef
apply [remove_empty_struct] on the [lid_full_generic], ignored [pass_…
Lin23299 Sep 17, 2025
14c5b20
minor: recorded different name for partial_eq
Lin23299 Sep 17, 2025
164effc
mono for Builtins with const-generics passed
ssyram Sep 26, 2025
7fb38df
mono debug: fixed partial_eq
ssyram Sep 26, 2025
b4c41e8
mono debug: fixed where_clauses_closures
ssyram Sep 26, 2025
5d85eec
fix undefined static inline in where_clauses_closures and where-claus…
Lin23299 Sep 30, 2025
0e19cd8
Merge branch 'main' of https://github.com/AeneasVerif/eurydice into mono
Lin23299 Oct 14, 2025
a299ba6
Merge branch 'AeneasVerif:main' into mono
Lin23299 Oct 17, 2025
5f05727
Merge branch 'AeneasVerif:main' into mono
Lin23299 Oct 21, 2025
b4f2669
added some binder_value for generics
Lin23299 Oct 21, 2025
a3c210d
Merge branch 'AeneasVerif:main' into mono
Lin23299 Oct 22, 2025
3dfad3d
Fix cremepat
KelvinMYYZJ Oct 23, 2025
bdc4c88
Merge branch 'AeneasVerif:main' into mono
Lin23299 Oct 24, 2025
3adc454
fix monomorphized resugar_loops (no step_by)
KelvinMYYZJ Oct 24, 2025
f8c90dc
Merge branch 'resugar_dev' into mono
KelvinMYYZJ Oct 27, 2025
ccd94a3
First step of merging branch 'main' into mono: before debugging
Lin23299 Feb 10, 2026
a3cc36b
wip: trying to build after merge
Lin23299 Feb 10, 2026
1f3a060
build ok, going to fi test cases
Lin23299 Feb 10, 2026
40c774e
fix resugar loop
KelvinMYYZJ Mar 3, 2026
59d2e96
minor fix
KelvinMYYZJ Mar 10, 2026
b290773
fix remove_array_eq
KelvinMYYZJ Mar 10, 2026
ea05502
Merge upstream main into mono
KelvinMYYZJ Aug 27, 2026
76c4439
Fix drop_unused_type
KelvinMYYZJ Aug 28, 2026
0503abe
Handle split range iterator matches with CReMePat
KelvinMYYZJ Aug 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ clean-and-test:
.PRECIOUS: %.llbc
%.llbc: %.rs .charon_version
# --mir elaborated --add-drop-bounds
$(CHARON) rustc --preset=eurydice --dest-file "$@" $(CHARON_EXTRA) -- -Aunused $<

$(CHARON) rustc --monomorphize --preset=eurydice --dest-file "$@" $(CHARON_EXTRA) -- -Aunused $<

out/test-%/main.c: test/main.c
mkdir -p out/test-$*
Expand All @@ -73,7 +74,7 @@ test/issue_105.llbc: CHARON_EXTRA = \
--include=core::cmp::* \
--include=core::convert::*

test/array2d.llbc: CHARON_EXTRA = --include=core::array::equality::*
# test/array2d.llbc: CHARON_EXTRA = --include=core::array::equality::*

test/core_num.llbc: CHARON_EXTRA = \
--include=core::num::*::BITS \
Expand All @@ -83,6 +84,9 @@ test/println.llbc: CHARON_EXTRA = \
--include=core::fmt::Arguments --include=core::fmt::rt::*::new_const \
--include=core::fmt::rt::Argument

# test-where_clauses_closures: CHARON_EXTRA = \
# --include=core::convert::*

test/option.llbc: CHARON_EXTRA = \
--include=core::option::*

Expand Down
9 changes: 6 additions & 3 deletions bin/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -224,8 +224,9 @@ Supported options:|}
(* Must happen now, before Monomorphization.datatypes, because otherwise
MonomorphizationState.state gets filled with lids that later on get eliminated on the basis
that they were empty structs to begin with, which would send Checker off the rails *)
let files = Krml.DataTypes.remove_empty_structs files in
let files = Eurydice.Cleanup2.remove_empty_structs files in
let files = Krml.Monomorphization.datatypes files in
let files = Eurydice.Cleanup2.drop_unused_type files in
(* Cannot use remove_unit_buffers as it is technically incorrect *)
let tbl = Hashtbl.create 41 in
let files = (Krml.DataTypes.build_unit_field_table tbl)#visit_files () files in
Expand Down Expand Up @@ -255,7 +256,7 @@ Supported options:|}
let errors, files = Krml.Checker.check_everything ~warn:true files in
if errors then
fail __FILE__ __LINE__;
let files = Krml.Inlining.drop_unused files in
(*let files = Krml.Inlining.drop_unused files in*)
let files = Eurydice.Cleanup2.remove_array_temporaries#visit_files () files in
Eurydice.Logging.log "Phase2.25" "%a" pfiles files;
let files = Eurydice.Cleanup2.remove_array_repeats#visit_files false files in
Expand All @@ -282,7 +283,7 @@ Supported options:|}
let files = Eurydice.Cleanup2.remove_array_from_fn files in
Eurydice.Logging.log "Phase2.6" "%a" pfiles files;
(* remove_array_from_fn, above, creates further opportunities for removing unused functions. *)
let files = Krml.Inlining.drop_unused files in
(* let files = Krml.Inlining.drop_unused files in *)
let files = Eurydice.Cleanup2.remove_implicit_array_copies#visit_files () files in
(* Creates opportunities for removing unused variables *)
let files = Eurydice.Cleanup2.remove_assign_return#visit_files () files in
Expand All @@ -305,6 +306,8 @@ Supported options:|}
let files = Eurydice.Cleanup2.float_comments files in
Eurydice.Logging.log "Phase2.95" "%a" pfiles files;
let files = Eurydice.Cleanup2.bonus_cleanups#visit_files [] files in
let files = Krml.Inlining.drop_unused files in
let files = Eurydice.Cleanup2.drop_unused_monoed_func files in
(* Macros stemming from globals -- FIXME why is this not Krml.AstToCStar.mk_macros_set? *)
let files, macros = Eurydice.Cleanup2.build_macros files in

Expand Down
17 changes: 10 additions & 7 deletions cremepat/cremepat.ml
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,16 @@ let compile_parse_tree (env : env) loc
(* EApp (ETApp (e, ts), es) *)
ppat_cons_many ~loc "EApp"
[
ppat_cons_many ~loc "ETApp"
[
compile env head;
compile_expr_list_pattern env cgs;
compile_expr_list_pattern env methods;
compile_typ_list_pattern env ts;
];
(if cgs = [] && methods = [] && ts = [] then
compile env head
else
ppat_cons_many ~loc "ETApp"
[
compile env head;
compile_expr_list_pattern env cgs;
compile_expr_list_pattern env methods;
compile_typ_list_pattern env ts;
]);
ppat_list ~loc (List.map (compile env) args);
]
| Addr e -> ppat_cons_one ~loc "EAddrOf" (compile env e)
Expand Down
12 changes: 12 additions & 0 deletions include/eurydice_glue.h
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,17 @@ core_convert_num__impl_core__convert__From_u16__for_usize__from(uint16_t x) {
return x;
}

// for monoed where-clauses_simple
static inline uint64_t
core_convert_num__core__convert__From___u64__u16___from(uint16_t x) {
return x;
}

static inline size_t
core_convert_num__core__convert__From___usize__u16___from(uint16_t x) {
return x;
}

static inline uint32_t core_num__u8__count_ones(uint8_t x0) {
#ifdef _MSC_VER
return __popcnt(x0);
Expand Down Expand Up @@ -463,6 +474,7 @@ typedef void Eurydice_c_void_t;
// This is temporary. Ultimately we want to be able to extract all of this.

typedef void *core_fmt_Formatter;
typedef void *core_fmt_Formatter_____;
#define core_fmt_rt__core__fmt__rt__Argument__a___new_display(x1, x2, x3, x4) \
NULL

Expand Down
Loading