Skip to content

Latest commit

 

History

History
445 lines (298 loc) · 14.2 KB

CHANGELOG.md

File metadata and controls

445 lines (298 loc) · 14.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project does not currently adhere to a particular versioning scheme.

Added

  • Emit a warning when a rule in a pattern matching function is unreachable. (#736)

Fixed

  • Fix type checker not properly unifying all the arms of a match expression. (#734)

0.2.37 - 2024-10-18

Fixed

  • Fix variable binding in pattern matching when the irrefutable pattern optimization occurs. (#618)
  • Don't warn on unused generated definitions. (#514)
  • Fix local definitions not being desugared properly. (#623)
  • Expand references to functions generated by the float_combinators pass inside the main function. (#642)
  • Expand references inside constructors in the main function. (#643)
  • Fix readback when hvm net has a{n} or x{n} vars. (#659)
  • Fix imported constructors not being updated to Constructor expression. (#674)
  • Fix parse error on parenthesized eraser. (#675)
  • Fix IO/FS/read_line when the line ends with a EOF. (#638)
  • Fix lambda body being parsed as tuple in imp syntax. (#706)

Added

  • Add type system for Bend. ([#615][gh-615], [#679][gh-679], see Type Checking)
  • Add import system. (#544)
  • Add multi line comment #{ ... #} syntax. (#595)
  • Add error message when input file is not found. (#513)
  • Add List/filter and String/{equals, filter} builtins.
  • Add IO functions for loading dynamically linked libraries (IO/DyLib/open, IO/DyLib/call, IO/DyLib/close). (#621)

Changed

  • Change tuple syntax to not require parentheses in some cases. (#554)
  • Improve error messages in branching statements. (#464)
  • Change branches to support ending with ask statements. (#629)
  • Improve hexadecimal and binary floating numbers. (#648)
  • Change IO functions to return Result. (#657)
  • Revamp the diagnostics system and parser to show more error and warning messages (#673)

0.2.36 - 2024-07-04

Changed

  • Improve error messages for redefinition of types and objects. (#485)
  • Don't allow tabs to be used for indentation or spacing. (#463)
  • Rename builtin function sleep to IO/nanosleep. (#581)
  • Equational number pattern compilation to use the predecessor variable when possible. (#470)
  • Rename Bytes/decode_utf8 to String/decode_utf8 and Bytes/decode_ascii to String/decode_ascii.
  • Rename log to Math/log and atan2 to Math/atan2.

Fixed

  • Fix readback of numeric operations. (#467)
  • Propagate the "builtin" attribute of definitions when extracting functions from bend and fold syntax.
  • Panic while using unscoped variables on definition patterns. (#468)

Added

  • Create new type of top-level definition for writing native HVM definitions. (#586)
  • Add log and atan2 builtin functions. (#583)
  • Add to_f24, to_u24 and to_i24 number casting builtin functions. (#582)
  • Add IO/sleep builtin function to sleep for a given amount of seconds as a float. (#581)
  • Add primitive file IO functions IO/FS/{read, write, seek, open, close}. (#573)
  • Add encoding/decoding builtin functions Bytes/{decode_utf8, decode_ascii} String/{encode_ascii, decode_ascii} Utf8/{decode_character, REPLACEMENT_CHARACTER}. (#580)
  • Add IO/print function to print to stdout. (#579)
  • Add IO/input function to read a line of input from stdin. (#579)
  • Add file IO utilities IO/FS/{read_file, write_file, read_line, read_to_end}. (#578)
  • Add list utilities List/{length, reverse, flatten, concat}.
  • Add elif chains to functional syntax. (#596)
  • Add local definitions to imperative syntax. (#562)
  • Add local definitions to functional syntax.
  • Add repeated field name error message.
  • Add Math builtin functions. (#570)
  • Add primitive file IO function IO/FS/flush. (#598)
  • Changed bend run to bend run-rs and bend run defaults to the C implementation. (#620)

0.2.35 - 2024-06-06

Changed

  • Make lambda Term with bind patterns display as let terms. (#466)

0.2.34 - 2024-06-05

Added

  • Add syntax for "less than or equal" <= and "greater than or equal" >= numeric operators. (#451)

0.2.33 - 2024-06-05

Added

  • Implement expand_main, a compilation pass that expands references in the entry point function. (#424)

Changed

  • Make the float_combinators pass no longer extract in the entry point function. (#424)

0.2.32 - 2024-06-05

Added

  • Implement the built-in Tree datatype. (#528)
  • Implement ![] and ! syntax for Tree literals. (#528)
  • Create a changelog.

Changed

  • Move the builtins documentation to /docs.

0.2.30 - 2024-06-04

Changed

  • No longer expand generated recursive definitions. (#502)

0.2.29 - 2024-06-04

Added

  • Support custom HVM binaries. (#479)

Changed

  • Make monadic blocks lazy by deferring execution of continuations with free vars. (#526)

0.2.28 - 2024-05-30

Added

  • Support mapper statements. (#465)

0.2.27 - 2024-05-29

Changed

  • Make with clauses take a bind and an argument. (#516)

0.2.26 - 2024-05-28

Changed

  • do keyword to with. (#494)

Added

  • wrap alias inside with blocks. (#494)

0.2.25 - 2024-05-28

Added

  • Generated constructor tags. (#512)

0.2.24 - 2024-05-27

Added

  • elif chains. (#427)

0.2.23 - 2024-05-27

Fixed

  • gen-cu and gen-c commands after move to HVM syntax tree.

0.2.22 - 2024-05-26

Changed

  • Rust channel from nightly to stable. (#486)

0.2.21 - 2024-05-25

Changed

  • HVM syntax tree for representing inets inside the compiler. (#475)

0.2.20 - 2024-05-24

Fixed

  • Map getters generation inside map setters. (#489)

0.2.19 - 2024-05-24

Changed

  • Variable names to not allow __. (#478)

0.2.18 - 2024-05-24

Fixed

  • Nested map getters generation. (#483)

0.2.17 - 2024-05-23

Changed

  • Top-level names to not start with //. (#443)

0.2.16 - 2024-05-23

Added

  • New IO builtins.

Fixed

  • Definition pruning transformation.

0.2.15 - 2024-05-22

Fixed

  • Exponentiation miscompilation. (#444)

0.2.14 - 2024-05-22

Changed

  • Inet level eta-reduction pass to not reduce number nodes.

0.2.13 - 2024-05-22

Fixed

  • Scope of fork.

0.2.12 - 2024-05-22

Changed

  • Functional syntax data keyword to type.

0.2.11 - 2024-05-22

Added

  • List comprehension.
  • Bit shift left and Bit shift right.

0.2.10 - 2024-05-21

Changed

  • Numbers to new HVM number operation format.
  • Rules definition to be in a single block.
  • Disabled net-size check by default.

0.2.9 - 2024-05-19

Changed

  • Readback error messages.

0.2.8 - 2024-05-19

Changed

  • Increase max net size.
  • check-net-size to be optional.

0.2.7 - 2024-05-17

Added

  • Apache-2.0 License.

0.2.6 - 2024-05-17

Added

  • Simple readback of tuples.

Changed

  • Imperative syntax to require , in list-like builtins.

Fixed

  • Empty map parsing.

0.2.5 - 2024-05-16

Added

  • Exponentiation ** operator.

Changed

  • go to fork inside bend statement.

0.2.4 - 2024-05-15

Changed

  • New version for hvm-core compatibility.

0.2.3 - 2024-05-15

Changed

  • Rename to bend-lang.
  • Use crates.io HVM.

Added

  • List readback.

0.2.2 - 2024-05-15

Changed

  • Comments from // to #.
  • Lambda syntax and built-in constructor names.
  • Fold to require explicit state passing.

Added

  • Record types and destructuring.
  • String readback.

0.2.1 - 2024-05-15

Fixed

  • Number parsing in imperative syntax.

Changed

  • Require \n after return.

0.2.0 - 2024-05-14

  • Initial public release of Bend.