Example Sbt Project
This page will present an example project meant to quickly get you up and running with the miniboxing plugin.
Miniboxing-example
is an sbt project with a single source file. It is hosted on github at https://github.com/miniboxing/miniboxing-example and can be cloned by running:
Once you cloned the project, change directory to miniboxing-example
and run sbt
. In the console, you’ll have the following options:
compile
will compile the project (runningset scalacOptions += "-P:minibox:log"
beforecompile
will also log the class specialization process)run
will run the project: it will output the names of miniboxed classes for different cases, so you get a feeling of what miniboxing does under the hoodconsole
is probably the most interesting task, as it allows you to try your own programs with miniboxing (the other examples rely on using the console)
The README
file of the project shows the output you should expect for the different commands.
Like the miniboxing plugin, the example project is distributed under a 3-clause BSD license so you can build your project on top of it.
Please keep in mind that the miniboxing plugin is a beta release, and you may encounter occasional hickups as we are working towards a feature-complete and super-stable implementation.
We are doing our best to make miniboxing a stable transformation, with nightly builds and hundreds of test cases running every night. Yet, there are bugs we haven't fixed yet, so don't be surprised if the plugin fails on some programs. But please do file bugs for such failures, so we can fix them asap! (on average, we fixed a bug every 3 days for the last two months!)
The miniboxing release currently supports two specific versions of the Scala compiler:
- 2.11.7, the current release in the 2.11 series and
- 2.10.6, the current release in the 2.10 series
Due to compiler bugs (for the 2.10 series) and binary incompatibility of the compiler API (for the 2.11 series), we do not currently support the other versions. We are planning, however, to fully cross-compile against all 2.10 and 2.11 versions and to provide error messages for the earlier and unsupported versions of the Scala compiler. We're sorry for this, but the engineering effort in supporting even two versions of the compiler is significant!
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