gluon v0.11.0 Release Notes

Release Date: 2019-02-11 // about 5 years ago
  • ๐ŸŽ Performance

    • ๐Ÿ›  Re-use the value buffers used in fixed structures (40ca7bfd)
    • Avoid recursing when zonking a type without variables (4a482c76)
    • Avoid recursing in gather_foralls (6a38f437)
    • โšก๏ธ Optimized definition_name for the non-: case (1713a442)
    • Avoid recursing more in occurs check (c0acb066)
    • Use VecMap for type variable -> type lookup (e5f086c9)
    • ๐Ÿ‘ฏ Avoid some clones when adding implicit bindings (86b2c9a6)
    • Use HashTrie over RedBlackTree (878f311a)
    • Avoid allocating new ArcKind in Type::kind (2911d7ef)
    • Properly rename type projections (fb6f3e14)
    • ๐Ÿ›  Don't allocate individual boxes for values in Fixed{Map,Vec} (b2532a17)
    • ๐Ÿ“‡ Speedup global metadata lookup (2c0477c7)
    • ๐ŸŒ Intern alias groups in translation (e20a1dba)
    • Avoid some recursion when unpacking aliases with AliasRef::typ (64edfb05)
    • Avoid recomputing generalization for the same type (0732ce1a)
    • Compare and hash types by the minimum necessary (75174cdf)
    • Avoid doing two hash lookups in interning (e3a3556c)
    • base: Remove an indirection in aliases (8327a035)
    • check:
      • Re-use the allocations for variables (d569cdc2)
      • Cuts the max memory use roughly in half on the lisp benchmark (5b91b6d3)
      • Avoid allocations for the field duplication check (18abf71e)
      • Partition implicit lookup more (e80f683d)
      • Don't look in the global context for non-globals (45bc2ad6)
      • Optmize occurs check (2ce4ec07)
    • kindcheck:
      • Avoid some unnecessary kind allocations (0afc648d)
      • Use a HashMap for lookups and cache computed kinds (27571ea5)
    • ๐Ÿ“‡ metadata: Use Arc to do shallow clones of Metadata (-4%) (4faf41b0)
    • ๐Ÿ“œ parser:
      • Pre-allocate space for record fields (d1f3cfec)
      • Shrink LALRPOP's internal symbol size by boxing (c845f753)
    • translate: Fix N2 behavior in translation due to type replacements. (14fc70fb)

    ๐Ÿ”‹ Features

    • check: Allow non-Type kinded types at the top of aliases (126ecebb, closes #186)

    ๐Ÿ› Bug Fixes

    • Honor the compiler settings through all import!'s (4da5b5f9)
    • check: Take the parameters of record type fields into account when inserting forall (b390db10)
    • doc: Don't display an empty module section (39478e07)
    • kindcheck: Force scoped type variables to have the same type in each scope (cadbc29c)
    • ๐Ÿ“‡ rename: Don't try to rename symbols if they are only defined in an earlier compilation (56c115ed)
    • std.http: Don't let one slow TLS connection block the server (68cc1286)