Commit Graph

1996 Commits

Author SHA1 Message Date
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
Chris Lattner
670dfcc6ab final validation test adjustments, it actually passes after these changes.
Swift SVN r25446
2015-02-21 00:19:29 +00:00
Chris Lattner
6712817f89 additional changes for the validation testsuite, that I missed
in the previous pass.


Swift SVN r25444
2015-02-21 00:12:43 +00:00
Chris Lattner
6d0a7c39e8 adjust the validation tests to the new if/let syntactic restrictions.
Thanks to Dmitri for doing almost all of this.


Swift SVN r25443
2015-02-20 23:56:30 +00:00
Dave Abrahams
cb68f83129 [stdlib] Fix OpenCL overlay test
Just replace it with a translation of some C sample code, and switch up
the way the kernel args are passed

Swift SVN r25426
2015-02-20 15:24:31 +00:00
Dave Abrahams
257c6d3e8c [stdlib] VarArgs overlay forwarding for OpenCL
Fixes <rdar://19051606> (OpenCL variadic clSetKernelArgsListAPPLE function unavailable)

Swift SVN r25412
2015-02-20 03:19:56 +00:00
Maxwell Swadling
b1857d2452 [stdlib] added flatMap
fixes rdar://problem/19338087

Swift SVN r25378
2015-02-18 22:58:35 +00:00
Dmitri Hrybenko
51db8ec975 tests: dissolve PrimitiveDataTypes.swift in other test files
Swift SVN r25345
2015-02-17 03:27:24 +00:00
Dmitri Hrybenko
4c8fad7f40 tests: add (failing) tests for mandatory inlining of && and ||
Swift SVN r25261
2015-02-13 01:14:13 +00:00
Dmitri Hrybenko
d65d46562a tests: merge two tests for fixed point types
Swift SVN r25233
2015-02-12 11:26:01 +00:00
Dmitri Hrybenko
1dec9814bb Revert a chain of work-in-progress commits implementing readLine() that
I committed by mistake.

Swift SVN r25224
2015-02-12 02:33:21 +00:00
Dmitri Hrybenko
74e5b71b0f wip
Swift SVN r25222
2015-02-12 02:29:00 +00:00
Dmitri Hrybenko
cdb7850e0a stdlibunittest stdin wip
Swift SVN r25221
2015-02-12 02:28:59 +00:00
Dmitri Hrybenko
64ffcf43bf tests: check that array generators traverse a snapshot of the array
Swift SVN r25172
2015-02-11 07:12:26 +00:00
Dmitri Hrybenko
a99093581b stdlib: change {Dictionary,Set}.Generator to value semantics
Generator observes a snapshot of the collection.  Mutating the
collection should not have any effect on existing generators.

rdar://19726013

Swift SVN r25171
2015-02-11 07:12:25 +00:00
Dmitri Hrybenko
6f6ca68aaf stdlib: mark closures in Array.map() and Array.filter() with @noescape
rdar://19389247

Swift SVN r25131
2015-02-10 19:54:28 +00:00
Dmitri Hrybenko
a35767757e StdlibUnittest: add an asertion, expectUnreachable()
Swift SVN r25090
2015-02-09 05:39:26 +00:00
Dmitri Hrybenko
82828ae5a4 tests: use line-directive to run generated tests
Swift SVN r25026
2015-02-06 01:10:58 +00:00
Dmitri Hrybenko
e4b1cbeb64 stdlib: remove .null() static factories on unsafe pointers
These APIs are redundant with nil literals and the default initializer.

rdar://19159145

Swift SVN r24957
2015-02-04 11:17:55 +00:00
Dmitri Hrybenko
34d393bd22 stdlib: stop using AutoreleasingUnsafeMutablePointer.null()
Swift SVN r24956
2015-02-04 11:17:54 +00:00