U-Drew DeWalt wethula ulimi lokuhlela uhlelo lwe-Hare

U-Drew DeVault, umbhali wendawo yomsebenzisi we-Sway, iklayenti le-imeyili le-Aerc, kanye nesiteji sokuthuthukisa ngokubambisana se-SourceHut, wethule ulimi lohlelo lwe-Hare, yena nethimba lakhe abebesebenza kulo iminyaka emibili nengxenye edlule. UHare uthathwa njengolimi lokuhlela lwezinhlelo olufana no-C, kodwa olulula kuno-C. Phakathi kwezimiso eziyinhloko zokuklama zikaHare, kugxilwa kakhulu ekwenzeni lula nokwethembela okuphelele ezenzweni zomhleli (yenza lokho okushiwo, ngaphandle kokusukumela phezulu nokuziphatha okusobala), ngokuba khona kwamathuluzi asizayo okuhlonza amaphutha nezinkinga ezivamile.

Ikhodi yomthombo we-compiler kanye ne-toolchain inelayisensi ngaphansi kwe-GPLv3, kanti ikhodi yelabhulali ejwayelekile inelayisensi ngaphansi kwe-MPL (Mozilla Public License). Ukukhishwa kokuqala komphakathi kumemezele ukwesekwa kwezinhlelo zokusebenza Linux kanye ne-FreeBSD kumapulatifomu e-x86_64, aarch64, kanye ne-riscv64, kanye nokusetshenziswa okuzimele kokusebenza kwe-bare-metal. Izinhlelo zifaka phakathi ukusekelwa kwezinhlelo zokusebenza ze-NetBSD, i-OpenBSD, i-Illumos, i-Haiku, kanye ne-Plan 9 kanye namapulatifomu e-ppc64le, i686, kanye ne-arm32.

Ulimi lisebenzisa ukuphathwa kwenkumbulo okwenziwa ngesandla kanye nesistimu yohlobo olumile, lapho okuhlukile ngakunye kufanele kunikezwe ngokucacile uhlobo oluthile. Ukuze uqalise uhlelo lokusebenza, kunamathiselwe ubuncane besikhathi sokusebenza. Ulimi lulungiselelwe ukuxazulula izinkinga ezisezingeni eliphansi ezifana nokuthuthukisa amasistimu okusebenza, izihlanganisi, izinhlelo zokusebenza zenethiwekhi nezinsiza zesistimu ezidinga ukusebenza okuphezulu nokulawula ukusebenza okugcwele.

Umtapo wezincwadi ojwayelekile wemisebenzi ulungiselwe abathuthukisi, ohlinzeka ngokufinyelela kuzindawo zokusebenzelana eziyisisekelo zesistimu yokusebenza, ama-algorithms ajwayelekile kanye nokusetshenziswa kwamaphrothokholi namafomethi. Umtapo wolwazi uhlanganisa izindawo ezinjengokufaka/okukhiphayo, ukukhohlisa kwamafayela, izinkulumo ezivamile, ukubethela, inethiwekhi, isikhathi nosuku ukusebenza, ukufinyelela ezindabeni zakudala ze-Unix (ezifana ne-poll, i-fnmatch neglob), ukucozulula nokuhlola uhlobo. Izibopho zokufinyelela ku-OpenGL, SDL2 kanye namakhono e-libui kunikezwa ngokuhlukene.

Izibonelo zamaphrojekthi abhalwe ngolimi lweHare zifaka phakathi i-Helios microkernel, umphathi wephasiwedi we-Himitsu, uhlelo lokulandelela ama-ray, uhlelo lokubethela ibhokisi, i-btqd bittorrent daemon, ehleliwe (uhlelo olufana ne-cron), ibhulashi lamazinyo (iklayenti kanye isifiso (ngephrothokholi yomunwe). Amacebo esikhathi esizayo afaka phakathi ukuzinzisa ukucaciswa kolimi kanye nomtapo wolwazi ojwayelekile, ukusebenzisa ukwesekwa kwamapulatifomu nezakhiwo ezingekho, kanye nokwengeza imisebenzi yomtapo wolwazi ukusekela i-TLS 1.2 kanye ne-1.3.

Ikhodi yesibonelo kuHare: sebenzisa i-crypto::sha256; sebenzisa umbhalo wekhodi::hex; sebenzisa i-fmt; sebenzisa i-hash; useio; sebenzisa os; thekelisa i-fn main() void = {const hash = sha256::sha256(); const file = os::open("main.ha")!; defer io ::vala(ifayela); io::ikhophi(&hashi, ifayela); ake sihlanganise: [sha256::SIZE]u8 = [0...]; hashi ::sum(&hashi, isamba); hex::encode(os::stdout, sum)!; fmt::println()!; const greetings = [ “Sawubona, mhlaba!”, “¡Hola Mundo!”, “Γειά σου Κόσμε!”, “Sawubona, mhlaba!”, “こんにちは世界!”, ]; ngoba (let i = 0z; i < len(sibingelela); i += 1) {fmt::println(greetings[i])!; }; vumela x: *int = alloc(42); fmt::printfln("x: {}", x)!; fmt::printfln("*x: {}", *x)!; mahhala(x); const file = os::vula(os::args[1])!; defer io::vala(ifayela)!; vumela isilondolozi: *[65535]u8 = i-alloc([0...]); defer free (buffer); const n = io::funda(ifayela, ibhafa)! njengosayizi; io::bhala(os::stdout, buffer[..n])!; }; fn sort(izinto: []int) void = {... }; @test fn sort() void = {vumela izinto = [5, 4, 3, 2, 1]; hlunga (izinto); ngoba (let i = 1z; i < len(izinto); i += 1) {assert(izinto[i - 1] <= izinto[i], "uhlu aluhlungiwe"); }; };

Source: opennet.ru

Thenga ukusingathwa okuthembekile kwamasayithi anokuvikelwa kwe-DDoS, amaseva e-VPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekile ngokuvikelwa kwe-DDoS, amaseva e-VPS VDS | ProHoster