Издавање на програмскиот јазик Кристал 1.2

Објавено е објавувањето на програмскиот јазик Crystal 1.2, чиишто развивачи се обидуваат да ја комбинираат практичноста на развојот на јазикот Ruby со високите перформанси на апликацијата, карактеристични за јазикот C. Синтаксата на Crystal е блиска, но не е целосно компатибилна со Ruby, иако некои Ruby програми работат без модификација. Кодот на компајлерот е напишан во Кристал и дистрибуиран под лиценцата Apache 2.0.

Јазикот користи проверка на статички тип, имплементирана без потреба експлицитно да се специфицираат типовите на променливи и аргументите на методот во кодот. Кристалните програми се компајлираат во извршни датотеки, со евалуација на макроа и генерирање на код во времето на компајлирање. Во програмите Crystal, можно е да се поврзат врски напишани во C. Паралелизирањето на извршувањето на кодот се врши со помош на клучниот збор „spawn“, кој ви овозможува асинхроно да извршите задача во заднина, без да ја блокирате главната нишка, во форма на лесни нишки наречени влакна.

Стандардната библиотека обезбедува голем сет на заеднички функции, вклучувајќи алатки за обработка на CSV, YAML и JSON, компоненти за креирање HTTP сервери и поддршка за WebSocket. За време на процесот на развој, погодно е да се користи командата „crystal play“, која генерира веб-интерфејс (локален хост: 8080 по дифолт) за интерактивно извршување на кодот во јазикот Кристал.

Главни промени:

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

Извор: opennet.ru

Купете доверлив хостинг за сајтови со DDoS заштита, VPS VDS сервери 🔥 Купете сигурен веб-хостинг со DDoS заштита, VPS VDS сервери | ProHoster