gluon v0.12.0 Release Notes

Release Date: 2019-07-06 // over 4 years ago
  • ๐Ÿ› Bug Fixes

    • ๐Ÿšš Remove Userdata and Trace impls for RwLock and Mutex (e90f02b5)
    • Add missing negate function from the prelude (0091f475)
    • Refer to registered types by their full name (a2daace6, breaks #)
    • Handle newtypes with a public field (d1fef968, closes #713)
    • Don't ICE on unapplied, aliased constructors (2a44a0db)
    • check:
    • codegen: Return exactly the same type on VmType derive on enum (375d3e9a)
    • compiler: Don't panic when matching a tuple against an alias (777bd310, closes #749)
    • std:
      • cleaned up statet.glu exports (5d8864f9)
      • export wrap_monad from transformer.glu (0e9d7bc4)
    • vm:
      • Check if a collection is needed when creating a child thread (86e4b9f7)
      • Automatically remove the elements added to pushed data (8cd5152b, closes #719)

    ๐ŸŽ Performance

    • Use NonNull for garbage collected pointers (9c66eded)
    • Don't recurse into already visited records to find implicits (b50061f5)
    • Avoid recursing into non-implicit types (c35b29e6)
    • Use SmallVec in Partition (d8c549bf)
    • Use a scoped collections over a persistent in implicit resolution (d13097e2)
    • Memoize implicit attribute lookups (-3%) (254af75e)
    • Speedup Symbol::module (9566a377)
    • Avoid creating function types unnecessarily (170f4673)
    • compiler:
      • Shrink the core::Expr type to 40 bytes (from 72) (779d1b65)
      • Copy elements directly into arena (cd2dd366)

    ๐Ÿ”‹ Features

    • Add gc::Mutex (d6e12460)
    • Automatically unroot values stored in Gc allocated values (6ebc398f, closes #746)
    • Add derive for Traverseable (844418df)
    • Allow mutable references to be passed to gluon (602220b5)
    • Add std.env (b561c8d6)
    • Implement woobly type propagation (a0b84525)
    • codegen: Add the newtype attribute (40854638)
    • completion:
      • Match on the symbols in type declarations (9d28ba10)
      • Return scoped symbols in the all_symbols query (94a385af)
      • Match on the symbols in type declarations (8fe083af)
      • Return scoped symbols in the all_symbols query (1ad302b0)
    • doc: Link to the github source (da75875b)
    • vm: Allow references to be passed through (3a92b176)

    ๐Ÿ’ฅ Breaking Changes

    • Refer to registered types by their full name (a2daace6, breaks #)