[roll] Roll fuchsia [fidlcat] Replace <regex> and <regex.h> with re2::RE2

See RFC-0105 for background:
https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0105_regular_expression_libraries

For the most part this is purely mechanical, with a few exceptions:

- By default, RE2 does not match against invalid UTF8. If the source
  strings may be invalid UTF8 (e.g., if they can contain '\0'), the RE2
  object must be created in Latin1 mode.

- RE2 is not copyable or movable. Where a regexp needs to be moved, the
  RE2 object has been wrapped with std::unique_ptr.

- RE2 has an option to use "POSIX egrep syntax", which is equivalent to
  <regex.h>'s regcomp with the REG_EXTENDED flag. I decided not to use
  RE2's POSIX option for two reasons:

  1. For regexps built from static regexp literals, I verified that
     RE2's default syntax is sufficient to parse those static literals.

  2. For regexps that come from user input, I think we should explicitly
     choose RE2 syntax over POSIX syntax for consistency across Fuchsia.
     Tools written in other languages (Go and Rust) already use RE2
     syntax -- using RE2 syntax in C++ tools will provide a more unified
     interface. See RFC-0105 for further discussion.

Note: the above comments apply generally to the transition from <regex>
and <regex.h> to RE2; some comments may not apply to this specific CL.

Original-Bug: 77811
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/676253
Original-Revision: 8edbc86da4320a16b4523724b7998cd8440b311e
GitOrigin-RevId: 8ef8468ad989513c97a28fe8291a0a274092e831
Change-Id: I085c09c58924d3551ee58fe488185f2cbf4e3cfe
1 file changed
tree: 9c067a79d1a772d5a469817c67ce6f1e1db95a47
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.