Fetching contributors…
Cannot retrieve contributors at this time
128 lines (119 sloc) 8.59 KB


Newest to oldest additions in each section.


  • destructure/pattern match in let bindings, j14159
  • alpaca_printer, type formatting and printing for compiler feedback, lepoetemaudit
  • build for OTP 20, getong
  • logical operators (and, or, xor), Licenser
  • explicit type signatures for top-level bindings, e.g. val add: fn int int -> int, lepoetemaudit
  • nicely formatted and humane compiler output with colours, Licenser
  • local/inner functions can be curried, lepoetemaudit
  • able to specify default types and functions to be imported in a project, lepoetemaudit
  • infix functions starting with < are now right-associative, lepoetemaudit
  • generate a module’s dependencies from source to support partial compilation, lepoetemaudit
  • support loading of pre-compiled BEAM files rather than requiring every module in source form, lepoetemaudit
  • quoted atoms, lepoetemaudit
  • German error message translation, ypaq
  • Spanish error message translation, arpunk and yurrriq
  • symbol, integer, and float AST nodes defined in Alpaca itself, j14159
  • enable internationalization and formatting of error messages, danabr


  • wildcard variables (the `_` variable) in function head matches are now renamed properly, j14159
  • partial record matching works, no more cycles in reference cells, j14159
  • type inferencer reference cells in ETS, no more processes, j14159
  • unsized binaries work correctly when constructing binaries, lepoetemaudit
  • simple expressions don’t require parens, e.g. [1 + 2, 3 + 4], lepoetemaudit
  • lambdas inside match expressions now work correctly, lepoetemaudit
  • don’t re-type modules for every module-qualified function call, lepoetemaudit
  • correctly rewrite the internals of unbound lambdas, j14159
  • don’t perform exhaustiveness checks on already-compiled modules, lepoetemaudit
  • fix unification failure for nested ADTs, j14159
  • fn as a reserved word in tests, Licenser
  • purge warnings removed for cleaner test output, Licenser
  • substantial test and warnings cleanup, Licenser
  • fixed variable lookup failure in exhaustiveness checks, j14159
  • broken BIF fixes (!=, /), lepoetemaudit
  • fix lambdas in records, j14159
  • properly escape \ sequences in strings, lepoetemaudit
  • usage example correction, monkeygroover
  • rewrite imported functions in tests, j14159
  • rewrite lambdas in tests, j14159
  • allow forward references to top-level bindings, j14159
  • parameterized pid type fix when using is_pid, j14159








  • early infix function support (operators, e.g. |>) from
  • multiple instances of _ permitted in patterns
  • throw/1, exit1/, and error/1 are now available
  • patterns in function arguments, e.g. g f Some x = Some (f x) or get_x {x=x} = x
  • types default to private in their defining module with explicit export and import in others
  • minor type inferencer fixes for records and tuples


  • fixes for type aliases and unions involving them:
  • early record support with row polymorphism
  • fixes for unification of the value type portion of maps