2 min read

Co-dfns Release 2016.8.1: Runtime, Acceleration, and a New Schedule


This is the first release of the Co-dfns compiler on the new rapid release cycle. This is also the first version of the compiler that we are marking as not a "pre-release" version. This means that the compiler is ready for use by external users and we welcome bug reports and other issues related to the features and stability of the compiler in the real world.

The New Release Cycle

It has been a struggle to get Co-dfns to what we would call a "version 1" release. The problem is that there are many conflicting requirements for something when you are thinking in a "version 1" mindset. Unfortunately, Co-dfns just doesn't fit well into that sort of versioning scheme. Co-dfns will always be about responding to the needs of the research, the users, and the developers, which doesn't go along with slow, drawn out release cycles that are based on features.

To fix this, we've gone to a fixed, rapid release cycle, so that users can rely on getting fixes into supported releases quickly, and they can stay abreast of the latest performance and stability enhancements without having to follow the GitHub tree, which can be a wild ride. This will give them the ability to have predictability while still seeing forward progress on a regular basis.

What this means in practice is that every month you should see a new release of Co-dfns, versioned by the development month. These are considered the stable releases and are what you should use to file bug reports against.

New Features

There are so many changes from the last release that it is hard to know where to begin. Here's an overview:

  • The compiler is now much more stable than it was
  • Bitvector support is now found in most of the primitives
  • Most of the runtime is now implemented, there are still a few glaring gaps, but these are quickly closing
  • Compiler performance has drastically improved across the board, and you should now expect to see 5× - 300× performance improvements over the interpreter across a wide variety of programs. There are still major performance limitations, but if you encounter one of these in your code, please submit an issue for it in the GitHub issue tracker so that we can fix it.

Note on Licensing

Please remember that code produced by this compiler is licensed under the AGPL like the compiler itself is. If you would like to use your code in contexts that are not friendly to the AGPL or you would like different licensing terms, please contact Dyalog, Ltd. for additional licensing options.

Support Co-dfns Research and Development through Open Work

If you would like to support Co-dfns and its future, please consider a small supporting subscription through Gratipay. It greatly helps keep Co-dfns open and research friendly, as well as making it possible to keep the development process open. If enough funds come in through this avenue, it will enable additional resources to make the Co-dfns development cycle that much more effective.