Skip to content

[Serialization] Proof-of-concept: drop overriding methods if the base is missing #8580

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

Conversation

jrose-apple
Copy link
Contributor

Proof-of-concept for this sort of recovery. In the real world, it's more likely that this will happen due to differences between Swift 3 and Swift 4, rather than changes in what macros are defined, but the latter can still happen when debugging.

There's a lot to do here to consider this production-ready. There are no generics involved and no potential circular references, and the rest of the compiler isn't prepared for this either. But it's cool to see it working!

Actually recovering is hidden behind the new -enable-experimental-deserialization-recovery option; without it the compiler will continue to eagerly abort.

...but don't actually try to handle any of them yet. In fact, don't
even bother to /produce/ them yet, except for resolving
cross-references.
This is important information in a crash trace, so let's make sure to
preserve it even as the stack unwinds.
Proof-of-concept for this sort of recovery. In the real world, it's
more likely that this will happen due to differences between Swift 3
and Swift 4, rather than changes in what macros are defined, but the
latter can still happen when debugging.

There's a lot to do here to consider this production-ready. There are
no generics involved and no potential circular references, and the
/rest/ of the compiler isn't prepared for this either. But it's cool
to see it working!

Actually recovering is hidden behind the new
-enable-experimental-deserialization-recovery option; without it the
compiler will continue to eagerly abort.
@jrose-apple
Copy link
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Contributor

swift-ci commented Apr 6, 2017

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 73d4526
Test requested by - @jrose-apple

@jrose-apple
Copy link
Contributor Author

Flaky LLDB test? Non-flaky LLDB test?

@swift-ci Please test Linux

@swift-ci
Copy link
Contributor

swift-ci commented Apr 6, 2017

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 73d4526
Test requested by - @jrose-apple

@jrose-apple
Copy link
Contributor Author

@swift-ci Please test

@jrose-apple jrose-apple merged commit e7d1027 into swiftlang:master Apr 10, 2017
@jrose-apple jrose-apple deleted the enable-experimental-deserialization-recovery branch April 10, 2017 20:57
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.

2 participants