Skip to content

Incremental 🛠 for C targets #229

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 2, 2016
Merged

Conversation

aciidgh
Copy link
Contributor

@aciidgh aciidgh commented Mar 31, 2016

No description provided.

args += ["-MMD", "-MT", "dependencies", "-MF", path.deps]
args += ["-c", path.source, "-o", path.object]

let node = "<\(module.name).\(path.filename)>"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There isn't a need to use a virtual output node here, the output node can just be the actual output object file (which can also be the Command identifier).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like this? I don't really know what is a virtual node, can you explain a bit?

let clang = ClangTool(desc: "Compiling \(module.name) \(path.filename)",
                                  inputs: dependencies + [path.source, mkdir.node],
                                  outputs: [path.object],
                                  args: args,
                                  deps: path.deps)

            let command = Command(node: path.object, tool: clang)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Virtual nodes are formed by default when a node name looks like ""... the build system will assume that these do not refer to actual files. See:
http://llbuild.readthedocs.org/en/latest/buildsystem.html#node-attributes

Using virtual nodes is useful when you want to aggregate a set of actual files to build into a single node you can refer to as an input somewhere else, but in this case we have a real single output so we can just use that.

Your updated hunk does the right thing (and let node can go away).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it, thanks.
let node isn't there...maybe you're seeing old diff somehow?

@ddunbar
Copy link
Contributor

ddunbar commented Apr 1, 2016

Patch looks great! I added a few minor comments, otherwise please feel free to merge once up-to-date and passing tests.

@aciidgh
Copy link
Contributor Author

aciidgh commented Apr 1, 2016

@ddunbar made suggested changes, re-review

@mxcl
Copy link
Contributor

mxcl commented Apr 1, 2016

@swift-ci Please test

@mxcl
Copy link
Contributor

mxcl commented Apr 1, 2016

LGTM

@aciidgh
Copy link
Contributor Author

aciidgh commented Apr 2, 2016

tests passed but got conflicted out
@mxcl CI please

@ddunbar
Copy link
Contributor

ddunbar commented Apr 2, 2016

@swift-ci please test

@aciidgh aciidgh merged commit 0d03048 into swiftlang:master Apr 2, 2016
@aciidgh aciidgh deleted the c_incremental branch April 2, 2016 18:29
aciidgh pushed a commit to aciidgh/swift-package-manager that referenced this pull request Jan 11, 2019
Sort files which are less likely to be authored at the end, in order to find cycles based on authored files first

See <rdar://problem/37768597>
aciidgh pushed a commit to aciidgh/swift-package-manager that referenced this pull request Jan 11, 2019
)

This reverts commit 17e8e68 because the
`insert()` is actually rewriting the array for every single discovered
dependency. This can cause a significant performance hit.

See <rdar://problem/38225211>
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 28, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 28, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

My understanding is that on Darwin, the unversioned triple should still
be used for the target flag, so special-case it here.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 29, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap and when making
subdirectories during the build.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 29, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 30, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 30, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 30, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jun 30, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jul 1, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Jul 21, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Aug 17, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Aug 17, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Aug 17, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Sep 8, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Sep 8, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Sep 29, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Sep 29, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
3405691582 added a commit to 3405691582/swift-package-manager that referenced this pull request Sep 29, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr swiftlang#229.
neonichu pushed a commit that referenced this pull request Oct 18, 2021
The target flag should take the versioned triple, otherwise on platforms
with versioned triples, the standard library won't be found.

On Darwin, the unversioned triple should still be used throughout. This
necessitates special-casing in the bootstrap script and when making
subdirectories during the build.

This platform-specific branch is encapsulated in a small extension
on Triple in swiftpm. All tests that use the `tripleString` to construct
the `.build` subdirectory are updated accordingly.

See TSC pr #229.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants