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

Објављено је издање програмског језика Цристал 1.2, чији програмери покушавају да комбинују погодност развоја на језику Руби са високим перформансама апликација карактеристичним за језик Ц. Цристал-ова синтакса је блиска Руби-у, али није у потпуности компатибилна са њим, иако се неки Руби програми покрећу без модификација. Код компајлера је написан у Цристал-у и дистрибуиран под лиценцом Апацхе 2.0.

Језик користи статичку проверу типова, имплементирану без потребе за експлицитним навођењем типова променљивих и аргумената метода у коду. Цристал програми се компајлирају у извршне датотеке, са евалуацијом макроа и генерисаним кодом током компајлирања. У Цристал програмима је могуће повезати везе написане у Ц. Паралелизација извршавања кода се врши помоћу кључне речи „спавн“, која вам омогућава да асинхроно покренете позадински задатак, без блокирања главне нити, у облику лаганих нити званих влакна.

Стандардна библиотека пружа велики скуп уобичајених функција, укључујући алате за обраду ЦСВ, ИАМЛ и ЈСОН, компоненте за креирање ХТТП сервера и подршку за ВебСоцкет. Током процеса развоја, згодно је користити команду „цристал плаи“, која генерише веб интерфејс (лоцалхост:8080 подразумевано) за интерактивно извршавање кода на језику Цристал.

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

  • Додата могућност додељивања подкласе генеричке класе елементу родитељске класе. класа Фоо(Т); крајња класа Бар(Т) < Фоо(Т); крај к = Фоо к = Бар
  • Макрои сада могу да користе доњу црту да игноришу вредност у фор петљи. {% за _, в, и у {1 => 2, 3 => 4, 5 => 6} %} п {{в + и}} {% крај %}
  • Додата метода „филе_екистс?“ у макрое. да провери постојање датотеке.
  • Стандардна библиотека сада подржава 128-битне целе бројеве.
  • Додан модул Индекабле::Мутабле(Т) са имплементацијом напредних операција за колекције као што су БитАрраи и Декуе. ба = БитАрраи.нев(10) # ба = БитАрраи[0000000000] ба[0] ​​= труе # ба = БитАрраи[1000000000] ба.ротате!(-1) # ба = БитАрраи[0100000000]
  • Додан метод КСМЛ::Ноде#намеспаце_дефинитион за издвајање одређеног простора имена из КСМЛ-а.
  • Методе ИО#врите_утф8 и УРИ.енцоде су застареле и требало би да буду замењене ИО#врите_стринг и УРИ.енцоде_патх.
  • Подршка за 32-битну к86 архитектуру је премештена на други ниво (готови пакети се више не генеришу). У припреми је прелазак на први ниво подршке за АРМ64 архитектуру.
  • Наставља се рад на обезбеђивању пуне подршке за Виндовс платформу. Додата подршка за Виндовс утичнице.
  • Додан је универзални пакет за мацОС, који ради и на уређајима са к86 процесорима и на опреми са Аппле М1 чипом.

Извор: опеннет.ру

Додај коментар