[swift-evolution] [Pitch] Array full proposal

Gor Gyolchanyan gor at gyolchanyan.com
Wed Jul 12 15:30:16 CDT 2017

I agree, given the current state of Swift, fixed-sized arrays are way too magical.
I’d suggest postponing the idea of fixed-sized arrays (even though I myself have ached for them for a long time now) until its prerequisites are met.

There are three language features that have been discusses before that are required for this:
Variadic generic parameters.
Tuples as nominal types with a variadic generic parameter and a tuple concatenation ability.
Non-type generic parameters (probably, only compile-time value types).

In these terms, a fixed-sized array would be a type that takes an Int as a generic parameter and uses a variadic tuple for its storage. If C++ templates has taught us anything is that metaprogramming can be used for achieving fantastic compile-time wizardry, like converting a single integer generic parameter and a single generic type parameter  to a generic homogeneous variadic type parameter (by using a recursively defined variadic parameter dummy type).

> On Jul 12, 2017, at 11:11 PM, Robert Widmann via swift-evolution <swift-evolution at swift.org> wrote:
> I think this proposal is trying to do too much at once.  Correct me if I’m wrong, but you’re proposing
> 1) New sugar for fixed-length arrays without a corresponding stdlib declaration
> 2) Arity and type inference for literals
> 3) Default initialization semantics for arrays including a DI exception for fixed-length arrays that aren’t fully initialized 
> 4) 2 new attribute declarations for unspecified concurrency semantics
> 5) A magical compiler intrinsic that declares loop counters
> 6) Static collection subtyping constraints referencing convertibility constraints we don’t currently have
> 7) Tuple conversions
> I believe your aims are noble, and this is certainly a tremendously important problem we need to solve, but I think there needs to be a measured response to the current state of things.
> ~Robert Widmann
>> On Jul 10, 2017, at 9:54 PM, Daryle Walker via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> Spent the past week coming up with a full proposal for fixed-size arrays. I wrote it mainly from the bottom upwards. There may be some inconsistencies. And I'm not entirely sure what "structural sub-typing" means, or if it's appropriate for arrays.
>> <https://gist.github.com/CTMacUser/cfffa526b971d0e1f3a079f53c6819bb <https://gist.github.com/CTMacUser/cfffa526b971d0e1f3a079f53c6819bb#file-nnnn-fixed-size-arrays-md>>
>> Sent from my iPad
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto: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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170712/5a627810/attachment.html>

More information about the swift-evolution mailing list