Commit Graph

2015 Commits

Author SHA1 Message Date
Michael Gottesman
2c143aee96 Revert "[stdlib] [Generator|Sequence]Of => Any[Generator|Sequence]"
This reverts commit r27081. It broke the build.

Swift SVN r27086
2015-04-07 17:21:03 +00:00
Dave Abrahams
a80b1a4caa [stdlib] [Generator|Sequence]Of => Any[Generator|Sequence]
Retire the old components now that the new ones have passed API review.

<rdar://20406937> covers the migration fallout of this change.

Swift SVN r27081
2015-04-07 15:20:40 +00:00
Greg Parker
c253072f05 [test] Disable bin8 decode test on arm64.
<rdar://20448082> Possible miscompile in MsgPackDecoder.readBinary() 
on optimized arm64


Swift SVN r27078
2015-04-07 12:38:49 +00:00
Greg Parker
67ed0ef62a [test] Fix typo in validation-test/stdlib/SceneKit.swift for 32-bit.
Swift SVN r27074
2015-04-07 07:43:31 +00:00
Dmitri Hrybenko
ed99e14f54 SDK overlay: create an overlay for SceneKit
rdar://20384803
rdar://20384835

Swift SVN r27069
2015-04-07 06:41:55 +00:00
Dmitri Hrybenko
1b9ca12c5b stdlib: remove old declarations that were marked unavailable
rdar://20169533

Swift SVN r27020
2015-04-05 09:15:49 +00:00
Dmitri Hrybenko
ff2dd6320a stdlib: fix coding style
When colon specifies is-a relationship between types, we put spaces on
both sides of the colon.

Swift SVN r27016
2015-04-05 05:54:55 +00:00
Joe Groff
fe3d75eec8 Update for feedback from Dmitri.
Simplify the observation evaluation in the ErrorType race test by using evaluateObservationsAllEqual, and run the test for real. Apparently round-trip NSString and NSDictionary bridging doesn't produce a stable object, so use valueForKey as a hack to sidestep bridging so we can verify that the identities of the bridged domain and code aren't racy.

Swift SVN r27003
2015-04-05 03:07:42 +00:00
Joe Groff
41f73d43ae Runtime: Try to make lazy ErrorType-to-NSError bridging thread-safe.
Atomically initialize and load the NSError bridging fields within an ErrorType box so that we do the right thing when two threads concurrently coerce the box to NSError.

Swift SVN r26996
2015-04-05 00:17:34 +00:00
Michael Gottesman
0255a5b948 Revert "[stdlib] [Generator|Sequence]Of => Any[Generator|Sequence]"
This reverts commit r26904. Fixing the build.

Swift SVN r26912
2015-04-02 22:55:30 +00:00
Dave Abrahams
0b40374d10 [stdlib] [Generator|Sequence]Of => Any[Generator|Sequence]
Retire the old components now that the new ones have passed API review.

<rdar://20406937> covers the migration fallout of this change.

Swift SVN r26904
2015-04-02 21:55:22 +00:00
Mark Lacey
b7dc974c1f Fix test by adjusting spacing around range operator.
Swift SVN r26544
2015-03-25 18:15:38 +00:00
Dave Abrahams
2822677b4b [stdlib] Clean up some endline layout in the tests
Just following our coding convention...

Swift SVN r26507
2015-03-24 23:55:55 +00:00
Graham Batty
82242f67cf Update flags for linux compat.
Swift SVN r26504
2015-03-24 23:16:57 +00:00
Dmitri Hrybenko
87aa7a25ba Update String test to new Foundation API (nullability audit)
Swift SVN r26493
2015-03-24 18:00:09 +00:00
Dmitri Hrybenko
1258662db9 CoreAudio overlay: add APIs that were blocked by rdar://16974298
(extensions on generic types in a different module)

Swift SVN r26486
2015-03-24 07:50:51 +00:00
Dmitri Hrybenko
c421c51a42 StdlibUnittest: add facilities to replace NSLocale.currentLocale()
Will use this API to write tests for rdar://20171815.

Swift SVN r26391
2015-03-21 05:41:46 +00:00
Chris Lattner
ce9b0131a1 Change the testsuite to not use typed patterns in nested contexts, which
requires pushing the types out.  The only interesting one is this diff:

-  var (e,f,g:(),h) = MRV()
+  var (e,f,g,h) : (Int, Float, (), Double) = MRV()

... where the type annotation is required to silence the warning about "void type
may be unexpected".  This seems perfectly reasonable to me.



Swift SVN r26161
2015-03-15 19:11:18 +00:00
Chris Lattner
20f8f09ea8 Land: <rdar://problem/19382905> improve 'if let' to support refutable patterns and untie it from optionals
This changes 'if let' conditions to take general refutable patterns, instead of
taking a irrefutable pattern and implicitly matching against an optional.

Where before you might have written:
  if let x = foo() {

you now need to write:
  if let x? = foo() {
    
The upshot of this is that you can write anything in an 'if let' that you can
write in a 'case let' in a switch statement, which is pretty general.

To aid with migration, this special cases certain really common patterns like
the above (and any other irrefutable cases, like "if let (a,b) = foo()", and
tells you where to insert the ?.  It also special cases type annotations like
"if let x : AnyObject = " since they are no longer allowed.

For transitional purposes, I have intentionally downgraded the most common
diagnostic into a warning instead of an error.  This means that you'll get:

t.swift:26:10: warning: condition requires a refutable pattern match; did you mean to match an optional?
if let a = f() {
       ^
        ?

I think this is important to stage in, because this is a pretty significant
source breaking change and not everyone internally may want to deal with it
at the same time.  I filed 20166013 to remember to upgrade this to an error.

In addition to being a nice user feature, this is a nice cleanup of the guts
of the compiler, since it eliminates the "isConditional()" bit from
PatternBindingDecl, along with the special case logic in the compiler to handle
it (which variously added and removed Optional around these things).




Swift SVN r26150
2015-03-15 07:06:22 +00:00
Graham Batty
388f0dd5de Check if existing capacity is enough even on non-objc.
Fixes rdar://problem/20089729

Swift SVN r26109
2015-03-13 20:14:20 +00:00
Dmitri Hrybenko
1048d5703b Add a test for assertionFailure not being @noreturn
It is a no-op in -O.

Swift SVN r25920
2015-03-10 07:25:50 +00:00
Dave Abrahams
6423209466 [stdlib] Fix assert docs and semantics
We must not lie to the user or to the optimizer!

Swift SVN r25913
2015-03-10 04:37:12 +00:00
Dmitri Hrybenko
e460eb6264 Revert "[stdlib] Replace aString.toInt() with Int(aString)"
This reverts commit r25636.  It depends on integer parsing APIs, which
are being moved to SwiftExperimental.

Swift SVN r25889
2015-03-09 19:04:18 +00:00
Dmitri Hrybenko
abd0b72638 SwiftPrivateSerialization: refuse to deserialize extremely large arrays
and dictionaries on 32-bit platforms, where size does not fit into an
Int

Swift SVN r25886
2015-03-09 17:10:07 +00:00
Dmitri Hrybenko
3d548845f5 Disable the serialization test on Linux, since it does not finish in any
reasonable time

Swift SVN r25882
2015-03-09 10:09:37 +00:00
Dmitri Hrybenko
b7498a1efd stdlib: add a private serialization API
These APIs will be used for writing automation tools in Swift.  Just
like other private APIs, this module is not exposed to extrenal users.

The primary motivation for doing instead of using NSCoder this is that
NSCoder does not work with structs and Swift containers.  Using classes
for everything just to satisfy NSCoder forces unnatural code.

This API requires two times (!) less boilerplate than NSCoding, since
the same method is used for serialization and deserialization.  This API
is also more type-safe, it does not require the user to write 'as' type
casts, unlike NSCoding.

Please take a look at
validation-test/stdlib/SwiftPrivateSerialization.swift to see the
intended use pattern.

The performance of the underlying implementation is already decent, and
there's a lot of room for improvement.

This is a re-commit of r25678, with a fix for 32-bit platforms.

Swift SVN r25877
2015-03-09 06:55:19 +00:00
Dmitri Hrybenko
350248dae5 Reorganize the directory structure under 'stdlib'
The standard library has grown significantly, and we need a new
directory structure that clearly reflects the role of the APIs, and
allows future growth.

See stdlib/{public,internal,private}/README.txt for more information.

Swift SVN r25876
2015-03-09 05:26:05 +00:00
Dmitri Hrybenko
e58d06c8d6 StdlibUnittest: run race tests for equal amount of time on small and
large machines

Swift SVN r25859
2015-03-08 11:31:26 +00:00
Dmitri Hrybenko
dfe04e55da tests: port StringSlicesConcurrentAppend.swift to Linux
Swift SVN r25858
2015-03-08 11:31:24 +00:00
Dmitri Hrybenko
1d2f5ed69e Hide the SwiftUnstable dependency on libbsd on Linux
Swift SVN r25857
2015-03-08 11:31:23 +00:00
Dmitri Hrybenko
524f8c4a8c tests: port StdlibUnittestStdin.swift to Linux
Swift SVN r25856
2015-03-08 11:31:21 +00:00
Dmitri Hrybenko
0326cfede2 Fix the Concatenate.swift test on Linux
Looks like on Linux, GNU ld is more agressive at removing internal
stdlib symbols, so -disable-access-control is even less useful.

Swift SVN r25855
2015-03-08 06:48:18 +00:00
Dmitri Hrybenko
ff508c94f0 StdlibUnittest: implement test().xfail() matchers for Linux
Swift SVN r25849
2015-03-08 04:15:12 +00:00
Dmitri Hrybenko
7ec747157f More tests pass on Linux when autolinking information is present in -O
Swift SVN r25848
2015-03-08 04:15:10 +00:00
Graham Batty
0a73f54e98 Implement a glibc module for StdlibUnittest on linux
Swift SVN r25807
2015-03-06 22:05:13 +00:00
Graham Batty
dd92de792f Use ICU to implement basic string functions.
Swift SVN r25803
2015-03-06 19:15:34 +00:00
Dmitri Hrybenko
99904a02b5 Revert "XFAIL for <rdar://problem/20035755> Swift.stdlib.HashingAvalanche.swift test failure on incremental RA"
This reverts commit r25753. The failure is caused by unstable iOS
testing tools.

Swift SVN r25754
2015-03-04 08:47:35 +00:00
Andrew Trick
35b9707184 XFAIL for <rdar://problem/20035755> Swift.stdlib.HashingAvalanche.swift test failure on incremental RA
Swift SVN r25753
2015-03-04 08:40:29 +00:00
Graham Batty
98be432723 Updating tests and flags for linux
Swift SVN r25714
2015-03-03 18:26:20 +00:00
Doug Gregor
57a056dcef Revert "stdlib: add an experimental serialization API"
This reverts commit r25678, which breaks the build:

/Users/dgregor/Projects/Apple/swift/stdlib/serialization/MsgPack.swift:117:34: error: integer literal overflows when stored into 'Int'
    } else if utf8Bytes.count <= 0xffff_ffff {
                                 ^
/Users/dgregor/Projects/Apple/swift/stdlib/serialization/MsgPack.swift:139:34: error: integer literal overflows when stored into 'Int'
    } else if dataBytes.count <= 0xffff_ffff {
                                 ^
/Users/dgregor/Projects/Apple/swift/stdlib/serialization/MsgPack.swift:160:24: error: integer literal overflows when stored into 'Int'
    } else if count <= 0xffff_ffff {
                       ^
/Users/dgregor/Projects/Apple/swift/stdlib/serialization/MsgPack.swift:189:31: error: integer literal overflows when stored into 'Int'
    } else if mappingCount <= 0xffff_ffff {
                              ^
/Users/dgregor/Projects/Apple/swift/stdlib/serialization/MsgPack.swift:235:29: error: integer literal overflows when stored into 'Int'
    } else if data.count <= 0xffff_ffff {
                            ^

Swift SVN r25693
2015-03-02 22:41:29 +00:00
Dmitri Hrybenko
581dc3c35d stdlib: split topic-focused modules out of StdlibUnittest
The new modules are:

* SwiftUnstable -- assorted additions to the core standard library
  (more algorithms etc.)

* SwiftUnstableDarwinExtras -- proposed additions to the Darwin overlay,
  not yet reviewed by the Darwin team.

* SwiftUnstablePthreadExtras -- wrappers that make it possible to
  use pthread in Swift (they work around the lack of block-based API in
  pthread).  In future these could be possibly folded into the Darwin
  overlay as well.

These APIs are useful without StdlibUnittest for writing automation
tools in Swift.  Just like SwiftExperimental, none of these modules are
exposed to extrenal users.

Also, since these new modules can be compiled with -sil-serialize-all
(unlike StdlibUnittest, where we can't apply the flag because of
compiler bugs), standard library tests that need to run optimized code
(like AtomicInt.swift) are *much* faster now.

Swift SVN r25679
2015-03-02 10:38:42 +00:00
Dmitri Hrybenko
1a7f8f71a3 stdlib: add an experimental serialization API
The primary motivation for doing this is that NSCoding does not work
with struts and Swift containers.  Making everything classes just to
satisfy NSCoding forces unnatural code.

This API requires two times (!) less boilerplate than NSCoding, since
the same method is used for serialization and deserialization.  This API
is also more type-safe, it does not require the user to write 'as' type
casts, unlike NSCoding.

Please take a look at validation-test/stdlib/Serialization.swift to see
the intended use pattern.

The performance of the underlying implementation is already decent, and
there's a lot of room for improvement.

These APIs will be used for writing automation tools in Swift.  Just
like SwiftExperimental, this module is not exposed to extrenal users.

Swift SVN r25678
2015-03-02 10:38:25 +00:00
Dave Abrahams
47288e357b [stdlib] Replace aString.toInt() with Int(aString)
Swift SVN r25636
2015-02-28 06:01:03 +00:00
Dmitri Hrybenko
822a1a2833 StdlibUnittest: allow to feed custom stdin input into a test
Will be used to test readLine().

rdar://15911365

Swift SVN r25597
2015-02-27 05:59:28 +00:00
Dave Abrahams
ab07daa73d [stdlib] Drop validation tests for numeric parsing
The smoke tests can give us enough checking.

Swift SVN r25587
2015-02-27 02:08:44 +00:00
Dave Abrahams
bd12dcf135 [stdlib] Add integer parsing
Addresses <rdar://17232531>; floating point still remains to be done.

Swift SVN r25549
2015-02-26 11:22:35 +00:00
Chris Lattner
e120cd5cf0 revert changes to testsuite for if/let pattern restriction.
Swift SVN r25512
2015-02-24 20:41:12 +00:00
Graham Batty
7346a9733d Update test and validation-test flags for linux.
Swift SVN r25506
2015-02-24 18:55:42 +00:00
Dave Abrahams
1badcbc14b [stdlib] Rename Slice => ArraySlice
Leave room for a generic Slice type in a later release.

Swift SVN r25493
2015-02-24 00:18:58 +00:00
Dave Abrahams
2cf5650b48 [stdlib] Fix two problems with Character<=>String
<rdar://problem/19803733> String#append(Character) is broken in Swift 1.2 (beta)
<rdar://problem/19809905> Swift 1.2: join does not work with Emoji strings

Swift SVN r25449
2015-02-21 01:14:14 +00:00