Skip to content

Latest commit

 

History

History
125 lines (81 loc) · 2.9 KB

CHANGELOG.md

File metadata and controls

125 lines (81 loc) · 2.9 KB

kempe

0.2.0.14

  • Catch-up with base

0.2.0.13

  • Update for latest alex templates

0.2.0.12

  • Typechecker is 𝜖 faster

0.2.0.11

  • Fix bug in typechecker

0.2.0.10

  • Fix bug in typechecking against inferred signatures.
  • Fix bug in prelude

0.2.0.9

  • Add armabi method of exporting Kempe functions, so that kc generates suitable code for M1 darwin.
  • Add cdecl subcommand to generate C headers for exported functions

0.2.0.8

  • More efficient IR generation; don't copy bytes from a source to the same destination
  • Fix bugs in case IR generation

0.2.0.7

  • Fix bug in unification
  • Fix bug so that and and or instructions print correctly for x86 assembler
  • Add lints for dip(+) + to + +, (associative dip) dup and to id, etc.
  • Add lints for swap swap and 1 drop etc.
  • Add join for Maybe and Either
  • Last branch of case statement always falls through (more efficient code)

0.2.0.6

  • Add absInt and chocie functions to prelude.
  • Add lints for swap >, swap * &c.
  • Fix bug in typing >=, >, !=

0.2.0.5

  • Fix bug in arm control-flow analysis
  • Fix bugs in IR optimization pass
  • Improve IR optimization
  • Add fromMaybe and fromRight functions

0.2.0.4

  • Kind-check external function declarations
  • Fix bug in inliner where functions within dip(...)s were not inlined
  • Fix unification bug where solved constraints were not back-substituted correctly.

0.2.0.3

  • GHC 8.0.2 and 8.2.2

0.2.0.2

  • Improve performance + generated code
  • Fix bug in monomorphization of patterns

0.2.0.1

  • Performance improvements when assembling x86
  • Fix pattern match exhaustiveness checker
  • More lenient command-line parser

0.2.0.0

  • Add aarch64 backend
  • Change type of shifts, they no longer take an Int8 as the second argument.

0.1.1.3

  • Tweak some RTS flags for faster performance
  • lib/gaussian.kmp has mult function
  • A couple inefficiencies under the hood

0.1.1.2

  • Case statements with a single branch are plain and efficient.
  • Add safeDiv and safeMod to prelude/arith.kmp

0.1.1.1

  • Performance improvements under the hood (use IntSets for liveness analysis)

0.1.1.0

  • Fix internal pretty-printer (exposed as hidden fmt subcommand)
  • Optimize IR cases
  • Fix padding
  • Fix bug in lexer (for C foreign calls)
  • Support down to GHC 8.0.2
  • Unification no longer takes pathologically long time
  • Add test files so source distribution passes
  • Some sort of imports now supported.

0.1.0.2

  • Add optimizations (simplify code so that liveness analysis is quicker)
  • Fix major bug in kind-checker
  • Fix bug in type assignment

0.1.0.1

  • Better debug pretty-printer
  • Pattern match exhaustiveness checker so that pattern matches don't do something heinous at runtime

0.1.0.0

Initial release