Commit Graph

2878 Commits

Author SHA1 Message Date
Dmitri Hrybenko
7ab0f987bf stdlib: fix coding style
Swift SVN r28189
2015-05-06 00:06:05 +00:00
Dmitri Hrybenko
f0d5dfed97 stdlib: correct comment
Swift SVN r28188
2015-05-06 00:05:07 +00:00
Dmitri Hrybenko
0453656f31 Adapt to Foundation API modernization: NSRectEdge is now an enum
This commit adds the initializers requested in rdar://20169260.

Swift SVN r28185
2015-05-05 22:50:59 +00:00
Dave Abrahams
29e08e8814 [stdlib] Fix up Mirrors for the Linux bot
Swift SVN r28182
2015-05-05 21:44:13 +00:00
Dave Abrahams
a3270c105c [stdlib] NSStringAPI: add stringByApplyingTransform
Swift SVN r28171
2015-05-05 17:35:43 +00:00
Doug Gregor
6e114e3cfe Reinstate r26814: Allow 'var' parameters in @objc methods.
'var' parameters affect the definition of the method itself, not its
signature. Fixes rdar://problem/20543054.

Swift SVN r28167
2015-05-05 16:34:09 +00:00
Joe Groff
7b2a6e5e8d IRGen: Emit the "done" check for Builtin.once inline.
This matches how dispatch_once works in C, dramatically cutting the cost of a global accessor by avoiding the runtime call in the hot path and giving the global a unique branch for the CPU to predict away. For now, only do this for Darwin; non-ObjC platforms don't necessarily expose their "done" value as ABI like ours do.

While we're here, change "once" to take a thin function pointer. We don't ever emit global initializers with context dependencies, and this simplifies the runtime glue between swift_once and dispatch_once/std::call_once a bit.

Swift SVN r28166
2015-05-05 15:35:57 +00:00
Greg Parker
6c77b45457 [stdlib] Hide swift_ObjCMirror_count() from non-ObjC platforms.
Swift SVN r28165
2015-05-05 10:17:48 +00:00
Dave Abrahams
c5b64b3503 [stdlib] Fix another bug in _getSuperclass
When passed an existential, there is no class object and we should
return nullptr.

Swift SVN r28159
2015-05-05 06:47:54 +00:00
Dave Abrahams
a1f3ae38e8 [stdlib] Properly reflect Objective-C superclasses
We still can't do very much of use with ivars, but this works.

Swift SVN r28158
2015-05-05 06:11:25 +00:00
Chris Lattner
85d681a5b6 strength reduce some non-performance sensitive code :-)
Like the FIXME comment states, this method should probably
be changed to be:

  public func getMirror() -> MirrorType {
    return _OptionalMirror<T>(self)
  }

but I don't know how to test that change.



Swift SVN r28157
2015-05-05 05:48:54 +00:00
Dave Abrahams
f1177566d3 [stdlib] Fixes a bug in mirrors for ObjC superclasses
We had failed to recognize that legacy ObjC class mirrors have a
distinct type.  Fixes <rdar://20811737>

However, there's a bug in legacy mirrors that prevents all base classes
from being properly reflected: <rdar://20813711>

Swift SVN r28156
2015-05-05 05:40:22 +00:00
Dave Abrahams
6f4e1bb309 [stdlib] Fixes for _getSuperclass
This internal function is used by mirrors and thus must work correctly

Swift SVN r28154
2015-05-05 05:40:20 +00:00
Chris Lattner
6a5009e0ce implement <rdar://problem/17013042> T! <-> T? conversions should not produce a diamond
Two pieces to this: 
 - Peephole OptionalEvaluationExpr(InjectOptionalExpr(BindOptionalExpr(X))) to  bitcast x to the result type. 
 - Enhance OptionalEvaluationExpr to delete the failure block if not needed.  

This is the same as r28150, but it includes a fix for the case when a non-address-only type
is initializing a contextally-provided-and-addressible buffer, tested by the new 
testContextualInitOfNonAddrOnlyType testcase.



Swift SVN r28153
2015-05-05 05:39:17 +00:00
Chris Lattner
9eb115fadf revert r28150, the perftestsuite isn't happy.
Swift SVN r28151
2015-05-05 05:16:23 +00:00
Chris Lattner
1ffe86b327 implement <rdar://problem/17013042> T! <-> T? conversions should not produce a diamond
Two pieces to this:
 - Peephole OptionalEvaluationExpr(InjectOptionalExpr(BindOptionalExpr(X))) to 
   bitcast x to the result type.
 - Enhance OptionalEvaluationExpr to delete the failure block if not needed.

This is the same as r28111, except that we finalize the initialization in the
address-only case.  A reduced testcase for the specific issue is added to
optional-casts.swift.



Swift SVN r28150
2015-05-05 05:01:22 +00:00
Dmitri Hrybenko
61d622226a Revert "Generate an empty Mirror for Mirror itself - the internal cruft of our reflection magic is not that interesting, and looks quite ugly in playgrounds"
This reverts commit r28141.  It broke the build.

Swift SVN r28143
2015-05-05 00:40:49 +00:00
Enrico Granata
6fcc3081ac Generate an empty Mirror for Mirror itself - the internal cruft of our reflection magic is not that interesting, and looks quite ugly in playgrounds
Swift SVN r28141
2015-05-05 00:18:42 +00:00
Dmitri Hrybenko
3c30738fc1 Adjust to SpriteKit nullability annotations in the new SDKs
Swift SVN r28136
2015-05-04 23:18:14 +00:00
Dmitri Hrybenko
5d96abc4a2 Revert "Adjust SpriteKit overlay to SDK change."
This reverts commit r28117.  A complete commit (paired w/EPOCH) to
follow, to make it easier to cherry-pick the change.

Swift SVN r28135
2015-05-04 23:18:13 +00:00
John McCall
b186be429b Catch errors in top-level code.
Swift SVN r28133
2015-05-04 22:15:28 +00:00
Dmitri Hrybenko
33b74a0976 GLKit depends on simd through ModelKit
Swift SVN r28124
2015-05-04 18:28:18 +00:00
Ted Kremenek
c3302be282 Adjust SpriteKit overlay to SDK change.
Swift SVN r28117
2015-05-04 16:19:55 +00:00
Dmitri Hrybenko
b6a662726b stdlib: replace let-else by require-else
Swift SVN r28104
2015-05-04 00:29:48 +00:00
Chris Lattner
d834f44830 more let/else -> require to help out the bot.
Swift SVN r28100
2015-05-03 22:03:24 +00:00
Chris Lattner
079e8b982b move stdlib from let/else to require.
Swift SVN r28098
2015-05-03 21:45:06 +00:00
Dmitri Hrybenko
e340bf410c stdlib: fix coding style
Swift SVN r28094
2015-05-03 04:10:59 +00:00
Joe Groff
a18b016eee stdlib: Make SceneKit and SpriteKit overlays depend on simd.
Swift SVN r28090
2015-05-02 16:02:01 +00:00
Joe Groff
11fcbda0e9 Add Steve Canon's simd module to the stdlib.
Swift SVN r28088
2015-05-02 15:46:38 +00:00
John McCall
5c171fd448 Parsing, type-checking, SILGen, and IRGen for try!.
Swift SVN r28085
2015-05-02 08:03:15 +00:00
Ted Kremenek
bde7daa23d Revert "[stdlib] NSStringAPI: add stringByApplyingTransform"
This is breaking NSStringAPI.swift on the bots.

Swift SVN r28084
2015-05-02 07:16:48 +00:00
Dave Abrahams
af07713820 [stdlib] NSStringAPI: add stringByApplyingTransform
Swift SVN r28082
2015-05-02 05:52:28 +00:00
Dave Abrahams
bdc1e10362 [stdlib] 80-column fixups
Swift SVN r28078
2015-05-02 04:50:38 +00:00
Dave Abrahams
68b4314d47 [stdlib] Move String.CharacterView's implementation...
...into its own file.

Swift SVN r28077
2015-05-02 04:50:37 +00:00
Dave Abrahams
1198e2aa7a [stdlib] Fix a bug I committed.
Swift SVN r28076
2015-05-02 04:41:43 +00:00
Dave Abrahams
1947d705b5 [stdlib] add some // @testable comments...
...to public declarations that are accessible only for testing purposes

Swift SVN r28074
2015-05-02 04:33:13 +00:00
Dave Abrahams
5d1da8d350 [stdlib] Update String doc comments...
...for the addition of CharacterView

Swift SVN r28073
2015-05-02 04:33:12 +00:00
Dave Abrahams
8782859b91 [stdlib] Add a caveat to doc comment
Swift SVN r28072
2015-05-02 04:33:11 +00:00
Dave Abrahams
4ce1891cae [stdlib] String is no longer a SequenceType
<rdar://20494686>

String itsef should only expose Unicode-correct algorithms, like proper
substring/prefix/suffix search, enumerating words/lines/paragraphs, case
folding etc. Promoting sequence-centric algorithms to methods on String
is not acceptable since it invites users to write wrong code. Thus,
String has to lose its SequenceType conformance.

Nevertheless, we recognize that sometimes it is useful to manipulate the
String contents on lower levels (UTF-8, UTF-16, Unicode scalars,
extended grapheme clusters), for example, when implementing high-level
Unicode operations, so we can't remove low-level operations
altogether. For this reason, String provides nested "views" for the
first three low-level representations, but grapheme clusters were in a
privileged position -- String itself is a collection of grapheme
clusters. We propose to add a characters view that will represent the
String as a collection of Character values.

Swift SVN r28065
2015-05-02 01:52:02 +00:00
Dmitri Hrybenko
d72ae21e7c When building the SDK overlay separately, build SwiftPrivate
SwiftPrivate is not installed in public releases of Xcode.

rdar://problem/20777797
rdar://problem/20780963

Swift SVN r28061
2015-05-02 00:24:12 +00:00
Andrew Trick
5bc23acf75 Add wrappers around Builtin.isUnique.
Currently they do nothing but allow stdlib code to use regular (Bool)
types.  However, soon the wrappers for the _native variants will
provide point-of-use sanity checking.

These need to be fully generic to support class protocols and
single-payload enums (not just for optional). It also avoids a massive
amount of overloading for all the reference type variations
(AnyObject, Native, Unknown, Bridge) x 2 for optional versions of
each.

Because the wrapper is generic, type checking had to be deferred until
IRGen. Generating code for the wrapper itself will result in an
IRGen-time type error. They need to be transparent anyway for proper
diagnostics, but also must be internal.

Note that the similar external API type checks ok because it
forces conformance to AnyObject.

The sanity checks are disabled because our current facilities for
unsafe type casting are incomplete and unsound. SILCombine can
remove UnsafeMutablePointer and RawPointer casts by assuming layout
compatibility. IRGen will later discover layout incompatibility and
generate a trap.

I'll send out a proposal for improving the casting situation so we can
get the sanity checks back.

Swift SVN r28057
2015-05-01 23:45:44 +00:00
David Farler
91c64fdbb1 Stop re-exporting the Objective-C library
and link it properly. This is needed to embed LLVM bitcode sections
in the standard library and overlays. The linker doesn't support
embedded bitcode and reexport flags (among others).

rdar://problem/20750099

Swift SVN r28052
2015-05-01 22:24:14 +00:00
John McCall
ac50cbc801 Enable error-handling in import by default.
Swift SVN r28048
2015-05-01 20:35:28 +00:00
Dmitri Hrybenko
b2f1ffbe51 stdlib: constrain CollectionType.SubSlice further
The blocking compiler bug was fixed.

Swift SVN r28038
2015-05-01 09:34:34 +00:00
Ted Kremenek
9f5437e2bc Make 'toInt()' unavailable instead of deprecated.
Swift SVN r28029
2015-05-01 06:25:52 +00:00
Devin Coughlin
0c82636156 Runtime: Enable run-time availability checks for tvOS
Change _stdlib_isOSVersionAtLeast on tvOS to actually check the running
OS version rather than always returning false. It still always returns false on
watchOS; rdar://problem/20234735 tracks that.

rdar://problem/20663303

Swift SVN r28024
2015-05-01 05:10:47 +00:00
Ted Kremenek
5a5454569f Make deprecated protocols 'Printable' and 'DebugPrintable' unavailable.
Swift SVN r28020
2015-05-01 04:14:50 +00:00
Joe Groff
3cad008353 stdlib: Comment out NSArray: CollectionType conformance.
Dmitri notes that this should be API reviewed.

Swift SVN r28002
2015-04-30 22:26:13 +00:00
Joe Groff
b66675237a stdlib: Uncomment FIXME'd NSArray: CollectionType conformance.
Swift SVN r27999
2015-04-30 21:59:44 +00:00
Enrico Granata
2151cf84c5 UIViewMirror should factor in device scale factor
Fixes rdar://20444163



Swift SVN r27997
2015-04-30 21:57:53 +00:00