Crystal 0.34.0 เบ›เปˆเบญเบเบญเบญเบเบกเบฒ

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡ Crystal เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ Ruby syntax, เบฅเบฑเบเบชเบฐเบ™เบฐเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™ runtime เบ—เบตเปˆเบกเบต "built-in" loop เป€เบซเบ”เบเบฒเบ™, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ I / O เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™ asynchronous, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ multithreading (เบ”เบปเบ™เบ™เบฒเบ™. เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ—เบธเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก) เปเบฅเบฐเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบชเบฐเบ”เบงเบเบ—เบตเปˆเบชเบธเบ”เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ™ C.

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบฐเบšเบฑเบš 0.34.0, เบžเบฒเบชเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ” (i.e. เบชเบฐเบšเบฑเบš 1.0).

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡ Crystal เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™:

  • เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบšเบฑเบ™เบ—เบถเบเปƒเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ API เปเบฅเป‰เบง เบ•เบปเบงเป€เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒ, เป€เบŠเบดเปˆเบ‡, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบญเบฑเบ™เป€เบเบปเปˆเบฒ, เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ›เบซเบฒ backends เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบก "เปเบซเบผเปˆเบ‡".

  • Rudiments เบˆเบฒเบโ€‹เป‚เบฅเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒ Cโ€‹, เป€เบญเบตเป‚เบฃ ะธ WinError, เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš I/O primitives, เบเบฒเบเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบเป‰เบญเบ™เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™. IO::เบœเบดเบ”เบžเบฒเบ” (เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเปเปˆเบกเบตเปƒเบœเบซเป‰เบฒเบกเปƒเบŠเป‰ Errno เป€เบ—เบทเปˆเบญ).

  • เป€เบญเบปเบฒเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ else nil เบญเบญเบเบˆเบฒเบเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ เบเป เบฅเบฐ เบ™เบต / เปƒเบ™ เป€เบง เบฅเบฒ เบ—เบตเปˆ / เบญเบทเปˆเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบกเบชเบฒเบ‚เบฒเบซเบ™เบถเปˆเบ‡เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบŠเบฑเปˆเบ™ enums เปเบฅเบฐเบœเปˆเบฒเบ™เบ›เบฐเป€เบžเบ”เบˆเบฒเบเบชเบฐเบซเบฐเบžเบฑเบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบงเบปเป‰เบฒเบ‡เปˆเบฒเบเป†, เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡ เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ (เป€เบกเบทเปˆเบญ Char) เบซเบผเบทเบงเบฝเบเบ‡เบฒเบ™ เบญเบทเปˆเบ™- เบชเบฒเบ‚เบฒ:

a = 1 || 'x' || "เบŸเบน"
เบเปเบฅเบฐเบ™เบต เบ
เป€เบกเบทเปˆเบญ Int32
#โ€ฆ
เป€เบกเบทเปˆเบญ String
#โ€ฆ
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก disable_overflow เบšเปเปˆเบกเบตเปเบฅเป‰เบง. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ overflow, เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ &+, &-, &*.

  • Array #เบ•เบทเปˆเบก เบ”เบฝเบงเบ™เบตเป‰เบšเบดเบ™เป„เบงเบเบงเปˆเบฒเบฅเบนเบเบ›เบทเบ™, เบ‚เบญเบšเปƒเบˆเบ—เบตเปˆเบ›เปˆเบฝเบ™เบชเบฒเบเบ—เบตเปˆเป‚เบ‡เปˆเป†เบ”เป‰เบงเบ memset เบ‡เปˆเบฒเบเป†เบญเบฑเบ™เบ”เบฝเบง;

  • เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบ‚เบญเบ‡ shards (เบŠเบธเบ”), เป€เบญเบตเป‰เบ™เบงเปˆเบฒ, paradoxically, เบ›เบฒ, เบ•เบญเบ™เบ™เบตเป‰เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเปเปƒเบˆเปƒเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช Molinillo เบ—เบตเปˆเป„เบง เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบงเปˆเบฒเบ—เบตเปˆเบžเบปเบšเปƒเบ™ CocoaPods (Swift) เปเบฅเบฐ Builder (Ruby).

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ LLVM 10, เบŠเบถเปˆเบ‡เปƒเบ™เบ—เบดเบ”เบชเบฐเบ”เบตเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบšเบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

... เปเบฅเบฐเบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบ™เป‰เบญเบ.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ Crystal เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™ LLVM, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป„เบง, เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบŠเบฑเบ”เป€เบˆเบ™เบเบงเปˆเบฒเบเปˆเบฝเบงเบเบฑเบš "เบญเป‰เบฒเบเบ™เป‰เบญเบ‡", เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบฅเบฑเบšเบ—เบตเปˆเป„เบงเบžเปเบชเบปเบกเบ„เบงเบ™. เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš Golang, เบกเบฑเบ™เป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ OOP เป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบกเบฑเบ™, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš generics, เปเบฅเบฐ syntax เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš Nim, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบธเบกเปƒเบชเปˆเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบˆเบดเบ‡ "เบ—เบตเปˆเบ™เบตเป‰เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™", เบเป‰เบญเบ™เบกเบฑเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบชเบฒเบ™เบซเบ™เบน API เบ‚เบญเบ‡เบ•เบปเบ™เบซเบผเบฒเบเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ”เบต, เบชเบฐเบ”เบงเบเปเบฅเบฐเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบชเบนเบ‡, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบžเบฒเบชเบฒเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบซเบผเบฒเบ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™