Commit Graph

1397 Commits

Author SHA1 Message Date
Nadav Rotem
2d592b6af9 Rename local variables. NFC.
Swift SVN r18176
2014-05-16 05:05:34 +00:00
Nadav Rotem
c1db20d178 Rename member_NthContiguous -> _nthContiguous
Swift SVN r18172
2014-05-16 04:26:10 +00:00
Nadav Rotem
c77b97079c Hoist the check for contiguous storage outside of the comparison loop.
Once we know that the storage is contiguous we use the new API _NthContiguous.
We can further optimize this code by specializing the access to ascii or UTF-16.



Swift SVN r18167
2014-05-16 03:44:32 +00:00
John McCall
e1aaa80ac0 Tweaks to the Unmanaged API: remove the bridge methods,
add conveniences for unsafely bridging unmanaged pointers
into void*.

Swift SVN r18162
2014-05-16 01:48:25 +00:00
John McCall
059ed4cd10 Propagate alignment arguments around through the
slow allocation/deallocation APIs.

Swift SVN r18160
2014-05-16 01:40:36 +00:00
Ted Kremenek
172cc3c984 Fix my last commit to accommodate for rename of NativeArray.
Swift SVN r18151
2014-05-16 00:45:48 +00:00
Ted Kremenek
5e966fdd52 Add basic '==' for Array, NativeArray, and Slice.
I suspect this can be made much better.  It only
works for comparing Array<T> and Array<T>,
NativeArray<T> and NativeArray<T>, etc., not
NativeArray<T> and Array<T>.  I also suspect
the implementation can be made better.  The goal
was to make this functional, as this basic
functionality was missing.

Implements <rdar://problem/16768095>.

Swift SVN r18150
2014-05-16 00:32:00 +00:00
Doug Gregor
b723b6c1ff Teach requestNativeBuffer() to return nil on an empty buffer.
The _native computed property that backs this method has a different
contract than requestNativeBuffer() expected: it returned an empty
buffer rather than using an optional and returning nil. We were just
wrapping up that empty buffer and declaring success, which meant we
would bridge from an NSArray wrapping native storage of T to an empty
native array, always.

This change is a necessary prerequisite to importing NSArray* as
(AnyObject[])! per <rdar://problem/16535097>. That (imminent) change
tests this, but we need more targetted testing of this area.




Swift SVN r18143
2014-05-15 23:41:10 +00:00
Dave Abrahams
b666651e3f [stdlib] Rename NativeArray => ContiguousArray
Per API review feedback.

Swift SVN r18140
2014-05-15 23:24:09 +00:00
Dave Abrahams
f4f91a9678 [stdlib] rename [Native=>Contiguous]ArrayBuffer.swift
Swift SVN r18139
2014-05-15 23:24:08 +00:00
Dmitri Hrybenko
b966c9583f stdlib/{Array, Dictionary}: make debugDescription forward to debugDescription
of container elements

rdar://16929672


Swift SVN r18132
2014-05-15 22:08:07 +00:00
Doug Gregor
87904b8228 Make ImplicitlyUnwrappedOptional conform to _ConditionallyBridgedToObjectiveC.
This is a better solution to <rdar://problem/16899681> because the
runtime magic is limited to implementing the witnesses of this
conformance.

The type checker fixes are because we can end up using unchecked
optionals in more places, via bridging, than we could before.


Swift SVN r18120
2014-05-15 19:00:52 +00:00
Dave Abrahams
634d85f613 [stdlib] Strengthen a sanity check
Swift SVN r18112
2014-05-15 17:51:13 +00:00
Dmitri Hrybenko
586387da7f stdlib: remove unused declarations (the runtime functions are gone already)
Swift SVN r18111
2014-05-15 17:39:03 +00:00
Dave Abrahams
fed492b650 [stdlib] Don't assert on empty NSArrays
Empty NSArrays are usually represented by emptyNSSwiftArray, whose
element type is irrelevant.  So when doing a getObjects:range: on that,
presumably the range's length is zero and we shouldn't do any sanity
checking w.r.t. the element type.

Fixes <rdar://problem/16914909> Assertion failed attempting to append
arrays when subclassing Cocoa class

Swift SVN r18110
2014-05-15 17:25:48 +00:00
Dmitri Hrybenko
011584a0b6 stdlib/pritning: untie string interpolation from string initializers
String interpolation invokes convertFromStringInterpolationSegment() function
now.  There is no need to add extensions to String to allow custom types to
participate in string interpolation.  Just implementing Printable will do the
right thing.


Swift SVN r18104
2014-05-15 09:56:02 +00:00
Dave Abrahams
8e1a85490b [stdlib] More infrastructure for Array bridging
Totally untested; tests are next.

Swift SVN r18096
2014-05-15 04:32:13 +00:00
Ted Kremenek
bcb4f5d6d0 Add documentation comments for '..' and '...'.
Swift SVN r18078
2014-05-14 20:04:35 +00:00
Dmitri Hrybenko
f183e493bf stdlib/bridging: bridgeFromObjectiveC() can fail to bridge the Objective-C
object to the desired type.  Model this with an optional return type.


Swift SVN r18077
2014-05-14 19:49:22 +00:00
Dave Abrahams
a8bbc4c89b [stdlib] String internal API review changes
I had to XFAIL test/ClangModules/cf.swift, which is failing for reasons
I can't understand.  <rdar://problem/16911496>

Swift SVN r18071
2014-05-14 14:18:52 +00:00
Dmitri Hrybenko
eb9c3a406d stdlib/runtime: implement bridgeFromObjectiveC()
Swift SVN r18070
2014-05-14 13:40:46 +00:00
Ted Kremenek
9eea282719 Switch range operators ".." and "...".
- 1..3 now means 1,2
- 1...3 now means 1,2,3

Implements <rdar://problem/16839891>

Swift SVN r18066
2014-05-14 07:36:00 +00:00
Argyrios Kyrtzidis
33e5c2df71 [stdlib] Replace the dashes in the comment with parens, as suggested by DaveA.
Swift SVN r18060
2014-05-14 04:34:27 +00:00
Argyrios Kyrtzidis
b70c125c88 [stdlib] Remove non-ascii dash character from a comment.
Swift SVN r18058
2014-05-14 03:06:58 +00:00
Dave Abrahams
0222047dda [stdlib] A couple of Array changes...
...that managed to sneak out of my last commit.

Swift SVN r18028
2014-05-13 22:03:57 +00:00
Dave Abrahams
34edde40ca [stdlib] Array bridging/bridge-cast entry points
Still needs lots of testing, but at least we have the code in and
building, finally.

Swift SVN r18027
2014-05-13 21:33:40 +00:00
Dmitri Hrybenko
de9a0c8ff0 stdlib/printing: remove ReplPrintable protocol
It is replaced by debugPrint() family of functions, that are called by REPL.

There is a regression in printing types that don't conform to Printable, this
is tracked by rdar://16898708


Swift SVN r18006
2014-05-13 16:22:56 +00:00
Dmitri Hrybenko
ed68ba833f stdlib/printing: add Streamable conformance to CString, and DebugPrintable
conformances to String and CString


Swift SVN r18003
2014-05-13 13:54:43 +00:00
Dmitri Hrybenko
2cc8fe40d4 stdlib/printing: replace four printing systems with one new one
The old ones were:

- print/println
- printAny
- printf
- Console

The new printing story is just print/println.  Every object can be printed.
You can customize the way it is printed by adopting Printable protocol.  Full
details in comments inside stdlib/core/OutputStream.swift.

Printing is not completely finished yet.  We still have ReplPrintable, which
should be removed, string interpolation still uses String constructors, and
printing objects that don't conform to Printable will result in printing
mangled names.


Swift SVN r18001
2014-05-13 13:07:59 +00:00
Doug Gregor
1efd9fba5b Start accepting '#' in addition to '`' to mark a keyword argument <rdar://problem/16891828>.
Update the standard library, tests, diagnostics, and Fix-Its.

Swift SVN r17981
2014-05-13 00:03:04 +00:00
Ted Kremenek
fad874708e Adjust test cases.
Swift SVN r17964
2014-05-12 22:01:52 +00:00
Ted Kremenek
49d4fca14d Rename UTF16Scalars to UnicodeScalarView.
Implements <rdar://problem/16821900>.

Swift SVN r17899
2014-05-11 23:51:07 +00:00
Dmitri Hrybenko
63c5a145b4 stdlib: factor out _SwiftNSFastEnumerationState initialization
Swift SVN r17624
2014-05-07 12:54:17 +00:00
Dave Abrahams
7f29548040 [stdlib] Re-alphabetize CMakeLists.txt
Swift SVN r17489
2014-05-05 21:24:45 +00:00
Dave Abrahams
23f98db278 [stdlib] A .utf16 property for String
Also, test the .utf8 property

Swift SVN r17488
2014-05-05 21:23:48 +00:00
Ted Kremenek
050fd53af7 Rename UncheckedOptional to ImplicitlyUnwrappedOptional.
Swift SVN r17232
2014-05-02 06:13:57 +00:00
Dmitri Hrybenko
9d4bd6da69 stdlib: remove Keyboard
rdar://16205673


Swift SVN r17089
2014-04-30 13:00:08 +00:00
Dave Abrahams
efe08045ba [stdlib] Kill (Contiguous|Opaque)String
Detritus makes it hard to do API review, so kill it off.

Along the way we got a generic lexicographicalCompare algorithm.

Swift SVN r17064
2014-04-30 01:49:34 +00:00
Dave Abrahams
18c7b0e440 [stdlib] Kill StringByteData
StringByteData was legacy detritus containing an in-memory UTF8
representation of a Swift string.  Since we switched to a UTF16 base
representation, use the new stuff in StringUTF8 instead.

Swift SVN r16968
2014-04-28 08:32:41 +00:00
Dave Abrahams
1dd3b76e97 [stdlib] Add a lazy UTF8 view of String
We need something here so we can rip out StringByteData.  Ideally this
would have BidirectionalIndex'es, but this will do for now.  It has to
be a Collection so we can represent its multi-pass-ness.

Swift SVN r16966
2014-04-28 08:32:40 +00:00
John McCall
d9e4d6f2ad Add the Unmanaged library type.
Swift SVN r16796
2014-04-25 02:16:04 +00:00
Arnold Schwaighofer
45ffb41adf Remove AssertDebug hack and fixup make files
When we build the standard libary with -parse-stdlib the frontend sets the
assert configuration to 'DisableReplacement'. Constant replacement does not take
place and the call to the builtin function 'assert_configuration' call stays in
the serialize SIL of the swiftmodule.

IRGen replaces the function call to the assert_configuration builtin function by
the value for Debug (0). The resuling standard library dylib hence contains the
debug version of the standard library assert function.

Frontend optimization flags can now determine whether asserts should be executed
or not.

This commit removes the SWIFT_ASSERTS cmake flag.

rdar://16458612

Swift SVN r16473
2014-04-17 22:05:43 +00:00
Enrico Granata
942676abb2 Everyone loves a good Mirror, and this commit has plenty of them!
With this check-in, we get Mirrors for IntXX, UIntXX, Float32, and we don't lose the existing ones for Double, Int, String and Bool

This fixes rdar://16517273 and will make playgrounds able to display more data more often more consistently!



Swift SVN r16418
2014-04-16 17:16:06 +00:00
Dave Abrahams
f4b04760c8 [stdlib] Add a lazy "Map" Collection
The name may have the wrong implication to a C++'er, but the point is
that this Collection is a Lazy version of the map() function.  Maybe we
should be giving our Collections capitalized lazy versions of their
member algorithms, e.g.

  a.Map {something}

Swift SVN r16110
2014-04-09 09:43:22 +00:00
Dave Abrahams
3de27d2179 [stdlib] Array: add bridgeCache/fix refCounting
Array's getObjects:range: needs to fill the supplied buffer without
incrementing the reference count.  For that reason, and to fulfill
lifetime expectations for Array elements that are computed
dynamically (e.g. from value types that are BridgedToObjectiveC), we
maintain a cache of converted objects associated with each Array.

Swift SVN r16105
2014-04-09 07:59:43 +00:00
Dave Abrahams
de3df28a62 [stdlib] Reorganize [Native]Array/Slice code
Just moving things between files, and creating a few new source files, in
the standard library, so it's easier to find a given component.

Swift SVN r16094
2014-04-09 02:32:15 +00:00
Dave Abrahams
2adf0679a3 [stdlib] CountAndCapacity => ArrayBody
CountAndCapacity is about to become even more Array-specific, so rename
it and give it its own source file.

Swift SVN r16091
2014-04-09 01:25:03 +00:00
Dave Abrahams
27daefa878 [stdlib] Delete obsolete Array.swift
It held the old implementation and is no longer needed.

Swift SVN r16062
2014-04-08 18:41:06 +00:00
Dave Abrahams
548f3c0e81 [stdlib] Add and test single-element modifiers
Swift SVN r15978
2014-04-05 05:39:17 +00:00
Dave Abrahams
dd96f5f082 [stdlib] Give ArrayBufferType its own file
Swift SVN r15770
2014-04-02 02:47:39 +00:00