More Swift Stuff
See Also: Active Material
- SE-0007 Removing C-Style For Loops
- SE-0028 Modernizing Swift's Debugging Identifiers
- SE-0031 Adjusting
inoutDeclarations for Type Decoration
- SE-0034 Disambiguating Line Control Statements from Debugging Identifiers
- SE-0036 Enum dots
- SE-0039 Modernizing Playground literals
- SE-0040 Replacing Equal Signs with Colons For Attribute Arguments
- SE-0046 First Argument Labels
- SE-0047 Make non-Void functions default to @warn_unused_result Accepted with revisions
- SE-0068 Expanding Swift
Selfto methods and value types Accepted with modifications.
- SE-0075 Adding an Import-testing Build Configuration Test
- SE-0094 Add sequence(initial:next:) and sequence(state:next:) to the stdlib Accepted with naming modification for
- SE-0096 Moving dynamicType to the standard library Accepted with revision, follow-up ammendment added as pull request
- SE-0099 Restructuring Condition Clauses. Accepted with revision
- SE-0101 Reconfiguring sizeof and related functions Accepted with enum revision
- SE-0106 Add a macOS Alias for the OSX Platform Configuration Test
- SE-0107 Updating Buffer Value Names to Header Names
- SE-0134: Rename two UTF8-related properties on String
- SE-0157: Support recursive constraints on associated types
- SE-0190: Target environment platform condition
Redirected to bug report
- SE-XXXX Enhancing closure argument flexibility - Chris Lattner redirects to bug report, says formal proposal not needed
- didSet stuff, Bug report: SR-3310
- Rearchitecting ifcase/guardcase Old pull. Submitted as Bug Report, otherwise letting the rest of the proposal die.
- SE-0041 Protocol Naming Conventions Right idea, wrong names. Come back with a stronger proposal and better names if desired. Matthew has put together a new proposal, focused less on philosophy and more on namespacing. (Updated proposal is accepted)
- SE-0084 Allow trailing commas in parameter lists and tuples Chris Lattner: "I personally find that style repulsive"
- SE-0097 Normalizing naming for "negative" attributes validated underlying idea, some alternatives to consider, no-escaping, lots of volunteers to take this on, with noescape becoming the default.
- SE-0098 Adopting consistent keyword casing in Swift Not sufficiently futureproof
- SE-0105 Removing Where Clauses From For-In Loops
Non-final forms for active work
- Expanding Build Configuration Tests for Simulator and Device targets Draft on-list
- Introducing Build Configuration Tests for Platform Conditions Draft on-list
- Adding an Platform-testing Build Configuration Test Back-burnered until a compelling use-case is found with clear platform differentiation
- [Changing the Behavior of StrideThroughGenerator] (https://gist.github.com/erica/03c398c06f6c47824429) ( Older)~~ (Broken down to separate proposals)
- Draft Regularizing Where Grammar Pitched 6/9
- SE-0051 Conventionalizing
stridesemantics. Pull request here Unlikely to move forward in its present form Strides really need a thorough redesign. Talking with Dave Abrahams about whether this needs to be proposed now or should wait for post 3.0 and do it right. See this
- SE-0050 Decoupling Floating Point Strides from Generic Implementations (accidentally withdrawn, oh well, it can wait until after Swift 3) See this
- SE-0050: Floating Point Strides: Review: May 17...23 returned for revision. Withdrawn 7/28/16.
- Build Configurations, post Individual proposals subsume this as requested by Joe Groff
Evolved Into Accepted
- Static member shortcut see discussions onlist here and here
- Static member dots (preliminary query)
- Updated Readme Accepted but not a proposal. Just keeping a link around for my working notes.
- Expand Document Markup for Mutating/Non-Mutating Cross References Draft on-list 3/30. Subsumed into accepted proposal SE-0047
- Modernizing Attribute Cases and Argument Naming Pull request here (Subsumed by warn-unused-result)
- Evolving Swift: The Process Document. Pull request here Will probably sit
- Label guidance input for API discussion
- Argument Labels proposal comment
- Grammar-guided Naming proposal comment
Dead Just Dead
StaticSelf, an Invariant Self Update: we will not propose this formally. See resolution section.
Optional collectionsDmitri Gribenko says no higher kinded types Other debug constants for debug/release, full context,Chris L.: defer or unnecessary, consider using relative path universally
#filename. Function returns a string, not a gregor name
final expression shortcuts: no return statements, no branchingPer Jordan Rose, I will live with typing
Scala-style Wildcard curryingSee this SE-XXXX Requiring Proactive Overrides for Default Protocol ImplementationsDraft on list 4/28 Adding yes/no and on/off as standard alternatives to true/false: Discussed on list 5/4/16 * Introducing an error-throwing nil-coalescing operatorJust use guard let Introduce aList prefers to give relative path in place of #file but not add new identifier.
#fileNameidentifier Pitched on-list
- SE-XXXX Introducing a striding(by:) method on 3.0 ranges, nearly ready for pull request and collection types. Ping group for status
I have a vested interest in Yong hee Lee's Anonymous Enumerations and would like to see this expanded as well to option flags. On list: http://thread.gmane.org/gmane.comp.lang.swift.evolution/19210 5/31/16, recent revision in June Rationalizing Swift's take/drop/first/last/sequence Decoration: add behavior through extension, not just replace behavior - lateral inheritance, available to subclasses (see problems with non-final) Struct inheritance, Enum inheritance (almost anti-inheritance). JRose writes: "I’m pretty sure one of the reasons is because inheritance implies method inheritance, which implies being able to override methods, and that opens a big can of worms which will be familiar to any experienced C++ programmers. Swift struct methods aren’t dynamically dispatched; they’re just function calls. But if you could subclass a struct and override methods, then the methods would need to be dynamically dispatched … but that implies that structs would need to contain vtables (or isa pointers), which makes them a lot more heavyweight. Or on the other hand, if struct methods stayed statically dispatched, then overriding them would be fraught with peril, for the same reason that overriding nonvirtual methods in C++ is generally a very bad idea." Dave Reed writes, "Inheritance isn't really compatible with value types at least if they're allocated on a stack (known as "stack-dynamic) and take a fixed amount of space (think about what would happen if you assigned it to a subclass that had additional data - no room to store the additional data). References are typically stored on a heap with a pointer to the object stored on a stack (pointers takes the same amount of memory no matter what type they point to). If you don't need extra data (additional instance variables), you can add new methods to CGRect using extensions."
- Disambiguating SPM Naming Conflicts. Pull request here Needs reworking, revision to deal with module differentiation, origin declaration, etc. See swift-build-dev list Split, defer to after Swift 3
- Extending striding(by) to collections
- Revisiting Build Namespacing Update: going nowhere again. Surely there has to be an elegant build graph solution that allows modules to use sensible names