I tried to work both Daves' proposals into one big proposal, and elaborate on interactions with other features like initializers, enums and default arguments I could think of. Comments appreciated!
Swift SVN r9910
I tried hard find all references to 'func' in documentation, comments and
diagnostics, but I am sure that I missed a few. If you find something, please
let me know.
rdar://15346654
Swift SVN r9886
Produce protocol descriptors when we see a protocol definition in the current module. If the protocol is @objc, go through the existing path for generating full Protocol* metadata for objc objects; otherwise, emit our layout-compatible but strong-external-linkage Swift protocol descriptor record.
Swift SVN r9867
I've come up with a model which I think will work for at least basic
Swift/Objective-C interoperation within a target. It isn't wonderful, but
it does at least seem feasible, and will probably not require too many
changes to Clang.
Swift SVN r9737
There are still some [infix_left=] in the text. Based on
r4627 it looks like these can just be deleted, but I haven't
done so at this time.
Swift SVN r9616
Also, update for the plan of record that the compiler driver will be
responsible for dependency analysis rather than an external build system.
Swift SVN r9573
Build a nominal type descriptor when we emit the metadata or generic metadata pattern for a nominal type, and put a reference into the formerly null slot in the struct or enum metadata. We need to make a place for them in class metadata; that'll come next.
Swift SVN r9492
Also, improve error recovery for new-syntax attributes.
This means that we now compile the testcase into:
t.swift:3:16: error: unknown attribute 'xyz'
var x : () -> @xyz Int
^
t.swift:6:16: error: unknown attribute 'xyz'
func foo() -> @xyz Int {
^
instead of:
t.swift:4:15: error: expected type for function result
func foo() -> @xyz Int {
^
t.swift:4:14: error: consecutive statements on a line must be separated by ';'
func foo() -> @xyz Int {
^
;
t.swift:4:16: error: unknown attribute 'xyz'
func foo() -> @xyz Int {
^
t.swift:7:1: error: expected declaration
^
this is part of rdar://15183765
Swift SVN r9260
This doc will contain the underlying build model for a multi-file Swift
framework or application module. This model will then be driven by
Xcode to build a target.
The biggest open questions are in how Swift and Objective-C will interact.
<rdar://problem/14579792> TLF: Swift 1.0 Modules
Swift SVN r9244
Now that we have a solid Optional-based story for dynamic casts, it's no longer needed, and can be expressed as '(x as T)!'. Future refinement of the 'as' syntax will deal with the unfortunate extra parens.
Swift SVN r9181
Jim wants a less ad-hoc naming convention for these thunks so that LLDB's 'trampoline' logic can recognize and step past these thunks in the process of "stepping into" methods involving closures.
Swift SVN r9086
- Drop the notion of hierarchical module names for now. People can prefix
their module names (instead of their classes) until we come up with
something else.
- For ambiguity resolution, prefer names in the current module (found by
implicit visibility) over any sort of import (selective or otherwise).
- Add section on development-time Submodules based on last week's discussion.
- Simplify/remove several things that were found confusing.
- Still haven't written anything about search paths.
Swift SVN r9007