Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Speed up construction of MANIFEST.MF lines in java_stub_template
This PR significantly improves the performance of constructing the classpath JAR `MANIFEST.MF` file in `java_stub_template`. If the `CLASSPATH` is huge then significant time is spent wrapping the lines of the manifest to 72 characters. For example, if the classpath contains 400k characters then it takes nearly two minutes to generate the `MANIFEST.MF` file! To speed this up, I changed the code to use the `fold` utility (instead of a `for` loop which indexes into a giant string). This is _much_ faster, processing a 400k character classpath in ~150ms (my microbenchmark code and results are at https://gist.github.com/joshrosen-stripe/96a467cd7847cef241772064ec902147) `fold` is part of the POSIX spec so I believe that this solution will be portable. Closes bazelbuild#8196. PiperOrigin-RevId: 247575329
- Loading branch information