Releases: effekt-lang/effekt
Releases · effekt-lang/effekt
Release v0.11.0
What's Changed
- Fix LLVM FFI in Tour by @jiribenes in #698
- Note free region variables by @serkm in #697
- Static argument optimization by @marvinborner in #700
- Fix/static arguments by @b-studios in #706
- JS runtime: Extract
RESUME
function by @dvdvgt in #708
Full Changelog: v0.10.0...v0.11.0
Release v0.10.0
What's Changed
- Basic streaming by @phischu in #527
- Replace legacy sprintf with snprintf by @marvinborner in #685
- Add more GCC flags to CI builds by @marvinborner in #656
- Don't use weak refs by @b-studios in #647
- Improve benchmark arguments by @marvinborner in #666
- Fix tail-resumption optimization by @b-studios in #692
- Refactor core for optimizer by @b-studios in #694
- Also desugar with-do by @b-studios in #691
Full Changelog: v0.9.0...v0.10.0
Release v0.9.0
What's Changed
- More sharing of erasers and sharers by @marvinborner in #657
- Add 'char' library by cherrypicking from #631 by @jiribenes in #664
- Allocate region variables as "local variables" on previous stack by @serkm in #642
- Try to improve resolution by adding a bit context by @b-studios in #671
- Refactor/core delimited control by @b-studios in #669
- Optimize tailresumptive handlers by @b-studios in #674
- Note parameters by @serkm in #677
- Add jump-to-definition for imports by @b-studios in #676
- Improve the error when an effect is not fully known by @b-studios in #678
- Fix 'jump to definition' for singleton operations (#646) by @jiribenes in #681
- Fix getting started link by @b-studios in #682
Full Changelog: v0.8.0...v0.9.0
Release v0.8.0
What's Changed
- Do polymorphism boxing for the result of regions by @marzipankaiser in #655
- Fix #661 by improving type inference by @b-studios in #662
Full Changelog: v0.7.0...v0.8.0
Release v0.7.0
What's Changed
- Refactor LLVM backend by @serkm in #648
- Make LLVM's stack growable by @marvinborner in #644
- Mutable bytearrays by @phischu in #630
- Direct access to handlers/state by @serkm in #645
- Require default for finite domains instead of giving up by @b-studios in #653
- Fix bytearray construct by @phischu in #654
Full Changelog: v0.6.0...v0.7.0
Release v0.6.0
What's Changed
- Fix capability passing for extern definitions by @dvdvgt in #633
- Fix SBT installation by @marvinborner in #637
- Add missing sbt setups by @marvinborner in #643
- Js cps backend by @b-studios in #619
- Fix scheduler case study title by @jiribenes in #649
Full Changelog: v0.5.0...v0.6.0
Release v0.5.0
What's Changed
- Remove "user-defined effects" terminology by @oberth-effect in #623
- Allow braces in match clauses by @dvdvgt in #626
- Recover from malformed operation implementation by @jiribenes in #625
- Add arithmetic right shift to stdlib by @jiribenes in #629
- Add scheduler example as a casestudy by @dvdvgt in #627
- Add repl to scheduler casestudy by @dvdvgt in #634
- Improve handling of (unicode) escapes by @marzipankaiser in #622
- Migrate doc comments to use '///' by @jiribenes in #628
New Contributors
- @oberth-effect made their first contribution in #623
Full Changelog: v0.4.0...v0.5.0
Release v0.4.0
What's Changed
- Added case study on probabilistic programming and inference by @sinaschaefer in #445
- Update NodeJS to 16.x by @jiribenes in #599
- Alternative: implement transformation in machine-transformer by @b-studios in #602
- Privatize inlined functions by @serkm in #597
- Implement round, floor, ceil on the LLVM backend by @jiribenes in #606
- Direct IO which is asynchronous by @phischu in #553
- Inline includes and mark them as jsNode where necessary by @b-studios in #612
- Effekt by example by @dvdvgt in #536
- Move 'examples/features' to 'examples/tour' by @jiribenes in #618
- Update installation instructions on the README by @dvdvgt in #615
- Fix infinite recursion in PolymorphismBoxing by @marzipankaiser in #620
- Prettify the stdlib testing framework by @jiribenes in #542
- Remove lifted and backends that use it by @b-studios in #616
- Fix cast warning in LLVM io.c by @marvinborner in #617
New Contributors
- @sinaschaefer made their first contribution in #445
Full Changelog: v0.3.0...v0.4.0
Release v0.3.0
What's Changed
- Namer should bind captures of mutable variables by @b-studios in #409
- Add a generic structural comparison primitive to JS backend by @jiribenes in #394
- Feature: tracing/timing of compilation phases by @dvdvgt in #411
- Fix highlights for consoles with white text color by @marvinborner in #416
- Add benchmarks for reduction of functions by @marvinborner in #413
- Add Existentials by @b-studios in #418
- Add support for names ending in ? and ! by @b-studios in #419
- Fix multiple string issues by @marvinborner in #410
- Rename Boolean to Bool by @marvinborner in #420
- Explicit interface boxing by @jiribenes in #421
- Allow using
get
andput
with UFCS by @jiribenes in #424 - Improve parser performance by not copying strings all of the time by @b-studios in #436
- Enable inlining of small block definitions by @b-studios in #438
- Fix #434 by disabling unnecessary check by @b-studios in #439
- Add shortcutting for boolean operations by @marvinborner in #425
- Add flag for outputting IRs by @marvinborner in #443
- Use feature flags for extern definitions by @marzipankaiser in #427
- Type omission for operation implementations and block arguments by @dvdvgt in #417
- LLVM: Allow polymorphic codata by @marzipankaiser in #452
- Cache compiler after stdlib to speed up tests by @b-studios in #450
- Extern warnings only if they reach code generation by @marzipankaiser in #451
- Fix ANSI highlighting of strings within multiline strings by @marvinborner in #457
- Unnamed types by @phischu in #460
- PolymorphismBoxing for Any/Nothing by @marzipankaiser in #458
- Refactor Stdlib by @b-studios in #449
- Fix boxing of Nothing / Add explicit type annotation to Val, Let by @b-studios in #461
- Homogenize options by @b-studios in #467
- Report detailed missing case on non-exhaustive pattern match by @jiribenes in #470
- Fix/dont match on unit by @b-studios in #468
- Box/unbox boxed blocks by @marzipankaiser in #476
- Fix running Effekt on Windows by @marzipankaiser in #442
- Allow new-style
on[E].result
Result reification by @marzipankaiser in #479 - Bugfix: Duplicate definitions in test stdlib by @marzipankaiser in #478
- Mutable arrays in the LLVM backend by @phischu in #477
- Use externs in
PolymorphismBoxing
by @marzipankaiser in #485 - Add Concurrent IO by @b-studios in #469
- Print types of block arguments without an Option wrapper by @jiribenes in #486
- Allow passing command line parameters directly by @marzipankaiser in #487
- Standardize command-line argument passing across backends by @jiribenes in #489
- Fix #491 by renaming leftover primitives by @jiribenes in #492
- Use consistent naming scheme for output files by @marvinborner in #498
- Implement equality/inequality for
Double
by @marzipankaiser in #490 - Fix generic equals in js backend by @marzipankaiser in #499
- Fix string concatenation on the JavaScript backend by @jiribenes in #493
- Rename constructors of collections by @jiribenes in #488
- Change standard library and handle corner case by @phischu in #501
- Recursive descent by @b-studios in #495
- Adding a separate lexer by @dvdvgt in #435
- Improve readability of generated LLVM code by @marvinborner in #509
- More benchmarks by @phischu in #459
- Additions to the string stdlib by @marzipankaiser in #518
- Fix scope of DataDef constructors by @marvinborner in #519
- Add debug and valgrind to LLVM tests and config by @marvinborner in #510
- Switch to LLVM's tailcc calling convention by passing arguments without env by @marvinborner in #482
- Add feature flags
jsNode
andjsWeb
by @marzipankaiser in #454 - Allow
with def
analogously towith val
by @marzipankaiser in #526 - JS: Parenthesize arguments of raw expresions by @marzipankaiser in #531
- Even more descriptive LLVM codegen by @marvinborner in #520
- Cleanup test exclusions by @marvinborner in #539
- Fix off-by-one error in array::copy by @rzikm in #545
- Make control an explicit capability to overload the traversal by @b-studios in #528
- Require main to always return unit by @b-studios in #551
- LLVM: Pass stack instead of stack pointer by @marvinborner in #530
- Implement a proper wellformedness check by @b-studios in #552
- Do not crash the compiler in server mode by @b-studios in #532
- Add 'process' module with 'exit' function by @jiribenes in #541
- Add
--version
CLI flag by @jiribenes in #556 - Fix: Lexer crashes on unmatched
}
by @dvdvgt in #555 - Cache sbt files in CI, update versions of CI actions by @jiribenes in #560
- Improve names generated by LLVM by @b-studios in #562
- Use a relative path for loading the JS main by @marzipankaiser in #566
- Also refer to main files and chez using a relative path by @marzipankaiser in #570
- Fix PolymorphismBoxing for more complex uses of interfaces and effect handlers by @marzipankaiser in #575
- Fix issue #577 by @marzipankaiser in #578
- Chez: make floor, ceil return int values by @marzipankaiser in #580
- Fix type arguments when PolymorphismBoxing parametrized handlers by @marzipankaiser in #581
- Move from lift to prompts by @b-studios in #563
- CI: Update actions/setup-java to v4 by @jiribenes in #583
- Move to a weekly release scheme by @jiribenes in #538
- Move benchmark configs from effekt-plots by @marvinborner in #567
- refactor: Use env variables for java and node versions in ci.yml by @ChinoUkaegbu in #586
- Use splices in LLVM templates by @b-studios in #587
- Clean up transformation to machine a bit by @b-studios in #588
- Support singleton operations better by @b-studios in #590
- Fix buggy LLVM tests by @marvinborner in #568
- Local Variables by @serkm in #584
- CI: Bypass push protection in autorelease.yml by @jiribenes in #591
New Contributors
- @rzikm made their first contribution in #545
- @ChinoUkaegbu made their first contribution in #586
Full Changelog: v0.2.2...v0.3.0
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