Crystal програмчлалын хэлийг гаргах 1.2

Crystal 1.2 програмчлалын хэлийг гаргасан бөгөөд хөгжүүлэгчид нь Ruby хэл дээрх хөгжүүлэлтийн тав тухыг Си хэлний хэрэглээний өндөр гүйцэтгэлтэй хослуулахыг хичээж байна. Crystal-ийн синтакс нь Ruby-тэй ойролцоо боловч бүрэн нийцдэггүй ч зарим Ruby программууд ямар ч өөрчлөлтгүйгээр ажилладаг. Хөрвүүлэгчийн код нь Crystal дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг.

Энэ хэл нь кодын хувьсагчийн төрөл, аргументуудыг тодорхой зааж өгөх шаардлагагүйгээр статик төрлийн шалгалтыг ашигладаг. Кристал программуудыг гүйцэтгэх боломжтой файл болгон хөрвүүлж, эмхэтгэх үед макронуудыг үнэлж, кодыг үүсгэдэг. Crystal программуудад C хэл дээр бичигдсэн холбоосуудыг холбох боломжтой. Кодын гүйцэтгэлийг параллель болгох нь "үрс" түлхүүр үгийг ашиглан хийгддэг бөгөөд энэ нь үндсэн утсыг хаахгүйгээр асинхрон горимд арын даалгаврыг утас гэж нэрлэгддэг хөнгөн утас хэлбэрээр ажиллуулах боломжийг олгодог.

Стандарт номын сан нь CSV, YAML, JSON боловсруулах хэрэгслүүд, HTTP сервер үүсгэх бүрэлдэхүүн хэсгүүд, WebSocket-ийн дэмжлэг зэрэг олон тооны нийтлэг функцуудыг өгдөг. Боловсруулалтын явцад Crystal хэл дээрх кодыг интерактив байдлаар гүйцэтгэх вэб интерфэйс (анхдагчаар localhost:8080) үүсгэдэг "кристал тоглох" командыг ашиглах нь тохиромжтой.

Үндсэн өөрчлөлтүүд:

  • Ерөнхий ангийн дэд ангийг эх ангийн элементэд оноох боломжийг нэмсэн. Foo(T) анги; төгсгөлийн анги Bar(T) < Foo(T); төгсгөл x = Foo x = Bar
  • Макро нь одоо for циклийн утгыг үл тоомсорлохын тулд доогуур зураасыг ашиглаж болно. {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% төгсгөл %} {XNUMX => XNUMX, XNUMX => XNUMX, XNUMX -д {% for _, v, i
  • Макродод “файл_байгаа?” аргыг нэмсэн. файл байгаа эсэхийг шалгах.
  • Стандарт номын сан одоо 128 битийн бүхэл тоог дэмждэг.
  • BitArray, Deque зэрэг цуглуулгад зориулсан дэвшилтэт үйлдлүүдийг хэрэгжүүлэх Indexable::Mutable(T) модулийг нэмсэн. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = үнэн # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • XML-ээс тодорхой нэрийн орон зайг гаргаж авахын тулд XML::Node#namespace_definition аргыг нэмсэн.
  • IO#write_utf8 болон URI.encode аргууд нь хуучирсан бөгөөд IO#write_string болон URI.encode_path-аар солигдох ёстой.
  • 32 битийн x86 архитектурын дэмжлэгийг хоёр дахь түвшинд шилжүүлсэн (бэлэн багцуудыг үүсгэхээ больсон). ARM64 архитектурын дэмжлэгийн эхний түвшинд шилжүүлэх ажлыг бэлтгэж байна.
  • Windows платформд бүрэн дэмжлэг үзүүлэх ажил үргэлжилж байна. Windows залгууруудын дэмжлэгийг нэмсэн.
  • x86 процессортой төхөөрөмж болон Apple M1 чиптэй төхөөрөмж дээр ажилладаг бүх нийтийн багцыг macOS-д нэмсэн.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх