| CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 42
Releases: granule-project/granule
v0.9.6.0
- Graded uniqueness for borrowing and lifetimes as described in our OOPSLA 2024 paper: https://dl.acm.org/doi/10.1145/3649848. Examples in:
- examples/parallelWithMutation.gr
- examples/simple-clone.gr
- This comes with a new graded uniqueness interface https://granule-project.github.io/docs/modules/Primitives.html#uniquenessmodality
- A new set of mutable array primitives https://granule-project.github.io/docs/modules/Primitives.html#mutablearrayoperations and mutable reference cells https://granule-project.github.io/docs/modules/Primitives.html#uniquenessmodality
Assets 4
v0.9.5.0
83bdac0-
Rank N typing (see https://github.com/granule-project/granule/blob/dev-minor/examples/rankN.gr)
-
Algebraic effects and handlers. See e.g.,
-
Updated standard docs
-
Fixes to deriving copyShape and drop combinators
-
push deriving combinators now have Pushable constraint, e.g.
pushList : forall {s : Semiring, r : s, a : Type} . {(1 : s) <= r, Pushable r} => (List a) [r] -> List (a [r]) pushList = push @List -
Minor tweaks to the Granule Language Server to improve vscode interaction (no longer complains on the entire file about 'Premature end of file' whilst typing).
Assets 4
ESOP2024 Artefact
Granule used to build the ESOP 2024 synthesis artefact
Assets 2
v0.9.5.0-rc
4b570dc0.9.5.0
- Adds explicit rankN types in the style of System F (see examples/rankN.gr)
- Given the above, adds the (long awaited) algebraic effects and handlers implementation (see examples/effects_state.gr and examples/effects_nondet.gr) and see -- https://granule-project.github.io/docs/modules/Primitives.html#algebraiceffectsandhandlers
Assets 3
v0.9.4.0
f6e378d- Advanced synthesis algorithm for
language GradeBasemode. - Better standard library documentation
- Ability to expose the 'hsup' constraint (see
push) - Some bug fixes (see https://github.com/granule-project/granule/milestone/2?closed=1)
Assets 5
v0.9.3.0
6df2ed00.9.3.0
- Existential types, e.g.,
exists {x : Type} . t, seeexamples/existential.grandexamples/listToVec.gr language GradedBaseextension, seeexamples/graded-base.gr- Various internal refactorings
- Bug fixes related to indexed types
- Uniqueness features renamed (see
examples/uniqueness.gr) - Granule docs's feature
gr --grdoc file.grwill generate documentation indocs/index.html - New
Cartesiansemiring, with just one elementAny : Cartesianfor completely erasing grading (trivial solving)
Assets 2
v0.9.1.0
c27c3a60.9.1.0
- Public and Private are now usable as synonyms for Lo and Hi unless the SecurityLevels extension is turned on.
- 'Level' semiring only in scope when SecurityLevels extension is on.
- Builds on ghc 9.2 now
Assets 3
0.9.0.1
1db9800- Bug fixes to pretty printer and lexer
- forkNonLinear can only work over semirings with exact equality for soundness
- Tweaks to the way type-level float equality works
- Fix to differentially-private floats primitives
- Bumps GHC dependency to 9.0.2
- A few additions to the standard library and primitives (includes
moveStringto make string value unrestricted).
Assets 2
v0.9.0.0
-
Major features:
- Uniqueness modality and mutable arrays
- Session types with non-linear behaviours
- Granule -> Haskell compiler (grc)
- language-server protocol
-
New graded modalities / improvements
-
LNL semiring (Zero, One, Many) recovers linear logic via new
hsupoperation
to control 'push' behaviour on tensors. See: https://hal-lirmm.ccsd.cnrs.fr/TLLA2021/lirmm-03271465 -
Any semiring can now be lifted to a top-completed semiring with Ext (previously only allowed for Nat)
-
-
Language extensions and pragmas: See: https://github.com/granule-project/granule/wiki/Language-Extensions
- Includes CBN interpreter as an option
-
Bug fixes:
- Bug fixes related to sensitivity analysis
- Bug fixes relating to derived operation copyShape
- Improved interpreter
-
Tons of minor improvements
- Error messages are sometimes more intuitive
- Various additional primitives
Assets 4
v0.8.1.0 (minor release)
0.8.1.0
- New semirings:
SecandSet tfor some typet(andSetOp t) - Bug fixes related to session types
- Some more type aliases added
- Generic deriving coverage improved (especially with
drop)