SwiftPM is case-insensitive about its conventions in general, so I consider 
this a bug.

It’s possible it’ll break existing projects, but well, existing projects are 
breaking constantly at this time due to language changes, so this is just 
another thing.

> On May 2, 2016, at 10:33 AM, Natthan Leong via swift-dev 
> <swift-dev@swift.org> wrote:
> 
> Maybe that's why we should introduce the addition of 'Main.swift' before the 
> Swift Package Manager (and Swift 3.0) hits stable?
> 
> I've never requested to drop 'main.swift'. I merely prefer the additional 
> support for 'Main.swift'. Library/Frameworks should not have 'Main.swift' 
> imho as it leads to further confusion.
> 
> If the compiler and Xcode team find this too difficult to add support for and 
> not for any other reasons, I'd be okay with sticking with 'main.swift'. Just 
> find it odd for reasons specified throughout this email thread.
> 
> On May 2, 2016, at 10:20, Jordan Rose <jordan_r...@apple.com 
> <mailto:jordan_r...@apple.com>> wrote:
> 
>> My concern is not about people who have both main.swift and Main.swift; it's 
>> people who have libraries/frameworks (no main.swift) where one of the source 
>> files happens to be named Main.swift. This isn't likely, but it is possible.
>> 
>> We're certainly not going to drop "main.swift" in favor of "Main.swift", so 
>> the question would just be if we wanted to add "Main.swift". And I don't 
>> think we want different rules for Xcode and the package manager, especially 
>> not when the package manager can generate simple Xcode projects.
>> 
>> Jordan
>> 
>> 
>>> On May 2, 2016, at 10:09, Natthan Leong <kar.j...@icloud.com 
>>> <mailto:kar.j...@icloud.com>> wrote:
>>> 
>>> Hi,
>>> 
>>> Isn't it odd to have both main.swift and Main.swift for a project?
>>> 
>>> Considering Swift 3 provides source breaking changes, can this be still 
>>> worth an side effort to pursue with the compiler team as advised by 
>>> Kostiantyn in the bug report? If so, how'd I approach them regarding this?
>>> 
>>> Isn't the Swift Package Manager a (new) tool in handling Swift code? Is 
>>> this really the case where a minor change/addition to a convention is so 
>>> difficult that it shouldn't be done? Can't Xcode support only either 
>>> Main.swift or main.swift in the future?
>>> 
>>> The bug report is linked here
>>> https://bugs.swift.org/browse/SR-1379 
>>> <https://bugs.swift.org/browse/SR-1379>
>>> 
>>> On May 2, 2016, at 09:34, Jordan Rose <jordan_r...@apple.com 
>>> <mailto:jordan_r...@apple.com>> wrote:
>>> 
>>>> [+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 <mailto: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 <mailto:swift-us...@swift.org>
>>>>> https://lists.swift.org/mailman/listinfo/swift-users 
>>>>> <https://lists.swift.org/mailman/listinfo/swift-users>
>>>> 
>> 
> _______________________________________________
> 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

Reply via email to