Skip to content

iterative deepening search and append example#4

Merged
namin merged 7 commits intonamin:topic-virt-patmat-2.10.0from
TiarkRompf:topic-virt-patmat-2.10.0
Feb 20, 2013
Merged

iterative deepening search and append example#4
namin merged 7 commits intonamin:topic-virt-patmat-2.10.0from
TiarkRompf:topic-virt-patmat-2.10.0

Conversation

@TiarkRompf
Copy link

maybe we should start a repo on its own for this stuff (if we keep hacking on it)

namin added a commit that referenced this pull request Feb 20, 2013
iterative deepening search and append example
@namin namin merged commit d5ab4f7 into namin:topic-virt-patmat-2.10.0 Feb 20, 2013
@namin
Copy link
Owner

namin commented Feb 20, 2013

Thanks! good point about starting a repo... I like having it with Scala-Virtualized atm to prepare for the release.

@TiarkRompf
Copy link
Author

agree about releases ... i just think it makes sense to keep the tests focused on virtualized features and not grow arbitrary dsl experiments in here.

namin pushed a commit that referenced this pull request Sep 7, 2014
When an application of a blackbox macro is used as an extractor in a
pattern match, it triggers an unconditional compiler error,
preventing customizations of pattern matching implemented with macros.
namin pushed a commit that referenced this pull request Sep 7, 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 scala#10 to optimze findMember
    fcb0c01 Attempt scala#9 to opimize findMember.
    71d2ceb Attempt scala#8 to opimize findMember.
    77e5692 Attempty scala#7 to optimize findMember
    275115e Fixing problem that caused fingerprints to fail in
    e94252e Attemmpt scala#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!
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