All Versions
35
Latest Version
Avg Release Cycle
48 days
Latest Release
601 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.14.0 Changes
April 14, 2020π Bug Fixes
- Rework how hanging lambda/parens are handled (732f09f3)
- Accept filenames that start with
.
/..
as modules (01e450bb) - Don't deadlock when collecting and cloning a thread concurrently (5886f59f)
- check: Reject programs which misspecifies the number of patterns (248387d9, closes #807)
- doc: Correct the style.css path (4e629ab5)
- format: Improve tuple multiline formatting (5122fe38)
π Features
- π― Add AstClone to clone arena allocated ASTs (3ee7bd28)
- Compile modules in parallel using salsa-async (e0ab1811)
- Compile modules in parallel (57fca165)
- Add Function::call_any (2c06104f)
- Export Array from the prelude (16eb3456)
- Allow serde_json::Value to be marshalled to std.json.Value (aabdec86)
- check:
π Performance
-
v0.13.1 Changes
October 29, 2019 -
v0.13.0 Changes
October 27, 2019π Performance
- Only do one hash lookup when creating a Symbol (a709c712)
- Shrink Type's size to 48 bytes (from 64) (178180f8)
- π Avoid RefCell in Fixed* structurs (-1%) (de32dbd6)
- Avoid recursion in implicits.rs (89eb836a)
- Only mark types with unbound generics as HAS_GENERICS (3d835a8a)
- Avoid computing the plain name in name_eq (-3%) (a7ac9f80)
- check:
- Use RefCell::get_mut when possible (12441438)
- Remove redundant operations in union (f3d4203a)
- No need to lookup the type again before querying the level (5e4efe37)
- Remove some branches in the occurs check¨ (03e7c3b4)
- Only initialize the variable generator when it is necessary (-3%) (793b6580)
- Only do one lookup/insertion on the implicit definition map (0ea13ff1)
- Narrow down the implicit parititioning further (-10%) (a9c965b4)
- Avoid looking through metadata when checking for an implicit type (4a3662e9)
- Only add implicit fields if the binding is implicit (da861eba, breaks #)
- β‘οΈ optimize: Allocate core syntax directly into arenas (723ec4d6)
- π parser:
- vm:
- Add function inlining (5093137a)
- Eliminate redundant match expressions (945fb83d)
- Implement inter-module dead code elimination (ab1b1b80)
- Avoid tracing global values unless we are in the root gc (-7%) (48a5313e)
- Avoid the bounds check when fetching instructions (c2778e7f)
- Faster updates to the stack frame (2b94a3af)
- Cache the frame offset for the stack (-20%) (0469cb2e)
- Copy instead of clone unrooted gc values (a0396f40)
π₯ Breaking Changes
- Replace Compiler with the ThreadExt trait (c16132eb, breaks #)
- check: Only add implicit fields if the binding is implicit (da861eba, breaks #)
π Bug Fixes
- Don't leak implicit bindings into adjacent scopes (5681ffc5, closes #783)
- β ignore formatting in std.test due to a bug (bdccee6f)
- rerefix formatting (31166161)
- refix formatting (fcb7f0bb)
- fix formatting and apply naming suggesions (6bb0d87c)
- Make the behaviour consistent for
Show Char
(0ff89870) - Avoid infinite loops/extremely slow optimization (dc7ec72a)
- Expand macros inside macros (5a294330)
- β Invalidate text properly so rexpect tests work (92e45081)
- π Don't depend on ansi_term in windows to make windows 7 work (58e2a8b9, closes #777)
- β Add tests and fix the regression with clone_userdata (df078725)
- Ensure that threads are dropped when using child threads (b9efb513)
- check: Handle aliases better in
do
(770e52ea, closes #766) - repl: make the REPL respect --no-std (e7974706)
- std: export missing assertions in std.test (41f4fc52)
- vm:
π Features
- Use implicit Monoids in std.foldable (295b8c3d)
- Add a mutable string type to the ST monad (9ec946b4)
- Allow attributes to be specified on fields inside types (fb35db51)
- Provide std.effect.io as a mirror of std.io (66e49b37)
- Replace Compiler with the ThreadExt trait (c16132eb, breaks #)
- Use salsa for incremental compilation (7bc82532)
- Add history hints and bracket highlight to the REPL (10ef8cdf)
- Use line/column numbers in lambda names (201fdfb9)
- codegen: Map Rust's struct enums to records in Gluon. (afb682e5)
- repl: add --no-std option to gluon.exe (f2c1819f)
- std:
- vm: Make macro errors implement PartialEq, Eq, Hash and Clone (039825ab)
-
v0.12.0 Changes
July 06, 2019π 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:
- vm:
π 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:
π 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:
- doc: Link to the github source (da75875b)
- vm: Allow references to be passed through (3a92b176)
π₯ Breaking Changes
-
v0.11.2 Changes
March 26, 2019 -
v0.11.1 Changes
February 13, 2019 -
v0.11.0 Changes
February 11, 2019π 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:
- π metadata: Use Arc to do shallow clones of Metadata (-4%) (4faf41b0)
- π parser:
- translate: Fix N2 behavior in translation due to type replacements. (14fc70fb)
π Features
π 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)
-
v0.10.1 Changes
January 27, 2019 -
v0.10.0 Changes
January 05, 2019π Features
- Implement extensible effects (40185f22)
- π Recover from more parser errors and errors in imports (693b560a)
- Improve error recovery in let and do (ed5670c3)
- Make std.json.de.deserialize simpler to use (0a6b2517, breaks #)
- Add seq expressions (f452c2e3)
- π Display submodules in module documentation (fdab790f)
- Add --open to gluon doc (89a93c59)
- Don't have format depend on the main crate (55005236)
- Add std.effect.alt (b9d65fb1)
- Allow the prompt and color to be set from the REPL (3aa8f7d8)
- π Let row polymorphic record types be parsed (fb41cde3)
- Use i64 as the integer type in the vm (7ed0c1ef)
- Add feature to switch debug status inside repl (b48d180c)
- Add general purpose debugging status (92797784)
- check:
- std:
- Move
when
to std.applicative (2fd47247) - Add the Reader effect (14322f7e)
- Add the State effect (092a0d05)
- Add open_file_with and create_file to std.io (5b2a031f)
- Add std.io.throw (ef756280)
- Add Read File and Write File instances (1b86ae44, breaks #)
- Add std.array.is_empty (8a65bc0f)
- Add std.io.write (571e827c)
- Add std.array.slice (d5f8e190)
- Add std.io.read (689a42cc)
- Add std.disposable (066655d1)
- Expose functions for overflowing/saturating arithmetic in std.int and std.byte (ebfb68a0)
- Move
π Performance
- Don't have generalize_type be N2 (16ba38a2)
- π Remove redundant HashMap (7a07da19)
- doc: Parallelize the documentation output (f3b24712)
π Bug Fixes
- π Sort the modules in the documentation (1193d729)
- π Rewrite higher ranked type inference to support ST (b52a1471)
- Display the alias in type errors in more cases (61a9a6fe)
- Consistently put
then
on the same line asif
(6d00a89c, closes #495) - π Handle implicit forall insertion better (27be87ef)
- Handle exhaustive matching on forall wrapper variants (8789f6a3)
- Handle forall before variant constructors (8b2fcbed)
- Handle forall before variant constructors (7e472abd)
- Fix get_debug_level method to return cloned value instead of using lock (f1c40257)
- Use fmt::Display trait to obtain to_string method (cdc13ce4)
- π¨ Prevent printing out the contents of functions to the repl when debug status is not set (3824695a)
- check:
- Abort implicit checking immediately on infinite loops (b4e859c5)
- Multiple fixes with higher ranked types (67a502f7, closes #603)
- Distionguish forall in the top of aliases (69b0753b)
- Avoid instantiating higher ranked types in function arguments (2750d242)
- Distionguish forall in the top of aliases (aee2389c)
- Avoid instantiating higher ranked types in function arguments (f4fc5451)
- std:
- vm: Forward all functions in the VmType impl of RuntimeResult (9d6c7f45)
π₯ Breaking Changes
-
v0.9.4 Changes
October 21, 2018π Bug Fixes
- codegen: Fix Type::variant call for VmType derive (48e1e11b)