Skip to content

ABI FIXME#16,17: Hoist += operator out of the array types into RangeReplaceableCollection #5170

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
270 commits
Select commit Hold shift + click to select a range
34d81d4
Merge pull request #5178 from llvm-beanz/sil-missing-clang-tblgen-dep
swift-ci Oct 7, 2016
c42d0d2
[stdlib] Only add Apple reflection test targets
modocache Oct 7, 2016
2dae432
[CMake] Fix codesign dependency (take 2)
Oct 7, 2016
85d4473
[CMake] Don't use hashes in target names
Oct 7, 2016
a6934d1
[code-completion] Fix type-relation check on implicitly curried insta…
benlangmuir Oct 7, 2016
a7e1900
supress warnings on printing optionals
airspeedswift Oct 7, 2016
0aa023a
stdlib: Use new built-ins for tail-allocated arrays in ManagedBuffer
eeckstein Oct 6, 2016
65ad637
build-script: Don't automatically clear the module cache.
adrian-prantl Oct 7, 2016
418f335
remove += operator from RangeReplaceableCollection and also the test …
airspeedswift Oct 7, 2016
114d836
Merge pull request #5183 from benlangmuir/cc-inst-curry-ref
benlangmuir Oct 7, 2016
2a86a6b
Add a -disable-sil-partial-apply frontend staging option.
jckarter Aug 29, 2016
5356cc3
Fix a couple cases of ArrayRef capturing compiler temps.
rudkx Oct 7, 2016
89351a9
Added FIXME(ABI) comment about replacing `append` with `+=`
airspeedswift Oct 7, 2016
cfbd5c3
Merge pull request #5181 from llvm-beanz/fix-codesign-dep-take2
Oct 7, 2016
370697f
Merge pull request #5182 from llvm-beanz/dont-use-hashes
Oct 7, 2016
b1d2d1a
Merge pull request #5153 from eeckstein/managedbuffer
eeckstein Oct 8, 2016
8bedace
Merge pull request #5187 from rudkx/fix-array-ref-issue
swift-ci Oct 8, 2016
9884c7a
Fix small obvious typo. Thanks for catching this Bob!
gottesmm Oct 8, 2016
29c902b
Remove stray debug code
slavapestov Oct 8, 2016
e861faf
Remove comment re: since-added `+` operators
airspeedswift Oct 8, 2016
d38198b
Merge pull request #5063 from graydon/rdar-27982012-poor-diagnostic
swift-ci Oct 8, 2016
4b72f90
Merge pull request #5188 from gottesmm/obvious_typo
swift-ci Oct 8, 2016
42a0c46
Merge pull request #5189 from slavapestov/remove-debug-code
slavapestov Oct 8, 2016
40e14e3
[CMake] Fix the Xcode generator
Oct 8, 2016
c3036c8
Merge pull request #5190 from llvm-beanz/fix-xcode-generator-after-pr…
Oct 8, 2016
85e1817
[SILOpt] Fix an accidental use-of-temporary, similar to 5356cc37.
jrose-apple Oct 8, 2016
dcebddc
[CMake] swiftSIL needs intrinsics_gen
Oct 8, 2016
a989e99
Merge pull request #4949 from Concoction/master
swift-ci Oct 8, 2016
5d3f9cb
Merge pull request #5192 from llvm-beanz/swiftSIL-missing-dep
swift-ci Oct 8, 2016
9aa505a
Merge pull request #5191 from jrose-apple/ArrayRef-assignment
swift-ci Oct 8, 2016
7085e2a
[Parse] Return error status if we cannot parse element in parameter list
rintaro Oct 6, 2016
adc8653
[sil-generic-specializer] Make the set of whitelisted generic pre-spe…
swiftix Oct 8, 2016
69ae397
Provide copy constructors for SILOpenedArchetypesTracker.
swiftix Oct 8, 2016
6c71745
Use std::function instead of llvm::function_ref for a callback field.
swiftix Oct 8, 2016
d9fe1d0
Merge pull request #5175 from modocache/cmake-reflection-test-macos-h…
modocache Oct 8, 2016
f70d2d9
[Parse] Skip ahead if seeing any error while parsing list.
rintaro Oct 6, 2016
68bd3d6
[Parse] Don't emit missing closing paren error if seeing any errors
rintaro Oct 8, 2016
f2953de
[Driver] Begin testing -driver-show-incremental
modocache Oct 8, 2016
20a6d35
Fix a case of ArrayRef capturing compiler temps.
swiftix Oct 9, 2016
339e40f
Fixed an assert caused when a TupleExpr that didn't have a valid Sour…
mxswd Oct 9, 2016
16e8ebc
Merge pull request #5193 from swiftix/wip-sil-opened-archetypes-track…
swiftix Oct 9, 2016
1584602
Update an crasher test not to use -verify
rintaro Oct 9, 2016
eb8bea9
Merge pull request #5174 from practicalswift/sourcekit-098-swift-decl…
swift-ci Oct 9, 2016
b54a673
[SourceKit] Add test case for crash triggered in swift::GenericEnviro…
practicalswift Oct 9, 2016
dbfe74a
[swiftc (73 vs. 5174)] Add crasher in swift::GenericEnvironment::mapT…
practicalswift Oct 9, 2016
6e49cf0
Log debug elapsed time using 3 decimal places
Oct 9, 2016
37cac6b
Merge pull request #5198 from practicalswift/sourcekit-099-swift-gene…
swift-ci Oct 9, 2016
5d5334a
Merge pull request #5131 from aciidb0mb3r/glibc-modulemap-file
aciidgh Oct 10, 2016
bdd7138
Update embedded bitcode support to work with llvm r269706.
bob-wilson Oct 10, 2016
8b0937a
Merge pull request #5199 from practicalswift/swiftc-28435-swift-gener…
swift-ci Oct 10, 2016
35cb946
[SourceKit] Add test case for crash triggered in swift::Mangle::Mangl…
practicalswift Oct 10, 2016
9e51fb9
[swiftc (74 vs. 5174)] Add crasher in swift::TypeChecker::typeCheckDe…
practicalswift Oct 10, 2016
fd0d4b7
Merge pull request #5205 from practicalswift/sourcekit-100-swift-mang…
swift-ci Oct 10, 2016
089658d
Merge pull request #5206 from practicalswift/swiftc-28436-swift-typec…
swift-ci Oct 10, 2016
fba1ed2
[SourceKit] Update a test case for recent diagnostics change
rintaro Oct 10, 2016
622f43b
[gardening] Fix typos in GenConstant.{cpp,h}
practicalswift Oct 10, 2016
1395e1d
[SourceKit] Add test case for crash triggered in swift::Decl::print(s…
practicalswift Oct 10, 2016
a356eba
[swiftc (75 vs. 5174)] Add crasher in swift::TypeChecker::validateDec…
practicalswift Oct 10, 2016
2585227
Merge pull request #5209 from practicalswift/sourcekit-101-swift-decl…
swift-ci Oct 10, 2016
1a18c94
Merge pull request #5202 from bob-wilson/embed-bitcode
bob-wilson Oct 10, 2016
8ac3815
Fix a few more cases of ArrayRef problems.
bob-wilson Oct 10, 2016
a4dd11c
Merge pull request #5210 from bob-wilson/array-ref-fix
bob-wilson Oct 10, 2016
e076330
Disable a check that relies on assertions in test/IDE/complete_pound_…
benlangmuir Oct 10, 2016
4de9929
Merge pull request #5211 from benlangmuir/cc-pound-decl-test
swift-ci Oct 10, 2016
f772c40
[Parse] Eliminate Parser::canParseAttributes()
rintaro Oct 5, 2016
183d476
[QoI][Parse] Improve recovering from unknown attribute
rintaro Oct 5, 2016
21513b8
[Parse] Remove unecessary parameters from parseDeclAttributeList
rintaro Oct 5, 2016
430a0d8
[AST] Remove @escaping from decl attributes.
rintaro Oct 5, 2016
0a7e911
[SIL] Fix CMakeLists warning
modocache Oct 10, 2016
b4041a5
SIL: Restrict partial_apply when -disable-sil-partial-apply is enabled.
jckarter Oct 10, 2016
3797db2
Merge pull request #5212 from modocache/sil-cmakelists-endif-fix
swift-ci Oct 10, 2016
b51cf74
Merge pull request #5213 from jckarter/simplify-partial-apply
swift-ci Oct 10, 2016
607a01b
More fixes for crashes when building with a recent clang.
bob-wilson Oct 10, 2016
4d946f4
[SyntaxModel] Improve the performance of searching URLs in comments (…
nkcsgexi Oct 10, 2016
299b47c
Merge pull request #5215 from bob-wilson/more-clang-fixes
bob-wilson Oct 10, 2016
5662938
Round to nearest 100th of a millisecond
Oct 10, 2016
54f4103
[3.0 compat] Don't diagnose @escaping var-arg closures.
milseman Oct 10, 2016
5d3a7f7
[serialization] Yet Another Misuse of ArrayRef (#5216)
jrose-apple Oct 10, 2016
d14a49b
Add period. Use ceil instead of round
Oct 10, 2016
61f0245
[emacs-support] More flymake support
Oct 11, 2016
960faa9
[gardening] "const int" => "constexpr int".
gottesmm Oct 11, 2016
9d73fdc
[gardening] "SILFunctionTransform*" => "SILFunctionTransform *".
gottesmm Oct 11, 2016
34d9513
[gardening] Change several "auto" that match pointers to "auto *" to …
gottesmm Oct 11, 2016
1ba8182
[passmanager] When SILVerify all is enabled, verify specialized funct…
gottesmm Oct 11, 2016
fa85278
Fix more ArrayRef problems in ImmutablePointerSetTests unit tests.
bob-wilson Oct 11, 2016
5b3e7fc
Merge pull request #5208 from practicalswift/swiftc-28437-swift-typec…
swift-ci Oct 11, 2016
b951928
Merge pull request #5207 from practicalswift/genconstant-typos
swift-ci Oct 11, 2016
e7fba70
[gardening] Fix inconsistent header.
practicalswift Oct 11, 2016
aaf9afe
[gardening] Remove unused diagnostic: escaping_function_type
practicalswift Oct 11, 2016
3ca2ed3
Merge pull request #5224 from practicalswift/gardening-20161011
swift-ci Oct 11, 2016
bde20a9
[SourceKit] Add test case for crash triggered in swift::TypeChecker::…
practicalswift Oct 11, 2016
f34c862
[SIL] Add test case for crash triggered in swift::Parser::parseSILCov…
practicalswift Oct 11, 2016
c30f8df
Merge pull request #5225 from practicalswift/sourcekit-102-swift-type…
swift-ci Oct 11, 2016
8d6b8df
Merge pull request #5226 from practicalswift/sil-044-swift-parser-par…
swift-ci Oct 11, 2016
7710bc6
[SourceKit] Add test case for crash triggered in swift::constraints::…
practicalswift Oct 11, 2016
8db9c07
Merge pull request #5227 from practicalswift/sourcekit-103-swift-cons…
swift-ci Oct 11, 2016
f7984f8
Improve diagnostics for optionals in string interpolation segments
CodaFi Oct 9, 2016
98a49dd
Merge pull request #5223 from bob-wilson/unittest-arrayref
bob-wilson Oct 11, 2016
fd47f92
Merge pull request #5186 from adrian-prantl/28655564
adrian-prantl Oct 11, 2016
954f083
Merge pull request #5219 from apple/flymake
Oct 11, 2016
be1f95a
[stdlib] Simplify expressions
Oct 11, 2016
7cc11a5
[sil-inliner] Introduce a staging flag to enable the inlining of gene…
swiftix Oct 11, 2016
e5f7ef9
Merge pull request #5200 from benasher44/basher_granular_debug_time
jrose-apple Oct 11, 2016
b9d3e5f
Merge pull request #5229 from apple/expression-breakup
swift-ci Oct 11, 2016
3d67d82
Avoid undefined behavior with std::minmax and rvalues.
bob-wilson Oct 11, 2016
dbdda27
Merge pull request #5230 from swiftix/wip-generics-inlining-flag
swiftix Oct 11, 2016
e2b4e6f
[semantic-arc] Add the -enable-sil-ownership flag and propagate its v…
gottesmm Oct 11, 2016
b16d4fa
[semantic-arc] Add build-script option --enable-sil-ownership to turn…
gottesmm Oct 11, 2016
32ebd54
Remove unused TypeVariableType::getBaseBeingSubstituted(). NFC
DougGregor Oct 10, 2016
f38029b
[Constraint application] Replace a transform with a ‘simplifyType()’.…
DougGregor Oct 10, 2016
ab959c9
Introduce TypeBase::isTypeVariableOrMember(). NFC
DougGregor Oct 11, 2016
fc9afd1
[arc-docs] Add a small section on deinits.
gottesmm Oct 11, 2016
0b3e451
Add utils/scale-test
graydon Oct 5, 2016
26f0b58
Add information on building and running unit tests
CodaFi Oct 11, 2016
9a5a26b
Merge pull request #5180 from gregomni/2875
slavapestov Oct 11, 2016
198cb09
Merge pull request #5233 from bob-wilson/module-file-undefined-behavior
bob-wilson Oct 11, 2016
19a504d
Merge pull request #5228 from CodaFi/tantaishiken
swift-ci Oct 11, 2016
ba0dc90
Merge pull request #5128 from modocache/sr-2855-driver-show-increment…
swift-ci Oct 11, 2016
f526a25
[Diagnostics] SR-1255: Improve diagnostic when one of the parameters …
xedin Oct 5, 2016
7041b4b
[SR-2503] Implement subtraction for CharacterSet (#5201)
xwu Oct 11, 2016
6a48934
Merge pull request #5195 from CodaFi/prescriptivist-descriptivism
CodaFi Oct 11, 2016
2ed9eaa
Merge pull request #5234 from gottesmm/arc_deinit_docs
gottesmm Oct 11, 2016
2656c1b
Merge pull request #5222 from gottesmm/sil_ownership_staging
gottesmm Oct 11, 2016
7c82bd5
Merge pull request #5221 from gottesmm/sil_verify_all_verify_function…
gottesmm Oct 11, 2016
0a448ea
SE-0138: Minor update. Array.withUnsafeBytes is nonmutating.
atrick Oct 4, 2016
13b7bd5
Add a discussion that sums-up why we can’t replace copy_addr with mov…
Oct 11, 2016
5893657
SILGen: Allow concrete constrained extensions to define constructors
slavapestov Oct 11, 2016
4f94603
[sil-ownership] Add a new preset buildbot,tools=RA,stdlib=RDA,sil-own…
gottesmm Oct 11, 2016
4bdf252
Merge pull request #5240 from atrick/fix
swift-ci Oct 11, 2016
b05d3c2
Merge pull request #5138 from shajrawi/copy_addr_to_moves
Oct 11, 2016
944e0ba
Merge pull request #4892 from aleksgapp/sr-2695-tag-checkout
swift-ci Oct 12, 2016
c2b9759
Simplify ConstraintSystem::getFixedTypeRecursive and use it consisten…
DougGregor Oct 11, 2016
a36993a
[Constraint graph] Make dumping print type variables. NFC
DougGregor Oct 11, 2016
331937a
[Type checker] Track defaulted constraints based on their locator. NFC
DougGregor Oct 11, 2016
6bdd9cf
[Type checker] Eliminate the 'literalConformanceProto' state on type …
DougGregor Oct 11, 2016
12fb0ba
[swift-version] Allow swift-version 4 and tests
milseman Oct 12, 2016
d809b27
Merge pull request #5242 from gottesmm/build_script_add_sil_ownership…
swift-ci Oct 12, 2016
d34f3ee
Remove dummy Void args working around fixed typechecker bug – ABI FIX…
airspeedswift Oct 12, 2016
37ee4ee
Merge pull request #5245 from airspeedswift/remove-dummy-void-args
swift-ci Oct 12, 2016
e5d7791
[SourceKit] Indent property getters disregarding of empty bodies. rda…
nkcsgexi Oct 12, 2016
975e2db
fix a misleading comment
CodaFi Oct 12, 2016
452ebbc
[Tools] Add a tool to detect source-breaking API changes introduced…
nkcsgexi Oct 12, 2016
a8db77a
Merge pull request #5235 from DougGregor/type-checker-cleanups
DougGregor Oct 12, 2016
59aefbc
Merge pull request #5247 from CodaFi/mu
swift-ci Oct 12, 2016
acf1063
[ast-dumper] If an existential metatype type has a metatype represent…
gottesmm Oct 12, 2016
f59d5cb
Normalize the way paren types are stripped in Sema.
CodaFi Oct 6, 2016
472b57a
[sil-verifier] Verify correctly that lowered SIL optional types are l…
gottesmm Oct 12, 2016
70ee164
Merge pull request #5241 from slavapestov/fix-concrete-constrained-co…
slavapestov Oct 12, 2016
44f13d8
Merge pull request #5249 from gottesmm/rdar28536812
swift-ci Oct 12, 2016
8aa227e
[Preset] Enable sil-verify-all for pull request testing
shahmishal Oct 12, 2016
5693003
[Parse] Fix parsing protocol<Any>
rintaro Oct 12, 2016
202779d
[QoI] Don't enclose single type identifier with parens
rintaro Oct 12, 2016
1dc300f
Merge pull request #5250 from apple/enable-sil-verify-all-flag
shahmishal Oct 12, 2016
7ba11dd
Merge pull request #5163 from CodaFi/the-paren-trap
CodaFi Oct 12, 2016
01fa24c
Speculatively revert "[Type checker] Eliminate the 'literalConformanc…
DougGregor Oct 12, 2016
0699263
Eliminate use of now-removed getInnerParenType().
DougGregor Oct 12, 2016
dbeec26
Added test for when the 2nd element of a tuple expr has an invalid so…
mxswd Oct 12, 2016
4e83034
Merge pull request #5251 from rintaro/parse-protocol-any
rintaro Oct 12, 2016
7d1da2a
Merge pull request #5243 from milseman/escaping
milseman Oct 12, 2016
3054442
Fix source location on collection cast optional-to-Any warning.
rudkx Oct 12, 2016
b36bd89
Merge pull request #5254 from DougGregor/revert-literal-conformance-p…
DougGregor Oct 12, 2016
42c1a6c
Rename UnconditionalAvailabilityKind and UnavailableInCurrentSwift.
graydon Sep 22, 2016
7183f9c
Add conversion operator between version::Version and clang::VersionTuple
graydon Sep 22, 2016
c4e8c52
s/isUnavailableInCurrentSwift/isUnavailableInSwiftVersion/, pass vers…
graydon Sep 22, 2016
66f2027
s/Version/PlatformVersion/ to availability specs, add LanguageVersion.
graydon Sep 23, 2016
7b4cf7f
Add AvailableAttr::isLanguageVersionSpecific
graydon Sep 23, 2016
7a56ebf
Pass 'Obsoleted' for PlatformAgnosticAvailabilityKind::SwiftVersionSp…
graydon Sep 27, 2016
77cad91
Parse and print @available(swift N) / @available(swift, ...)
graydon Sep 23, 2016
77df25d
Generalize AvailableAttr MinVersion checks to cover language versions.
graydon Sep 23, 2016
f1c4e14
[Type checker] Eliminate generation of useless constraints NFC.
DougGregor Oct 12, 2016
ace9e77
Make 4.0 a valid effective language version.
graydon Sep 23, 2016
cec8f58
Add swift::diagnoseDeclAvailability, use in TypeCheckType.
graydon Sep 27, 2016
098c42e
Add missing EncodedDiagnosticMessage wrapper.
graydon Sep 27, 2016
168ba39
Add tests for @available(swift N)
graydon Oct 7, 2016
3ca7555
Exclude @available(swift) from PlatformKind::none Availability infere…
graydon Oct 11, 2016
bea2aab
Add a crasher for rdar://problem/28619118.
rudkx Oct 12, 2016
66dcad0
SIL: Avoid dereferencing sentinel nodes in ilist_iterators
fjricci Oct 6, 2016
2b4cba8
Runtime: Call Set/Dictionary casting hooks in the stdlib with the cor…
jckarter Oct 12, 2016
d5c0425
Merge pull request #5258 from rudkx/crashers
swift-ci Oct 12, 2016
2a6e896
Merge pull request #5257 from jckarter/dictionary-cast-abi-mismatch
swift-ci Oct 12, 2016
623a163
Merge pull request #5259 from rudkx/fix-28722908
rudkx Oct 12, 2016
28b13a1
Merge pull request #4985 from graydon/SR-2709-available-swift-version
graydon Oct 12, 2016
c261748
Merge pull request #5155 from compnerd/ilist-dereference
compnerd Oct 12, 2016
dfa207b
Use std::function to fix unsafe use of llvm::function_ref.
bob-wilson Oct 12, 2016
0cc7043
[sil-performance-inliner] Re-factoring: Split the performance inliner…
swiftix Oct 12, 2016
785b4eb
Merge pull request #5262 from swiftix/wip-generics-inlining-flag
swiftix Oct 13, 2016
5ab94a6
AST: Add "re-sugaring" to GenericEnvironment
slavapestov Oct 7, 2016
092a931
Serialization: Remove some unused code
slavapestov Oct 13, 2016
25e00d7
[AnyHashable] Eliminate the _AnyHashableProtocol hack.
DougGregor Oct 5, 2016
7a45dd7
Merge pull request #5263 from bob-wilson/code-completion-failure
bob-wilson Oct 13, 2016
6584406
Merge pull request #5266 from slavapestov/fix-sil-printer-concrete-co…
slavapestov Oct 13, 2016
91bba4d
Do not emit shadow copied for inout parameters (#5218)
Oct 13, 2016
735ef83
[Code completion] Suppress vacuous infix operator completions.
DougGregor Oct 13, 2016
02bd67e
[SourceKit] Add test case for crash triggered in swift::getTypeOfComp…
practicalswift Oct 13, 2016
a39cd70
[SIL] Add test case for crash triggered in swift::Parser::parseIdenti…
practicalswift Oct 13, 2016
c2bc72d
[stdlib] Fix string index sharing (#4896)
natecook1000 Oct 13, 2016
50bc203
[swiftc (75 vs. 5175)] Add crasher in swift::TypeBase::getCanonicalTy…
practicalswift Oct 13, 2016
4997fda
Merge pull request #5273 from practicalswift/sil-045-swift-parser-par…
practicalswift Oct 13, 2016
5ba5f01
Merge pull request #5272 from practicalswift/sourcekit-104-swift-gett…
swift-ci Oct 13, 2016
d5fdd60
Merge pull request #5274 from practicalswift/swiftc-28438-swift-typeb…
practicalswift Oct 13, 2016
ae55426
[gardening] Fix accidental \t:s
practicalswift Oct 13, 2016
0408700
[SourceKit] Add test case for crash triggered in swift::DerivedConfor…
practicalswift Oct 13, 2016
301510e
Fix dispatch time comparisons (#5078)
lilyball Oct 13, 2016
c568d40
[swift-ide-test] Fix typo: s/completin/completion/
modocache Oct 13, 2016
9fa3f49
[scale-test] Add --dtrace and --select support
graydon Oct 13, 2016
ab9b035
[test] api-digester: add a test to ensure the dumped module content i…
nkcsgexi Oct 13, 2016
55f194b
api-digester: in module dump, record whether a func decl is mutating.
nkcsgexi Oct 13, 2016
8509a00
Merge pull request #5276 from practicalswift/sourcekit-105-swift-deri…
swift-ci Oct 13, 2016
65bccb0
Merge pull request #5277 from modocache/swift-ide-test-typo-completin
swift-ci Oct 13, 2016
4532e20
Merge pull request #5125 from parkera/parkera/url_quarantine_fix
swift-ci Oct 13, 2016
401d3cc
Merge pull request #5278 from apple/api-digester
nkcsgexi Oct 13, 2016
566bfc0
[gardening] Fix typos.
practicalswift Oct 13, 2016
6ce4be9
Merge pull request #5261 from DougGregor/type-checker-extra-constraints
DougGregor Oct 13, 2016
4960ad1
[ClangImporter] Fix another lifetime extension issue. (#5255)
jrose-apple Oct 13, 2016
16c2b0d
Merge pull request #5279 from practicalswift/gardening-20161013
swift-ci Oct 13, 2016
69d6709
[swift-api-dump.py] Add support for -swift-version N.
DougGregor Oct 13, 2016
2354929
[swift-ide-test / swift-api-dump.py] Add -iframework support.
DougGregor Oct 13, 2016
053f3b4
Merge pull request #5281 from DougGregor/swift-api-dump-fixes
swift-ci Oct 13, 2016
49b833b
[Type checker] Eliminate the 'literalConformanceProto' state on type …
DougGregor Oct 11, 2016
93fde73
Merge pull request #5283 from DougGregor/remote-literal-conformance-p…
swift-ci Oct 14, 2016
6f19ad7
Merge pull request #5139 from graydon/scale-tester
swift-ci Oct 14, 2016
dc239af
The existing limitation that postfix operators can't begin with '?' o…
gregomni Oct 14, 2016
edea597
api-digester: teach the tool to detect new mutating/throwing function…
nkcsgexi Oct 14, 2016
be55ede
Merge pull request #5287 from gregomni/postfixOp
swift-ci Oct 14, 2016
2cd25c8
Merge pull request #5194 from rintaro/parselist-earlybailout
rintaro Oct 14, 2016
8287be2
[SourceKit] Add test case for crash triggered in swift::ModuleDecl::l…
practicalswift Oct 14, 2016
3f9d797
Merge pull request #5292 from practicalswift/sourcekit-106-swift-modu…
swift-ci Oct 14, 2016
6ae16d0
Merge pull request #5196 from mxswd/fix-tupleexpr-sourcerange
jrose-apple Oct 14, 2016
6163679
[APINotes] Replace old FactoryAsInit annotation with equivalent Swift…
jrose-apple Oct 14, 2016
37d3fe1
Removed unused file that probably predates API notes.
jrose-apple Oct 14, 2016
6405f58
[SourceKit] Add test case for crash triggered in swift::TypeChecker::…
practicalswift Oct 14, 2016
41a82ef
Merge pull request #5285 from jrose-apple/modern-API-notes
jrose-apple Oct 14, 2016
3cbdcef
Merge pull request #5293 from practicalswift/sourcekit-107-swift-type…
swift-ci Oct 14, 2016
6a61476
Clean up swift-api-digester: Remove dead code. Fix typos. Fix headers…
practicalswift Oct 14, 2016
c2cbbbb
[sil] Rather than maintaining manually the textual opcode for SILInst…
gottesmm Oct 13, 2016
32634b1
Merge pull request #5239 from xedin/SR-1255
rudkx Oct 14, 2016
578e36a
[Type Checker] SR-2505: Fix "Call arguments did not match up" assertion
xedin Oct 14, 2016
3d7f8cc
[stdlib] Reorder increment and element creation to not need (#5062)
Oct 14, 2016
3a493b2
Merge pull request #5286 from xedin/SR-2505-v2
rudkx Oct 14, 2016
54163ee
[swift-api-digester] Add option to be able to pass a system framework…
akyrtzi Oct 14, 2016
09cbffb
Initialize CachedVFile with nullptr
shahmishal Oct 14, 2016
b3dc093
Merge pull request #5294 from gottesmm/use_silnode_for_printing_parsi…
gottesmm Oct 14, 2016
e250960
Merge pull request #5296 from apple/ubuntu-16-10-fix
shahmishal Oct 14, 2016
8212646
[swift-api-digester] caching the equality comparison results among SD…
nkcsgexi Oct 14, 2016
b032617
Hoist += operator out of the array types into RangeReplaceableCollection
airspeedswift Oct 7, 2016
12e3c97
supress warnings on printing optionals
airspeedswift Oct 7, 2016
240519f
remove += operator from RangeReplaceableCollection and also the test …
airspeedswift Oct 7, 2016
f5f2ecd
Added FIXME(ABI) comment about replacing `append` with `+=`
airspeedswift Oct 7, 2016
fbf1809
Remove comment re: since-added `+` operators
airspeedswift Oct 8, 2016
4c797da
Merge branch 'range-replaceable-append-operator' of github.com:airspe…
airspeedswift Oct 15, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 9 additions & 16 deletions .dir-locals.el
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,19 @@
;
;===----------------------------------------------------------------------===;
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.
;;; For more information see (info "(emacs) Directory Variables")

((nil
(tab-width . 2)
(fill-column . 80)
(eval .
;; Load the Swift project's settings. To suppress this action
;; you can put "(provide 'swift-project-settings)" in your
;; .emacs
(eval let* ((x (dir-locals-find-file default-directory))
(this-directory (if (listp x) (car x)
(file-name-directory x))))
(unless (featurep 'swift-project-settings)
;; Make sure the project's own utils directory is in the
;; load path, but don't override any one the user might have
;; set up.
(add-to-list
'load-path
(concat
(let ((dlff (dir-locals-find-file default-directory)))
(if (listp dlff) (car dlff) (file-name-directory dlff)))
"utils")
:append)
;; Load our project's settings -- indirectly brings in swift-mode
(add-to-list 'load-path (concat this-directory "utils") :append)
(let ((swift-project-directory this-directory))
(require 'swift-project-settings)))
(set (make-local-variable 'swift-project-directory) this-directory))
(c-file-style . "swift")
)
(c++-mode
Expand All @@ -44,6 +35,8 @@
(whitespace-style . (face lines indentation:space))
(eval . (whitespace-mode)))
(swift-mode
(swift-find-executable-fn . swift-project-executable-find)
(swift-syntax-check-fn . swift-project-swift-syntax-check)
(whitespace-style . (face lines indentation:space))
(eval . (whitespace-mode))
(swift-basic-offset . 2)
Expand Down
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,10 @@ option(SWIFT_STDLIB_ENABLE_RESILIENCE
"Build the standard libraries and overlays with resilience enabled; see docs/LibraryEvolution.rst"
FALSE)

option(SWIFT_STDLIB_ENABLE_SIL_OWNERSHIP
"Build the standard libraries and overlays with sil ownership enabled."
FALSE)

option(SWIFT_STDLIB_SIL_SERIALIZE_ALL
"Build the standard libraries and overlays serializing all method bodies"
TRUE)
Expand Down Expand Up @@ -419,6 +423,12 @@ include_directories(BEFORE
# endif()
set(SWIFT_DARWIN_VARIANTS "^(macosx|iphoneos|iphonesimulator|appletvos|appletvsimulator|watchos|watchsimulator)")

# A convenient list to match Darwin SDKs. Example:
# if("${SWIFT_HOST_VARIANT_SDK}" IN_LIST SWIFT_APPLE_PLATFORMS)
# ...
# endif()
set(SWIFT_APPLE_PLATFORMS "IOS" "IOS_SIMULATOR" "TVOS" "TVOS_SIMULATOR" "WATCHOS" "WATCHOS_SIMULATOR" "OSX")

# Configuration flags passed to all of our invocations of gyb. Try to
# avoid making up new variable names here if you can find a CMake
# variable that will do the job.
Expand Down
6 changes: 1 addition & 5 deletions apinotes/Foundation.apinotes
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ Classes:
Methods:
- Selector: 'notificationCenterForType:'
MethodKind: Class
FactoryAsInit: C
SwiftName: 'forType(_:)'
- Name: NSHTTPCookie
SwiftName: HTTPCookie
- Name: NSHTTPCookieStorage
Expand Down Expand Up @@ -209,10 +209,6 @@ Classes:
- Name: NSProcessInfo
SwiftName: ProcessInfo
Methods:
- Selector: processInfo
MethodKind: Class
NullabilityOfRet: N
FactoryAsInit: C
- Selector: 'isOperatingSystemAtLeastVersion:'
SwiftName: isOperatingSystemAtLeast(_:)
MethodKind: Instance
Expand Down
2 changes: 1 addition & 1 deletion apinotes/GameKit.apinotes
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Classes:
Methods:
- Selector: 'localPlayer'
MethodKind: Class
FactoryAsInit: C
SwiftName: 'localPlayer()'
Tags:
- Name: GKErrorCode
NSErrorDomain: GKErrorDomain
Expand Down
2 changes: 1 addition & 1 deletion apinotes/NotificationCenter.apinotes
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ Classes:
Methods:
- Selector: 'widgetController'
MethodKind: Class
FactoryAsInit: C
SwiftName: 'widgetController()'
2 changes: 1 addition & 1 deletion apinotes/UIKit.apinotes
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Classes:
Methods:
- Selector: printInfo
MethodKind: Class
FactoryAsInit: C
SwiftName: 'printInfo()'
- Name: UIPrintInteractionController
Properties:
- Name: 'sharedPrintController'
Expand Down
71 changes: 44 additions & 27 deletions cmake/modules/AddSwift.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,15 @@ function(_set_target_prefix_and_suffix target kind sdk)
precondition(kind MESSAGE "kind is required")
precondition(sdk MESSAGE "sdk is required")

if("${sdk}" STREQUAL "WINDOWS")
if("${sdk}" STREQUAL "ANDROID")
if("${kind}" STREQUAL "STATIC")
set_property(TARGET "${target}" PROPERTY PREFIX "lib")
set_property(TARGET "${target}" PROPERTY SUFFIX ".a")
elseif("${libkind}" STREQUAL "SHARED")
set_property(TARGET "${target}" PROPERTY PREFIX "lib")
set_property(TARGET "${target}" PROPERTY SUFFIX ".so")
endif()
elseif("${sdk}" STREQUAL "WINDOWS")
if("${kind}" STREQUAL "STATIC")
set_property(TARGET "${target}" PROPERTY PREFIX "lib")
set_property(TARGET "${target}" PROPERTY SUFFIX ".lib")
Expand Down Expand Up @@ -380,12 +388,20 @@ endfunction()
# source_targets... # The source targets whose outputs will be
# # lipo'd into the output.
# )
function(_add_swift_lipo_target sdk target output)
precondition(sdk MESSAGE "sdk is required")
precondition(target MESSAGE "target is required")
precondition(output MESSAGE "output is required")
function(_add_swift_lipo_target)
cmake_parse_arguments(
LIPO # prefix
"CODESIGN" # options
"SDK;TARGET;OUTPUT" # single-value args
"" # multi-value args
${ARGN})

set(source_targets ${ARGN})
precondition(LIPO_SDK MESSAGE "sdk is required")
precondition(LIPO_TARGET MESSAGE "target is required")
precondition(LIPO_OUTPUT MESSAGE "output is required")
precondition(LIPO_UNPARSED_ARGUMENTS MESSAGE "one or more inputs are required")

set(source_targets ${LIPO_UNPARSED_ARGUMENTS})

# Gather the source binaries.
set(source_binaries)
Expand All @@ -400,20 +416,24 @@ function(_add_swift_lipo_target sdk target output)
endif()
endforeach()

is_darwin_based_sdk("${sdk}" IS_DARWIN)
is_darwin_based_sdk("${LIPO_SDK}" IS_DARWIN)
if(IS_DARWIN)
if(LIPO_CODESIGN)
set(codesign_command COMMAND "codesign" "-f" "-s" "-" "${LIPO_OUTPUT}")
endif()
# Use lipo to create the final binary.
add_custom_command_target(unused_var
COMMAND "${LIPO}" "-create" "-output" "${output}" ${source_binaries}
CUSTOM_TARGET_NAME "${target}"
OUTPUT "${output}"
COMMAND "${LIPO}" "-create" "-output" "${LIPO_OUTPUT}" ${source_binaries}
${codesign_command}
CUSTOM_TARGET_NAME "${LIPO_TARGET}"
OUTPUT "${LIPO_OUTPUT}"
DEPENDS ${source_targets})
else()
# We don't know how to create fat binaries for other platforms.
add_custom_command_target(unused_var
COMMAND "${CMAKE_COMMAND}" "-E" "copy" "${source_binaries}" "${output}"
CUSTOM_TARGET_NAME "${target}"
OUTPUT "${output}"
COMMAND "${CMAKE_COMMAND}" "-E" "copy" "${source_binaries}" "${LIPO_OUTPUT}"
CUSTOM_TARGET_NAME "${LIPO_TARGET}"
OUTPUT "${LIPO_OUTPUT}"
DEPENDS ${source_targets})
endif()
endfunction()
Expand Down Expand Up @@ -1230,7 +1250,7 @@ function(add_swift_library name)
set(SWIFTLIB_TARGET_SDKS ${SWIFT_SDKS})
endif()
list_replace(SWIFTLIB_TARGET_SDKS ALL_POSIX_PLATFORMS "ALL_APPLE_PLATFORMS;ANDROID;CYGWIN;FREEBSD;LINUX")
list_replace(SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "IOS;IOS_SIMULATOR;TVOS;TVOS_SIMULATOR;WATCHOS;WATCHOS_SIMULATOR;OSX")
list_replace(SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_APPLE_PLATFORMS}")

# All Swift code depends on the standard library, except for the standard
# library itself.
Expand Down Expand Up @@ -1465,18 +1485,15 @@ function(add_swift_library name)
endif()

set(lipo_target "${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
_add_swift_lipo_target(
${sdk}
${lipo_target}
${UNIVERSAL_LIBRARY_NAME}
${THIN_INPUT_TARGETS})

if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND SWIFTLIB_SHARED)
# Ad-hoc sign stdlib dylibs
add_custom_command(TARGET "${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}"
POST_BUILD
COMMAND "codesign" "-f" "-s" "-" "${UNIVERSAL_LIBRARY_NAME}")
set(codesign_arg CODESIGN)
endif()
_add_swift_lipo_target(
SDK ${sdk}
TARGET ${lipo_target}
OUTPUT ${UNIVERSAL_LIBRARY_NAME}
${codesign_arg}
${THIN_INPUT_TARGETS})

# Cache universal libraries for dependency purposes
set(UNIVERSAL_LIBRARY_NAMES_${SWIFT_SDK_${sdk}_LIB_SUBDIR}
Expand Down Expand Up @@ -1526,9 +1543,9 @@ function(add_swift_library name)
set(UNIVERSAL_LIBRARY_NAME
"${SWIFTSTATICLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${name}${CMAKE_STATIC_LIBRARY_SUFFIX}")
_add_swift_lipo_target(
${sdk}
${lipo_target_static}
"${UNIVERSAL_LIBRARY_NAME}"
SDK ${sdk}
TARGET ${lipo_target_static}
OUTPUT "${UNIVERSAL_LIBRARY_NAME}"
${THIN_INPUT_TARGETS_STATIC})
swift_install_in_component("${SWIFTLIB_INSTALL_IN_COMPONENT}"
FILES "${UNIVERSAL_LIBRARY_NAME}"
Expand Down
12 changes: 4 additions & 8 deletions cmake/modules/SwiftAddCustomCommandTarget.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -120,15 +120,11 @@ function(add_custom_command_target dependency_out_var_name)
set(ACCT_COMMANDS ${ACCT_UNPARSED_ARGUMENTS})

if("${ACCT_CUSTOM_TARGET_NAME}" STREQUAL "")
# Construct a unique name for the custom target.
# Use a hash so that the file name does not push the OS limits for filename
# length.
# CMake doesn't allow '/' characters in filenames, so replace them with '-'
list(GET ACCT_OUTPUT 0 output_filename)
string(MD5 target_md5
"add_custom_command_target${CMAKE_CURRENT_BINARY_DIR}/${output_filename}")
get_filename_component(output_filename_basename "${output_filename}" NAME)
set(target_name
"add_custom_command_target-${target_md5}-${output_filename_basename}")
string(REPLACE "${CMAKE_BINARY_DIR}/" "" target_name "${output_filename}")
string(REPLACE "${CMAKE_CFG_INTDIR}/" "" target_name "${target_name}")
string(REPLACE "/" "-" target_name "${target_name}")
else()
set(target_name "${ACCT_CUSTOM_TARGET_NAME}")
endif()
Expand Down
4 changes: 4 additions & 0 deletions cmake/modules/SwiftSource.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,10 @@ function(_compile_swift_files dependency_target_out_var_name)
list(APPEND swift_flags "-Xfrontend" "-enable-resilience")
endif()

if(SWIFT_STDLIB_ENABLE_SIL_OWNERSHIP AND SWIFTFILE_IS_STDLIB)
list(APPEND swift_flags "-Xfrontend" "-enable-sil-ownership")
endif()

if(SWIFT_EMIT_SORTED_SIL_OUTPUT)
list(APPEND swift_flags "-Xfrontend" "-emit-sorted-sil")
endif()
Expand Down
66 changes: 66 additions & 0 deletions docs/ARCOptimization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -861,3 +861,69 @@ Now imagine that we move the strong_retain before the is_unique. Then we have::
Thus is_unique is guaranteed to return false introducing a copy that was not
needed. We wish to avoid that if it is at all possible.

Deinit Model
============

The semantics around deinits in swift are a common area of confusion. This
section is not attempting to state where the deinit model may be in the future,
but is just documenting where things are today in the hopes of improving
clarity.

The following characteristics of deinits are important to the optimizer:

1. deinits run on the same thread and are not asynchronous like Java
finalizers.
2. deinits are not sequenced with regards to each other or code in normal
control flow.
3. If the optimizer takes advantage of the lack of sequencing it must do so in a
way that preserves memory safety.

Consider the following pseudo-Swift example::

class D {}
class D1 : D {}
class D2 : D {}

var GLOBAL_D : D = D1()

class C { deinit { GLOBAL_D = D2 } }

func main() {
let c = C()
let d = GLOBAL_D
useC(c)
useD(d)
}

main()

Assume that useC does not directly in any way touch an instance of class D
except via the destructor.

Since memory operations in normal control flow are not sequenced with respect to
deinits, there are two correct programs here that the optimizer can produce: the
original and the one where useC(c) and GLOBAL_D are swapped, i.e.::

func main() {
let c = C()
useC(c)
let d = GLOBAL_D
useD(d)
}

In the first program, d would be an instance of class D1. In the second, it
would be an instance of class D2. Notice how in both programs though, no
deinitialized object is accessed. On the other hand, imagine if we had split
main like so::

func main() {
let c = C()
let d = unsafe_unowned_load(GLOBAL_D)
useC(c)
let owned_d = retain(d)
useD(owned_d)
}

In this case, we would be passing off to useD a deallocated instance of class D1
which would be undefined behavior. An optimization that produced such code would
be a miscompile.
13 changes: 9 additions & 4 deletions docs/ContinuousIntegration.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,14 @@ We describe each in detail below:

Platform | Comment | Check Status
------------ | ------- | ------------
All supported platforms | @swift-ci Please smoke test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please smoke test and merge | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
OS X platform | @swift-ci Please smoke test OS X platform | Swift Test OS X Platform (smoke test)
Linux platform | @swift-ci Please smoke test Linux platform | Swift Test Linux Platform (smoke test)
All supported platforms | @swift-ci Please smoke test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please clean smoke test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please smoke test and merge | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please clean smoke test and merge | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
OS X platform | @swift-ci Please smoke test OS X platform | Swift Test OS X Platform (smoke test)
OS X platform | @swift-ci Please clean smoke test OS X platform | Swift Test OS X Platform (smoke test)
Linux platform | @swift-ci Please smoke test Linux platform | Swift Test Linux Platform (smoke test)
Linux platform | @swift-ci Please clean smoke test Linux platform | Swift Test Linux Platform (smoke test)

A smoke test on macOS does the following:

Expand Down Expand Up @@ -69,6 +73,7 @@ A smoke test on Linux does the following:
All supported platforms | @swift-ci Please test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br>Swift Test Linux Platform<br>Swift Test OS X Platform<br>
All supported platforms | @swift-ci Please clean test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br>Swift Test Linux Platform<br>Swift Test OS X Platform<br>
All supported platforms | @swift-ci Please test and merge | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br> Swift Test Linux Platform <br>Swift Test OS X Platform
All supported platforms | @swift-ci Please clean test and merge | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br> Swift Test Linux Platform <br>Swift Test OS X Platform
OS X platform | @swift-ci Please test OS X platform | Swift Test OS X Platform (smoke test)<br>Swift Test OS X Platform
OS X platform | @swift-ci Please clean test OS X platform | Swift Test OS X Platform (smoke test)<br>Swift Test OS X Platform
OS X platform | @swift-ci Please benchmark | Swift Benchmark on OS X Platform
Expand Down
Loading