This augments #31023 to make sure CMake invokes the compiler checks
correctly -- this is needed to avoid errors in certain
configurations.
Addresses rdar://62339814
The standard library (and other Swift modules built by our CMake build system)
has been building module files with an architecture only (e.g., x86_64.swiftmodule)
rather than a proper module triple (x86_86-apple-macosx10.15,
x86_64-apple-ios13.0-simulator, etc.), unlike every other build
system. There are hacks in the compiler and other tools to cope with
this unnecessary build difference. Fix the module file names so we'll
be able to remove the hacks later.
Fixes rdar://problem/49071536.
Python 3 uses the concepts of text and (binary) data instead of Unicode
strings and 8-bit strings. This change makes it explicit in Python 2 and
3 that this utility works with binary data instead of strings.
* print(bytes(r'(/|\\\\|\\\\\\\\)', encoding="ascii")) => b'(/|\\\\\\\\|\\\\\\\\\\\\\\\\)'
* print(bytes(r'(/|\\\\)', encoding="ascii")) => b'(/|\\\\\\\\)'
* print(bytes(r'/', encoding="ascii")) => b'/'
* print(bytes(r'\\/', encoding="ascii")) => b'\\\\/'
New versions of Python warn if the literal is not escaped. Specifically:
"Support for nested sets and set operations in regular expressions as in
Unicode Technical Standard #18 might be added in the future. This would
change the syntax. To facilitate this future change a FutureWarning will
be raised in ambiguous cases for the time being. That include sets
starting with a literal '[' or containing literal character sequences
'--', '&&', '~~', and '||'. To avoid a warning, escape them with a
backslash. (Contributed by Serhiy Storchaka in bpo-30349.)"
https://docs.python.org/dev/whatsnew/3.7.html
Support the usual `--enable-*san options`, but also add a
`--test-indexstore-db-santitize-all` that runs the tests once for each
sanitizer. Sanitizing just indexstore-db with a regular toolchain should
be much faster than using sanitized compilers.
Added a pass through of lit's `--filter` option to utils/run-test, to
allow running a subset of tests, for example `./utils/run-test
--filter=irgen` runs tests in `test/IRGen` and any other test with
"irgen" in its name.
Like switch cases, a catch clause may now include a comma-
separated list of patterns. The body will be executed if any
one of those patterns is matched.
This patch replaces `CatchStmt` with `CaseStmt` as the children
of `DoCatchStmt` in the AST. This necessitates a number of changes
throughout the compiler, including:
- Parser & libsyntax support for the new syntax and AST structure
- Typechecking of multi-pattern catches, including those which
contain bindings.
- SILGen support
- Code completion updates
- Profiler updates
- Name lookup changes