Skip to content

1.15.0

Latest
Compare
Choose a tag to compare
@straight-shoota straight-shoota released this 10 Jan 11:39
1.15.0
7b9e2ef

Breaking changes

lang

  • Allow constants to start with non-ascii uppercase and titlecase (#15148, thanks @nanobowers)

Features

lang

stdlib

compiler

tools

Bugfixes

lang

  • (macros) Add location information to more MacroIf related nodes (#15100, thanks @Blacksmoke16)

stdlib

  • LibC bindings and std specs on NetBSD 10 (#15115, thanks @ysbaddaden)
  • (files) Treat WinError::ERROR_DIRECTORY as an error for non-existent files (#15114, thanks @HertzDevil)
  • (files) Replace handle atomically in IO::FileDescriptor#close on Windows (#15165, thanks @HertzDevil)
  • (llvm) Fix find-llvm-config to ignore LLVM_CONFIG's escape sequences (#15076, thanks @HertzDevil)
  • (log) [regression] Fix Log to emit with exception even if block outputs nil (#15253, thanks @lachlan)
  • (macros) Avoid identifier naming collision in getter, setter, and property macros (#15239, thanks @jgaskins)
  • (networking) [regression] Fix UNIXSocket#receive (#15107, thanks @straight-shoota)
  • (numeric) Fix Complex#/ edge cases (#15086, thanks @HertzDevil)
  • (numeric) Fix Number#humanize printing of (-)Infinity and NaN (#15090, thanks @lachlan)
  • (runtime) Fix Deadlock with parallel stop-world/fork calls in MT (#15096, thanks @ysbaddaden)
  • (runtime) [regression] Protect constant initializers with mutex on Windows (#15134, thanks @HertzDevil)
  • (runtime) use uninitialized LibC::SigsetT (#15144, thanks @straight-shoota)
  • (runtime) Fix static linking when using MinGW-w64 (#15167, thanks @HertzDevil)
  • (runtime) register GC callbacks inside GC.init (#15278, thanks @ysbaddaden)
  • (runtime) Cleanup nodes in Thread::LinkedList(T)#delete (#15295, thanks @ysbaddaden)
  • (runtime) Make Crystal::EventLoop#remove(io) a class method (#15282, thanks @ysbaddaden)
  • (system) Raise on abnormal exit in Procss::Status#exit_code (#15241, thanks @straight-shoota)
  • (system) Fix Process::Status for unknown signals (#15280, thanks @straight-shoota)
  • (system) Fix error handling for LibC.clock_gettime(CLOCK_MONOTONIC) calls (#15309, thanks @compumike)
  • (text) Fix libiconv build on Windows (#15095, thanks @HertzDevil)
  • (text) Change sprintf "%c" to support only Char and Int::Primitive (#15142, thanks @nanobowers)
  • (time) Fix proper error handling for early end in HTTP_DATE parser (#15232, thanks @straight-shoota)

compiler

tools

  • Improve man and shell completion for tools (#15082, thanks @Blacksmoke16)
  • (docs-generator) Fix first doc comment inside macro yield (#15050, thanks @RX14)
  • (implementations) Fix tool implementations to handle gracefully a def with missing location (#15273, thanks @straight-shoota)

Chores

stdlib

compiler

Performance

stdlib

compiler

  • (semantic) Inline ASTNode bindings dependencies and observers (#15098, thanks @ggiraldez)

Refactor

stdlib

compiler

Documentation

stdlib

Specs

stdlib

compiler

  • (cli) Remove the entire compiler code base from external_command_spec (#15208, thanks @straight-shoota)
  • (interpreter) [regression] Fix Crystal::Loader.default_search_paths spec for macOS (#15135, thanks @HertzDevil)

tools

Infrastructure