[swift-evolution] [Draft proposal] Faster/lower-level external String initialization
Dave Abrahams
dabrahams at apple.com
Mon Feb 1 16:07:04 CST 2016
on Mon Feb 01 2016, Zach Waldowski <swift-evolution at swift.org> wrote:
> Due to the semantics of _StringCore and _StringBuffer (as far as I
> understand them), such a method would not be more efficient than
> creating another String with the new initializer and concatenating the
> two, and would require more significant plumbing changes to
> _StringBuffer.
We are very interested in making significant plumbing changes to String, FWIW.
>
>
> It would be good to shop around for this proposal, though; maybe if
> someone on the core team wants to chime in.
>
> Cheers,
> Zachary Waldowski
> zach at waldowski.me
>
> On Mon, Feb 1, 2016, at 03:07 AM, Charles Kissinger wrote:
>> It occurred to me that this proposal provides a way to efficiently
>> initialize Strings from UTF code unit sequences, but it doesn’t provide a
>> way to *append* code unit sequences to existing strings. String has an
>> existing method to append Character sequences:
>>
>> String.appendContentsOf<S : SequenceType where S.Generator.Element ==
>> Character>(_: S)
>>
>> The equivalent for code units would presumably be:
>>
>> String.appendContentsOf<S : SequenceType, Encoding: UnicodeCodecType
>> where Encoding.CodeUnit == Input.Generator.Element>(_: S, encoding:
>> Encoding.Type)
>>
>> Is there any interest in adding that to the proposal? It would only have
>> a lot of value if it could be implemented in a more efficient way than
>> just calling String.Append() for each decoded Character. From looking at
>> the code, that might not be straightforward.
>>
>> —CK
>>
>> > On Jan 26, 2016, at 3:14 PM, Zach Waldowski via swift-evolution <swift-evolution at swift.org> wrote:
>> >
>> > Since this seems to have gone quiet, and the code was already done, I've
>> > posted the PR to Swift itself:
>> >
>> > https://github.com/apple/swift/pull/1109
>> >
>> > The existing proposal PR:
>> >
>> > https://github.com/apple/swift-evolution/pull/101
>> >
>> > --
>> > Sincerely,
>> > Zachary Waldowski
>> > zach at waldowski.me
>> >
>> > On Wed, Jan 20, 2016, at 06:08 PM, Zach Waldowski via swift-evolution
>> > wrote:
>> >> Thanks, Dave.
>> >>
>> >> I definitely wasn't hard to convince on this. The change has already
>> >> been made to the proposal, its PR, and the pending PR to the stdlib.
>> >>
>> >> Cheers!
>> >> Zach Waldowski
>> >> zach at waldowski.me
>> >>
>> >> On Wed, Jan 20, 2016, at 01:23 PM, Dave Abrahams via swift-evolution
>> >> wrote:
>> >>>
>> >>> on Fri Jan 15 2016, Zach Waldowski via swift-evolution
>> >>> <swift-evolution-m3FHrko0VLzYtjvyW6yDsg-AT-public.gmane.org> wrote:
>> >>>
>> >>>> Charles -
>> >>>>
>> >>>> I shared the same concern, and mention them in the proposal. I thought
>> >>>> `decode(_:as:)` to be too simple to the point of being
>> >>>> non-descriptive,
>> >>>
>> >>> The names of methods don't need to be descriptive. It's the use-sites
>> >>> (and secondarily, declarations) that need to be clear. Trying to make
>> >>> the names of methods descriptive by themselves just hurts readability at
>> >>> the use-site.
>> >>>
>> >>> -Dave
>> >>>
>> >>> _______________________________________________
>> >>> swift-evolution mailing list
>> >>> swift-evolution at swift.org
>> >>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> >> _______________________________________________
>> >> swift-evolution mailing list
>> >> swift-evolution at swift.org
>> >> https://lists.swift.org/mailman/listinfo/swift-evolution
>> > _______________________________________________
>> > swift-evolution mailing list
>> > swift-evolution at swift.org
>> > https://lists.swift.org/mailman/listinfo/swift-evolution
>>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
--
-Dave
More information about the swift-evolution
mailing list