Skip to content

Releases: asegs/fever-lang

v2.0.3

28 Apr 22:56

Choose a tag to compare

This release adds some bug fixes to the internals, makes modular some of the functions of the interpreter/parser, and adds a basic lift monad for supporting optionals and higher order functions being applied to user defined datatypes.

v2.0.2

10 Sep 00:11
2b67914

Choose a tag to compare

Adds multiline functions to the file interpreter. For example:

f = {x} => (
  y = x * 2
  y * x
)

v.2.0.1

05 Sep 21:01
357f159

Choose a tag to compare

Adds a basic profiler, some libraries, fast versions of a few functions, some bug fixes, a few new helper functions, and a split subset of functions that only apply when running locally as opposed to in a browser, such as file IO and input.

v2.0.0

01 Aug 17:00

Choose a tag to compare

Reimplements the entire core interpreter using proper syntax tree objects, removing all re-parsing of text after initial parsing, adds TypeScript types, and evaluates variable scopes at function invoke time vs. last minute passing as variable objects. Deprecates auto-tupling functionality in cases where a default match is found (1,2) + (3,4) //nonsense, in order to keep this from being called overzealously. May improve in the future. Improves interpreter speed and adds support for zero arg functions, array literals, and assigning to function names via a stable method. And a lot more.

v1.1.0

24 Jun 18:14
ad5f17b

Choose a tag to compare

This adds an optional universal function call syntax (UFCS) into the language. A simple rewrite of source code is performed before lexing to rewrite method calls ([1,2,3].contains?(3)) as function calls (contains?([1,2,3],3)). This can also be used on one argument functions, currently like 1.f().

v1.0.0

20 Jun 22:10
b26ff06

Choose a tag to compare

This release introduces an order of operations for infix operators. Based on a precedence table, all infix functions are ordered correctly based on a recursive implementation of the shunting yard algorithm.

v0.9.0

27 Apr 23:49

Choose a tag to compare

Adds morphisms and various type tricks.

You can register a morphism by calling morph(function, fromType, toType) with any one argument function or morph(function, toType) when all function patterns have the same type.

Morphisms are automatically used, so calling something that takes a number when given a bool may convert the bool into a number first.

Also, plural types are now supported in signatures, so f = {values:numbers} => ... is a valid signature!

v0.8.0

15 Apr 22:33
08e1346

Choose a tag to compare

Makes functions dispatch dynamically and locally instead of from a global function table.

Allows for first class functions as a result.

Exclusively using the stringify function to print out data, which can be overridden either in Fever or JS for any specific type.

Adds a nice helper for printing functions in order of their case specificity and changes how function cases are represented within the type system.

v0.7.0

05 Apr 22:15

Choose a tag to compare

  • Automatic recursive function calls on tuples when nothing matches well
  • Allows defining builtin infix methods for specific types
  • Higher order functions performed on types yield the original type via its constructor

v.0.6.0

01 Apr 21:55

Choose a tag to compare

We now support defining new types and creating functions that match on nominal type, not just type equivalence.