|
| 1 | +Idris 2 version 0.8.0 Released |
| 2 | +############################## |
| 3 | + |
| 4 | +:date: 2025-10-31 21:00 |
| 5 | +:tags: Release |
| 6 | +:category: News |
| 7 | +:author: CodingCellist |
| 8 | + |
| 9 | +A new version (0.8.0) of Idris 2 has been released. You can download the source |
| 10 | +(including generated Scheme and Racket files for bootstrapping) from the |
| 11 | +`download page <{filename}../pages/download.rst>`_. |
| 12 | + |
| 13 | +Highlights include: |
| 14 | + |
| 15 | +* Autobind and Typebind modifier on operators allow the user to customise the |
| 16 | + syntax of operator to look more like a binder. |
| 17 | +* Totality checking will now look under data constructors, so ``Just xs`` will |
| 18 | + be considered smaller than ``Just (x :: xs)``. |
| 19 | +* `Typst <https://typst.app/>`_ files can be compiled as Literate Idris. |
| 20 | +* Constructors with certain tags (``CONS``, ``NIL``, ``JUST``, ``NOTHING``) are |
| 21 | + replaced with ``_builtin.<TAG>`` (eg ``_builtin.CONS``). This allows the |
| 22 | + identity optimisation to optimise conversions between list-shaped things. |
| 23 | +* Refactored ``Uninhabited`` implementation for ``Data.List.Elem``, |
| 24 | + ``Data.List1.Elem``, ``Data.SnocList.Elem``, and ``Data.Vect.Elem`` so it can |
| 25 | + be used for homogeneous (``===``) and heterogeneous (``~=~``) equality. |
| 26 | +* The ``RefC`` backend compiler can emit precise reference counting instructions |
| 27 | + where a reference is dropped as soon as possible. This allows you to reuse |
| 28 | + unique variables and optimize memory consumption. |
| 29 | +* Fix memory leaks of ``IORef`` in ``RefC`` backend. Now that ``IORef`` holds |
| 30 | + values by itself, ``global_IORef_Storage`` is no longer needed. |
| 31 | +* The NodeJS executable output to ``build/exec/`` now has its executable bit |
| 32 | + set. That file already had a NodeJS shebang at the top, so now it is fully |
| 33 | + ready to go after compilation. |
| 34 | + |
| 35 | +For a detailed list of changes, see the |
| 36 | +`CHANGELOG <https://github.com/idris-lang/Idris2/blob/15a3e4e70843f7a34100f6470c04b791330788df/CHANGELOG.md>`_. |
| 37 | + |
| 38 | +Thanks to the many people who have contributed, both old and new, whether by |
| 39 | +adding features, fixing code, reporting issues, or anything else. You can find a |
| 40 | +list of |
| 41 | +`contributors <https://github.com/idris-lang/Idris2/blob/15a3e4e70843f7a34100f6470c04b791330788df/CONTRIBUTORS>`_ |
| 42 | +in the `GitHub repository <https://github.com/idris-lang/Idris2>`_. |
| 43 | + |
| 44 | +Happy Hallowe'en! Have fun! |
0 commit comments