Skip to content

0.34.0

Compare
Choose a tag to compare
@bcardiff bcardiff released this 06 Apr 20:36
· 3088 commits to master since this release
4401e90

Language changes

Standard library

  • (breaking-change) Replace Errno, WinError, IO::Timeout with RuntimeError, IO::TimeoutError, IO::Error, File::Error, Socket::Error, and subclasses. (#8885, thanks @waj)
  • (breaking-change) Replace Logger module in favor of Log module. (#8847, #8976, thanks @bcardiff)
  • (breaking-change) Move Adler32 and CRC32 to Digest. (#8881, thanks @bcardiff)
  • (breaking-change) Remove DL module. (#8882, thanks @bcardiff)
  • Enable more win32 specs. (#8683, #8822, thanks @straight-shoota)
  • Make SemanticVersion::Prerelease comparable. (#8991, thanks @makenowjust)
  • Use flag?(:i386) instead of obsolete flag?(:i686). (#8863, thanks @bcardiff)
  • Remove Windows workaround using vsnprintf. (#8942, thanks @oprypin)
  • Fixed docs broken link to ruby's prettyprint source. (#8915, thanks @MattHin)
  • Update OptionParser example to exit on --help. (#8927, thanks @vlazar)

Numeric

Text

Collections

  • Fixed make Range#size raise on an open range. (#8829, thanks @Sija)
  • Add Enumerable#empty?. (#8960, thanks @Sija)
  • (performance) Optimized Implementation of Array#fill for zero Values. (#8903, thanks @toddsundsted)
  • Refactor Reflect to an Enumerable private definition. (#8884, thanks @bcardiff)

Serialization

Time

Files

  • Fixed multi-thread race condition by setting fd to -1 on closed File/Socket. (#8873, thanks @bcardiff)
  • Fixed File.dirname with unicode chars. (#8911, thanks @asterite)
  • Add IO::Buffered#flush_on_newline back and set it to true for non-tty. (#8935, thanks @asterite)
  • Forward missing methods of IO::Hexdump to underlying IO. (#8908, thanks @carlhoerberg)

Networking

  • (breaking-change) Correctly support WebSocket close codes. (#8975, #8981, thanks @RX14, @Sija)
  • Make HTTP::Client return empty body_io if content-length is zero. (#8503, thanks @asterite)
  • Fixed UDP specs in the case of a local firewall. (#8817, thanks @RX14)
  • Fixed MIME spec examples to not collide with actual registry. (#8795, thanks @straight-shoota)
  • Fixed UNIXServer, and HTTP::WebSocket specs to ensure server is accepting before closing. (#8755, #8879, thanks @bcardiff)
  • Add type annotation to tls argument in HTTP. (#8678, thanks @j8r)
  • Add Location to HTTP::Request common header names. (#8992, thanks @mamantoha)

Concurrency

System

Runtime

  • Fixed exceptions not being inspectable when running binary from PATH. (#8807, thanks @willhbr)
  • Move AtExitHandlers to Crystal namespace. (#8883, thanks @bcardiff)

Compiler

  • (breaking-change) Drop disable_overflow compiler flag. (#8772, thanks @Sija)
  • Fixed url in "can't infer block return type" error message. (#8869, thanks @nilium)
  • Fixed typo in math interpreter error message. (#8941, thanks @j8r)
  • Use CRYSTAL_OPTS environment variable as default compiler options. (#8900, thanks @bcardiff)
  • Avoid using the default --exclude-warnings value if some is specified. (#8899, thanks @bcardiff)
  • Honor LIBRARY_PATH as default library path, and allow linking with no explicit /usr/lib:/usr/local/lib paths. (#8948, thanks @bcardiff)
  • Fix Windows LLVM globals codegen in non-single-module mode. (#8978, thanks @oprypin)
  • Add support for LLVM 10. (#8940, thanks @RX14)
  • Remove redundant calls to Object.to_s in interpolation in compiler's code. (#8947, thanks @veelenga)

Language semantics

  • Type as NoReturn if calling method on abstract class with no concrete subclasses. (#8870, thanks @asterite)

Tools

Doc generator

Others