Miniboxing - Latest Developments
In the last three months the miniboxing plugin has seen a serious development spree, with a completely redesigned transformation, which fixes many of the limitations and bugs of the current approach. The development has been largely hidden in the topic/erasure-rebase branch, which, at the moment of writing, is 150 commits in front of the wip branch and 250 commits in front of master.
And we need your help to review the changes!
In the coming two weeks a pull request from branch topic/erasure-rebase will be made to wip. A technical document explaining the changes will be ready in time for the pull request.
Anyone interested in miniboxing is kindly invited to review at the changes, especially the test cases and their reference output (test file X.scala
has reference output X.check
: see all tests here). Once the pull request is made, everyone can try out the new plugin, comment on the source code and point out any suboptimality in the transformation. If all goes well, a week after the pull request has been made, it will be merged. This will also bump the plugin version from 0.1-SNAPSHOT
to 0.2-SNAPSHOT
.
So keep an eye out for the pull request and please help review it!
But what does this bring?
The list is quite long, but here’s a summary: * a more principled transformation, with a mechanism which generalizes SIP-15: Value Classes * avoiding unnecessary hopping between the boxed and unboxed representations (tests: 1 2 3 4 5 6 7 8) * improved nested class transformation (tests: 1 2 3 4 5) * improved overriding of class members (tests: 1 2 3 4 5 6 7) * simplified method bridging mechanism (tests: 1 2 3 4 5 6 7 8) * removing many mechanisms made redundant by the latest developments :)
Update
The pull request has been merged! For more details see the presentation.
Comments
Comments are always welcome! But to make the best use of them, please consider this:
- If you have questions or feedback regarding the content of this page, please leave us a comment!
- If you have general questions about the miniboxing plugin, please ask on the mailing List.
- If you found a bug, please let us know on the github issue tracker.
Thanks! Looking forward to your messages!
comments powered by Disqus