Skip to content

Releases: crystal-lang/crystal

1.19.1

20 Jan 19:53
1.19.1
a3178c3

Choose a tag to compare

Bugfixes

stdlib

  • (concurrency) [regression] Fix kqueue timer duration calculation (#16581, thanks @skuznetsov)
  • (concurrency) [regression] time calculations in IOCP and Monitor thread (#16583, thanks @ysbaddaden)

Infrastructure

1.19.0

15 Jan 17:03
1.19.0
5a44077

Choose a tag to compare

Breaking changes

stdlib

Features

lang

stdlib

compiler

tools

Bugfixes

lang

  • (macros) Fix nested sigil delimiter parsing inside macros (#16266, thanks @HertzDevil)

stdlib

  • Fix OptionParser subcommand help to respect custom summary_indent ([#16334], thanks @kojix2)
  • (collection) Fix Hash methods to retain compare_by_identity flag ([#16356], thanks @andrykonchin)
  • (collection) Fix Hash methods and retaining default value ([...
Read more

1.18.2

21 Oct 18:20
1.18.2
635ca37

Choose a tag to compare

Bugfixes

stdlib

  • (files) [regression] Revert type restriction for IO#read_bytes (#16231, thanks @straight-shoota)
  • (runtime) Fix Fiber::ExecutionContext.default_workers_count to avoid taking into account unsupported values (#16227, thanks @Sija)

Infrastructure

1.18.1

17 Oct 17:13
1.18.1
d29a4d8

Choose a tag to compare

Bugfixes

stdlib

  • (networking) [regression] Revert adding type restrictions on HTTP::WebSocket#send etc. (#16218, thanks @straight-shoota)

compiler

Infrastructure

1.18.0

14 Oct 18:37
1.18.0
31039a5

Choose a tag to compare

Features

lang

  • Support ProcPointers of lib funs with parameter types (#16089, thanks @HertzDevil)
  • (annotations) Print deprecation warning on types and aliases (#15962, thanks @ysbaddaden)
  • (annotations) Print deprecation warnings on deprecated method argument (#15999, thanks @ysbaddaden)
  • (macros) [breaking] Expand empty (Named)TupleLiteral to (Named)Tuple.new instead of {} (#16108, thanks @spuun)
  • (macros) Add ArrayLiteral#*, StringLiteral#* and TupleLiteral#* (#16154, #16206, thanks @jneen, @ysbaddaden)

stdlib

compiler

  • (cli) Add the ability to dump type information to a JSON file (#16027, thanks @HertzDevil)
  • (interpreter) Support Proc.new(Void*, Void*) in the interpreter (#16044, thanks @HertzDevil)
  • (interpreter:repl) Fully exit the process on exit! from REPL (#16171, thanks @jneen)
  • (semantic) Resolve types when guessing return type from class method overloads (#16118, thanks @HertzDevil)
  • (semantic) Guess instance variable types from global method calls (#16119, thanks @HertzDevil)

tools

Bugfixes

stdlib

compiler

  • (codegen) Never generate assignments to a block's underscore parameters ([#16057], thanks @HertzDevil)
  • (codegen) Fix @[Primitive] codegen for typedefs ([#16110], thanks @HertzDevil)
  • (interpreter) never generate assignments to a block's underscore parameters ([#16058], thanks @HertzDevil)
  • (interpreter) Add writer.close_on_finalize = false for signal pipe ([#16167], thanks @straight-shoota)
  • (interpreter:repl) Continue REPL prompt if input consists entirely of annotations ([#16045], thanks @HertzDevil)
  • (parser) Disall...
Read more

1.17.1

22 Jul 08:46
1.17.1
19be240

Choose a tag to compare

Bugfixes

tools

  • (docs-generator) [regression] Revert "Handle doc locations when file is in parent directory" (#15996, thanks @Blacksmoke16)

Infrastructure

1.17.0

16 Jul 11:25
1.17.0
d2c705b

Choose a tag to compare

Breaking changes

stdlib

Features

lang

stdlib

compiler

tools

Bugfixes

lang

  • [experimental] Do not use private linkage for slice literal buffers (#15746, thanks @HertzDevil)

stdlib

  • Require NO_COLOR to be non-empty ([#15880], thanks @HertzDevil)
  • (benchmark) Use UInt64 to track iteration count during warm-up calculation in Benchmark::IPS ([#15780], thanks @syeopite)
  • (collection) Fix Array#| for different item types ([#15756], thanks @straight-shoota)
  • (concurrency) Fix calling Fiber::ExecutionContext#enqueue from bare Thread ([#15767], thanks @ysbaddaden)
  • (concurrency) Simplify Crystal::System::Fiber::RESERVED_STACK_SIZE initializer on Windows ([#15820], thanks @HertzDevil)
  • (concurrency) Do not print adjacent nodes in Thread::LinkedList#inspect ([#15829], thanks @HertzDevil)
  • (files) Fix async append to file in IOCP ([#15681], thanks @ysbaddaden)
  • (numeric) [regression] Fix BigFloat#format not compiling ([#15796], thanks @HertzDevil)
  • (numeric) Never output exponent in BigDecimal#format ([#15795], thanks @HertzDevil)
  • (numeric) Preserve precision when passing BigDecimal or BigFloat to sprintf %i ([#15808], thanks @HertzDevil)
  • (numeric) Fix Float32#abs for signed zeros ([#15814], thanks @HertzDevil)
  • (numeric) Ensure unary Float32#- and Float64#- flip sign bit ([#15857], thanks @HertzDevil)
  • (runtime) reopen async File passed to Process.exec and .run (win32) ([#15703], thanks @ysbaddaden)
  • (runtime) raise on manual fiber resume from sleep ([#15744], thanks @ysbaddaden)
  • (runtime) race condition in Fiber::ExecutionContext::Isolated#wait ([#15872], thanks @ysbaddaden)
  • (runtime) Prevent leaking memory when exec_recursive's block r...
Read more

1.16.3

12 May 19:46
1.16.3
3f369d2

Choose a tag to compare

Bugfixes

stdlib

  • (runtime) Fix Crystal::EventLoop::LibEvent and FiberExecutionContext integration (#15759, backported from #15743, thanks @ysbaddaden)

compiler

  • (codegen) Add fallback if __crystal_raise_cast_failed is missing (#15769, backported from #15762, thanks @HertzDevil)
  • (semantic) [regression] Remove type binding on T for Pointer(T)#value= (#15757, backported from #15751, thanks @HertzDevil)

Infrastructure

1.16.2

29 Apr 12:32
1.16.2
84cb0b2

Choose a tag to compare

Bugfixes

stdlib

compiler

  • (semantic) Do not add ReferenceStorage to Value's subclasses twice (#15718, backported from #15706, thanks @HertzDevil)

Refactor

compiler

  • (codegen) Add __crystal_raise_cast_failed for non-interpreted code (#15712, backported from #15708, thanks @HertzDevil)

Infrastructure

1.16.1

16 Apr 17:15
1.16.1
d2369ac

Choose a tag to compare

Bugfixes

stdlib

compiler

Documentation

stdlib

Infrastructure