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