Esitletud on stabiilne programmist Mojo 1.0, mis tähistab keele stabiliseerimist ja kõigi põhifunktsioonide rakendamist. Väljalaset peetakse valmis massiliseks kasutamiseks ning see võimaldab alustada suurte projektide arendamist, kartmata keele muutusi, mis võivad rikkuda ühilduvust.
Platvorm sisaldab komponente, mis on vajalikud Mojo keeles rakenduste arendamiseks, sealhulgas kompilaator, runtime, interaktiivne REPL-keskkond programmide koostamiseks ja käivitamiseks, silur, Visual Studio Code (VS Code) koodi redigeerija täiendused automaatse täienduse, koodivormindamise ja süntaksi esiletõstmise toetusega, moodul Jupyteriga integreerimiseks Mojo notebookide koostamiseks ja käivitamiseks. Mojo standardraamatukogu lähtekood on avatud Apache 2.0 litsentsi alusel koos LLVM projekti eranditega, mis võimaldavad segada GPLv2 litsentsiga koodiga. Kompilaatori lähtekood on plaanis avada pärast sisearhitektuuri stabiliseerimise lõpetamist.
Mojo keel areneb Chris Lattneri juhtimisel, kes on LLVM projekti asutaja ja peamine arhitekt ning Swift programmeerimiskeele looja. Mojo süntaks põhineb Pythonil ning tüüpsüsteem on lähedane C/C++-le. Projekt esitleb end kui üldotstarbelist keelt, mis laiendab Python-i võimalusi süsteemse programmeerimise vahenditega, olles sobiv erinevate ülesannete jaoks ning kombineerib teaduslike arenduste lihtsuse ja kiire prototüüpimise võimaluse kõrge jõudlusega lõppproduktide loomisega.
Lihtsus saavutatakse tänu keele Python tuttavale süntaksile, samas kui lõppproduktide arendamisele aitavad kaasa võimalus kompileerida masinkoodi, mälu ohutu käsitlemise mehhanismid ning riistvara kiirenduse kasutamine arvutustes. Kõrge efektiivsuse saavutamiseks toetatakse arvutuste paralleelset töötlemist, kaasates kõik süsteemis olemasolevad riistvaravahendid heterogeensetes süsteemides, nagu GPU, spetsialiseeritud kiirendajad masinõppe jaoks ja vektorpinkude käsklused (SIMD). Intensiivsete arvutuste käigus võimaldab paralleelelemendi ja kõikide arvutusressursside kaasamine saavutada jõudlust, mis ületab C/C++ rakenduste puhul saavutatut.
Keel toetab staatilist tüübi määratlemist ja võimalusi turvaliseks madala taseme mälu haldamiseks, mis meenutavad Rust'i keele omadusi, nagu viidete eluea jälgimine ja muutujate laenamise kontroll (borrow checker). Samuti on keeles saadaval madala taseme töötlusvõimalused, näiteks on võimalik otsene juurdepääs mälule unsafe-režiimis tüübiga Pointer, eraldi SIMD-käskude käivitamine või juurdepääs riistvaralistele laiendustele, nagu TensorCores ja AMX.
Mojo't saab kasutada nii tõlgendusrežiimis JIT-i abil kui ka esitatavate failide (AOT, ahead-of-time) kompileerimiseks. Kompilaatorisse on integreeritud kaasaegsed automaatse optimeerimise, vahemälu ja jaotatud kompileerimise tehnoloogiad. Mojo kood muudetakse madala taseme vahe-koodiks MLIR (Multi-Level Intermediate Representation), mida arendab LLVM projekt. Kompilaator võimaldab masinkoodi genereerimiseks kasutada erinevaid backend'e, mis toetavad MLIR-i.
Samas on välja antud ka MAX Framework 26.5 versioon, mis pakub platvormi masinõppe arenguteks. MAX Framework täiendab Mojo tööriistade komplekti vahenditega rakenduste arendamiseks ja tõrgete leidmiseks, mis kasutavad masinõppe mudeleid erinevates formaatides (TensorFlow, PyTorch, ONNX jne). Versioonis 26.5 on lisatud võimalus installida ainult vajalikke sõltuvusi, kasutades süntaksit max["nimi"], samuti on lisatud tugi kahele uuele AI mudeliperekonnale — GLM-5.2 ja Nemotron-H.
Allikas: opennet.ru
