Releases: links-lang/links
0.7.3
0.7.3
This minor release contains various bug fixes and improves the dynamic
loading facility for database drivers that was introduced in the
previous release.
Lazy Loading of Present Database Drivers
The loading of present database drivers is now deferred until an
actual attempt to connect to a database is made.
0.7.2
0.7.2
Version 0.7.2 contains mainly behind-the-scenes improvements, however they may
have a large impact on performance.
Package Structure and JBuilder
Links now uses JBuilder as its build system. In particular, this means that
there are now multiple Links packages:
links
contains the executablelinks-core
exposes the Links source as a library- (optional)
links-postgresql
is a dynamic loadable database driver for PostgreSQL.
Additionally, links-mysql
and links-sqlite
are dynamically-loadable database
drivers for MySQL and SQLite3 respectively, but while present in the source, are
not formally released or officially supported.
Exception Handling with Session Types
A recent draft paper
describes an exception handling mechanism which works in the presence of session
types. This is included in 0.7.2.
You can find out more on the wiki.
Performance Improvements
-
The JavaScript runtime library is now tail-call-optimised.
-
Links now uses linked lists on the client-side, as opposed to JS arrays. As
a rough idea of the performance increase: "The running time for calling map
on a 100,000 element list went from browser-angrily-kills-page-after-30-seconds
to taking around 1 second."
Bugfixes
- Issue 293: REPL responses now go to stdout and not stderr.
- Issue 149: inner functions may now have type annotations.
- Issue 280: polymorphic FFI annotations are now correctly universally quantified.
Dalry -- Bugfix
This release fixes some problems with displaying the examples page when installed from OPAM.
v0.7: Dalry
Version 0.7 -- Dalry
Version 0.7 of Links brings many new features (some of which have been in the works for over two years!)
Handlers for Algebraic Effects
Algebraic effects abstractly specify operations, which are given meaning by handlers. These provide a powerful mechanism for designing effectful code.
Read more in Hillerström & Lindley's Liberating Effects with Rows and Handlers and in examples/handlers
.
Distributed Concurrency
Whereas before, communication using session types and actor-style processes was limited to processes on the same concurrency runtime, Dalry provides the infrastructure to use these concurrency primitives across concurrency runtimes. See more in examples/distribution
.
Javascript FFI
Dalry brings support for natively calling JavaScript functions from Links client code. You can read more on the wiki page.
Standard Library
Links now has support for a standard library. We are hoping to gradually move things out of the more monolithic prelude, and support more data structures and algorithms out of the box. For now, we have included a minimal node-indexed binary tree library, which you can load with open BinaryTree
.
Support for Programmatic XML Construction
Links now supports the ability to create XML from variants, and variants from XML. These are implemented in the xmlToVariant
and variantToXml
functions.
Minor Changes
- Links now has native readline functionality by default. To turn this off, run with the
-r
flag. - Many bugfixes.
Gorgie - Update 1
First bugfix release of Gorgie