Releases: effekt-lang/effekt
Release v0.2.2
Automatic release for refs/tags/v0.2.2
What's Changed
- Rework
--compile
and add a seperate--build
option by @dvdvgt in #294 - Integrate higher-rank polymorphism on block parameters by @dvdvgt in #298
- fix currentTimeNanos to return nanos, not micros by @IR0NSIGHT in #302
- Lexer: match escape sequences in strings by @dvdvgt in #290
- Feature/init array default values by @IR0NSIGHT in #296
- Higher Rank Polymorphism follow-up: parser refactor by @dvdvgt in #310
- JS backend: Do not drop first element for Array.toList (fixes #319) by @marzipankaiser in #320
- Port break & continue to all backends by @jiribenes in #315
- Testing infrastructure for core transformations by @marzipankaiser in #321
- Improve core testing infrastructure by @marzipankaiser in #323
- DS-JS Backend by @b-studios in #316
- Refactor/post merge cleanup by @b-studios in #340
- Add sbt command
bench
to automatically run the benchmarks by @b-studios in #342 - Use
.effekt.md
for literate Effekt code by @marzipankaiser in #341 - Make most of the tests work for the monadic backend again by @b-studios in #343
- Expand standard library by @jiribenes in #339
- Fix missing code snippet ending by @marvinborner in #346
- Add sbt task for building the JS file by @dvdvgt in #347
- Feature/core constructor by @b-studios in #349
- Fix "Annotate Captures" feature of the VSCode extension by @dvdvgt in #348
- Fix non-zero exit code on error by @marvinborner in #338
- Feature/extern unquotes by @b-studios in #350
- Try to fix capture flow by @b-studios in #371
- Website breaks to missing extern definitions by @b-studios in #374
- Improve Test Runner by @b-studios in #377
- Warn if a type parameter shadows a non-parameter by @b-studios in #378
- Fix #354 by not exporting extern resources by @b-studios in #379
- Try to run CI only once and not twice on a PR by @b-studios in #380
- Also check wellformedness of effects in namer by @b-studios in #381
- Also export and import captures to allow referring to them in other modules by @b-studios in #382
- Do not ignore type parameters of receiver in method calls by @b-studios in #376
- Implement pattern matching with literals and guards by @b-studios in #385
- Implement namespaces by @b-studios in #388
- Fix separate compilation involving (nested) namespaces by @b-studios in #391
- Constructor calls are also pure, but we need to bind them as scrutinees by @b-studios in #393
- Expand immutable/list library in every backend by @jiribenes in #355
- Add examples from OOPSLA-2022 artifact as tests by @dvdvgt in #386
- Hardcode types that should be boxed by @b-studios in #392
- Directly forward execution output to stdout by @marzipankaiser in #370
- Fix: Object typing for bidirectional effects by @dvdvgt in #361
New Contributors
- @dvdvgt made their first contribution in #294
- @IR0NSIGHT made their first contribution in #302
- @marvinborner made their first contribution in #346
Full Changelog: v0.2.1...v0.2.2
Release v0.2.1
Automatic release for refs/tags/v0.2.1
What's Changed -- Major
- Evidence Monomorphization by @b-studios in #229
- Naive state by @b-studios in #235
What's Changed –– User Facing
- Generalize extern capture and add resources by @b-studios in #178
- Parse return type annotation of operations by @jiribenes in #148
- Feature/user state by @b-studios in #176
- Feature/compile pattern matching by @b-studios in #187
- Feature/match void by @b-studios in #189
- Improved Exhaustivity Check by @b-studios in #190
- Refactor/deprecate local declarations by @b-studios in #191
- Deprecate multiple value argument sections by @b-studios in #253
- Improve errors by @b-studios in #255
- Optimize Core by @b-studios in #267
- Support 64bit integer literals by @b-studios in #279
- Support recursive object definitions by @b-studios in #280
- Avoid having two effekt binaries (deprecate effekt.sh) by @b-studios in #166
- First step at making the prelude configurable by @b-studios in #174
- Make prelude configurable by @b-studios in #175
- Feature/show capture in vscode by @b-studios in #181
- Expand on stdlib for ML backend by @b-studios in #260
What's Changed -- LLVM Backend
-
More extensive stdlib for LLVM by @marzipankaiser in #223
-
LLVM
String
s (UTF-8-interpreted byte buffers) by @jfrech in #142 -
multi-line
extern
definitions ; LLVM stdlib by @jfrech in #138 -
Machine:
interfaces
and multiple operations by @marzipankaiser in #162 -
Machine: Handle evidence by @marzipankaiser in #164
-
Machine: Allow block parameters with effects by @marzipankaiser in #184
-
Shallow types in machine so we can compile recursive data types. by @phischu in #154
-
machine: Add support for multi-handlers by @marzipankaiser in #236
-
machine: Val(x,s,Return(x)) -> s by @marzipankaiser in #241
-
Machine: Fix arity mismatch with effect handlers due to evidence by @marzipankaiser in #163
What's Changed –– Code Quality
- Fix block parameter type pretty-printing by @jiribenes in #155
- Move from Scalatest to MUnit by @b-studios in #172
- Migrate to Scala 3.2 by @b-studios in #173
- Simplify Syntax by @b-studios in #177
- Rename Builtin to Extern by @b-studios in #179
- Refactor/syntax into enums by @b-studios in #183
- Add sbt command generateDocumentation to update the tree documentation by @b-studios in #186
- Refactor/cleanup core lifted by @b-studios in #193
- Drop intrinsic lists in core by @b-studios in #194
- Whole program js by @b-studios in #196
- Feature/typed core draft by @b-studios in #203
- Core parser by @b-studios in #205
- Remove deprecated test by @JonathanStarup in #208
- Annotate more core types in lifted by @marzipankaiser in #209
- Common Context objects for phases on core and lifted by @b-studios in #204
- Refactor/visitor macro by @b-studios in #211
- Handle
Record
inDeclPrinter
by @marzipankaiser in #216 - Polymorphism in machine-based backends (through boxing) by @marzipankaiser in #199
- Wrap pure/direct blocks in core to use the correct calling convention by @marzipankaiser in #210
- Convert filename of location of node to URI by @mm0821 in #221
- PolymorphismBoxing: Transform the callee correctly by @marzipankaiser in #228
- Fix bug in tuple pattern by @serkm in #224
- Refactor/typed lifted by @b-studios in #226
- lifted.freeVariables: Don't overload by type, assert equality by @marzipankaiser in #227
- MLton backend by @b-studios in #156
- WIP Quickly draft implement state that requires evidence by @b-studios in #231
- Add shift to lifted by @b-studios in #232
- Refactor backend interfaces by @b-studios in #234
- Add support for Holes to machine and llvm by @marzipankaiser in #220
- machine: Fix passing of free variables to local functions by @marzipankaiser in #219
- PolymorphismBoxing: Fix transformation of Operations by @marzipankaiser in #237
- Fix failing test caused by #255 by @jiribenes in #257
- Recursive mono by @b-studios in #263
- Bugfix at toInt by @serkm in #277
- Fix/32bit integer literals by @b-studios in #278
New Contributors
- @serkm made their first contribution in #197
- @JonathanStarup made their first contribution in #208
Full Changelog: v0.2.0...v0.2.1
Release v0.2.0
Automatic release for refs/tags/v0.2.0
What's Changed
- We integrated System C (described in our OOPSLA paper "Effects, Capabilities, and Boxes"
- First draft of the LLVM backend -- not fully implemented, yet.
- Many more changes.
Full Changelog: v0.1.16...v0.2.0
Release v0.1.16
Automatic release for refs/tags/v0.1.16
Biggest changes are:
- multiple new backends for ChezScheme
- bidirectional effects (#29 thanks to @long-long-float)
Release v0.1.15
Automatic release for refs/tags/v0.1.15
Release v0.1.14
Automatic release for refs/tags/v0.1.14
Release v0.1.13
Automatic release for refs/tags/v0.1.13
In this release we changed the whole build setup of the Effekt compiler. It now tracks the timestamps of dependencies in traces and recompiles, if any transitive dependency changed.
Prerelease v0.1.12
Automatic release for refs/tags/v0.1.12
Release v0.1.11
Automatic release for refs/tags/v0.1.11
This release is improving pattern matching support.
- New support for pattern matching block definitions
- Pattern matching block definitions also supported in handler definitions
- literal (constant) matchers
Release v0.1.10
Automatic release for refs/tags/v0.1.10
- improved REPL output on imports
- Added script
effekt.sh
for linux