Mojo keele standardteegi avamine. Mojo Toolkit 24.2 vÀrskendus

Mojo programmeerimiskeele arendajad on alustanud projekti arenduste konverteerimist avatud lĂ€htekoodiga tarkvaraks. Esimesena avati standardne teegikood, mis on nĂŒĂŒd saadaval Apache 2.0 litsentsi all, vĂ€lja arvatud LLVM projekti erandid, mis vĂ”imaldavad segada GPLv2 litsentsi koodiga. Lisaks koodi avaldamisele on arendusprotsess nihkunud avatuse poole ja vĂ”imalusele edastada kolmandate osapoolte muudatusi GitHubile tĂ”mbamistaotluste esitamise kaudu. Kompilaatori lĂ€htekood on plaanis avada pĂ€rast sisearhitektuuri projekteerimise valmimist.

Hoidlal on kaks Mojo standardteegi koodi haru: pĂ”hiharu, mis on sĂŒnkroonitud Mojo uusima stabiilse vĂ€ljalaskega, ja igaöine haru, mis kajastab praegust arendusprotsessi ja on sĂŒnkroonitud Mojo igaĂ”htuste ehitustega. IgaĂ”htust filiaali julgustatakse kasutama osalejad, kes soovivad arendusega liituda ja oma muudatusi jagada. Samas ei ole osa raamatukogu mooduleid veel avatud, kuid mĂ”ne aja pĂ€rast on plaanis ka allesjÀÀnud suletud kood viia avatud hoidlasse. PĂ”himĂ”tteliselt jÀÀb suletuks kiiresti arenevate moodulite kood, mis nĂ”uavad tĂ€iendavat stabiliseerimist, moodulid, millele on planeeritud ĂŒmbertöötlemine ning moodulid, mis nĂ”uavad tĂ€iendavat ĂŒlevaatamist ja ĂŒmbertöötamist tulenevalt seostest patenteeritud projektidega.

Samaaegselt avaldati Mojo SDK 24.2 vĂ€ljalase, mis vĂ”imaldab projektide kompileerimist kohalikus sĂŒsteemis, ja MAX Engine 24.2 vĂ€ljalase, mis pakub platvormi masinĂ”ppe arendamiseks. Mojo SDK sisaldab Mojo keeles rakenduste arendamiseks vajalikke komponente, sealhulgas kompilaatorit, kĂ€ituskeskkonda, interaktiivset REPL-kesta programmide loomiseks ja kĂ€itamiseks, silurit, Visual Studio Code'i (VS Code) koodiredaktori lisandmoodulit sisendi automaatse tĂ€itmise, koodi vormindamise ja sĂŒntaksi esiletĂ”stmise toega ning moodulit Jupyteriga integreerimiseks Mojo mĂ€rkmike loomiseks ja kĂ€itamiseks. MAX Engine tĂ€iendab SDK-d tööriistadega rakenduste arendamiseks ja silumiseks, mis kasutavad masinĂ”ppemudeleid erinevates vormingutes (TensorFlow, PyTorch, ONNX jne). Platvormi jaoks on ette valmistatud Mojo SDK ja MAX Engine'i versioonid. Linux Đž macOS.

MÔned kÔige tÀhelepanuvÀÀrsemad muudatused Mojo 24.2-s on jÀrgmised:

  • Struktuurid ja muud nominaalsed tĂŒĂŒbid saavad nĂŒĂŒd kaudselt kaardistada tunnuseid. NĂ€iteks iga struktuur, mille jaoks on rakendatud meetodit __str__(), vastab kaudselt Stringable tunnusele ja seda saab kasutada koos funktsiooniga str().
  • Pythoni ĂŒhilduvustööriistad on lisanud toe mĂ€rksĂ”napĂ”histe argumentide edastamiseks Pythoni funktsioonidele. NĂ€iteks "plt.plot((5, 10), (10, 15), color="red")"
  • Lisatud tugi funktsioonile muutuva arvu argumentide edastamiseks, mis mÀÀratakse mĂ€rksĂ”na mÀÀramise kaudu. NĂ€iteks "prindi_kenasti(a=7, y=8)".
  • TĂŒĂŒp DynamicVector on ĂŒmber nimetatud loendiks ja teisaldatud moodulisse collections.list. Lisatud on vĂ”imalus luua loendit suvalise arvu vÀÀrtuste pĂ”hjal, nĂ€iteks "var numbers = Loend[Int](1, 2, 3)".
  • Funktsioonile print() on lisatud nimelised parameetrid sep ja end, mille kaudu saab mÀÀrata eraldaja ja lĂ”ppvĂ€ljundi vÀÀrtused. NĂ€iteks printimise ("Tere", "Mojo", sep=", ", end="!!!\n") kĂ€ivitamine annab tulemuseks vĂ€ljundi "prindib Hello, Mojo!!!".

Mojo projekti juhib Chris Lattner, LLVM projekti asutaja ja peaarhitekt ning Swift programmeerimiskeele looja. Mojo sĂŒntaks pĂ”hineb Pythoni keelel ja tĂŒĂŒbisĂŒsteem on C/C++ lĂ€hedane. Projekti reklaamitakse kui ĂŒldotstarbelist keelt, mis laiendab Pythoni vĂ”imalusi sĂŒsteemide programmeerimise vĂ”imalustega, sobib paljude ĂŒlesannete tĂ€itmiseks ning ĂŒhendab endas kasutusmugavuse uurimistöö arendamiseks ja kiire prototĂŒĂŒpimise ning sobivuse suure jĂ”udlusega lĂ”pptoodete jaoks.

Lihtsus saavutatakse tuttava Pythoni sĂŒntaksi kasutamisega ning lĂ”pptoodete vĂ€ljatöötamist hĂ”lbustavad masinkoodiks kompileerimise vĂ”imalus, mĂ€lukindlad mehhanismid ja riistvarakiirendusvahendite kasutamine. KĂ”rge jĂ”udluse saavutamiseks toetatakse arvutuste paralleelsust, kasutades kĂ”iki sĂŒsteemis saadaolevaid heterogeensete sĂŒsteemide riistvararessursse, nagu GPU-d, spetsiaalsed masinĂ”ppe kiirendid ja vektorprotsessori juhised (SIMD). Intensiivsete arvutuste jaoks vĂ”imaldab kĂ”igi arvutusressursside paralleelsus ja kasutamine saavutada C/C++ rakendustest parema jĂ”udluse.

Keel toetab staatilist tippimist ja madala tasemega mĂ€lukindlaid funktsioone, mis meenutavad Rusti, nagu vĂ”rdluse eluea jĂ€lgimine ja laenukontrolli. Samas annab keel vĂ”imalusi ka madala tasemega tööks, nĂ€iteks on vĂ”imalik Pointer tĂŒĂŒbi abil otse pÀÀseda ebaturvalises reĆŸiimis mĂ€lule, helistada ĂŒksikutele SIMD juhistele vĂ”i ligi pÀÀseda riistvaralaiendustele nagu TensorCores ja AMX.

Mojo saab kasutada nii tĂ”lgendusreĆŸiimis JIT-i kasutades kui ka tĂ€itmisfailideks kompileerimiseks (AOT, enne tĂ€htaega). Kompilaatoril on sisseehitatud kaasaegsed tehnoloogiad automaatseks optimeerimiseks, vahemĂ€llu salvestamiseks ja hajutatud kompileerimiseks. Mojo keele lĂ€htekood teisendatakse madala taseme keskmiseks koodiks MLIR (Multi-Level Intermediate Representation), mille on vĂ€lja töötanud LLVM projekt. Kompilaator vĂ”imaldab masinkoodi genereerimiseks kasutada erinevaid MLIR-i toetavaid taustaprogramme.

Allikas: opennet.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster