Enhance port_tools to be able to do more with each benchmark.#472
Conversation
- convert_project: New -extra-3c-arg option (for -alltypes) - Add compile_converted_project.sh to compile with Checked C clang after conversion. Plus minor cleanups. Notably, when converting all files, have generate_ccommands use the compilation database rather than taking the union of the compiler flags.
…nto workflow-alltypes-and-compile
…nto workflow-alltypes-and-compile
f2e7ec2 to
b2490a8
Compare
|
Note: I force-pushed the |
Does it make sense to merge the PR as is? If the fix doesn't take long it'll be good to have it fixed first, but, as you've said, we're already testing against this PR, so it should be merged. |
It's up to you. I think I'll probably have the fix by tomorrow, and I was hoping to avoid the overhead of another two PRs. Another aspect I didn't mention is that in the current PRs, the step that moves the converted files over the originals for the post-conversion build is broken for libarchive and zlib in the same way as the include updating, making the post-conversion build for those two benchmarks meaningless (with or without |
Also revert the change to the compiler options. I decided I'd prefer to decouple it from this PR.
|
I think I have the benchmarks with separate build directories working as intended now: example run. The annoying thing is that now that the workflow is actually doing everything it is supposed to do (including using the debug build of |
--build_diroption toconvert_projectto specify a build directory (containingcompile_commands.json) different from the source directory (which is scanned for source files to update includes). This is needed by LibArchive and ZLib, which currently set--project_pathto the build directory, which breaks include updating.-output-postfixto-output-dirto reduce the amount of code needed to move converted source files into place for the post-conversion build. Theoretically, this would break any caller that relies on the current location of the output files, but the current benchmark test workflow doesn't use the output files at all.--project_pathspecified toconvert_projectrather than the common ancestor directory of the source files in the compilation database. This will temporarily break LibArchive and ZLib even further until they are migrated to the new usage of the--project_pathand--build_diroptions.--extra-3c-argtoconvert_projectthat can be used to pass the-alltypesflag through to 3C.mwhicks1/3c-actions#7 will use the new features to improve the benchmark test workflow.