[Chapel Merge] Use surrogateescape in computePerfStats

Branch: refs/heads/master
Revision: 659f823
Author: mppf
Log Message:

Merge pull request #16609 from mppf/computePerfStats-fix

Use surrogateescape in computePerfStats

Follow-up to PR #16560

The computePerfStats program opens the output file looking for keys to
find perf information (such as timing printouts). However, we have some
programs (e.g. mandelbrot) that output binary data. That caused a problem
after PR #16560 because the python3 default I/O is assuming UTF-8. This
PR adjusts the file opened to read the perf information to tolerate UTF-8
encoding errors by using the surrogateescape error handling strategy.
This allows the rest of the processing to assume UTF-8 and should have
minimal impact since we expect the matched strings (e.g. TIME=140.0)
will be UTF-8.

  • [x] mandelbrot tests pass with start_test -performance

Reviewed by @ben-albrecht - thanks!

Modified Files:
M util/test/computePerfStats

Compare: https://github.com/chapel-lang/chapel/compare/75d4418cf628...659f823fb2a5