Skip to content

Latest commit

 

History

History
592 lines (492 loc) · 77.4 KB

CHANGELOG.md

File metadata and controls

592 lines (492 loc) · 77.4 KB

Plume releases changelog

All notable changes from Plume releases will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.8.0 - 2024-06-11

Fixed

Commits

  • Breaking change: feat(tc): updated typechecker to new AST representation 5711979
  • Breaking change: feat(syntax): updated all syntax modules to new AST fcdd56a
  • Breaking change: feat(std): updated standard library with new syntaxes and backend e33bfe0
  • Breaking change: feat(tc): added multi-param extension type-checking b9927f8
  • Breaking change: feat(compiler): added js AST 129d074
  • Breaking change: feat(syntax): added await expressions ab1b1aa
  • Breaking change: feat(std): updated standard with new GC library 1284cf4
  • Breaking change: feat(std): introduced variable argument print and println db4cc77
  • Breaking change: feat(std): IO functions are now asynchronous dc373bf
  • Breaking change: feat(syntax): added variable argument support 4064dd1
  • Breaking change: feat(syntax): added unit-insertion mechanism be98ea7
  • Breaking change: feat(main): added extension library support 3dbc78f
  • Breaking change: feat(std): added minimum node.js version 015de4c
  • Breaking change: feat(syntax): added multi-param typeclass support cf911d6
  • Breaking change: feat(syntax): added function case expressions 0fbd6d9
  • Breaking change: feat(syntax): added muti-library source support 8ba5ba7
  • Breaking change: feat(syntax): removed await abstract expr in favor of syntactic sugar b365551
  • Breaking change: feat(js): added asynchronous support in Plume 7962b01
  • Breaking change: feat(std): added specific module for unit type 9460069
  • Breaking change: feat(std): re-added both xmake and cmake 7c0abe3
  • Breaking change: feat(main): removed unused codes c620dc2
  • Breaking change: feat(syntax): added exhaustive return insertion b95b0a5
  • Breaking change: feat(std): added wait function declaration b58812b
  • Breaking change: feat(std): added nested option function helper c782b10
  • Breaking change: feat(main): removed SSA pass temporarily e79e609
  • Breaking change: feat(main): updated JS translation function call 93e6909
  • Breaking change: feat(git): removed root option from script builder 3d2127a

0.7.4 - 2024-05-26

Commits

  • build(git): updated runtime submodule 414662d
  • build(git): updated runtime submodule 3e9baa0
  • build(git): updated runtime submodule 42625fa

0.7.3 - 2024-05-26

Fixed

Commits

  • Breaking change: feat(std): added some list operations 65b57cf
  • Breaking change: feat(lang): added variable forward declaration syntax support 1ed49c5
  • docs(tc): commented full typechecker code 0490862

0.7.2 - 2024-05-23

Fixed

Commits

  • Breaking change: feat(language): added WIP memory management reference counting algorithm 392691f
  • Breaking change: feat(compiler): removed dictionary resolving step 59d3b33
  • Breaking change: feat(std): added some new standard functions 86bbac4
  • Breaking change: feat(syntax): added useless block removal step 399f4bb
  • Breaking change: feat(lang): added support for orphan extensions 3d65ab1
  • Breaking change: feat(std): added complex number datatype 138d9e5
  • Breaking change: feat(std): added monadic interface ec0e8da
  • Breaking change: feat(tc): added new error messages for extensions 26e33c8
  • Breaking change: feat(std): added GC functions 97a4647
  • Breaking change: feat(std): added product interface to fix orphan extension issue 752d8ea
  • Breaking change: feat(tc): added error handling for already defined function in instance 660c6a8
  • Breaking change: feat(language): added support for multiple interface inheritance 2e89641
  • Breaking change: feat(type): added special compilation case for ADTs 612bb3e
  • Breaking change: feat(std): added list equality f3bd57c
  • Breaking change: feat(main): removed dictionary solving step from main entry d3d2542
  • Breaking change: feat(main): added dictionary resolving step in main app 4300229
  • Breaking change: feat(ffi): added more precise char_to_string error message cd7b5b2
  • Breaking change: feat(main): added block removal step 4400c02
  • Breaking change: feat(main): added memory management step dff2ce5

0.7.1 - 2024-05-18

Fixed

Commits

  • Breaking change: feat(tc): added no-return security 8e4cbe3
  • Breaking change: feat(syntax): added type aliases to Plume e6fd510
  • refactor(compiler): improved compiler errors in assembler 737bf27

0.7 - 2024-05-17

Fixed

Commits

  • Breaking change: feat(compiler): added Low Level IR compilation step 682ed38
  • Breaking change: feat(tc): added new generic and type extension representation 132ac36
  • Breaking change: feat(std): rewritten standard library with new extension system ef74346
  • Breaking change: feat(tc): re-created extension typechecking 0ddb967
  • Breaking change: feat(tc): updated all checker modules with new type-class API f86d20a
  • Breaking change: feat(typeclass): added some type-class related resolution functions 8289dd4
  • Breaking change: feat(compiler): added final bytecode assembler 7070ec2
  • Breaking change: feat: updated constraints module with new type-class API 7b48b58
  • Breaking change: feat(compiler): added bytecode serialization step a057e70
  • Breaking change: feat(syntax): added new interface keyword 1d178c1
  • Breaking change: feat(compiler): added label transformation pass d98c5ea
  • Breaking change: feat(tc): added interface type-checking fd22a38
  • Breaking change: feat(lib): added string color library e9592b5
  • Breaking change: feat(tlir): added some instance related expressions 38a0831
  • Breaking change: feat(parser): added basic string interpolation parsing af501dc
  • Breaking change: feat: updated main entry app c844626
  • Breaking change: feat(std): added standard int_to_str function 86a2095
  • Breaking change: feat(compiler): added instance pre-compilation in type erasure step dc4b6cb
  • Breaking change: feat(compiler): added default unit returning in functions assembler a6e45b8
  • Breaking change: feat(std): added to_str extension for string type b163582
  • Breaking change: feat(lib): added withRef IO function 9c57bcf
  • Breaking change: feat(main): re-added standard library compilation to toolchain 9d90132

0.6.6 - 2024-05-04

Fixed

Commits

  • docs(example): added basic error code efad62c

0.6.5 - 2024-04-30

Fixed

Commits

  • Breaking change: feat(vm): introduced local negative index lookup resolution cd11ac3
  • build(git): updated runtime submodule 0fe0364

0.6.4 - 2024-04-29

Commits

  • build(git): updated runtime submodule 5fef5e6

0.6.3 - 2024-04-28

Fixed

0.6.2 - 2024-04-28

Fixed

0.6.1 - 2024-04-27

Fixed

Commits

  • Breaking change: feat(tc/wip): working on practical redundancy checking 7cdaa31
  • build(ci): added cabal configure fix 484d0b4

0.6 - 2024-04-27

Fixed

Commits

  • Breaking change: feat(tc): added exhaustiveness and redundance checks 14c3e96
  • Breaking change: feat(error): improved error messages in Plume cacd65b
  • Breaking change: feat(plume): added variable extension member support 58c27ef
  • Breaking change: feat(error): added better error handling utility functions f5769c5
  • Breaking change: feat(tc): added better return errors e4a9c3f
  • Breaking change: feat(error): added better parser error backtracking b8d60a1
  • Breaking change: feat(pretty): added warning thrower function 633b284

0.5.2 - 2024-04-25

Fixed

0.5.1 - 2024-04-25

Fixed

Commits

  • build(ci): added CLang installation in build action b7ab524
  • build(ci): fixed CLang action on x64 macOS 85f3fe2
  • build(git): updated runtime submodule 4d717d6

0.5 - 2024-04-25

Fixed

Commits

  • Breaking change: feat(perf): rewritten typechecker using HM algorithm J 254d214
  • Breaking change: feat(std): updated standard library with new runtime API ce1c626
  • Breaking change: feat(perf): added arithmetic function inlining 8f8099e
  • Breaking change: feat(compiler): adapted native compilation to new syntax API 6c83a20
  • Breaking change: feat(compiler): updated type erasure with new typechecker API f5e2e08
  • Breaking change: feat(translation): removed absolute path resolution for natives 3fea52e
  • Breaking change: feat(common): added generic name getter function c263bc3
  • Breaking change: feat(std): updated library extension ccdff87

0.4.2 - 2024-04-16

Fixed

Commits

  • build(script): added xmake fetching command 7b2e499
  • build(ci): added dependency installation 9477cdf

0.4.1 - 2024-04-16

Fixed

0.4 - 2024-04-16

Fixed

Commits

  • Breaking change: feat(parser): added and updated some parser modules 60dfe61
  • Breaking change: feat(parser): added new Plume syntax parser 2f672f6
  • Breaking change: feat(std): added many functions to standard datatypes 8cfa892
  • Breaking change: feat(compiler): implemented mutability in compiler a7d6ce4
  • Breaking change: feat(compiler): added closure mutability support ec4558e
  • Breaking change: feat(translation): using SortedList instead of Haskell lists a883c13
  • Breaking change: feat(parser): added mutable declarations bd825a9
  • Breaking change: feat(tc): implemented mutability checking 54b41a1
  • Breaking change: feat(std): added some mutability examples 950000d
  • Breaking change: feat(std): replaced list slice with ffi call ace208c
  • Breaking change: feat(std/io): organized standard IO library c62304a
  • Breaking change: feat(parser): added mutability field access shortcut eccad0d
  • Breaking change: feat(std): added fetch function 7993693
  • Breaking change: feat(plume): implemented unmut operation checking and compilation 98b910a
  • Breaking change: feat(std): added to_string mutable case 587b837
  • Breaking change: feat(ffi): added make_err and make_ok functions 829da99
  • Breaking change: feat(tc): added datatype information ref 71becce
  • Breaking change: feat(ffi): added make_unit function 76c0989
  • Breaking change: feat(std): added input function 3ed0fff
  • Breaking change: feat(parser): added unmut operator 22a831c
  • Breaking change: feat(parser): added ability to parse indented lists 96085f8
  • Breaking change: feat(tc): added error on already defined variable 21cdc1c
  • Breaking change: feat(monad): added parseTest function 5a4ecc3
  • Breaking change: feat(std): added not equal operator on int and char 35304b6
  • Breaking change: feat(tc): added return type backtrack to local 69117ab

0.3 - 2024-04-06

Fixed

Commits

  • Breaking change: feat(std): added indexing methods on str and lists d449ce5
  • Breaking change: feat(std): added slicing methods for str and list ece23e8
  • Breaking change: feat(syntax): added index slicing to plume e1cd8b4
  • Breaking change: feat(parser): added indexing expression 8df1839
  • Breaking change: feat(std): added some char related methods 4dd0f21
  • Breaking change: feat(syntax): replaced colon with double dot for slicing 2c22f85

0.2 - 2024-04-04

Fixed

Commits

  • Breaking change: feat(parser): added native group definition support a1ed222
  • Breaking change: feat(parser): added indented dot chaining operator support af7f1fe
  • Breaking change: feat(std): removed dylib extension in standard library 575c695
  • Breaking change: feat(ffi): removed need of ffi file extension 518306b

0.1 - 2024-04-02

Fixed

Commits

  • Breaking change: feat(plume): completely rewrote Plume typechecker a76d17b
  • Breaking change: feat(compiler): added a MVP bytecode assembler 8019a8b
  • Breaking change: feat(require): added Require expressions support 72d0fc1
  • Breaking change: feat(macro): implemented macro expansion 2f0124f
  • Breaking change: feat(plume): introduced user defined datatypes 8e64629
  • Breaking change: feat(tc): added basic type extension typechecking 59b5b6b
  • Breaking change: feat(tc): added typechecker prototype without extensions f50702a
  • Breaking change: feat(tc): added new monadic operations for typechecking 165b8f2
  • Breaking change: feat(parser): added expression parser af100e7
  • Breaking change: feat(std): refined standard library with fresh new datatypes 0b36671
  • Breaking change: feat(translation): improved error handling c5421af
  • Breaking change: feat(tc): upgraded typechecker extension system to the next level f5a9b87
  • Breaking change: feat(parser): added some basic lexing and indentation functions 27e7c33
  • Breaking change: feat(pretty): generalized record prettyprinting 6075717
  • Breaking change: feat(compiler-cc): added basic untyped closure conversion algorithm fbc5b96
  • Breaking change: feat(tc): added even more powerful constraint solving on extensions 4a19d92
  • Breaking change: feat(syntax): added custom operator syntax to Plume 5250792
  • Breaking change: feat(plume): introduced full FFI system in Plume 72342d7
  • Breaking change: feat(syntax): added generic property declaration 796d444
  • Breaking change: feat(parser): made indentation parser clearer 07404c6
  • Breaking change: feat(vm): added deserializing module fd4e9f6
  • Breaking change: feat(typechecker): working on typechecker monad 96d3011
  • Breaking change: feat(compiler): added fully working extension system e31807c
  • Breaking change: feat(parser): introducing string interpolation ef0539b
  • Breaking change: feat(compiler): added SSA conversion to Plume fde8b88
  • Breaking change: feat(cst): added fancy description of expressions dbb4ff6
  • Breaking change: feat(plume): added list and slice pattern matching 169b0d3
  • Breaking change: feat(parser): added return statement a0d0c09
  • Breaking change: feat(parser): added type extension parsing b761b60
  • Breaking change: feat(std): added list module fd7bc20
  • Breaking change: feat(parser): added concrete type parsing functions 0298b5f
  • Breaking change: feat(compiler-cc): added free and substitute functions on CC IR f6ce22d
  • Breaking change: feat(parser): updated record type syntax 870ade3
  • Breaking change: feat(parser): updated row extension syntax in a more javascriptish way 10a042c
  • Breaking change: feat(desugar): added ANF and switch conversion 1cb56cd
  • Breaking change: feat(prettyprint): added TLIR prettyprinting 7deddee
  • Breaking change: feat(desugar): added desugared syntax f4de7cd
  • Breaking change: feat(tc): added constraint solving for extensions 21f53d3
  • Breaking change: feat(syntax): added native function declaration 06a74a2
  • Breaking change: feat(std): added basic string module 614332a
  • Breaking change: feat(translation): added operator translation 87a6766
  • Breaking change: feat(compiler): added bytecode serializing for VM 806e485
  • Breaking change: feat(desugar): added desugaring algorithm c02746a
  • Breaking change: feat(type-erasure): introduced dynamic dispatch codebase ffccd98
  • Breaking change: feat(vm): added bytecode module types 288c6bd
  • Breaking change: feat(parser): now parsing correctly pattern matching 23b7081
  • Breaking change: feat(pretty): added AST prettyprinting a8a1d3c
  • Breaking change: feat(std): added math and prelude modules da32780
  • Breaking change: feat(tc): dissociating generics and qualified types 44a0b0e
  • Breaking change: feat(typechecker): added Typed Language Intermediate Representation 902ef35
  • Breaking change: feat(parser): added operators description 25afa30
  • Breaking change: feat(parser): added literal parsing functions 06bca7a
  • Breaking change: feat(translation): added custom error support 42c7c77
  • Breaking change: feat(compiler): added bytecode syntax 1dc92dc
  • Breaking change: feat(concrete): added module require expression 9dc0c09
  • Breaking change: feat(translation): implemented UFCS in translation pass 54fe9da
  • Breaking change: feat(cst): added concrete types and their aliases d5fa36d
  • Breaking change: feat(standard): added few standard IO functions a56acf4
  • Breaking change: feat(record): added automatic HasField macro derivation 2f8aab3
  • Breaking change: feat(tc): added custom fancy errors db0652d
  • Breaking change: feat(type-erasure): added type erasure algorithm e31037e
  • Breaking change: feat(abstract): added AST type definition 9f72f24
  • Breaking change: feat(std): added some number list methods 30ddccd
  • Breaking change: feat(compiler-cc): added closure conversion IR definition 7e0bed3
  • Breaking change: feat(tc): added type unification 3aadfdc
  • Breaking change: feat(std): added get_args function 6008600
  • Breaking change: feat(exception): implemented catchIO function 4ab262d
  • Breaking change: feat(type-erasure): added type erased syntax 41c52f7
  • Breaking change: feat(translation): added native function translation bf56b50
  • Breaking change: feat(translation): added pattern matching translation step 9f51611
  • Breaking change: feat(vm): added main VM entry 3df727d
  • Breaking change: feat(tc): added HasField instances for Checker state 7daa339
  • Breaking change: feat(tc): added search function for checker state fbfa7db
  • Breaking change: feat(tc): added local function 7bb2a79
  • Breaking change: feat(parser): added require expression parsing 574fd77
  • Breaking change: feat(syntax): updated abstract and translation modules 8b3bdda
  • Breaking change: feat(expression): added pattern matching f0e9d64
  • Breaking change: feat(std): added some system functions 1a409bb
  • Breaking change: feat(vm): added value definition 29ea7b3
  • Breaking change: feat(tc): added generic property verification for extensions 0f521da
  • Breaking change: feat(cst): added type annotation datatype 47957cf
  • Breaking change: feat(syntax): added generics support for function definition c9b1c57
  • Breaking change: feat(tc): added type conversion function 3697a13
  • Breaking change: feat(cst): added CST primitives 926c8d8
  • Breaking change: feat(tc): added new specific extension declaration node 1eb2e31
  • Breaking change: feat(monad/IO): added IOReader type utility 595892c
  • Breaking change: feat(parser): added main Parser module entry 62a61bd
  • Breaking change: feat(parser): removed typevar parsing 3d59d29
  • Breaking change: feat(tlir): added type extension TLIR node c8b1851
  • Breaking change: feat(tc): added constraint definition 5a1976a
  • Breaking change: feat(translation/require): added require translation beginning code 9a139d9
  • Breaking change: feat(tc): added constraint solver 9fa6346
  • Breaking change: feat(deps): now using relude instead of default prelude 576c685
  • Breaking change: feat(record): removed GHC.Records in favor of native one 48b0ccf
  • Breaking change: feat(log): added bunch of IO functions 0e37f92
  • Breaking change: feat(records): re-added records overlapping due to lack of features 49be57a
  • Breaking change: feat(std): added some IO macros ea39a73
  • Breaking change: feat(syntax): added list support e991c29
  • Breaking change: feat(pretty): added some prettyprinting instances ccdb627
  • Breaking change: feat(cst): added main CST module entry d750cb5
  • Breaking change: feat(tc): added some utility functions 47b659a
  • Breaking change: feat(tc): added main typechecker runner function 50512e9
  • Breaking change: feat(tc): added some state related functions 4f08e96
  • Breaking change: feat(constraints): added extension constraint 9b78fc6
  • Breaking change: feat(abstract): added AST module entry 1962ed3
  • Breaking change: feat(core): improved new GHC Records with setField function f52b003
  • Breaking change: feat(app): calling parsing functions on main example file d611917
  • Breaking change: feat(tc): added type generalization function c56274c
  • Breaking change: feat(std): specialized print and println to string 8427fc1
  • Breaking change: feat(tlir): replaced old generics with new powerful generics fce69d0
  • Breaking change: feat(tc): added constraints field to state 9700ebe
  • Breaking change: feat(std): added join string list method 356bceb
  • Breaking change: feat(conversion): added type conversion on maybe a59eac0
  • Breaking change: feat(IO): added new IORef functions 9c95c4b
  • Breaking change: feat(tlir): introduced TypeOf internal expression de58f8e
  • Breaking change: feat(translation): added spreadable mapping function cbc6bc7
  • Breaking change: feat(translation): added Translator type module 5d06781
  • Breaking change: feat(std): added str show extension method ab0b189
  • Breaking change: feat(git): introduced VM submodule 6f21bac
  • Breaking change: feat(pretty): added Maybe ANSI Pretty instance 0e4ffac
  • Breaking change: feat(parser): updated row restriction with new brand syntax dd3f9a9
  • Breaking change: feat(IO): added readerIO runner function 3994ca4
  • Breaking change: feat(prettyprint): added prettyprinting for tuples 24c59bd
  • Breaking change: feat(literal): added Ord instance for literals 479a4aa
  • Breaking change: feat(tlir): added list support 3c6113c
  • Breaking change: feat(tc): added empty match error 1b86c54
  • Breaking change: feat(tc): introducing compiler error 2a26ba3
  • Breaking change: feat(import): updated imports due to library change. c96e30a
  • Breaking change: feat(tlir): added wildcard pattern type a6c8b69