Skip to content

Releases: Co-dfns/Co-dfns

Co-dfns 2017.12.1: User Command!

30 Nov 21:43
Compare
Choose a tag to compare

This release includes a new user-command functionality that should make it much easier to work with the compiler. Please see this video for details on the new functionality:

https://youtu.be/BBaCKf7Od6I

What's New

  • We will report errors in ArrayFire version mismatch more explicitly now in the log file
  • Updated CUDA requirements
  • User-command for running the compiler without needing to load in a namespace first
  • There is no need for an explicit build path now, files are generated in the current working directory
  • Unified backend is the default again
  • Backend and compiler path detection is automatic now, no need to set the Visual Studio path
  • Updated the Plot function to perform better
  • BSO is no longer available
  • Made the handling of the rth variable more reliable

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.patreon.com/arcfide

Co-dfns 2017.11.1

02 Nov 06:41
Compare
Choose a tag to compare

What's New

  • Parser now supports ambiguous parse trees
  • User-defined operators are now supported in the parser
  • Indexed assignment and full bracket indexing are now supported in the parser
  • Code has been formatted better

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.patreon.com/arcfide

Co-dfns 2017.10.1

04 Oct 05:17
Compare
Choose a tag to compare

What's New

  • Named namespace is supported now, though not used
  • Fixed issue with Table
  • Matrix Inverse is now supported
  • Matrix Divide is now supported
  • Minimal complex number support

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.09.2: Dyalog '17 Special

12 Sep 07:11
Compare
Choose a tag to compare

Here's a nice Dyalog '17 User Meeting special!

This fixes a few bugs that have appeared during the conference and delivers some of the features that people wanted to use and play with during the conference.

What's New

  • Simplify the installation variables
  • Add support for complex numbers
  • Add support for FFT's through the []FFT and []IFFT system functions
  • Fix some bugs in the compiler backend calls
  • Workaround some Visual Studio bugs for some users

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.09.1

28 Aug 15:36
Compare
Choose a tag to compare

We're releasing this a bit early so that we can begin work on some pretty serious changes to the system to improve reliability in a few areas (particularly in terms of name resolution of duplicate names and in performance of the compiler as a whole).

There are some limitations in the ArrayFire 3.5.0 backend that are being addressed with new releases, so if you get some invalid argument errors (203) from the ArrayFire backend, you should be able to remove them by upgrading your version of ArrayFire when the new version is released.

What's New

  • Bugs in shape have been fixed
  • Bugs in reshape have been fixed
  • Generated code is a bit better

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.08.1

04 Aug 02:38
Compare
Choose a tag to compare

This release is particularly focused on improving the user experience with better coverage on some primitives, more reliable results, and error reporting improvements that should help to reduce or eliminate cases of APL core dumps appearing as a result of underlying backend errors. Instead, the errors should now be reported and displayed through the Dyalog ⎕DMX error mechanism. The log file produced by the compiler has also been improved, and fewer useless warnings should be displayed, making errors in the log easier to follow.

The compiler as a whole now uses the ⎕DMX mechanism for reporting errors, and will indicate the vendor as "Co-dfns" when the error originates from the Co-dfns side, making it easier to tell whether there was an error in your Dyalog code, or whether the error originates in Co-dfns compiled code. AF backend errors will now include their full error text in the ⎕DMX message field, as well, to facilitate bug reporting and debugging.

What's New

  • A new testing harness allows for much more rapid testing of the code and running the complete test suite (orders of magnitude).
  • Improve error reporting in the Co-dfns compiled code to populate the ⎕DMX structure with more useful information
  • Make use of new ⎕DMX information in testing harness
  • Errors thrown inside of the Co-dfns compiler now unwind the stack and handle memory more reliably
  • Logging of compiler information now omits some useless warnings to make debugging easier
  • The ○ function now handles a wider range of inputs and works over all data types
  • The And function now handles LCM over all data types
  • The Or function now handles GCD over all data types
  • Rank now supports left and right arguments
  • Improve error handling and reporting when a GPU/AF error occurs; this should reduce or eliminate cases where Dyalog APL dumps core because of an unhandled backend exception
  • Fix an issue with selecting the backend target on Windows

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.07.1

03 Jul 10:11
Compare
Choose a tag to compare

What's New

  • Caching API is working again
  • Caching API has been simplified
  • Fix bug in parsing for numerically suffixed variable names
  • Parsing robustness for empty names and bad statements has been improved
  • Miscellaneous code cleanups
  • Added SaveImage for saving images created with Co-dfns
  • Full support for Laminate now
  • Support for bracket/axis operator for certain functions
  • Fixed an issue with the parser and expand/replicate
  • Fixed an issue with outer product parsing
  • Fixed an issue with operators that take array arguments
  • Fixed an issue with parsing some variable names
  • Parser handles comments now
  • Logical OR handles Boolean values of wider data types now

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.06.1

01 Jun 00:59
Compare
Choose a tag to compare

In this release we are glad to finally have most of the regressions fixed, with support for all the major computing platforms again. This is also the release in which we have finished up our support recursive functions. We've also added support for graphics functionality to help begin integrating GPU visualization with GPU computation in APL.

What's New

  • Recursion is now supported
  • Function inlining is currently limited to a recursion depth of 3 to avoid explosive code growth for recursive functions
  • Function inlining reliability has been greatly improved
  • Important code cleanups
  • A bug with nested functions has been fixed
  • Forward references with recursion are now handled in the parser
  • Support for the primitive in recursive functions
  • Support Linxu/Mac platforms
  • Support OpenCL and CPU backends
  • Fix up some code in the runtime to improve reliability
  • Graphics and Display support for Animations, Plots, Histograms, Images, &c.
  • We now allow for manual selection of the backend (afcuda, afopencl, afcpu)
  • Generated C++ code is now more standards compliant
  • Update to using Visual Studio 2017 by default

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.05.1

03 May 23:28
Compare
Choose a tag to compare

Regressions

  • Currently Windows is the only tested environment
  • Currently only NVIDIA backend is fully functional
  • Some functions unnecessarily promote their data to 64-bit Doubles to preserve correctness
  • Certain code combinations with certain functions may lead to incorrect results in cases where array result slots are shared with array input slots.

What's New

  • Conditional guards now support compound expressions
  • Improved parsing of statements to lead to better error messages and parsing behavior more in line with the interpreters
  • Much improved the parsing speed from previous iterations
  • Improved parsing handling of complex operators
  • Better handling of bracket operators
  • We now handle internal bindings inside of expressions
  • Fixed a bug with the handling of multiple names being assigned to the same value
  • Fixed a bug in handling multiple constant propagation paths failing to propagate through the chain
  • Multiple simplifications and code cleanups in the compiler core

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide

Co-dfns 2017.04.1

04 Apr 01:23
Compare
Choose a tag to compare

This is a pretty small but significant release. We've cleaned up a few things, added the last missing primitives, improved output a bit, and begun the work towards recursion and branching.

Regressions

  • Currently Windows is the only tested environment
  • Currently only NVIDIA backend is fully functional
  • Some functions unnecessarily promote their data to 64-bit Doubles to preserve correctness
  • Certain code combinations with certain functions may lead to incorrect results in cases where array result slots are shared with array input slots.

What's New

  • Expand and Expand First are now implemented
  • Find has now been implemented
  • Improve output and reliability of Xml
  • We have a new logo!
  • Conditional guards with a single, atomic test expression (variable references are okay) are supported now

Support Co-dfns Research and Development

If you would like to support Co-dfns and its future, please consider a supporting contribution. 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.

https://www.paypal.me/arcfide