this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

[new release] links, links-postgresql, links-sqlite3 and links-mysql (0.9.8)

CHANGES:

This release includes minor bug fixes, improvements, and a breaking change regarding the syntax of handlers.

## Queries mixing set and bag semantics
Links now provides experimental support for SQL queries with grouping and
aggregation. These require the _mixing_ normaliser (`mixing_norm=on` in the
configuration file).

The result of grouping over a relation is represented as a finite map, which in
Links is treated as a list of (grouping key, associated subrelation) pairs.
Aggregation can then be applied groupwise to a finite map to obtain again a
relation. Such Links queries are translated to SQL queries using `group by` and
aggregates.

Further information on this feature is provided in the [Links GitHub
wiki](https://github.com/links-lang/links/wiki/Grouping-and-aggregation).

## New syntax for handlers

The syntax for handlers has changed. Instead of
```
handle (...) {
case Op(params, resumption) -> ...
case Return(x) -> x
}
```
we write
```
handle (...) {
case <Op(params) => resumption> -> ...
case x -> x
}
```

We can also write `case <Op(params) -> resumption> -> ...`.
For now, the semantics for `->` and `=>` are the same.

## Control-flow linearity
Links now tracks control-flow linearity when the flag `--control-flow-linearity`
is enabled. This extension fixes a long-standing soundness bug (see issue
[links-lang/links#544](https://github.com/links-lang/links/issues/544)) with the interaction
between exceptions, multi-shot effect handlers and session-typed channels. More
details about this extension can be found in the [wiki
page](https://github.com/links-lang/links/wiki/Control-flow-linearity).

## Other changes and fixes
* The package `links-mysql` now relies on the `mysql8` package as its underlying
database driver.
* Links now supports OCaml 5.
* The `SessionFail` effect can now be supressed by disabling the
`expose_session_fail` setting. When doing so, the `SessionFail` effect
is included in the `wild` effect instead.
* The (incomplete) support for distributed session delegation has been removed.
* The standard library now provides functions for issuing SPARQL queries.

+142
+50
packages/links/links.0.9.8/opam
··· 1 + opam-version: "2.0" 2 + maintainer: "Daniel Hillerström <daniel.hillerstrom@ed.ac.uk>" 3 + authors: "The Links Team <links-dev@inf.ed.ac.uk>" 4 + synopsis: "The Links Programming Language" 5 + description: "Links is a functional programming language designed to make web programming easier." 6 + homepage: "https://github.com/links-lang/links" 7 + dev-repo: "git+https://github.com/links-lang/links.git" 8 + bug-reports: "https://github.com/links-lang/links/issues" 9 + license: "GPL-3.0-only" 10 + 11 + 12 + build: [ 13 + [ "dune" "exec" "preinstall/preinstall.exe" "--" "-libdir" _:lib ] 14 + [ make "opam-build-links.opam" ] 15 + ] 16 + 17 + depends: [ 18 + "ocaml" {>= "4.08.0"} 19 + "dune" {>= "2.7"} 20 + "ppx_deriving" 21 + "ppx_deriving_yojson" {>= "3.3"} 22 + "base64" 23 + "linenoise" 24 + "ANSITerminal" 25 + "lwt" {>= "5.0.0"} 26 + "cohttp" 27 + "cohttp-lwt" 28 + "cohttp-lwt-unix" 29 + "conduit-lwt-unix" 30 + "uri" 31 + "tls" 32 + "websocket" 33 + "websocket-lwt-unix" 34 + "safepass" 35 + "result" 36 + "ocamlfind" 37 + "menhir" {>= "20210419"} 38 + "ppx_sexp_conv" {>= "v0.16.0"} 39 + "calendar" {>= "2.0.4"} 40 + "rdf_lwt" {>= "0.13.0"} 41 + ] 42 + url { 43 + src: 44 + "https://github.com/links-lang/links/releases/download/0.9.8/links-0.9.8.tbz" 45 + checksum: [ 46 + "sha256=1135cc3e53d4b30fd3d905c93c3f20b97635f8cf9a3532147e29c2362c9d8ff3" 47 + "sha512=7dee3aa923eb49fc2c10208c609a6bddcdb57260f81917967b2fb9db01eee1267bb8e6b915b4722299b6ee14dcf04b0ba60127037a3a468b9955242401ac2db1" 48 + ] 49 + } 50 + x-commit-hash: "a53a36f787599d549e370286099fbe518a047e74"