Learn all about miniboxing in a 5 minute demo.

Miniboxing - Latest Developments

(back to news articles )

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 :)


The pull request has been merged! For more details see the presentation.


Comments are always welcome! But to make the best use of them, please consider this:

Thanks! Looking forward to your messages!

comments powered by Disqus