In the course of profiling ci_hsc (
DM-10594), I noticed that YAML parsing is consuming about 4% of the total runtime, making us wait a few additional minutes for those Jenkins runs than we need to if we use libyaml to build pyyaml.
This will add a new low-level, third-party dependency to the stack, but it should remove YAML parsing completely from consideration in the profiles (as it should be).
The docs contain a mild warning: "Note that there are some subtle (but not really significant) differences between pure Python and LibYAML based parsers and emitters." However, our current use of YAML is simple enough (typically key: value pairs, some basic structures) that it shouldn't be affected, and the earlier we make this transition the easier it will be.
This change has successfully gone through Jenkins and is ready to merge pending approval of this RFC.