Skip to content

Wip/modularize xml parsres #7

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

jsuereth
Copy link

@jsuereth jsuereth commented Sep 6, 2013

Fixed dbuild metadata for modularization so dbuild can appropriately determine dependencies and ensure modules are resolved externally (or built externally).

That is, scaladoc is still in the scala-compiler artifact, so let dbuild know
and it won't freak out.
@adriaanm
Copy link
Owner

adriaanm commented Sep 6, 2013

Thanks -- Rebased and merged

@adriaanm adriaanm closed this Sep 6, 2013
adriaanm pushed a commit that referenced this pull request Feb 10, 2014
Swathes of important logic are duplicated between `findMember`
and `findMembers` after they separated on grounds of irreconcilable
differences about how fast they should run:

    d905558 Variation #10 to optimze findMember
    fcb0c01 Attempt #9 to opimize findMember.
    71d2ceb Attempt #8 to opimize findMember.
    77e5692 Attempty #7 to optimize findMember
    275115e Fixing problem that caused fingerprints to fail in
    e94252e Attemmpt #6 to optimize findMember
    73e61b8 Attempt #5 to optimize findMember.
    04f0b65 Attempt #4 to optimize findMember
    0e3c70f Attempt #3 to optimize findMember
    41f4497 Attempt #2 to optimize findMember
    1a73aa0 Attempt #1 to optimize findMember

This didn't actually bear fruit, and the intervening years have
seen the implementations drift.

Now is the time to reunite them under the banner of `FindMemberBase`.

Each has a separate subclass to customise the behaviour. This is
primarily used by `findMember` to cache member types and to assemble
the resulting list of symbols in an low-allocation manner.

While there I have introduced some polymorphic calls, the call sites
are only bi-morphic, and our typical pattern of compilation involves
far more `findMember` calls, so I expect that JIT will keep the
virtual call cost to an absolute minimum.

Test results have been updated now that `findMembers` correctly
excludes constructors and doesn't inherit privates.

Coming up next: we can actually fix SI-7475!
adriaanm pushed a commit that referenced this pull request Nov 17, 2014
SI-6051 Test case, the issue seems to be fixed.
adriaanm pushed a commit that referenced this pull request Mar 11, 2015
Exclude transitive scala-library dependency
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