Thanks Jordan! Another question if anyone has some time: I'm really interested in contributing to the project, but given that I don't have a ton of experience with compilers, I'm having a really hard time following the flow of the program. I understand that the high level flow is lexing, parsing, sema, and building the AST. However, tracing through the actual functions in the compiler prove much more difficult due to the amount of indirection/metaprogramming.
Are there any sort of sequence diagrams that I haven't found yet? If anyone could let me know of any good resources you know of, that would be great. I'm sure this would also be of use to people in my boat that want to help but don't know how to start. Thanks, Seth On Tue, Dec 8, 2015 at 9:04 PM Jordan Rose <jordan_r...@apple.com> wrote: > Hi, Seth. I think you're getting Clang / swift-clang mixed up with swiftc > / swift. Clang is not the Swift compiler; the Swift compiler lives in the > "swift" repo. Swift depends on Clang for its interoperation with C and > Objective-C. > > A *lot* of the compiler encodes information about Optional, but most of > it stems from ASTContext.h and ASTContext.cpp, which has dedicated > entrypoints for getting Optional, Optional.None, and Optional.Some. > > Hope this helps, > Jordan > > On Dec 8, 2015, at 17:59 , Seth Friedman via swift-dev < > swift-dev@swift.org> wrote: > > Hi all, > > In Optional.swift in the stdlib, there's a comment that says "The compiler > has special knowledge of Optional<Wrapped>, including the fact that it is > an enum with cases named 'None' and 'Some'." > > What I'm trying to understand is: If I wanted to implement the optional > type from scratch, what would be the process I would go through? I've > scoured the swift-clang project and can't seem to find any reference to > optionals or even Swift explicitly. I discovered nullability attributes and > am hypothesizing that an expression of something like "Type?" is somehow > mapped to an attribute, but I'm really just stumbling around in the dark. > > In terms of what I've tried, I've gone through a lot of the source in the > swift-clang lib/Basic and lib/AST directories, and I've read through the > "Clang CFE Internals Manual" on the Clang website. > > Help is much appreciated! > > Thanks in advance, > Seth > > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org > https://lists.swift.org/mailman/listinfo/swift-dev > > >
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev