Skip to content

Releases: crystal-lang/crystal

1.7.0

09 Jan 16:51
016578f
Compare
Choose a tag to compare

Language

  • Add lib functions earlier so that they are visible in top-level macros (#12848, thanks @asterite)

Standard Library

Collection

Concurrency

Crypto

  • (breaking-change) Implement Digest class in Digest::CRC32 and Digest::Adler32 (#11535, thanks @BlobCodes)
  • Fix OpenSSL::SSL::Context::Client#alpn_protocol= (#12724, thanks @jaclarke)
  • Fix HTTP::Client certificate validation error on FQDN (host with trailing dot) (#12778, thanks @compumike)
  • Enable arc4random(3) on all supported BSDs and macOS/Darwin (#12608, thanks @dmgk)

Files

Macros

Networking

Numeric

Runtime

Serialization

Specs

System

Text

Read more

1.6.2

03 Nov 17:21
1.6.2
879691b
Compare
Choose a tag to compare

Language

Compiler

  • Compiler: handle yield expressions without a type (#12679, thanks @asterite)
  • Partial revert "Compiler: refactor and slightly optimize merging two types (#12436)" (#12709, thanks @caspiano)

Semantic

  • Compiler: ignore type filters when accepting cast for obj and to (#12668, thanks @asterite)

Other

  • (security) CI: Update to OpenSSL 3.0.7 for bundled lib on Windows (#12712, thanks @beta-ziliani)

1.6.1

21 Oct 11:48
1.6.1
fc61bd6
Compare
Choose a tag to compare

Compiler

Interpreter

Semantic

  • Treat single splats with same restriction as equivalent (#12584, thanks @HertzDevil)

Tools

Formatter

  • Formatter: escape backslashes in macro literals when subformatting (#12582, thanks @asterite)

Playground

Other

1.6.0

06 Oct 20:16
1.6.0
41573fa
Compare
Choose a tag to compare

Language

Standard Library

Collection

  • Refactor and improve NamedTuple deserialization from JSON and YAML (#12008, thanks @HertzDevil)
  • (performance) Optimize BitArray#tally(hash) (#11909, thanks @HertzDevil)
  • Use Slice#unsafe_slice_of and #to_unsafe_bytes in the standard library and compiler (#12280, thanks @HertzDevil)
  • (performance) Optimize block-less overloads of BitArray#index and #rindex (#12087, thanks @HertzDevil)
  • Support tuple metaclass indexers with non-literal arguments (#11834, thanks @HertzDevil)
  • Add Indexable#index! overloads with offset parameter (#12089, thanks @HertzDevil)

Concurrency

Crypto

Files

Macros

Networking

Numeric

Runtime

Serialization

  • Fix YAML serialization class name ambiguity (#12537, thanks @hugopl)
  • Allow non-type converter instances in ArrayConverter and HashValueConverter (#10638, thanks @HertzDevil)
  • Document after_initialize method for yaml and json serializers (#12530, thanks @analogsalad)

System

Text

Compiler

  • Improve recursive splat expansion detection (#11790, thanks @asterite)
  • Compiler: fix #to_s for empty parameters of lib funs (#12368, thanks @HertzDevil)
  • Compiler: transform Proc(*T, Void) to Proc(*T, Nil) (#12388, thanks @asterite)
  • Compiler: indent begin Expressions that are direct node children (#12362, thanks @HertzDevil)
  • Compiler: add missing location to node on literal expander for array (#12403, thanks @asterite)
  • Compiler: a generic class type can also be reference-like ([#12347](https:...
Read more

1.5.1

08 Sep 12:25
1.5.1
2d2b779
Compare
Choose a tag to compare

Standard Library

  • Fix Class#nilable? for recursive unions and root types (#12353, thanks @HertzDevil)

Numeric

Text

  • Fix null dereference when passing empty slice to Base64.encode (#12377, thanks @dscottboggs)

Compiler

  • Do not check abstract def parameter names on abstract types and modules (#12434, thanks @HertzDevil)

Codegen

Semantic

  • Compiler: don't eagerly check cast type (#12272, thanks @asterite)
  • Fix type restriction augmenter for Union(*T) and similar (#12438, thanks @asterite)

Tools

Formatter

Other

1.5.0

06 Jul 20:46
994c70b
Compare
Choose a tag to compare

1.5.0 (2022-07-06)

Language

Standard Library

Collection

Concurrency

Crypto

Files

Log

  • Change Log emitters to not emit event when block output is nil (#12000, thanks @robacarp)

Networking

Numeric

Specs

  • Align Spec::Be, BeClose failure message to other messages (#11946, thanks @jgaskins)

System

Runtime

  • Mention #value explicitly in Pointer overview. (#12184, thanks @elebow)

Text

Time

  • Fix: Better error message for Time.parse! when end of input is reached (#12124, thanks @asterite)

Compiler

Macros

Generics

Interpreter

Read more

1.4.1

22 Apr 19:00
1.4.1
b7377c0
Compare
Choose a tag to compare

Standard Library

Collection

  • Avoid compile-time error on empty NamedTuples. (#12007, thanks @I3oris)

Files

Runtime

Compiler

Semantic

  • Compiler: remove duplicate instance vars once we know them all (#11995, thanks @asterite)

1.4.0

06 Apr 17:25
1.4.0
ef05e26
Compare
Choose a tag to compare

Language

Standard Library

Collection

  • Remove Iterator.of(Iterator.stop) from implementations (#11613, thanks @asterite)
  • Add allow Enumerable arguments for Hash#select and #reject (#11750, thanks @mamantoha)
  • Add docs for Hash#reject! (#11691, thanks @wontruefree)
  • Add raising method variants Enumerable#find! and #index! (#11566, thanks @yxhuvud)
  • (performance) Optimize block-less overloads of BitArray#fill (#11450, thanks @HertzDevil)
  • Adds docs for Array#replace (#11682, thanks @wontruefree)
  • (performance) Optimize BitArray's counting methods (#11591, thanks @HertzDevil)
  • Add some return types to Array, Hash, Set and String (#11822, thanks @asterite)
  • Add Hash#update (#11881, thanks @ftarulla)
  • Allow Bytes[] to construct an empty Bytes (#11897, thanks @HertzDevil)
  • Improve BitArray's constructors (#11898, thanks @HertzDevil)
  • Add overload to Enumerable#tally and #tally_by accepting a hash (#11815, thanks @mamantoha)

Crypto

  • Add support for Bcrypt algorithm version 2b (#11595, thanks @docelic)

Files

Macros

Networking

Numeric

  • (breaking-change) Fix: Hide BigDecimal::ZERO and BigDecimal::TEN (#11820, thanks @lbguilherme)
  • (breaking-change) Add support for scientific notation in BigFloat#to_s (#10632, thanks @HertzDevil)
  • Fix: Inspect string in error message for number parsing (#11883, thanks @straight-shoota)
  • Add docs for Complex#zero? (#11697, thanks @wontruefree)
  • Fix E notation parsing in BigDecimal (#9577, thanks @stevegeek)
  • (performance) Optimize Integer decoding from bytes (#11796, thanks @carlhoerberg)

Runtime

Serialization

  • Allow passing instance method or conditional expressions to option ignore_serialize on JSON::Field (#11804, thanks @cyangle)
  • Implement Iterator.from_json and #to_json (#10437, thanks @wonderix)

Specs

System

Text

Time

  • Add examples to `Time::F...
Read more

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