Developing Swift in Xcode


(Kenny Leung) #1

Hi All.

With your indulgence, I’m looking for some newbie help here. I’ve gone through the steps in the Swift project README, and generated an Xcode project.

Are there any pointers to where to go next in the modify-compile-test cycle? There are a zillion targets in the project, and none of them seem to build.

What is your typical process when adding a new feature to Swift?

Thanks!

-Kenny


(Ryan Lovelett) #2

Hi All.

With your indulgence, I’m looking for some newbie help here. I’ve gone
through the steps in the Swift project README, and generated an Xcode
project.

Are there any pointers to where to go next in the modify-compile-test
cycle? There are a zillion targets in the project, and none of them seem
to build.

This is my experience too. Just to add some more data points I did this:

$ utils/update-checkout
$ utils/build-script -t
$ utils/build-script -X --skip-build -- --reconfigure
$ cd ~/Source/build/Xcode-DebugAssert/swift-macosx-x86_64
$ open Swift.xcodeproj

Using the "ALL_BUILD" target in Xcode I attempted to build and was
greeted with the following error:

echo This\ Xcode\ project\ is\ configured\ for\ IDE\ use\ only\ and\
cannot\ build\ Swift.
This Xcode project is configured for IDE use only and cannot build
Swift.
false
make: ***
[/Users/ryan/Source/build/Xcode-DebugAssert/swift-macosx-x86_64/xcode_generate_for_ide_only_dummy.txt]
Error 1
Command /bin/sh failed with exit code 2

Most of my steps were taken from
https://github.com/apple/swift#developing-swift-in-xcode and then I just
filled in the blanks with my own imagination from there.

What is your typical process when adding a new feature to Swift?

I am also interested in this.

···

On Mon, Mar 14, 2016, at 02:07 PM, Kenny Leung via swift-dev wrote:

Thanks!

-Kenny

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Ben Langmuir) #3

Hi All.

With your indulgence, I’m looking for some newbie help here. I’ve gone
through the steps in the Swift project README, and generated an Xcode
project.

Are there any pointers to where to go next in the modify-compile-test
cycle? There are a zillion targets in the project, and none of them seem
to build.

This is my experience too. Just to add some more data points I did this:

$ utils/update-checkout
$ utils/build-script -t
$ utils/build-script -X --skip-build -- —reconfigure

See the documentation in `build-script -help` the capital -X option is designed to not be able to build. You want the lowercase -x option.

···

On Mar 14, 2016, at 11:29 AM, Ryan Lovelett via swift-dev <swift-dev@swift.org> wrote:
On Mon, Mar 14, 2016, at 02:07 PM, Kenny Leung via swift-dev wrote:

$ cd ~/Source/build/Xcode-DebugAssert/swift-macosx-x86_64
$ open Swift.xcodeproj

Using the "ALL_BUILD" target in Xcode I attempted to build and was
greeted with the following error:

echo This\ Xcode\ project\ is\ configured\ for\ IDE\ use\ only\ and\
cannot\ build\ Swift.
This Xcode project is configured for IDE use only and cannot build
Swift.
false
make: ***
[/Users/ryan/Source/build/Xcode-DebugAssert/swift-macosx-x86_64/xcode_generate_for_ide_only_dummy.txt]
Error 1
Command /bin/sh failed with exit code 2

Most of my steps were taken from
https://github.com/apple/swift#developing-swift-in-xcode and then I just
filled in the blanks with my own imagination from there.

What is your typical process when adding a new feature to Swift?

I am also interested in this.

Thanks!

-Kenny

_______________________________________________
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


(Kenny Leung) #4

Hi Ben.

Argghh!

Question: why generate Xcode project files that don’t build?

Genuinely puzzled.

-Kenny

···

On Mar 14, 2016, at 12:55 PM, Ben Langmuir via swift-dev <swift-dev@swift.org> wrote:

On Mar 14, 2016, at 11:29 AM, Ryan Lovelett via swift-dev <swift-dev@swift.org> wrote:

On Mon, Mar 14, 2016, at 02:07 PM, Kenny Leung via swift-dev wrote:

Hi All.

With your indulgence, I’m looking for some newbie help here. I’ve gone
through the steps in the Swift project README, and generated an Xcode
project.

Are there any pointers to where to go next in the modify-compile-test
cycle? There are a zillion targets in the project, and none of them seem
to build.

This is my experience too. Just to add some more data points I did this:

$ utils/update-checkout
$ utils/build-script -t
$ utils/build-script -X --skip-build -- —reconfigure

See the documentation in `build-script -help` the capital -X option is designed to not be able to build. You want the lowercase -x option.

$ cd ~/Source/build/Xcode-DebugAssert/swift-macosx-x86_64
$ open Swift.xcodeproj

Using the "ALL_BUILD" target in Xcode I attempted to build and was
greeted with the following error:

echo This\ Xcode\ project\ is\ configured\ for\ IDE\ use\ only\ and\
cannot\ build\ Swift.
This Xcode project is configured for IDE use only and cannot build
Swift.
false
make: ***
[/Users/ryan/Source/build/Xcode-DebugAssert/swift-macosx-x86_64/xcode_generate_for_ide_only_dummy.txt]
Error 1
Command /bin/sh failed with exit code 2

Most of my steps were taken from
https://github.com/apple/swift#developing-swift-in-xcode and then I just
filled in the blanks with my own imagination from there.

What is your typical process when adding a new feature to Swift?

I am also interested in this.

Thanks!

-Kenny

_______________________________________________
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

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Ben Langmuir) #5

Hi Ben.

Argghh!

Question: why generate Xcode project files that don’t build?

Historically the project generated by -X had many fewer schemes and was much faster to open in the editor if you didn’t actually need to build (because you were building with ninja for example). I don’t know if that’s still relevant or not.

···

On Mar 14, 2016, at 1:51 PM, Kenny Leung via swift-dev <swift-dev@swift.org> wrote:

Genuinely puzzled.

-Kenny

On Mar 14, 2016, at 12:55 PM, Ben Langmuir via swift-dev <swift-dev@swift.org> wrote:

On Mar 14, 2016, at 11:29 AM, Ryan Lovelett via swift-dev <swift-dev@swift.org> wrote:

On Mon, Mar 14, 2016, at 02:07 PM, Kenny Leung via swift-dev wrote:

Hi All.

With your indulgence, I’m looking for some newbie help here. I’ve gone
through the steps in the Swift project README, and generated an Xcode
project.

Are there any pointers to where to go next in the modify-compile-test
cycle? There are a zillion targets in the project, and none of them seem
to build.

This is my experience too. Just to add some more data points I did this:

$ utils/update-checkout
$ utils/build-script -t
$ utils/build-script -X --skip-build -- —reconfigure

See the documentation in `build-script -help` the capital -X option is designed to not be able to build. You want the lowercase -x option.

$ cd ~/Source/build/Xcode-DebugAssert/swift-macosx-x86_64
$ open Swift.xcodeproj

Using the "ALL_BUILD" target in Xcode I attempted to build and was
greeted with the following error:

echo This\ Xcode\ project\ is\ configured\ for\ IDE\ use\ only\ and\
cannot\ build\ Swift.
This Xcode project is configured for IDE use only and cannot build
Swift.
false
make: ***
[/Users/ryan/Source/build/Xcode-DebugAssert/swift-macosx-x86_64/xcode_generate_for_ide_only_dummy.txt]
Error 1
Command /bin/sh failed with exit code 2

Most of my steps were taken from
https://github.com/apple/swift#developing-swift-in-xcode and then I just
filled in the blanks with my own imagination from there.

What is your typical process when adding a new feature to Swift?

I am also interested in this.

Thanks!

-Kenny

_______________________________________________
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

_______________________________________________
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


(Ryan Lovelett) #6

>
> Hi Ben.
>
> Argghh!
>
> Question: why generate Xcode project files that don’t build?

Historically the project generated by -X had many fewer schemes and was
much faster to open in the editor if you didn’t actually need to build
(because you were building with ninja for example). I don’t know if
that’s still relevant or not.

For me the confusion comes from the phrasing of the text in the
"Developing Swift in Xcode" [1] part of the README. It says:

you can set up an IDE-only Xcode environment using the build-script's -X flag

Perhaps rather than IDE it should say text-editor or something to that
effect. Whenever I hear or read IDE I kind of expect an integrated text
and compiler integration. Though maybe that's just me.

[1] https://github.com/apple/swift#developing-swift-in-xcode

···

On Mon, Mar 14, 2016, at 04:54 PM, Ben Langmuir via swift-dev wrote:

> On Mar 14, 2016, at 1:51 PM, Kenny Leung via swift-dev <swift-dev@swift.org> wrote:

>
> Genuinely puzzled.
>
> -Kenny
>
>
>> On Mar 14, 2016, at 12:55 PM, Ben Langmuir via swift-dev <swift-dev@swift.org> wrote:
>>
>>>
>>> On Mar 14, 2016, at 11:29 AM, Ryan Lovelett via swift-dev <swift-dev@swift.org> wrote:
>>>
>>> On Mon, Mar 14, 2016, at 02:07 PM, Kenny Leung via swift-dev wrote:
>>>> Hi All.
>>>>
>>>> With your indulgence, I’m looking for some newbie help here. I’ve gone
>>>> through the steps in the Swift project README, and generated an Xcode
>>>> project.
>>>>
>>>> Are there any pointers to where to go next in the modify-compile-test
>>>> cycle? There are a zillion targets in the project, and none of them seem
>>>> to build.
>>>
>>> This is my experience too. Just to add some more data points I did this:
>>>
>>> $ utils/update-checkout
>>> $ utils/build-script -t
>>> $ utils/build-script -X --skip-build -- —reconfigure
>>
>> See the documentation in `build-script -help` the capital -X option is designed to not be able to build. You want the lowercase -x option.
>>
>>> $ cd ~/Source/build/Xcode-DebugAssert/swift-macosx-x86_64
>>> $ open Swift.xcodeproj
>>>
>>> Using the "ALL_BUILD" target in Xcode I attempted to build and was
>>> greeted with the following error:
>>>
>>> echo This\ Xcode\ project\ is\ configured\ for\ IDE\ use\ only\ and\
>>> cannot\ build\ Swift.
>>> This Xcode project is configured for IDE use only and cannot build
>>> Swift.
>>> false
>>> make: ***
>>> [/Users/ryan/Source/build/Xcode-DebugAssert/swift-macosx-x86_64/xcode_generate_for_ide_only_dummy.txt]
>>> Error 1
>>> Command /bin/sh failed with exit code 2
>>>
>>> Most of my steps were taken from
>>> https://github.com/apple/swift#developing-swift-in-xcode and then I just
>>> filled in the blanks with my own imagination from there.
>>>
>>>>
>>>> What is your typical process when adding a new feature to Swift?
>>>
>>> I am also interested in this.
>>>
>>>>
>>>> Thanks!
>>>>
>>>> -Kenny
>>>>
>>>> _______________________________________________
>>>> 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
>>
>> _______________________________________________
>> 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

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Jordan Rose) #7

I just removed the -X flag completely in c43943d. It shouldn't be necessary any more. (Xcode will not autocreate schemes if the number of targets is extremely high.)

Jordan

···

On Mar 14, 2016, at 14:05 , Ryan Lovelett via swift-dev <swift-dev@swift.org> wrote:

On Mon, Mar 14, 2016, at 04:54 PM, Ben Langmuir via swift-dev wrote:

On Mar 14, 2016, at 1:51 PM, Kenny Leung via swift-dev <swift-dev@swift.org> wrote:

Hi Ben.

Argghh!

Question: why generate Xcode project files that don’t build?

Historically the project generated by -X had many fewer schemes and was
much faster to open in the editor if you didn’t actually need to build
(because you were building with ninja for example). I don’t know if
that’s still relevant or not.

For me the confusion comes from the phrasing of the text in the
"Developing Swift in Xcode" [1] part of the README. It says:

you can set up an IDE-only Xcode environment using the build-script's -X flag

Perhaps rather than IDE it should say text-editor or something to that
effect. Whenever I hear or read IDE I kind of expect an integrated text
and compiler integration. Though maybe that's just me.

[1] https://github.com/apple/swift#developing-swift-in-xcode


(Kenny Leung) #8

This is working for me now using

    utils/build-script -x — —reconfigure

It takes over an hour to build because it doesn’t seem to be as parallel as the ninja build (less than 3x parallel vs 8x parallel).

The resulting project doesn’t work in Xcode 7.2.1, but works fine in Xcode 7.3 beta. I can just go cmd-R and it runs! Thanks for the pointers!

There are about a million warnings about losing integer precision. Are these expected?

-Kenny

···

On Mar 16, 2016, at 9:30 AM, Jordan Rose via swift-dev <swift-dev@swift.org> wrote:

On Mar 14, 2016, at 14:05 , Ryan Lovelett via swift-dev <swift-dev@swift.org> wrote:

On Mon, Mar 14, 2016, at 04:54 PM, Ben Langmuir via swift-dev wrote:

On Mar 14, 2016, at 1:51 PM, Kenny Leung via swift-dev <swift-dev@swift.org> wrote:

Hi Ben.

Argghh!

Question: why generate Xcode project files that don’t build?

Historically the project generated by -X had many fewer schemes and was
much faster to open in the editor if you didn’t actually need to build
(because you were building with ninja for example). I don’t know if
that’s still relevant or not.

For me the confusion comes from the phrasing of the text in the
"Developing Swift in Xcode" [1] part of the README. It says:

you can set up an IDE-only Xcode environment using the build-script's -X flag

Perhaps rather than IDE it should say text-editor or something to that
effect. Whenever I hear or read IDE I kind of expect an integrated text
and compiler integration. Though maybe that's just me.

[1] https://github.com/apple/swift#developing-swift-in-xcode

I just removed the -X flag completely in c43943d. It shouldn't be necessary any more. (Xcode will not autocreate schemes if the number of targets is extremely high.)

Jordan
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Greg Parker) #9

That's probably a warning that is enabled by default in new Xcode projects but is not enabled in our other builds. (Starter project suggestion: pick a compiler warning, turn it on, and fix the problems.)

···

On Mar 16, 2016, at 1:54 PM, Kenny Leung via swift-dev <swift-dev@swift.org> wrote:

This is working for me now using

   utils/build-script -x — —reconfigure

It takes over an hour to build because it doesn’t seem to be as parallel as the ninja build (less than 3x parallel vs 8x parallel).

The resulting project doesn’t work in Xcode 7.2.1, but works fine in Xcode 7.3 beta. I can just go cmd-R and it runs! Thanks for the pointers!

There are about a million warnings about losing integer precision. Are these expected?

--
Greg Parker gparker@apple.com Runtime Wrangler