Skip to content
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

Ensure CFE produces consistent interfaceTargets whether dependencies are source or kernel #39375

Closed
mkustermann opened this issue Nov 13, 2019 · 2 comments
Labels
area-front-end Use area-front-end for front end / CFE / kernel format related issues.

Comments

@mkustermann
Copy link
Member

Currently the interfaceTarget produced by the CFE differs:

  • if CFE reads the entire application in source form the interfaceTarget points to mixin classes
  • if CFE reads only one library and compiles against kernel file dependencies / outlines the interfaceTarget points to the members of mixin application classes.
@mkustermann
Copy link
Member Author

/cc @johnniwinther @jensjoha

@mkustermann mkustermann added the area-front-end Use area-front-end for front end / CFE / kernel format related issues. label Nov 13, 2019
@mkustermann mkustermann changed the title Ensure CFE produces consistent interfaceTypes whether dependencies are source or kernel Ensure CFE produces consistent interfaceTargets whether dependencies are source or kernel Nov 13, 2019
dart-bot pushed a commit that referenced this issue Nov 13, 2019
…ixin application classes

When the CFE compiles an application as a whole (reads in all source
code), the interface targets to members of mixin applications are the
original mixin classes.

When the CFE compiles an application modularly (dependencies are
supplied as kernel files), the interface targets to members of mixin
applications are the copied members in the mixin application classes.

This slight difference does not surface in any test failures. Yet if we
start running our AOT kernel pipeline, we will deduplicate the mixin
application classes. This leaves dangling references (with no target).

The C++ AOT compiler, `gen_snapshot`, will crash if it hits any of
those.

Issue #39375

Change-Id: I17a57370a87cfbdc174829c2e68ecdb7c4a9757e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124993
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
@johnniwinther
Copy link
Member

This should be resolve with the addition of mixin stubs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-front-end Use area-front-end for front end / CFE / kernel format related issues.
Projects
None yet
Development

No branches or pull requests

2 participants