Skip to content

Releases: crystal-lang/crystal

1.3.2

18 Jan 23:29
1.3.2
932f193
Compare
Choose a tag to compare

Standard Library

Text

1.3.1

13 Jan 22:10
1.3.1
a6fcb10
Compare
Choose a tag to compare

Standard Library

  • Remove useless variable declarations in trailing position (#11704, thanks @HertzDevil)

Crypto

Runtime

Tools

Other

Release 1.3.0

06 Jan 12:33
1.3.0
a3ee70c
Compare
Choose a tag to compare

1.3.0 (2022-01-06)

Compiler

Codegen

  • Disable specs for StaticArray#sort_by on broken targets (#11359, thanks @straight-shoota)
  • Fix link flag behaviour on Windows MSVC (#11424, thanks @HertzDevil)
  • Attach debug locations to splat expansions inside array-like literals (#11655, thanks @HertzDevil)
  • Use full name for private types' class variables during codegen (#11651, thanks @HertzDevil)
  • Fix codegen when instantiating class methods of typedefs (#11636, thanks @HertzDevil)
  • Add minimal load-time DLL support on Windows, support dllimport storage class (#11573, thanks @HertzDevil)

Debugger

Interpreter

Parser

Semantic

Language

  • (breaking-change) Require elements in 1-to-n assignments to match targets exactly (#11145, thanks @HertzDevil)
  • (breaking-change) Require right-hand side of one-to-many assignments to be Indexable (#11545, thanks @HertzDevil)
  • Support splats on left-hand sides of multiple assignment expressions (#10410, thanks @HertzDevil)
  • Make all AST nodes immutable through container-returning methods (#11397, thanks @HertzDevil)
  • Add auto upcast for integer and float values (#11431, #11529, thanks @asterite, @beta-ziliani)

Standard Library

Collection

Read more

1.2.2

10 Nov 12:17
1.2.2
6529d72
Compare
Choose a tag to compare

Compiler

  • x86_64 ABI: pass structs indirectly if there are no more available registers (#11344, thanks @ggiraldez)
  • Add parentheses around type name for metaclasses of unions (#11315, thanks @HertzDevil)
  • (regression) Restrict virtual metaclasses to themselves against Class (#11377, thanks @HertzDevil)
  • (regression) Add fallback for union debug type if current debug file is not set (#11390, thanks @maxfierke)
  • (regression) Add missing debug locations to constant / class variable read calls (#11417, thanks @HertzDevil)

Standard Library

Collection

Crypto

Runtime

Other

1.2.1

21 Oct 14:17
4e6c0f2
Compare
Choose a tag to compare

Compiler

  • Adding location to the Path returned by the literal expander for regex (#11334, thanks @beta-ziliani)

Standard Library

Runtime

  • Move the :nodoc: flags to the right place to hide the __mul* functions. (#11326, thanks @wyhaines)

Tools

1.2.0

13 Oct 20:49
1.2.0
9f90efe
Compare
Choose a tag to compare

Compiler

Language

  • Make .as?(NoReturn) always return nil (#10896, thanks @HertzDevil)
  • Compiler: make is_a?(union) work correctly for virtual types (#11176, thanks @asterite)
  • Adjust docs for Crystal::Macros::HashLiteral#[] (#10930, thanks @kevinsjoberg)
  • Fix path lookup when ancestor finds type with same name as current scope (#10901, thanks @HertzDevil)
  • Fix several compile-time operations on generic instance metaclasses (#11101, thanks @HertzDevil)
  • Make #is_a? in macros respect the AST node hierarchy (#11062, thanks @HertzDevil)
  • Add docs to string methods in SymbolLiteral and MacroId (#9298, thanks @makenowjust)
  • Add clarification about when instance_vars can be called (#11171, thanks @willhbr)
  • Add file_exists? macro method (#10540, thanks @Sija)

Standard Library

Collection

  • (breaking-change) Move Array#product to Indexable#cartesian_product (#10013, thanks @HertzDevil)
  • Disallow Slice(T).new(Int) where T is a union of primitive number types (#10982, thanks @HertzDevil)
  • Make Array#transpose, Enumerable#reject, Enumerable#to_h work with tuples (#10445, thanks @HertzDevil)
  • Fix Enumerable#each block return type (#10928, thanks @straight-shoota)
  • Fix key type f...
Read more

1.1.1

26 Jul 20:54
1.1.1
6d9a1d5
Compare
Choose a tag to compare

Language changes

Standard Library

Compiler

Other

1.1.0

14 Jul 18:27
af095d7
Compare
Choose a tag to compare

1.1.0 (2021-07-14)

Language changes

  • Support splat expansions inside tuple and array literals. (#10429, thanks @HertzDevil)
  • Support breaks with values inside while expressions. (#10566, thanks @HertzDevil)

Macros

Standard library

Global changes

Windows support

Type annotations

Numeric

Text

Collections

Crypto

Time

Files

Read more

1.0.0

22 Mar 18:29
dd40a24
Compare
Choose a tag to compare

Language changes

  • Support Tuple#[](Range) with compile-time range literals. (#10379, thanks @HertzDevil)

Macros

  • Don't use named argument key names as parameters for method_missing calls. (#10388, thanks @HertzDevil)

Standard library

  • (breaking-change) Drop deprecated definitions. (#10386, thanks @bcardiff)
  • Fix example codes in multiple places. (#10505, thanks @maiha)

Macros

  • (breaking-change) Always add explicit return types in getter/property macros. (#10405, thanks @Sija)

Numeric

Text

Collections

Serialization

Files

Networking

Logging

System

Runtime

Compiler

  • (breaking-change) Disallow surrogate halves in escape sequences of string and character literals, use \x for arbitrary binary values. (#10443, thanks @HertzDevil)
  • Fix ICE when exhaustive in-clause calls pseudo-method. (#10382, thanks @HertzDevil)
  • Fix ICE when parsing foo.% calls. (#10351, thanks @makenowjust)
  • Fix edge cases for symbol quoting rules. (#10389, thanks @HertzDevil)
  • Support closured vars inside Const initializer. (#10478, thanks @RX14)
  • Documentation grammar fix. (#10369, thanks @szTheory)

Language semantics

Doc generator

  • Detect source locations in more situations. (#10439, thanks @oprypin)

Others

0.36.1

02 Feb 18:04
Compare
Choose a tag to compare

Standard library

Text

  • Don't raise on String.new with null pointer and bytesize 0. (#10308, thanks @asterite)

Collections

Serialization

Runtime

  • Eager load DWARF only if CRYSTAL_LOAD_DWARF=1. (#10326, thanks @bcardiff)

Compiler

  • (performance) Initialize right-away constants in a separate function. (#10334, thanks @asterite)
  • Fix incorrect casting between different union types. (#10333, thanks @asterite)
  • Fix a formatting error in the "missing argument" error. (#10325, thanks @BlobCodes)
  • Fix while condition assignment check for Not. (#10347, thanks @asterite)
  • Allow operators and setters-like macros names back. (#10338, thanks @asterite)

Language semantics

  • Fix type check not considering virtual types. (#10304, thanks @asterite)
  • Use path lookup when looking up type for auto-cast match. (#10318, thanks @asterite)