Skip to content

Commit 3ff2b16

Browse files
committed
More debugging WIP
1 parent bf92af3 commit 3ff2b16

2 files changed

Lines changed: 56 additions & 3 deletions

File tree

rocq-brick-libstdcpp/test/dune.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
(alias test_ast)
3333
(deps (:input N2_input.cpp) (glob_files_rec ../*.hpp) (universe))
3434
(action
35-
(run cpp2v -v %{input} -o N2_input_cpp.v --no-elaborate -- -std=c++20 -stdlib=libstdc++ )))
35+
(run cpp2v -v %{input} -o N2_input_cpp.v --no-sharing --no-elaborate -- -std=c++20 -stdlib=libstdc++ )))
3636
(alias (name srcs) (deps N2_input.cpp))
3737
)
3838
(subdir geeks_for_geeks_examples

rocq-brick-libstdcpp/test/geeks_for_geeks_examples/N2_input.v

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,70 @@ Section with_cpp.
6161

6262
#[global] Declare Instance cppStringR_typed : Typed2 "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>" cppStringR.
6363

64+
(*
65+
Jasper: maybe [verify] should give suggestions _earlier_, like Rustc.
66+
Paolo: And maybe [verify?] should be the first suggestion.
67+
68+
You can use [verify?[ source ] main_spec] to start the verification anyways.
69+
*)
6470
Lemma main_ok : verify?[source] main_spec.
6571
Proof.
6672

6773
verify_spec; go.
74+
75+
Print translation_unit.
76+
Print symbol_table.
77+
(* Search NM.t. *)
78+
79+
Eval vm_compute in fst <$> NM.elements source.(symbols).
80+
(* "std::operator>><char, std::char_traits<char>>(std::basic_istream<char, std::char_traits<char>>&, char&)"%cpp_name; *)
81+
(* source !! symbols *)
6882
(* progress ework with br_erefl. *)
6983
set name := "std::operator>><char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)"%cpp_name.
7084
exfalso.
7185
clear.
72-
Set Printing All.
86+
(* Set Printing All.
87+
Set Printing Depth 10000. *)
88+
Check "char".
89+
Check "char"%cpp_type.
90+
(* Check "char"%cpp_name. *)
91+
Check "std::char_traits<char>"%cpp_name.
92+
(* Check "std::allocator<char>"%cpp_name. *)
93+
(* Ninst (Nscoped (Nglobal (@Nid type "std")) (@Nid type "char_traits")) (@cons temp_arg (Atype (Tchar_ char_type.Cchar)) (@nil temp_arg)) *)
94+
7395
Check "std::operator>><char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)"%cpp_name.
74-
Eval cbv in ("std::operator>><char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)"%cpp_name).
96+
97+
(**
98+
Ninst
99+
(Nscoped (Nglobal (@Nid type "std"))
100+
(@Nop type function_qualifiers.N OOGreaterGreater
101+
(@cons type
102+
(Tref
103+
(Tnamed
104+
(Ninst (Nscoped ([...]) ([...]))
105+
(@cons temp_arg ([...])
106+
([...])))))
107+
(@cons type
108+
(Tref
109+
(Tnamed
110+
(Ninst ([...])
111+
([...]))))
112+
(@nil type)))))
113+
(@cons temp_arg (Atype (Tchar_ char_type.Cchar))
114+
(@cons temp_arg
115+
(Atype
116+
(Tnamed
117+
(Ninst (Nscoped (Nglobal ([...])) (@Nid type "char_traits"))
118+
(@cons temp_arg (Atype ([...])) (@nil temp_arg)))))
119+
(@cons temp_arg
120+
(Atype
121+
(Tnamed
122+
(Ninst (Nscoped ([...]) ([...]))
123+
(@cons temp_arg ([...]) ([...]))))) (@nil temp_arg))))
124+
: name
125+
*)
126+
127+
(* Eval vm_compute in ("std::operator>><char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)"%cpp_name). *)
75128
(* Print "std::operator>><char, std::char_traits<char>, std::allocator<char>>(std::basic_istream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)"%cpp_name. *)
76129

77130
Qed.

0 commit comments

Comments
 (0)