Skip to content

Fix witness thunk archetypes #5338

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

Conversation

slavapestov
Copy link
Contributor

Work in progress.

@swiftix with this patch, the generic inliner no longer crashes, but instead compiling Swift.o appears to hang. I'll keep looking.

@swiftix
Copy link
Contributor

swiftix commented Oct 18, 2016

@slavapestov Interesting. It is either an infinite loop somewhere or it just inlines too much, bloats the code and make it look like it takes forever.

@slavapestov
Copy link
Contributor Author

My patch has a few of its own test failures too. I'm about to push a fixed version.

@slavapestov slavapestov force-pushed the fix-witness-thunk-archetypes branch from a487630 to 813230e Compare October 18, 2016 03:08
@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test

… conformance

Sema produces a weird mix of requirement and witness archetypes when
it builds witness substitutions. Instead of hacking around this in
SILGen, just build new archetypes, since we already have to use an
ArchetypeBuilder to get the correct generic signature on the interface
type.

Then, we just have to map the witnessSubs provided by Sema to use our
new archetypes.

This unblocks some work on generic inlining.

Fixes <rdar://problem/28765006>.
@slavapestov slavapestov force-pushed the fix-witness-thunk-archetypes branch from 813230e to 58f013e Compare October 18, 2016 08:12
@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test

@slavapestov
Copy link
Contributor Author

@swift-ci Please clean test Linux

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - a487630
Test requested by - @slavapestov

@slavapestov
Copy link
Contributor Author

@swift-ci Please clean test Linux

@slavapestov
Copy link
Contributor Author

@erg Any idea why the Linux build is failing? Looks like swiftpm is not being rebuilt.

@slavapestov slavapestov merged commit 25d58f9 into swiftlang:master Oct 18, 2016
@swiftix
Copy link
Contributor

swiftix commented Oct 18, 2016

@slavapestov Thanks, Slava! It works. I can compile the stdlib with it.

@erg
Copy link
Contributor

erg commented Oct 20, 2016

@slavapestov It's an incremental build and the source files don't change so nothing rebuilds. It would be fine, except the compiler changed between runs and the version number on the compiled files is too low, so it fails. We don't have a mechanism in place to recompile everything if the compiler changes yet.

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.

4 participants