|
14 | 14 | #include <stdlib.h> |
15 | 15 |
|
16 | 16 |
|
17 | | -enum CoverageOption { |
18 | | - /** |
19 | | - * Display a coverage summary for all modules in this package |
20 | | - */ |
21 | | - CoverageOption_Summary = 0, |
22 | | - /** |
23 | | - * Display coverage information about the module against source code |
24 | | - */ |
25 | | - CoverageOption_Source = 1, |
26 | | - /** |
27 | | - * Display coverage information about the module against disassembled bytecode |
28 | | - */ |
29 | | - CoverageOption_Bytecode = 2, |
30 | | -}; |
31 | | -typedef uint8_t CoverageOption; |
32 | | - |
33 | 17 | enum ErrnoValue { |
34 | 18 | ErrnoValue_Success = 0, |
35 | 19 | ErrnoValue_Other = 1, |
@@ -97,253 +81,40 @@ typedef struct { |
97 | 81 | size_t len; |
98 | 82 | } ByteSliceView; |
99 | 83 |
|
100 | | -typedef struct { |
101 | | - /** |
102 | | - * Compile in 'dev' mode. The 'dev-addresses' and 'dev-dependencies' fields will be used if |
103 | | - * this flag is set. This flag is useful for development of packages that expose named |
104 | | - * addresses that are not set to a specific value. |
105 | | - */ |
106 | | - bool dev_mode; |
107 | | - /** |
108 | | - * Compile in 'test' mode. The 'dev-addresses' and 'dev-dependencies' fields will be used |
109 | | - * along with any code in the 'tests' directory. |
110 | | - */ |
111 | | - bool test_mode; |
112 | | - /** |
113 | | - * Generate documentation for packages |
114 | | - */ |
115 | | - bool generate_docs; |
116 | | - /** |
117 | | - * Generate ABIs for packages |
118 | | - */ |
119 | | - bool generate_abis; |
120 | | - /** |
121 | | - * Installation directory for compiled artifacts. Defaults to current directory. |
122 | | - */ |
123 | | - ByteSliceView install_dir; |
124 | | - /** |
125 | | - * Force recompilation of all packages |
126 | | - */ |
127 | | - bool force_recompilation; |
128 | | - /** |
129 | | - * Only fetch dependency repos to MOVE_HOME |
130 | | - */ |
131 | | - bool fetch_deps_only; |
132 | | - /** |
133 | | - * Skip fetching latest git dependencies |
134 | | - */ |
135 | | - bool skip_fetch_latest_git_deps; |
136 | | - /** |
137 | | - * bytecode version. set 0 to unset and to use default |
138 | | - */ |
139 | | - uint32_t bytecode_version; |
140 | | - /** |
141 | | - * Compiler version. set 0 to unset and to use default |
142 | | - */ |
143 | | - uint32_t compiler_version; |
144 | | - /** |
145 | | - * language version. set 0 to unset and to use default |
146 | | - */ |
147 | | - uint32_t language_version; |
148 | | -} CompilerBuildConfig; |
149 | | - |
150 | | -typedef struct { |
151 | | - /** |
152 | | - * Path to a package which the command should be run with respect to. |
153 | | - */ |
154 | | - ByteSliceView package_path; |
155 | | - /** |
156 | | - * Print additional diagnostics if available. |
157 | | - */ |
158 | | - bool verbose; |
159 | | - /** |
160 | | - * Package build options |
161 | | - */ |
162 | | - CompilerBuildConfig build_config; |
163 | | -} CompilerArgument; |
164 | | - |
165 | | -typedef struct { |
166 | | - ByteSliceView module_name; |
167 | | -} CompilerCoverageBytecodeOption; |
168 | | - |
169 | | -typedef struct { |
170 | | - ByteSliceView module_name; |
171 | | -} CompilerCoverageSourceOption; |
172 | | - |
173 | | -typedef struct { |
174 | | - /** |
175 | | - * Whether function coverage summaries should be displayed |
176 | | - */ |
177 | | - bool functions; |
178 | | - /** |
179 | | - * Output CSV data of coverage |
180 | | - */ |
181 | | - bool output_csv; |
182 | | -} CompilerCoverageSummaryOption; |
183 | | - |
184 | | -typedef struct { |
185 | | - /** |
186 | | - * Whether to include private declarations and implementations into the generated |
187 | | - * documentation. Defaults to false. |
188 | | - */ |
189 | | - bool include_impl; |
190 | | - /** |
191 | | - * Whether to include specifications in the generated documentation. Defaults to false. |
192 | | - */ |
193 | | - bool include_specs; |
194 | | - /** |
195 | | - * Whether specifications should be put side-by-side with declarations or into a separate |
196 | | - * section. Defaults to false. |
197 | | - */ |
198 | | - bool specs_inlined; |
199 | | - /** |
200 | | - * Whether to include a dependency diagram. Defaults to false. |
201 | | - */ |
202 | | - bool include_dep_diagram; |
203 | | - /** |
204 | | - * Whether details should be put into collapsed sections. This is not supported by |
205 | | - * all markdown, but the github dialect. Defaults to false. |
206 | | - */ |
207 | | - bool collapsed_sections; |
208 | | - /** |
209 | | - * Package-relative path to an optional markdown template which is a used to create a |
210 | | - * landing page. Placeholders in this file are substituted as follows: `> {{move-toc}}` is |
211 | | - * replaced by a table of contents of all modules; `> {{move-index}}` is replaced by an index, |
212 | | - * and `> {{move-include NAME_OF_MODULE_OR_SCRIP}}` is replaced by the the full |
213 | | - * documentation of the named entity. (The given entity will not longer be placed in |
214 | | - * its own file, so this can be used to create a single manually populated page for |
215 | | - * the package.) |
216 | | - */ |
217 | | - ByteSliceView landing_page_template; |
218 | | - /** |
219 | | - * Package-relative path to a file whose content is added to each generated markdown file. |
220 | | - * This can contain common markdown references fpr this package (e.g. `[move-book]: <url>`). |
221 | | - */ |
222 | | - ByteSliceView references_file; |
223 | | -} CompilerDocgenOption; |
224 | | - |
225 | | -typedef struct { |
226 | | - ByteSliceView verbosity; |
227 | | - /** |
228 | | - * Filters targets out from the package. Any module with a matching file name will |
229 | | - * be a target, similar as with `cargo test`. |
230 | | - */ |
231 | | - ByteSliceView filter; |
232 | | - /** |
233 | | - * Whether to display additional information in error reports. This may help |
234 | | - * debugging but also can make verification slower. |
235 | | - */ |
236 | | - bool trace; |
237 | | - /** |
238 | | - * Whether to use cvc5 as the smt solver backend. The environment variable |
239 | | - * `CVC5_EXE` should point to the binary. |
240 | | - */ |
241 | | - bool cvc5; |
242 | | - /** |
243 | | - * The depth until which stratified functions are expanded. |
244 | | - */ |
245 | | - size_t stratification_depth; |
246 | | - /** |
247 | | - * A seed for the prover. |
248 | | - */ |
249 | | - size_t random_seed; |
250 | | - /** |
251 | | - * The number of cores to use for parallel processing of verification conditions. |
252 | | - */ |
253 | | - size_t proc_cores; |
254 | | - /** |
255 | | - * A (soft) timeout for the solver, per verification condition, in seconds. |
256 | | - */ |
257 | | - size_t vc_timeout; |
258 | | - /** |
259 | | - * Whether to check consistency of specs by injecting impossible assertions. |
260 | | - */ |
261 | | - bool check_inconsistency; |
262 | | - /** |
263 | | - * Whether to keep loops as they are and pass them on to the underlying solver. |
264 | | - */ |
265 | | - bool keep_loops; |
266 | | - /** |
267 | | - * Number of iterations to unroll loops. set 0 to unset |
268 | | - */ |
269 | | - uint64_t loop_unroll; |
270 | | - /** |
271 | | - * Whether output for e.g. diagnosis shall be stable/redacted so it can be used in test |
272 | | - * output. |
273 | | - */ |
274 | | - bool stable_test_output; |
275 | | - /** |
276 | | - * Whether to dump intermediate step results to files. |
277 | | - */ |
278 | | - bool dump; |
279 | | - /** |
280 | | - * indicating that this prover run is for a test. |
281 | | - */ |
282 | | - bool for_test; |
283 | | -} CompilerProveOption; |
284 | | - |
285 | | -typedef struct { |
286 | | - /** |
287 | | - * A filter string to determine which unit tests to run. A unit test will be run only if it |
288 | | - * contains this string in its fully qualified (<addr>::<module_name>::<fn_name>) name. |
289 | | - */ |
290 | | - ByteSliceView filter; |
291 | | - /** |
292 | | - * Report test statistics at the end of testing |
293 | | - */ |
294 | | - bool report_statistics; |
295 | | - /** |
296 | | - * Show the storage state at the end of execution of a failing test |
297 | | - */ |
298 | | - bool report_storage_on_error; |
299 | | - /** |
300 | | - * Ignore compiler's warning, and continue run tests |
301 | | - */ |
302 | | - bool ignore_compile_warnings; |
303 | | - /** |
304 | | - * Collect coverage information for later use with the various `package coverage` subcommands |
305 | | - */ |
306 | | - bool compute_coverage; |
307 | | -} CompilerTestOption; |
308 | | - |
309 | | -UnmanagedVector build_move_package(UnmanagedVector *errmsg, CompilerArgument compiler_args); |
| 84 | +UnmanagedVector build_move_package(UnmanagedVector *errmsg, ByteSliceView compiler_args_paylod); |
310 | 85 |
|
311 | 86 | UnmanagedVector clean_move_package(UnmanagedVector *errmsg, |
312 | | - CompilerArgument compiler_args, |
| 87 | + ByteSliceView compiler_args_paylod, |
313 | 88 | bool clean_cache, |
314 | 89 | bool clean_byproduct, |
315 | 90 | bool force); |
316 | 91 |
|
317 | 92 | UnmanagedVector coverage_bytecode_move_package(UnmanagedVector *errmsg, |
318 | | - CompilerArgument compiler_args, |
319 | | - CompilerCoverageBytecodeOption coverage_opt); |
| 93 | + ByteSliceView compiler_args_paylod, |
| 94 | + ByteSliceView coverage_opt_payload); |
320 | 95 |
|
321 | 96 | UnmanagedVector coverage_source_move_package(UnmanagedVector *errmsg, |
322 | | - CompilerArgument compiler_args, |
323 | | - CompilerCoverageSourceOption coverage_opt); |
| 97 | + ByteSliceView compiler_args_paylod, |
| 98 | + ByteSliceView coverage_opt_payload); |
324 | 99 |
|
325 | 100 | UnmanagedVector coverage_summary_move_package(UnmanagedVector *errmsg, |
326 | | - CompilerArgument compiler_args, |
327 | | - CompilerCoverageSummaryOption coverage_opt); |
| 101 | + ByteSliceView compiler_args_paylod, |
| 102 | + ByteSliceView coverage_opt_payload); |
328 | 103 |
|
329 | 104 | UnmanagedVector create_new_move_package(UnmanagedVector *errmsg, |
330 | | - CompilerArgument compiler_args, |
| 105 | + ByteSliceView compiler_args_paylod, |
331 | 106 | ByteSliceView name_view); |
332 | 107 |
|
333 | 108 | void destroy_unmanaged_vector(UnmanagedVector v); |
334 | 109 |
|
335 | 110 | UnmanagedVector docgen_move_package(UnmanagedVector *errmsg, |
336 | | - CompilerArgument compiler_args, |
337 | | - CompilerDocgenOption docgen_opt); |
| 111 | + ByteSliceView compiler_args_paylod, |
| 112 | + ByteSliceView docgen_opt_payload); |
338 | 113 |
|
339 | 114 | UnmanagedVector new_unmanaged_vector(bool nil, const uint8_t *ptr, size_t length); |
340 | 115 |
|
341 | | -UnmanagedVector prove_move_package(UnmanagedVector *errmsg, |
342 | | - CompilerArgument compiler_args, |
343 | | - CompilerProveOption prove_opt); |
344 | | - |
345 | 116 | UnmanagedVector test_move_package(UnmanagedVector *errmsg, |
346 | | - CompilerArgument compiler_args, |
347 | | - CompilerTestOption test_opt); |
| 117 | + ByteSliceView compiler_args_paylod, |
| 118 | + ByteSliceView test_opt_payload); |
348 | 119 |
|
349 | 120 | #endif /* __LIBCOMPILER__ */ |
0 commit comments