Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 1.43 KB

features.md

File metadata and controls

25 lines (21 loc) · 1.43 KB

This page lists features present in ATS, either in the current version, or in a prior implementation. Additionally, possible features are listed (please do not add possible future features without discussing the viability with the ATS maintainer(s)).

Current features

For now, there is no comprehensive list, but please check here for an overview.

Prior features

The last know implementation for the feature is shown in parentheses.

  • Checking that prfun and prfn implementations exist (ATS/Anairiats; see [[ATS/LF|ATSLF]]).
  • Dependent types for floating point values (ATS/Geizella or ATS/Proto?). Too complicated both internally (?) and using in practice.

Possible features

  • Concurrent val statement evaluation, e.g., If I want to indicate to the compiler that that do_this and do_that can be evaluated in parallel, I use the following syntax:
prval (pf1, pf2) = ... // [pf1] and [pf2] are separated
val ... = do_this (pf1 | ...) // do_this is checked to be pure
and ... = do_that (pf2 | ...) // do_that is checked to be pure

Basically, the requirement is that (1) do_this and do_that can only manipulate resources they own and (2) they do not share any resources between them. See here for possible test code.