Mojo 1.0 ծրագրավորման լեզվի կայուն տարբերակը թողարկվել է, որը նշանավորում է լեզվի կայունացումը և բոլոր հիմնական գործառույթների իրականացումը։ Այս տարբերակը համարվում է լայնածավալ օգտագործման համար պատրաստ և թույլ է տալիս մշակողներին սկսել խոշոր նախագծերի մշակումը՝ առանց համատեղելիության խափանման վախի։
Հարթակը ներառում է Mojo լեզվով հավելվածներ մշակելու համար անհրաժեշտ բաղադրիչները, այդ թվում՝ կոմպիլյատոր, աշխատանքային միջավայր, ծրագրեր կառուցելու և գործարկելու համար ինտերակտիվ REPL shell, վրիպազերծիչ, Visual Studio Code (VS Code) խմբագրիչի հավելում՝ մուտքագրման ավտոմատ լրացմամբ, կոդի ձևաչափմամբ և շարահյուսության ընդգծմամբ, և Jupyter ինտեգրման մոդուլ՝ Mojo նոթբուքեր կառուցելու և գործարկելու համար: Mojo ստանդարտ գրադարանը բաց կոդով է՝ Apache 2.0 լիցենզիայի ներքո, LLVM նախագծի բացառությամբ, որը թույլ է տալիս խառնել GPLv2 լիցենզավորված կոդի հետ: Կոմպիլյատորը նախատեսվում է բաց կոդով դարձնել ներքին ճարտարապետության կայունացումից հետո:
Mojo լեզուն մշակվում է LLVM նախագծի հիմնադիր և գլխավոր ճարտարապետ, Swift ծրագրավորման լեզվի ստեղծող Քրիս Լատների ղեկավարությամբ։ Mojo-ի շարահյուսությունը հիմնված է Python լեզվի վրա, իսկ տիպային համակարգը մոտ է C/C++-ին։ Նախագիծը ներկայացվում է որպես ընդհանուր նշանակության լեզու, որն ընդլայնում է Python-ի հնարավորությունները համակարգերի ծրագրավորման հնարավորություններով, հարմար է խնդիրների լայն շրջանակի համար և համատեղում է հետազոտության մշակման համար օգտագործման հեշտությունը և արագ նախատիպերը բարձր արդյունավետության վերջնական արտադրանքի ձևավորման համար համապատասխանության հետ:
Պարզությունը ձեռք է բերվում ծանոթ Python-ի շարահյուսության օգտագործմամբ, իսկ վերջնական արտադրանքի մշակմանը նպաստում է մեքենայական կոդով կոմպիլյացիայի ունակությունը, հիշողության համար անվտանգ մեխանիզմները և ապարատային արագացման գործիքների օգտագործումը: Բարձր արդյունավետության հասնելու համար հաշվարկների զուգահեռացումը աջակցվում է՝ օգտագործելով համակարգում առկա տարասեռ համակարգերի բոլոր ապարատային ռեսուրսները, ինչպիսիք են GPU-ները, մեքենայական ուսուցման մասնագիտացված արագացուցիչները և վեկտորային պրոցեսորի հրահանգները (SIMD): Ինտենսիվ հաշվարկների համար բոլոր հաշվողական ռեսուրսների զուգահեռացումը և օգտագործումը հնարավորություն է տալիս հասնել C/C++ հավելվածներին գերազանցող արդյունավետության:
Լեզուն աջակցում է ստատիկ մուտքագրման և ցածր մակարդակի հիշողության համար անվտանգ գործառույթներ, որոնք հիշեցնում են Rust-ը, ինչպես օրինակ՝ տեղեկանքի ողջ կյանքի ընթացքում հետևելը և փոխառության ստուգիչը: Միևնույն ժամանակ, լեզուն նաև հնարավորություն է տալիս ցածր մակարդակի աշխատանքի համար, օրինակ՝ հնարավոր է ուղղակիորեն մուտք գործել հիշողություն ոչ անվտանգ ռեժիմում՝ օգտագործելով Pointer տիպը, զանգահարել անհատական SIMD հրահանգներ կամ մուտք գործել ապարատային ընդլայնումներ, ինչպիսիք են TensorCores-ը և AMX-ը:
Mojo-ն կարող է օգտագործվել ինչպես մեկնաբանման ռեժիմում՝ օգտագործելով JIT-ը, այնպես էլ գործարկվող ֆայլերի մեջ կոմպիլյացիայի համար (AOT, ժամանակից շուտ): Կազմողն ունի ներկառուցված ժամանակակից տեխնոլոգիաներ ավտոմատ օպտիմալացման, քեշավորման և բաշխված կոմպիլյացիայի համար: Աղբյուրի կոդը Mojo լեզվով վերածվում է ցածր մակարդակի միջանկյալ կոդի MLIR (Multi-Level Intermediate Representation), որը մշակվել է LLVM նախագծի կողմից: Կոմպիլյատորը թույլ է տալիս օգտագործել տարբեր backend-ներ, որոնք աջակցում են MLIR-ին՝ մեքենայի կոդ ստեղծելու համար:
Միաժամանակ թողարկվեց MAX Framework 26.5-ը, որը առաջարկում է մեքենայական ուսուցման մշակման հարթակ: MAX Framework-ը լրացնում է Mojo գործիքակազմը՝ տարբեր ձևաչափերով (TensorFlow, PyTorch, ONNX և այլն) մեքենայական ուսուցման մոդելներ օգտագործող հավելվածներ մշակելու և վրիպազերծելու գործիքներով: 26.5 տարբերակը հնարավորություն է տալիս տեղադրել միայն անհրաժեշտ կախվածությունները՝ օգտագործելով max["name"] շարահյուսությունը, և ավելացնում է աջակցություն արհեստական բանականության երկու նոր մոդելների ընտանիքների՝ GLM-5.2 և Nemotron-H-ի համար:
Source: opennet.ru
