Crystal 0.34.0 ื™ืฆื ืœืื•ืจ

ืฉื•ื—ืจืจื” ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ืงืจื™ืกื˜ืœ, ืฉืคืช ืชื›ื ื•ืช ืžื”ื•ืœื›ืช ืขื ืชื—ื‘ื™ืจ Ruby, ืฉื”ืžืืคื™ื™ื ื™ื ื”ืขื™ืงืจื™ื™ื ืฉืœื” ื”ื ื–ืžืŸ ืจื™ืฆื” ืขื ืœื•ืœืืช ืื™ืจื•ืขื™ื "ืžื•ื‘ื ื™ืช", ืฉื‘ื” ื›ืœ ืคืขื•ืœื•ืช ื”-I/O ื”ืŸ ืืกื™ื ื›ืจื•ื ื™ื•ืช, ืชืžื™ื›ื” ื‘ืจื™ื‘ื•ื™ ื”ืฉื—ืœื•ืช (ื›ืœ ืขื•ื“ ื›ืคื™ ืฉื”ื•ื ืžืชืืคืฉืจ ืขืœ ื™ื“ื™ ื“ื’ืœ ื‘ืžื”ืœืš ื”ื”ื™ื“ื•ืจ) ื•ื”ืคืขืœื” ืคืฉื•ื˜ื” ื•ื ื•ื—ื” ื‘ืžื™ื•ื—ื“ ืขื ืกืคืจื™ื•ืช ื‘-C.

ื”ื—ืœ ืžื’ืจืกื” 0.34.0, ื”ืฉืคื” ืžืชื—ื™ืœื” ืจืฉืžื™ืช ืœื”ืชืงื“ื ืœืงืจืืช ื”ืžื”ื“ื•ืจื” ื”ืืžื™ืชื™ืช ื”ืจืืฉื•ื ื” ืฉืœื” (ื›ืœื•ืžืจ ื’ืจืกื” 1.0).

ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ืงืจื™ืกื˜ืœ ื›ื•ืœืœืช ืืช ื”ืฉื™ื ื•ื™ื™ื ื•ื”ืฉื™ืคื•ืจื™ื ื”ื‘ืื™ื ืœืคื™ ืกื“ืจ ื”ื—ืฉื™ื‘ื•ืช:

  • ืกืคืจื™ื™ืช ืจื™ืฉื•ื ื—ื“ืฉื” ื ื•ืกืคื” ืœ-API ื”ืชื—ื‘ืจ, ืฉื‘ื ื™ื’ื•ื“ ืœื™ืฉืŸ, ื™ื›ื•ืœ ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช ืœื—ืœืงื™ื ืขื•ืจืคื™ื™ื ืฉื•ื ื™ื ื•ืœืกื ืŸ ื”ื•ื“ืขื•ืช ืืœื• ื‘ืฆื•ืจื” ืฉื•ื ื” ื‘ื”ืชืื ืœ"ืžืงื•ืจ".

  • ื™ืกื•ื“ื•ืช ืžืขื•ืœื ืคื™ืชื•ื— C, ืืจื ื• ะธ WinError, ื”ืžืฉืžืฉื™ื ืœืคืจื™ืžื™ื˜ื™ื‘ื™ื ืฉืœ I/O, ื”ื•ืคื›ื™ื ืœื ื—ืœืช ื”ืขื‘ืจ ื”ื•ื“ื•ืช ืœื”ื™ืจืจื›ื™ื™ืช ื”ื—ืจื™ื’ IO::ืฉื’ื™ืื” (ืขื ื–ืืช, ืืฃ ืื—ื“ ืœื ืื•ืกืจ ืขื“ื™ื™ืŸ ืœื”ืฉืชืžืฉ ื‘-Errno).

  • ื”ื•ืกืจ ื”ื—ืœืคื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ else nil ืžื”ืžืคืขื™ืœ ืžืงืจื”/ืžืชื™/ืื—ืจ. ื–ื” ื ืขืฉื” ืขืœ ืžื ืช ืœืžื ื•ืข ืžื”ื™ื–ื ืœื“ืœื’ ื‘ื˜ืขื•ืช ืขืœ ืื—ื“ ื”ืกื ื™ืคื™ื. ืžืชื™ ื‘ืขืช ื”ืชืืžื” ืขืœ ืžืงืจื™ื ื“ื˜ืจืžื™ื ื™ืกื˜ื™ื™ื ื›ืžื• ืžื ื•ืกื™ื ื•ืžืขื‘ืจ ื‘ื™ืŸ ื˜ื™ืคื•ืกื™ื ืž-Union. ื›ืœื•ืžืจ, ื‘ืžื™ืœื™ื ืคืฉื•ื˜ื•ืช, ื”ืงื•ื“ ื”ื–ื” ื›ื‘ืจ ืœื ื™ืขื‘ื•ื“ ื‘ืœื™ ืœืฆื™ื™ืŸ ืขื•ื“ ืื—ื“ ืžืชื™ (ื›ืืฉืจ Char) ืื• ืžืฉื™ืžื•ืช ืื—ืจ-ืขื ืคื™ื:

a = 1 || 'x' || "ืคื•"
ืžืงืจื” ื
ื›ืืฉืจ Int32
#โ€ฆ
ื›ืืฉืจ ืžื—ืจื•ื–ืช
#โ€ฆ
ืกื•ืฃ

  • ืืคืฉืจื•ืช ืžื”ื“ืจ disable_overflow ื›ื‘ืจ ืœื ื–ืžื™ืŸ. ืขื‘ื•ืจ ืคืขื•ืœื•ืช ื”ืฆืคื”, ื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช &+, &-, &*.

  • ืžืขืจืš#ืžื™ืœื•ื™ ืขื›ืฉื™ื• ื˜ืก ืžื”ืจ ื™ื•ืชืจ ืžื›ื“ื•ืจ, ื”ื•ื“ื•ืช ืœื”ื—ืœืคืช ื”ืœื•ืœืื” ื”ืžื˜ื•ืคืฉืช ื‘ืžืžืกื˜ ืื—ื“ ืคืฉื•ื˜;

  • ืžื ื”ืœ ืจืกื™ืกื™ื (ื—ื‘ื™ืœื•ืช), ื”ื ืงืจื, ื‘ืื•ืคืŸ ืคืจื“ื•ืงืกืœื™, ืฉื‘ืจื™ื, ืžืฉืชืžืฉ ื›ืขืช ื‘ืืœื’ื•ืจื™ืชื ืฉื‘ื™ืขื•ืช ืจืฆื•ืŸ ื”ืชืœื•ืช ืฉืœ Molinillo ื”ืžื”ื™ืจ ื•ื”ื™ืขื™ืœ ื™ื•ืชืจ ืฉื ืžืฆื ื‘-CocoaPods (Swift) ื•ื‘-Builder (Ruby).

  • ื ื•ืกืคื” ืชืžื™ื›ื” LLVM 10, ืžื” ืฉื‘ืชื™ืื•ืจื™ื” ื™ื™ืชืŸ ืœื ื• ืขืœื™ื™ื” ืžืกื•ื™ืžืช ื‘ืชืคื•ืงื”, ื™ืฆื™ื‘ื•ืช ื•ื›ื•'.

... ื•ืขื•ื“ ืจื‘ื™ื ืื—ืจื™ื, ืœื“ืขืชื™ ื”ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ืช, ืฉื™ืคื•ืจื™ื ืคื—ื•ืช ืžืฉืžืขื•ืชื™ื™ื.

ื‘ืจืฆื•ื ื™ ืœืฆื™ื™ืŸ ืฉ-Crystal ื”ื™ื ืฉืคื” ื”ื‘ื ื•ื™ื” ืขืœ LLVM, ื”ืžืืคืฉืจืช ืœืš ืœื›ืชื•ื‘ ืืคืœื™ืงืฆื™ื•ืช ืœืคืขืžื™ื ืžื”ืจ ื™ื•ืชืจ, ืคืฉื•ื˜ ื•ืชืžืฆื™ืชื™ ื™ื•ืชืจ ืžืืฉืจ ืขืœ "ืื—ื™ื”" ื”ืžืชืคืจืฉื™ื, ื•ื‘ืžืงื‘ื™ืœ ืœืงื‘ืœ ื›ืชื•ืฆืื” ืžื›ืš ื‘ื™ื ืืจื™ ืžื”ื™ืจ ืœืžื“ื™. ื‘ื”ืฉื•ื•ืื” ืœื’ื•ืœืื ื’, ื”ื•ื ื‘ื•ืœื˜ ื‘ื–ื›ื•ืช ื”-OPP ื”ืžืœื ืœื—ืœื•ื˜ื™ืŸ, ื”ืชืžื™ื›ื” ื‘ื’ื ืจื™ื•ืช ื•ืชื—ื‘ื™ืจ ืคืฉื•ื˜ ื•ืžื•ื‘ืŸ ืžืื•ื“. ืžื˜ืจืชื• ื“ื•ืžื” ื‘ืžื™ื“ื” ืจื‘ื” ืœ-Nim, ืืš ื™ื—ื“ ืขื ื–ืืช ื”ื™ื ืžืชืžืงื“ืช ื‘ื‘ื™ืจื•ืจ ื‘ืฉื™ืžื•ืฉ ืžืขืฉื™ "ื›ืืŸ ื•ืขื›ืฉื™ื•", ืฉื‘ื–ื›ื•ืชื” ื™ืฉ ืœื” ื‘ืืจืกื ืœ ื”-API ืฉืœื” ื›ืœื™ื ืจื‘ื™ื ืžืชื•ืขื“ื™ื, ื ื•ื—ื™ื ื•ืื™ื›ื•ืชื™ื™ื, ื”ื ืชืžื›ื™ื ืขืœ ื™ื“ื™ ืžืคืชื—ื™ ืฉืคื” ื•ืœื›ืŸ ื™ืฆื™ื‘ื™ื ืžืื•ื“.

ืžืงื•ืจ: linux.org.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”