All Versions
35
Latest Version
Avg Release Cycle
48 days
Latest Release
907 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v0.9.3 Changes
October 15, 2018 -
v0.9.2
October 09, 2018 -
v0.9.1 Changes
September 24, 2018๐ Features
- Allow implicit resolution if the same binding is included twice (e62a0523)
- ๐ Support non-static type parameters in VMType derive (bdc7ecaf)
- vm: Allow module loaders to contain state (bee61dd8, closes #634)
๐ Bug Fixes
- โก๏ธ Use the field order of the base record in record updates (b60c3e12, closes #509)
- Don't error on Serialize/Deserialize derives because of missing imports (a598fe23)
- check: Correct the order of expected and actual hints (beb30ae4, closes #627)
- vm: Don't remove parent frames in when calling into the vm (4a4fd3b6)
-
v0.9.0 Changes
September 16, 2018๐ Performance
- Avoid allocating Strings in JSON [de]serialization (694dd14f)
- recursion: No need to keep state between top level bindings (208d8b74)
๐ Bug Fixes
- Handle multiple doc comments and attributes between recursive let bindings (1767019c)
- Break function types with implicit arguments correctly (2f537e66)
- Resolve aliases that are hidden behind type variables (b61ea5e9)
- Resolve types through function aliases (be5374ef)
- check:
- Always inserted implicit arguments to implicit_args (f7ffc701, closes #601)
- Plug soundness holes with higher ranked types (731a9ecd)
- Don't return non-skolemized types from lambda (b0f283f2)
- Non-polymorphic records which are a prefix of another do not unify (cc85aae2)
- Don't panic on partially applied aliases (cc1e613e)
- doc:
- format: Keep the brackets around implicit arguments on the same line (03a1d9f6)
- repl: Extract record fields using name_eq instead of Symbol::eq (160c1c9c)
- std: Don't panic if an error is found compiling a std module (b02fa812)
- vm:
- Handle out of order drops with RootedValue (2fdc16b6)
- Restore the vm to a valid state after error has occured (d4f4ec5e)
- Set the field names of record! created records (8e58159e)
- Allow spawned actions to be forced multiple times (8b27d649)
- Correctly assign record field names derive(Pushable) (4a36d825, closes #591)
๐ฅ Breaking Changes
- Allow Pushable to to call back into the vm (8d100dd2, breaks #)
- Migrate tokio_core uses to tokio (18aa1f0f, closes #462, breaks #)
- ๐ parser: Define recursive bindings with
rec
(552c8f21, breaks #) - vm:
๐ Features
- Hint towards rec let if old 'and' bindings are used (a879194c)
- โ Print a hint/warning towards necessary feature gates when importing modules (9b96e511)
- Prevent type errors from creating cascading errors (7976bcd5)
- 0๏ธโฃ Bound derive(Getable) by 'value byte default (597b6963)
- Add derive(Serialize) (31799a94)
- Treat Pushable/Getable derives on newtypes as their inner type (62ad61d9)
- Allow OpaqueValue to be converted into its inner value (1147ab59)
- Add JSON serialization (b028ab2d)
- ๐ Support the crate_name attribute in getable (81ba45f5)
- Allow Pushable to to call back into the vm (8d100dd2, breaks #)
- Migrate tokio_core uses to tokio (18aa1f0f, closes #462, breaks #)
- Implement Getable for Vec (727e279b)
- Allow displaying the post-macro expansion AST (53f5cbf9)
- Add derive(Show) (d8689a73)
- Add derive(Eq) (c6da284d)
- check: Let non-function values be used recursively in some contexts (c2027add)
- codegen: Allow structs to generate record types using derive(VmType) (7a9fb16c)
- doc:
- ๐ parser:
- vm:
-
v0.8.1 Changes
July 01, 2018๐ Bug Fixes
- Reject programs which use lowercase letters for types (bd54a83f)
- Display type fields with the parameters on the left side of = (ef6fc9bc)
- Handle type projection in kind check (3b78e370)
- ๐จ Print the correct source on errors in the repl (159eaf99, closes #568)
- check: Don't shadow more general variant constructors (182c3960, closes #548)
- completion: Avoid panicking on env_type_of calls (c63cf2fb)
- format:
- repl:
๐ Features
-
v0.8.0 Changes
June 14, 2018๐ Performance
- ๐ Remove Substitution::set_type (4c751ab6)
- Avoid running skolemize and instantiate when there is no variables (1a09a745)
- Don't trim anything when just derefing symbols (~12%) (703e0529)
- Avoid cloning the name inside Symbols unnecessarily (c1c061a0)
- ๐ Avoid allocating a new Arc for each type hole during parsing (8ecdccf1)
- check: Partition the implicit bindings to reduce the search space (c26c12f3)
- ๐ parser:
๐ Bug Fixes
- ๐ Ensure that missing identifier gets reported despite the infix reparser errors on it (390b2a2c)
- Emit the correct type Deserialize generated array types (112fe346, closes #542)
- ๐ Emit a span inside the actual source for eof parse errors (3d598fbe)
- Resolve aliases properly in call expressions (b6ac8b65)
- Ignore symbols outside of the current source for all_symbols (b8a408a1)
- Get the http example working again (d151ab10)
- ๐จ Print a newline between each unification error (2241c296)
- Don't allow string references to be returned from run_expr (b133bf08)
- Don't lose error messages from sub-modules (5e1bbbef)
- Take implicits into account in type queries on infix expressions (8651be33)
- Insert implicit arguments when none one has not been specified (c9a42268)
- Indent type signatures that are on multiple lines (27eea994)
- Only report errors from imported modules once (6f3bbd8f)
- Provide proper line and source information for macro errors (7e924c2c)
- Don't panic if let bindings has more arguments than declared type (15bf3072)
- check:
- Put variants into scope even behind aliases (2d1ba6cb)
- Propagate the expected type through array expressions (9f0f6571)
- Don't guess at what type a record is (a4ae10f0, closes #510)
- Make the pattern's type the expected type (8b075f6f)
- Propagate type fields even if the type was undefined (f79f1a7e)
- Point to the exact field that did not exist in type patterns (88865cd4)
- Replace the type hole with the actual type during subsumption (f2ae746e)
- Don't generalize tail expressions before replacing implicits.rs (7d7bede2)
- Don't overwrite implicit variables in renaming (b8de950f)
- Don't bail out if record fields are undefined (e0863b93)
- compiler: Merge pattern bindings which appear in multiple alternatives (f8657776)
- completion:
- format:
- ๐ metadata: Propagate metadata from function arguments (025c73c6)
- ๐ rename: Rename implicit imports (6a3409d1)
- std:
- vm:
๐ Features
- ๐ Provide metadata for type patterns (67fcb19e)
- Display the kind of a type when hovered over (f407d976)
- Break apart the prelude into separate modules (966750b2, breaks #)
- Allow primitive types to be exported with record! (6700dc29)
- Detect and format tuple types as (Int, String, abc) (8697e348)
- Use #[IDENTIFIER(..)] as the attribute syntax (0300590d, closes #515, breaks #)
- Improve the error message for unresolved implicits (2bda18b3)
- Return an error when infix operators are used without fixity (89c7e4a8)
- Obey the new @infix attribute for operator fixity (1a143b80)
- โก๏ธ Update to lalrpop 0.15 (4f59c4c2)
- Add conversion functions betwen ints and floats (187ac79f)
- Treat a pattern matched type as if it exists even on type errors (42059db7)
- ๐ Display sibling modules on the left side of module documentation (c18c6729)
- ๐ Use bootstrap to get some prettier documentation (bbfee5d0)
- Make gluon_doc into an executable (dd046531)
- Generate an index.html file with links to all documented modules (788d2c7e)
- ๐ Emit html from the documentation generator (30565c1e)
- ๐ง Allow configuring the import search paths when creating a vm (87e92198)
- Allow explicit bindings of implicit arguments (79869285)
- Replace make_ functions with implicits (2a51ece7)
- Add implicit arguments (9eb8aafd)
- Filter out unrelated fields in some type errors (63d2ab43)
- check:
- completion:
- doc: Add documentation generation (1d199936)
- repl: Displayed colored errors in the repl (4d053f32)
- std:
- vm:
๐ฅ Breaking Changes
-
v0.7.1 Changes
February 04, 2018๐ Features
- ๐ Deploy builds using trust and cross (372a278f)
- ๐จ Export expr pretty printing function to format (646b7c66)
- Make dependencies unavailable in wasm optional (6e666f73)
- completion:
- ๐ parser: Introduce literal pattern for match expressions (6f4dd7f6)
๐ Bug Fixes
-
v0.7.0 Changes
December 22, 2017๐ฅ Breaking Changes
๐ Bug Fixes
- Don't crash in renaming on partial patterns (fdea1724)
- Don't format Value::String as GcStr() (c8c8ba99)
- Set the correct spans for renamed identifiers (545f8911)
- ๐ Lock the garbage collector before the interner to prevent dead locks (794cdce1)
- Rename variables in record base expressions (d4270a84)
- Handle fields being omitted when removing intermediate records (bfac0823)
- Correctly use traverse_with_key to get access to the keys (abff3b90)
- base:
- check:
- Don't panic on nested patterns on parameterized types (7e6ef364)
- Remove spurious println! (95177345)
- Don't panic if a type is undefined in a variant (e476b1e0)
- Typecheck a module even if macro expansion fails (5f78fec0)
- Don't consider global variables for overload resolution (aeade634)
- generalize_type must not return unified variables ... (437c5224)
- completion:
- doc: Rearranged sections to make it easier for a first time user to get started and added a section on testing (f4ed3134)
- format:
- import: Prevent multiple threads from compiling the same module (cb522854)
- ๐ parser:
- repl:
- Avoid overflowing the stack when printing values (cd1505ad)
- Don't exit the repl if compilation errors occur in load (3cf289f5)
- Print out Char as the "character" instead of code point integer in the repl (6612ceb2, closes #395)
- Run io expression when running files from the command line (64ed556e, closes #365)
- vm:
- Run IO expressions with io.run_expr (e308f1f2)
- Don't rely on frame_levels to clear frames after errors (3a3205df)
- Allow async functions to run within the io primitives (e6f611a0)
- Indent the pretty printing of Value (5d646515)
- Fix deadlock caused by inconsistent lock ordering (8024d57d)
- Deep clone partial applications properly (d7877cac)
- Lock all child gc's and child-threads when collecting (5642b97a)
- Handle polymorphic records created in parent threads (8570ace5)
- Don't let rustc think the Array type can't exist (a8db3d5d)
- child_threads must be traversed for all threads (eac571b9)
- Tuple indices start at 0, not 6 (655e4526)
- Don't deadlock when returning the result of
resume
(99c8d148)
๐ Features
- Accept @ patterns in the repl (1b6838ec)
- ๐ Add more character parsers to parser.glu (a74726b9)
- Wrap all macro errors with a span (20c8339a)
- Display kinds when completing types (1dd43c14)
- Teach import to accept a path as argument (ed3d0b19)
- Let the run_script functions execute IO actions (8373f8f5, breaks #)
- Improve the error message of cyclic dependencies (db540fd7)
- base:
- check:
- completion:
- Provide completion for primitive modules (ce7100bf)
- Provide completion for the import! macro (6e791ecb)
- Provide completion when writing fields before another field (e89f8df7)
- Don't suggest fields already written in a pattern (bb371410)
- Suggest type fields inside record patterns (a37222a4)
- Suggest what fields are available in record patterns (6e1dca2a)
- Provide completion on do expressions (e45de697)
- Provide completion for type variables (3b164a45)
- Provide auto completion for types in let bindings (e7a0c5c8)
- Provide auto completion in type definitions (79688de8)
- format: Format do expressions (71157dbd)
- ๐ parser:
- repl:
- std.list: Add filter and sort (d67fc29e)
- ๐ std.parser:
- vm:
- Add discriminant_value primitive (3d65a559)
- Return type and value separately from run_expr (6aa5c471)
- Add a basic wrapper around the rand crate (7210d8dd)
- Let the record macros have non-rust identifiers for field names (55ccbe1c)
- Let primitive modules be loaded via import! (91bb7d3f)
- Re-export map.empty (577cb08b)
-
v0.6.2 Changes
October 18, 2017๐ Features
- Format all files (recusively) when a directory is given (6ce97c6f)
- Add a trailing comman on records that take multiple lines (8c3aa951)
- ๐จ Pretty print record expressions with the
..
operator (aeb1d75b) - Add the '..' operator to distribute the fields of a record (d6b03cc9)
๐ Bug Fixes
-
v0.6.0 Changes
October 10, 2017๐ Bug Fixes
- โ format/tests/pretty_print.rs (de858796)
- Replace 'env!("OUT_DIR")' with 'env::var("OUT_DIR").unwrap()' (366c6306)
- Preserve comments inside types (4a216da8)
- Mark lines of recursive function definitions (4d5a4b67)
- Don't crash when querying types on unit expressions (1c36bbbd)
- Report completions in let patterns (c6172991)
- Visit
Expr::Tuple { typ }
(640154b2) - Deserilize partial applications properly (0efed42b)
- Preserve parentheses in nested patterns (d7e238da)
- Correctly visit all core expressions when walking the tree (0ad8ce00)
- Preserve newlines between record fields properly (8f169ad3)
- Don't lose parts of literals when formatting (7b538496)
- check: Indent types in error messages correctly (6ff9a217)
- completion:
- Complete type constructors which are implicitly imported (d336ad37)
- format:
- repl: Evaluate IO expressions automatically in the repl (d9e6e952, closes #334)
- resolve: Leave aliases over opque types alone (3ac0fd61)
๐ Features
- Add impls of VmType, Pushable, Getable for all integer types (0a53bd52)
- Allow gluon types to be generated from rust types (35d9b804)
- Provide a way to get all* symbols of a module (d6df46fd)
- Add find_all_symbols (0602f8d6)
- Allow doc comments on fields in types (3e9ce940)
- Vastly improve when comments are kept during formatting (91522578)
- Display type information about function arguments (fe2ec28d)
- Fallback to returning information about the enclosing expression (3a8e4c0b)
- Give more control over what data is returned for completions (7d0bc359)
- Constant fold binary expressions (10b77ac3)
- ๐จ Print the commit hash when passing --version to the gluon executable (3a1e5969)
- ๐ Rewrite the parser to be Result based instead of continuation based (488b6bdf)
- Add bytecode serialization and loading (f5d6c752)
- Make serde an optional dependency (a17c0c75)
- base: Allow the width to be adjusted before displaying types (2d1d3867)
- ๐ parser:
- vm:
๐ Performance
- vm: Avoid generating unnecessary catch-alls (ebcdba96)