[+swift-dev, bcc swift-users] I’d be fine with supporting “Main.swift”. The one downside is that it could change behavior for existing projects relying on “Main.swift” being a library file, and that might mean it’s not worth making a change.
Jordan > On May 1, 2016, at 23:34, Kostiantyn Koval via swift-users > <swift-us...@swift.org> wrote: > > Hi there, > > main is common used naming for executables that contains main function. It’s > required by Swift compiler and Swift Package Manager can’t do anything about > that. > If you create a simple command line tool in Xcode, it will create main.swift > file. If you try to rename it, it will feil. > I think this is correct behaviour. > If you still think that Swift should support Main.swift with upper case > letter, than it should be discussed with compiler team. > > - Kostiantyn > > > Hi there, > > > > This is what happened as I was trying out the Swift Package Manager for > > another project similar to the one shown below: > > > > ~ $ mkdir example > > ~ $ cd example/ > > example $ touch Package.swift > > example $ mkdir Sources > > > > example $ vi Sources/Example.swift > > example $ cat Sources/Example.swift > > func printOther() { > > print("other") > > } > > > > example $ vi Sources/Main.swift > > example $ cat Sources/Main.swift > > print("Hello World") > > printOther() > > > > > > example $ swift build > > Compile Swift Module 'example' (2 sources) > > /PATH/example/Sources/Main.swift:1:1: error: expressions are not allowed at > > the top level > > print("Hello World") > > ^ > > /PATH/example/Sources/Main.swift:2:1: error: expressions are not allowed at > > the top level > > printOther() > > ^ > > /PATH/example/Sources/Main.swift:1:1: error: expressions are not allowed at > > the top level > > print("Hello World") > > ^ > > /PATH/example/Sources/Main.swift:2:1: error: expressions are not allowed at > > the top level > > printOther() > > ^ > > <unknown>:0: error: build had 1 command failures > > error: exit(1): /PATH-SWIFT/usr/bin/swift-build-tool -f > > /PATH/example/.build/debug.yaml > > > > > > example $ mv Sources/Main.swift Sources/main.swift > > example $ swift build > > Compile Swift Module 'example' (2 sources) > > Linking .build/debug/example > > example $ .build/debug/example > > Hello World > > other > > example $ > > > > > > I had to renameMain.swifttomain.swift. Is there a design decision on why > > the filename for the main swift file has to be lowercase or is this a bug? > > > > If it’s a design decision, why are directory names forsource files allowed > > to have variations likeSources,Source,srcandsrcsas > > statedhere(https://github.com/apple/swift-package-manager/blob/master/Documentation/SourceLayouts.md#other-rules > > > > <https://github.com/apple/swift-package-manager/blob/master/Documentation/SourceLayouts.md#other-rules>)but > > not the main swift file? > > > > I’d be ok if onlyMain.swiftandmain.swiftare allowed since other files in > > theSourcesdirectory are commonly UpperCamelCasedue to the Type naming > > conventions > > e.g.example-package-playingcard/Sources(https://github.com/apple/example-package-playingcard/tree/master/Sources > > > > <https://github.com/apple/example-package-playingcard/tree/master/Sources>). > > > > Or maybe I’m just being pedantic? > > > > p.s. evenPackage.swiftis capitalized and notpackage.swift > > > > $ swift --version > > Swift version 3.0-dev (LLVM 752e1430fc, Clang 1e6cba3ce3, Swift 56052cfe61) > > Target: x86_64-unknown-linux-gnu > > > > > > > > > > > _______________________________________________ > swift-users mailing list > swift-us...@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev