Devlopè langaj pwogram Mojo yo te kòmanse konvèti devlopman pwojè a nan lojisyèl sous louvri. Premye ki te louvri sous la se te kòd estanda bibliyotèk la, ki disponib kounye a anba lisans Apache 2.0 ak eksepsyon nan pwojè LLVM ki pèmèt melanje ak kòd anba lisans GPLv2. Anplis de pibliye kòd, pwosesis devlopman an te deplase nan direksyon ouvèti ak kapasite nan kominike chanjman twazyèm pati nan soumèt demann rale nan GitHub. Se kòd sous la nan du a te planifye yo dwe louvri apre konsepsyon an nan achitekti entèn la fini.
Repozitwa a gen de branch nan kòd bibliyotèk estanda Mojo: yon branch prensipal, senkronize ak dènye lage ki estab nan Mojo, ak yon branch chak swa, ki reflete pwosesis devlopman aktyèl la ak senkronize ak bati lannwit nan Mojo. Yo ankouraje patisipan yo ki vle patisipe nan devlopman epi pataje chanjman yo pou yo itilize branch chak swa. An menm tan an, kèk nan modil bibliyotèk yo poko louvri, men apre kèk tan kòd fèmen ki rete a tou te planifye yo dwe deplase nan yon depo ouvè. Kòd pou devlope rapidman modil ki mande pou estabilizasyon adisyonèl, modil pou refactoring yo planifye, ak modil ki bezwen revizyon adisyonèl ak retravay akòz koneksyon ak pwojè propriétaires rete fèmen.
Одновременно опубликован выпуск инструментария Mojo SDK 24.2, позволяющего компилировать проекты на локальной системе, и выпуск движка MAX Engine 24.2, предлагающего платформу для разработок в области машинного обучения. В состав Mojo SDK входят компоненты, необходимые для разработки приложений на языке Mojo, включая компилятор, runtime, интерактивную REPL-оболочку для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) с поддержкой автодополнения ввода, форматирования кода и подсветки синтаксиса, модуль для интеграции с Jupyter для сборки и запуска Mojo notebook. MAX Engine дополняет SDK средствами для разработки и отладки приложений, использующих модели машинного обучения в различных форматах (TensorFlow, PyTorch, ONNX и т.п.). Сборки Mojo SDK и MAX Engine подготовлены для платформы Linux и macOS.
Gen kèk nan chanjman ki pi remakab nan Mojo 24.2 yo enkli:
- Estrikti ak lòt kalite nominal kapab kounye a implicite kat nan karakteristik. Pa egzanp, nenpòt estrikti pou metòd __str__() aplike implicitement koresponn ak karakteristik Stringable a epi yo ka itilize ak fonksyon str().
- Zouti Konpatibilite Python te ajoute sipò pou pase agiman ki baze sou mo kle nan fonksyon Python. Pou egzanp, "plt.plot((5, 10), (10, 15), color="wouj")"
- Te ajoute sipò pou pase yon kantite varyab agiman nan yon fonksyon, espesifye nan plasman mo kle. Pa egzanp, "print_nicely(a=7, y=8)".
- Kalite DynamicVector yo te chanje non an Lis epi li te deplase nan modil collections.list la. Te ajoute kapasite pou jenere yon lis ki baze sou yon kantite abitrè valè, pou egzanp, "var nimewo = List[Int](1, 2, 3)".
- Yo te ajoute paramèt yo rele sep ak fen nan fonksyon print(), atravè ki ou ka mete separasyon an ak valè pwodiksyon final la. Pou egzanp, egzekite enprime ("Bonjou", "Mojo", sep=", ", fen="!!!\n") ap gen pou rezilta nan pwodiksyon "Bonjou, Mojo!!!".
Se Chris Lattner ki te dirije pwojè Mojo a, fondatè ak achitèk anchèf pwojè LLVM ak kreyatè langaj pwogramasyon Swift la. Sentaks Mojo a baze sou langaj Python, ak sistèm tip la tou pre C/C++. Pwojè a prezante kòm yon langaj jeneral ki pwolonje kapasite Python ak kapasite pwogramasyon sistèm, ki apwopriye pou yon pakèt travay, epi li konbine fasilite pou itilize pou devlopman rechèch ak pwototip rapid ak konvnab pou pwodwi final pèfòmans segondè.
Senplisite reyalize grasa itilizasyon sentaks Python abitye, epi devlopman pwodwi final yo fasilite pa kapasite pou konpile nan kòd machin, mekanis memwa ki an sekirite, ak itilizasyon zouti akselerasyon pyès ki nan konpitè. Pou reyalize pèfòmans segondè, paralèlizasyon nan kalkil sipòte lè l sèvi avèk tout resous pyès ki nan konpitè nan sistèm etewojèn ki disponib nan sistèm nan, tankou GPU, akseleratè espesyalize pou aprantisaj machin ak enstriksyon vektè processeur (SIMD). Pou kalkil entansif, paralelizasyon ak itilizasyon tout resous enfòmatik fè li posib pou reyalize pèfòmans siperyè pase aplikasyon C/C++.
Langaj la sipòte sezisman estatik ak karakteristik ba nivo memwa ki an sekirite ki okoumansman de Rust, tankou swiv referans pou tout lavi ak chèk prete. An menm tan an, lang lan tou bay opòtinite pou travay ki ba nivo, pou egzanp, li posib dirèkteman jwenn aksè nan memwa nan mòd ki pa an sekirite lè l sèvi avèk kalite Pointer la, rele enstriksyon SIMD endividyèl, oswa aksè nan ekstansyon pyès ki nan konpitè tankou TensorCores ak AMX.
Mojo ka itilize tou de nan mòd entèpretasyon lè l sèvi avèk JIT, ak pou konpilasyon nan dosye ègzèkutabl (AOT, davans-tan). Konpilatè a gen teknoloji modèn entegre pou optimize otomatik, kachèt ak konpilasyon distribye. Kòd sous nan lang Mojo a konvèti nan kòd entèmedyè nivo ba MLIR (Multi-Level Intermediate Representation), pwojè LLVM devlope. Konpilateur a pèmèt ou sèvi ak divès kalite backend ki sipòte MLIR pou jenere kòd machin.
Sous: opennet.ru
