Skip to content

change intArrayOps and friends return types for efficiency#4435

Merged
lrytz merged 2 commits intoscala:2.12.xfrom
adriaanm:rework-4297
May 22, 2015
Merged

change intArrayOps and friends return types for efficiency#4435
lrytz merged 2 commits intoscala:2.12.xfrom
adriaanm:rework-4297

Conversation

@adriaanm
Copy link
Contributor

@adriaanm adriaanm commented Apr 7, 2015

Rework of #4297

@adriaanm
Copy link
Contributor Author

Aha! Now we got to the (external) partest failure :)

@adriaanm adriaanm modified the milestones: 2.12.0-M2, 2.12.0-M1 Apr 27, 2015
@adriaanm adriaanm self-assigned this Apr 27, 2015
@adriaanm
Copy link
Contributor Author

@xuwei-k, sorry, I won't have time to get this in for 2.12.0-M1. I'm moving this to M2.

Suppress (transitive) dependency on external scala-library
(through scala-partest). This caused trouble when binary compatibility
was not preserved for scala-library, as in scala#4297.

We already were doing this for `partest.compilation.path.noncore`,
but we seem to have missed `quick.partest-extras.build.path`.
@adriaanm
Copy link
Contributor Author

Re-reworked to leave non-implicit binary compatibility stubs in place.

Remove object allocation overhead by peeling off abstraction layer,
revealing that the `ArrayOps` implicit conversions in `Predef`
return value classes.

d3f879a turned `ArrayOps.of<???>` into value classes,
but the non-`AnyVal` result type of the corresponding
`<???>arrayOps` implicit conversions (`ArrayOps[_]`) caused boxing anyway.

The optimized versions are introduced under a new name,
so that the old ones (without `implicit`) can be kept
for binary compatibility, for now.
@adriaanm
Copy link
Contributor Author

/synch

@adriaanm
Copy link
Contributor Author

Woohoo! 🎈 review by @lrytz

@lrytz
Copy link
Member

lrytz commented May 22, 2015

LGTM!

lrytz added a commit that referenced this pull request May 22, 2015
change intArrayOps and friends return types for efficiency
@lrytz lrytz merged commit ba81cf0 into scala:2.12.x May 22, 2015
@adriaanm adriaanm deleted the rework-4297 branch August 5, 2015 01:30
@adriaanm adriaanm added 2.12 and removed 2.12 labels Oct 29, 2016
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