<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""># The Disciplined Disciple Compiler (DDC) v.0.5.1</div><div class=""><br class=""></div><div class="">The Disciple language is an experimental dialect of Haskell which investigates static typing and program transformation in the presence of computational effects. Version 0.5.1 is “working alpha” quality, meaning there is a complete system that can be hacked around with, but it’s not yet industrial strength.</div><div class=""><br class=""></div><div class="">Homepage: <a href="http://disciple.ouroborus.net/" class="">http://disciple.ouroborus.net/</a></div><div class="">Github: <a href="https://github.com/DDCSF/ddc" class="">https://github.com/DDCSF/ddc</a></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">## Features:</div><div class=""><div class=""><br class=""></div><div class="">* Haskell-like source language, so Haskell-like programs should work with minor modifications.<br class=""></div><div class="">* Modal region and effect system using ‘box’ and ‘run’ to suspend and force computations.<br class=""></div><div class="">* Higher rank polymorphism with bidirectional type inference.<br class=""></div><div class="">* Simple two space copying garbage collection.<br class=""></div><div class="">* Default call-by-value evaluation.<br class=""></div><div class="">* Typed external core language.<br class=""></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">## New in This Release:</div><div class=""><br class=""></div><div class="">* Copying garbage collection.</div><div class=""><div class="">We now do simple two space Cheney-scan garbage collection, and grow the heap as needed. We use LLVM shadow stack support to retrieve the GC roots.<br class=""><br class=""></div><div class="">* Implicit parameters.<br class="">We now support Agda-style implicit parameters, where arguments are construct at use-sites using whatever bindings are currently in scope. For example, we can perform Haskell-style ad-hoc overloading using implicit dictionaries:<br class=""><br class=""></div><div class=""><font face="Menlo" class="">  elem {Eq a} (k: a) (xx: List a): Bool</font></div><div class=""><font face="Menlo" class="">   = case xx of</font></div><div class=""><font face="Menlo" class="">        Nil             -> False</font></div><div class=""><font face="Menlo" class="">        Cons x xs</font></div><div class=""><font face="Menlo" class="">         | x == k       -> True</font></div><div class=""><font face="Menlo" class="">         | otherwise    -> elem k xs</font></div><br class="Apple-interchange-newline"><div class="">* Floating point primitives.<br class="">The addition of floating point primitives combined with proper storage management now lets us write more realistic example programs, like the ray tracer demo, which was also described on the blog [1].</div><div class=""><br class=""></div><div class="">* Travis continuous integration.<br class="">Every push to the GitHub repo now gets tested by the Travis buildbot [2]. Branches can also be tested individually before being merged.<br class=""><br class=""></div><div class="">* Support for LLVM versions 3.1 - 5.0<br class="">We query the version of the installed LLVM compiler and generate LLVM code with the required syntax. This process now works for versions 3.1 through to 5.0, which is the latest at the time of this release.<br class=""><br class=""></div><div class="">* New home page with the start of a language specification.<br class="">The home page now consists of the user manual generated from Sphinx / Restructured Text source. The manual includes grammars for source and core lanuages, as well as previous release notes. The bug tracker is still accessible via the development wiki.<br class=""><br class=""></div><div class="">* Bug fixes for offside rule, compilation of nested pattern matching, string escapes, unsolved meta variables.<br class="">Now with more bake.<br class=""><br class=""></div><div class=""><div class="">[1] <a href="http://disciple-devel.blogspot.com.au/2017/07/ray-tracer-demo.html" class="">http://disciple-devel.blogspot.com.au/2017/07/ray-tracer-demo.html</a></div></div><div class="">[2] <a href="https://travis-ci.org/DDCSF/ddc" class="">https://travis-ci.org/DDCSF/ddc</a></div><div class="">[3] <a href="http://disciple.ouroborus.net/" class="">http://disciple.ouroborus.net/</a></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">## Work In Progress<br class=""><br class=""></div><div class="">We are moving to a new indexed binary format for interface files, as re-parsing interface files is currently a bottleneck. The file format is to be provided by the Shimmer project [4], which has been split out into a separate repository.<br class=""><br class=""></div><div class="">[4] <a href="https://github.com/DDCSF/shimmer" class="">https://github.com/DDCSF/shimmer</a></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">## People</div><div class=""><br class="">The following people contributed to DDC since the last release:<br class="">* Chris Hall - Travis continuous integration.<br class=""><div class="">* Amos Robinson - Build system fixes, start on machine fusion transform.<br class=""></div><div class="">* Ben Sinclair - Build system fixes.<br class=""></div><div class="">* Jacob Stanley - Copying garbage collection.<br class=""></div><div class="">* Ben Lippmeier - Copying garbage collection, implicit parameters, floating point, new home page.<br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div>## Previous Releases<br class=""><br class=""></div><div class="">* 2016/09 DDC 0.4.3: Nested patterns and guards, simple type synonyms.<br class=""><div class="">* 2016/04 DDC 0.4.2: Compilation of higher order functions, run and box casts.<br class=""></div><div class="">* 2014/03 DDC 0.4.1: Added bi-directional type inference and region extension.<br class=""></div><div class="">* 2013/07 DDC 0.3.2: Added Tetra and Flow language fragments.<br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div>## More Information<br class=""><br class=""></div><div class="">Home Page: <a href="http://disciple.ouroborus.net" class="">http://disciple.ouroborus.net</a></div><div class="">The GitHub site: <a href="http://github.com/DDCSF/ddc" class="">http://github.com/DDCSF/ddc</a></div><div class="">Development Wiki: <a href="http://trac.ouroborus.net/ddc" class="">http://trac.ouroborus.net/ddc</a></div><div class="">Development Blog: <a href="http://disciple-devel.blogspot.com.au/" class="">http://disciple-devel.blogspot.com.au/</a></div><div class="">Mailing List: <a href="http://groups.google.com/group/disciple-cafe" class="">http://groups.google.com/group/disciple-cafe</a></div><div class=""><br class=""><br class=""></div></div></body></html>