Drew DeVault, marubucin yanayin mai amfani da Sway, abokin ciniki na imel na Aerc, da kuma dandalin haɓaka haɗin gwiwar SourceHut, sun gabatar da harshen shirye-shiryen Hare, wanda shi da tawagarsa ke aiki a cikin shekaru biyu da rabi da suka gabata. Hare ana lissafta shi azaman yaren shirye-shiryen tsarin kama da C, amma ya fi C sauƙi. Daga cikin mahimman ka'idodin ƙira na Hare, abin da aka bayyana ya fi mayar da hankali kan sauƙaƙewa da cikakken amincewa ga ayyukan mai shirye-shiryen (yi daidai abin da aka ƙayyade, ba tare da yunƙuri da ɗabi'a na zahiri ba), tare da kasancewar kayan aikin taimako don gano kurakurai na yau da kullun da matsaloli.
Исходные тексты компилятора и инструментария распространяются под лицензией GPLv3, а код стандартной библиотеки под лицензией MPL (Mozilla Public License). В первом публичном выпуске заявлена поддержка операционных систем Linux и FreeBSD на платформах x86_64, aarch64 и riscv64, а также самодостаточное использование для запуска поверх оборудования без операционной системы. В планах упоминается поддержка операционных систем NetBSD, OpenBSD, Illumos, Haiku и Plan 9 и платформ ppc64le, i686 и arm32.
Harshen yana amfani da sarrafa ƙwaƙwalwar ajiyar hannu da tsarin nau'in tsayayyen tsari, wanda kowane mai canzawa dole ne a sanya takamaiman nau'i a sarari. Don gudanar da aikace-aikacen, an haɗa ƙaramin lokacin aiki. An inganta harshen don magance ƙananan ƙananan matsaloli kamar haɓaka tsarin aiki, masu tarawa, aikace-aikacen cibiyar sadarwa da kayan aikin tsarin da ke buƙatar iyakar aiki da cikakken ikon aiwatarwa.
An shirya madaidaicin ɗakin karatu na ayyuka don masu haɓakawa, suna ba da dama ga mahimman musaya na tsarin aiki, daidaitattun algorithms da aiwatar da ka'idoji da tsari. Laburaren ya ƙunshi wurare kamar shigarwa/fitarwa, sarrafa fayil, maganganu na yau da kullun, ɓoyewa, hanyar sadarwa, ayyukan lokaci da kwanan wata, samun dama ga abubuwan gama gari na Unix (kamar jefa kuri'a, fnmatch da glob), tantancewa da nau'in dubawa. Ana ba da ɗawainiya don samun dama ga OpenGL, SDL2 da damar libui daban.
В качестве примеров проектов, написанных на языке Hare, упоминаются микроядро Helios, менеджер паролей Himitsu, система трассировки лучей raytracing, программа для шифрования box, bittorrent-демон btqd, scheduled (аналог системы cron), toothbrush (клиент и sabar для протокола finger). Из планов на будущее отмечается стабилизация спецификации языка и состава стандартной библиотеки, реализация поддержки недостающих платформ и архитектур, добавление библиотечных функций для поддержки TLS 1.2 и 1.3.
Lambar misali a cikin Hare: yi amfani da crypto::sha256; amfani da ɓoyewa :: hex; amfani fmt; amfani da zanta; amfani; amfani da os; fitarwa fn main() banza = {const hash = sha256::sha256(); const fayil = os :: bude ("main.ha")!; jinkirta io :: kusa (fayil); io:: kwafi(&hash, file)!; jimla: [sha256::SIZE]u8 = [0...]; hash :: suma (&hash, sum); hex:: encode (os:: stdout, sum)!; fmt::println();! const gaisuwa = ["Hello, duniya!", "¡Hola Mundo!", "Γειά σου Κόσμε!", "Hello, duniya!", "こんにちは世界!",]; don (bari i = 0z; i < len (gaisuwa); i += 1) {fmt :: println (gaisuwa[i])!; }; bari x: *int = alloc(42); fmt::printfln ("x: {}", x); fmt::printfln ("*x: {}", *x)!; kyauta (x); const fayil = os :: bude (os :: args [1]) !; jinkirta io :: kusa (fayil); bari buffer: *[65535]u8 = alloc ([0...]); jinkirta kyauta (buffer); const n = io :: karanta (fayil, buffer)! kamar girman; io:: rubuta (os::stdout, buffer[..n])!; }; fn nau'i (kayan: []int) banza = {... }; @test fn nau'i () fanko = {bari abubuwa = [5, 4, 3, 2, 1]; iri (kayan); don (bari i = 1z; i < len (abubuwa); i += 1) {tabbatar (kayayyaki[i - 1] <= abubuwa[i], "jerin da ba a warware ba"); }; };
source: budenet.ru
