Drew DeWalt zimanê bernameya pergala Hare destnîşan kir

Drew DeVault, nivîskarê hawîrdora bikarhênerê Sway, xerîdar e-nameya Aerc, û platforma pêşkeftina hevkarî ya SourceHut, zimanê bernamenûsê Hare destnîşan kir, ku ew û tîmê wî ev du sal û nîv in li ser dixebitin. Hare wekî zimanek bernamesaziya pergalê wekî C, lê ji C-yê sadetir tê hesibandin. Di nav prensîbên sêwirana sereke yên Hare de, baldariya diyarkirî li ser hêsankirin û pêbaweriya bêkêmasî ya kiryarên bernameçêker e (bi rastî ya ku hatî destnîşan kirin, bêyî însiyatîf û tevgerê nepenî bikin), bi hebûna amûrên alîkar ji bo destnîşankirina xeletî û pirsgirêkên tîpîk.

Koda çavkaniyê ya berhevkar û zincîra amûran di bin GPLv3 de lîsanskirî ye, û koda pirtûkxaneya standard di bin MPL (Lîsansa Giştî ya Mozilla) de lîsanskirî ye. Guhertoya giştî ya yekem piştgiriya ji bo pergalên xebitandinê ragihand. Linux û FreeBSD li ser platformên x86_64, aarch64, û riscv64, û her weha pêkanînek serbixwe ji bo xebitandina bare-metal. Plan piştgirî ji bo pergalên xebitandinê yên NetBSD, OpenBSD, Illumos, Haiku, û Plan 9 û platformên ppc64le, i686, û arm32 vedihewîne.

Ziman rêveberiya bîranîna destan û pergalek tîpek statîk bikar tîne, ku tê de divê her guhêrbar bi eşkere celebek taybetî were destnîşan kirin. Ji bo xebitandina serîlêdanê, demek xebitandinê ya herî kêm tê girêdan. Ziman ji bo çareserkirina pirsgirêkên nizm ên wekî pêşkeftina pergalên xebitandinê, berhevkar, sepanên torê û karûbarên pergalê yên ku performansa herî zêde û kontrolkirina darvekirinê ya tam hewce dikin xweşbîn e.

Pirtûkxaneyek fonksiyonan a standard ji bo pêşdebiran hatiye amadekirin, ku gihîştina navgînên bingehîn ên pergala xebitandinê, algorîtmayên standard û pêkanînên protokol û formatan peyda dike. Pirtûkxane qadên wekî têketin/derketin, manîpulekirina pelan, vegotinên birêkûpêk, şîfrekirin, torê, operasyonên dem û tarîxê, gihîştina primitivesên Unix-ê yên hevpar (wek anket, fnmatch û glob), parskirin û kontrolkirina tîpan vedihewîne. Girêdanên ji bo gihîştina kapasîteyên OpenGL, SDL2 û libui cuda têne peyda kirin.

Nimûneyên projeyên ku bi zimanê Hare hatine nivîsandin ev in: mîkrokernelê Helios, rêveberê şîfreyê yê Himitsu, sîstema raytracing, bernameya şîfrekirina qutiyê, daemonê bittorrentê btqd, scheduled (sîstemeke mîna cron), firçeya diranan (muwekîl û...) server (ji bo protokola tiliyê). Planên pêşerojê stabîlkirina taybetmendiya ziman û pirtûkxaneya standard, bicîhanîna piştgiriyê ji bo platform û mîmariyên wenda, û zêdekirina fonksiyonên pirtûkxaneyê ji bo piştgiriya TLS 1.2 û 1.3 vedihewîne.

Koda mînak di Hare de: crypto::sha256 bikar bînin; şîfrekirinê bikar bînin::hex; fmt bikar bînin; hash bikar bînin; useio; os bikar bînin; export fn main() void = {const hash = sha256::sha256(); const file = os::open("main.ha"); defer io::close(pel); io::copy(&hash, pel)!; bila sum: [sha256::SIZE]u8 = [0...]; hash::sum(&hash, sum); hex::encode(os::stdout, sum)!; fmt::println()!; const greetings = [ "Silav, dinya!", "¡Hola Mundo!", "Γειά te Κόσμε!", "Silav, dinya!", "こんにちは世界!", ]; ji bo (bila i = 0z; i < len(silav; i += 1) { fmt::println(silav[i])!; }; bila x: *int = alloc(42); fmt::printfln(" x: {}", x)!; fmt::printfln("*x: {}", *x)!; belaş (x); pelê const = os::open(os::args[1])!; defer io::close(pel)!; bila tampon: *[65535]u8 = alloc([0...]); defer free (tampon); const n = io:: xwendin (pel, tampon)! wek size; io::nivîse(os::stdout, tampon[..n])!; }; fn sort(item: []int) void = { ... }; @test fn sort() void = { bila tiştên = [5, 4, 3, 2, 1]; sort(tişt); ji bo (bila i = 1z; i < len(item); i += 1) { assert(item[i - 1] <= hêman[i], "lîste ne rêzkirî ye"); }; };

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster