เบเบฒเบ™เบ›เปˆเบญเบเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Crystal 1.2

เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ›เบฅเปเบเบฅเบก Crystal 1.2 เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบžเบฒเบชเบฒ Ruby เบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเบนเบ‡เบ‚เบญเบ‡เบžเบฒเบชเบฒ C. syntax เบ‚เบญเบ‡ Crystal เปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบš, เปเบ•เปˆเบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš Ruby, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Ruby เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡. เบฅเบฐเบซเบฑเบ” compiler เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ Crystal เปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0.

เบžเบฒเบชเบฒเปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบดเบ”, เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เป‚เบ„เบ‡เบเบฒเบ™ Crystal เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบกเบฐเบซเบฒเบžเบฒเบเปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก. เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Crystal, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ C. เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบซเบฅเบฑเบ "spawn", เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบžเบทเป‰เบ™เบซเบฅเบฑเบ‡เปเบšเบš asynchronously, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบเบฑเบ”เบชเบฒเบเบซเบผเบฑเบ, เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเบฐเบ—เบนเป‰เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เป„เบ.

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบŠเบธเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบปเปˆเบงเป„เบ›, เบฅเบงเบกเบ—เบฑเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™ CSV, YAML, เปเบฅเบฐ JSON, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ HTTP, เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ WebSocket. เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹, เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบ”เบงเบโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡ "crystal playโ€‹"โ€‹, เป€เบŠเบดเปˆเบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ‚เบญเบ‡โ€‹เป€เบงเบฑเบšโ€‹เป„เบŠโ€‹เบ•โ€‹เปŒ (localhost:8080 เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹) เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เปƒเบ™โ€‹เบžเบฒโ€‹เบชเบฒ Crystalโ€‹.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบ subclass เบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบปเปˆเบงเป„เบ›เปƒเบซเป‰เบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เปเบกเปˆ. เบซเป‰เบญเบ‡เบฎเบฝเบ™ Foo(T); เบˆเบปเบšเบŠเบฑเป‰เบ™ Bar(T) < Foo(T); end x = Foo x = Bar
  • เบ”เบฝเบงเบ™เบตเป‰ Macros เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ‚เบตเบ”เบเป‰เบญเบ‡เป€เบžเบทเปˆเบญเบšเปเปˆเบชเบปเบ™เปƒเบˆเบ„เปˆเบฒเปƒเบ™ for loop. {% เบชเปเบฒเบฅเบฑเบš _, v, i เปƒเบ™ {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • เป€เบžเบตเปˆเบก โ€œfile_exists?โ€ เบงเบดเบ—เบตเบเบฒเบ™เปƒเบชเปˆ macros. เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒ.
  • เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ 128-bit integers.
  • เป€เบžเบตเปˆเบก Indexable::Mutable(T) เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบŠเบฑเปˆเบ™ BitArray เปเบฅเบฐ Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • เป€เบžเบตเปˆเบก XML::Node#namespace_definition method เป€เบžเบทเปˆเบญเปเบเบ namespace เบชเบฐเป€เบžเบฒเบฐเบญเบญเบเบˆเบฒเบ XML.
  • เบงเบดเบ—เบตเบเบฒเบ™ IO#write_utf8 เปเบฅเบฐ URI.encode เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ เปเบฅเบฐเบ„เบงเบ™เบˆเบฐเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ IO#write_string เปเบฅเบฐ URI.encode_path.
  • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ 32-bit x86 เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ—เบตเบชเบญเบ‡ (เบŠเบธเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปเบฅเป‰เบงเบˆเบฐเบšเปเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบญเบตเบ). เบเบฒเบ™เป‚เบญเบ™เป„เบ›เบซเบฒเบฅเบฐเบ”เบฑเบšเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ ARM64 เบเปเบฒเบฅเบฑเบ‡เบเบฐเบเบฝเบก.
  • เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบต Windows. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบฑเบญเบเป€เบเบฑเบ” Windows.
  • เบŠเบธเบ”เบ—เบปเปˆเบงเป„เบ›เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบชเปเบฒเบฅเบฑเบš macOS, เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเป‚เบ›เป€เบŠเบ”เป€เบŠเบต x86 เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบŠเบดเบš Apple M1.

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

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