НаличСн Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Crystal 1.0

Π‘ΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° програмния Π΅Π·ΠΈΠΊ Crystal 1.0 бСшС обявСно. Π˜Π·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΠΎ Π·Π° ΠΏΡŠΡ€Π²ΠΈΡ Π·Π½Π°Ρ‡ΠΈΠΌ Ρ€Π΅Π»ΠΈΠ·, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰Π°Π²Π° 8 Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ Π±Π΅Π»Π΅ΠΆΠΈ стабилизация Π½Π° Π΅Π·ΠΈΠΊΠ°, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Ρ€Π΅Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. Π’ ΠΊΠ»ΠΎΠ½ 1.x Ρ‰Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ ΠΈ Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ, Ρ‡Π΅ няма Π΄Π° ΠΈΠΌΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Π΅Π·ΠΈΠΊΠ° ΠΈ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° компилацията ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ ΠΊΠΎΠ΄.

Π˜Π·Π΄Π°Π½ΠΈΡΡ‚Π° 1.0.y Ρ‰Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ само ΠΊΠΎΡ€Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ вСрсиитС 1.x.0 Ρ‰Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Π½ΠΎΠ²Π° функционалност ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° с ΠΊΠΎΠ΄Π°. Нови ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Ρ‰Π΅ сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½, Π½Π° Π±Π°Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ-късно Ρ‰Π΅ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Crystal 2.0. Някои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Crystal 1.0 са обявСни ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΈ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ ΠΈΠΌ Π² ΠΊΠ»ΠΎΠ½ 1.0, Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ ΠΏΠΎΠ΄ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°. Π‘Ρ€Π΅Π΄ Ρ‚Π΅Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ са монопоточността, Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° систСми с процСсори ARM.

НапомнямС, Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Crystal сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚ удобството Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Ruby с висока производитСлност, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° Π·Π° Π΅Π·ΠΈΠΊΠ° C. Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Crystal Π΅ близък Π΄ΠΎ Ruby, Π½ΠΎ Π½Π΅ Π΅ напълно ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с Π½Π΅Π³ΠΎ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ някои Ruby ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ работят Π±Π΅Π· ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π΅ написан Π½Π° Crystal ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Apache 2.0.

Π’ Π΅Π·ΠΈΠΊΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° статична ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π±Π΅Π· нСобходимост ΠΎΡ‚ явното посочванС Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π½Π° Crystal сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, с изчисляванС Π½Π° макроси ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилацията. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π½Π° Crystal Π΅ допустимо ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ, написани Π½Π° C. ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠ΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Ρ‡Ρ€Π΅Π· ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Π΄ΡƒΠΌΠ° β€žspawnβ€œ, която позволява стартиранС Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° основния ΠΏΠΎΡ‚ΠΎΠΊ, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π»Π΅ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈ Ρ„ΠΈΠ±Ρ€ΠΈ (Fiber).

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставя Π±ΠΎΠ³Π°Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ срСдства Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° CSV, YAML ΠΈ JSON, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° създаванС Π½Π° HTTP ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° WebSocket. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«crystal playΒ», която Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡƒΠ΅Π± интСрфСйс (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ localhost:8080) Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π½Π° Crystal.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π’ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈΡ‚Π΅ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ индСксСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΈΠΌΠ° информация Π·Π° Ρ‚ΠΈΠΏΠ° Π½Π° всСки Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚. НапримСр: tuple = {1, "hello", 'x'} v = tuple[0..1] # Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ {1, "hello"} typeof(v) # => Tuple(Int32, String)
  • Π’ строковитС ΠΈ символни Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ Π΅ Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° сурогатни ΡΡŠΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡ Π² escape-послСдоватСлности Unicode, ΠΊΠ°Ρ‚ΠΎ Β«\uD834Β». Π—Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ стойности слСдва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° нотацията Β«\xΒ».
  • Π’ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° голяма част ΠΎΡ‚ опрСдСлСнията, макроситС ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° бяха ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ остарСли. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΊΠ°Ρ‚ΠΎ Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill ΠΈ Π΄Ρ€.
  • Π’ макроситС getter ΠΈ property Π²Π΅Ρ‡Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΈΠΏΠ° Π½Π° Π²Ρ€ΡŠΡ‰Π°Π½Π°Ρ‚Π° стойност.
  • ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Π·Π° Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ Π½Π° TIES_EVEN («банкСрско Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ½Π΅Β», Π΄ΠΎ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΎΡ‚ΠΎ цяло число, Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΈ ситуации Π΄ΠΎ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΎΡ‚ΠΎ Ρ‡Π΅Ρ‚Π½ΠΎ число). Π’ Number#round Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ RoundingMode, ΠΊΠΎΠΉΡ‚ΠΎ позволява ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ½Π΅. Π‘Ρ€Π΅Π΄ Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ са: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • Π’ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π΅ осигурСна Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Enumerable#flat_map ΠΈ Iterator#flat_map с Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ смСсСни Ρ‚ΠΈΠΏΠΎΠ²Π΅.
  • ΠŸΡ€ΠΈ сСриализацията Π½Π° послСдоватСлности Enum Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° прСдставянС ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ с Π΄ΠΎΠ»Π½Π° Ρ‡Π΅Ρ€Ρ‚Π°.
  • Π’ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π° XML, са ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»ΠΈ ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° struct към class.
  • По ΡΡŠΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π·Π° сигурност Π΅ прСустановСно Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Cookie, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° стойноститС Π½Π° Cookie (ΠΏΡ€Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΎ Π½Π° Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ ΠΈ прилоТСнията). ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ HTTP::Cookies.from_headers Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster