ΠžΡ‚Π²Π°Ρ€ΡΠ½Π΅ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Mojo. Актуализация Π½Π° инструмСнтария Mojo 24.2

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Mojo Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° трансфСра Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² катСгорията Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎΡ‚ΠΎ софтуСрно ΠΎΠ±Π΅Π·ΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π΅ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която сСга Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° ΠΏΠΎΠ΄ лицСнзия Apache 2.0 с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM, позволяващи смСсванС с ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ лицСнзия GPLv2. ОсвСн ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сС Π΅ прСмСстил Π² посока Π½Π° откритост ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° външни измСнСния Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° pull-заявки Π² GitHub. Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ тСкстовС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ слСд Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

Π’ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ са създадСни Π΄Π²Π΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ с ΠΊΠΎΠ΄ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Mojo: ΠΊΠ»ΠΎΠ½ main, синхронизиран с послСдния стабилСн Ρ€Π΅Π»ΠΈΠΉΠ· Π½Π° Mojo, ΠΈ ΠΊΠ»ΠΎΠ½ nightly, отразяващ тСкущия процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ синхронизиран с Π½ΠΎΡ‰Π½ΠΈΡ‚Π΅ сборки Π½Π° Mojo. ΠšΠ»ΠΎΠ½ΡŠΡ‚ nightly сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π·Π° участницитС, ΠΊΠΎΠΈΡ‚ΠΎ искат Π΄Π° сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈ Π΄Π° сподСлят своитС измСнСния. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, част ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° всС ΠΎΡ‰Π΅ Π½Π΅ са ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ, Π½ΠΎ слСд Π²Ρ€Π΅ΠΌΠ΅ оставящият сС Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΡΡŠΡ‰ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° прСмСстят Π² ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Основно Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ остава ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° Π±ΡŠΡ€Π·ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰ΠΈΡ‚Π΅ сС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ изискват Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° стабилизация, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ прСосмислянС ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, изискващи Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΡ€Π°Π΄ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ ΠΈΠΌ с ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

Π‘ΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° инструмСнта 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.

Π‘Ρ€Π΅Π΄ Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Mojo 24.2:

  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π½ΠΎΠΌΠΈΠ½Π°Π»Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ нСявно Π΄Π° отговарят Π½Π° интСрфСйситС. НапримСр, всяка структура, Π·Π° която Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ __str__(), нСявно отговаря Π½Π° интСрфСйса Stringable ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° с функцията str().
  • Π’ срСдствата Π·Π° осигуряванС Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΊΠΎΠ΄ Π½Π° Python Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ с ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ Π² Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НапримСр, Β«plt.plot((5, 10), (10, 15), color=Β»redΒ»)Β».
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π±Ρ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Ρ‡Ρ€Π΅Π· присвояванС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ. НапримСр, Β«print_nicely(a=7, y=8)Β».
  • Π’ΠΈΠΏΡŠΡ‚ DynamicVector Π΅ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ Π½Π° List ΠΈ Π΅ прСмСстСн Π² ΠΌΠΎΠ΄ΡƒΠ»Π° collections.list. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° списък Π½Π° Π±Π°Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Ρ€ΠΎΠΉ стойности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«var numbers = List[Int](1, 2, 3)Β».
  • Π’ функцията print() са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ sep ΠΈ end, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π·Π°Π΄Π°Π΄Π°Ρ‚ стойности Π·Π° раздСлитСля ΠΈ финалния ΠΈΠ·Ρ…ΠΎΠ΄. НапримСр, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° print(Β«HelloΒ», Β«MojoΒ», sep=Β», Β«, end=Β»!!!\nΒ») Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Β«prints Hello, Mojo!!!Β».

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Mojo сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π° ΠšΡ€ΠΈΡΠ° Π›Π°Ρ‚Π½Π΅Ρ€Π° (Chris Lattner), основатСля ΠΈ Π³Π»Π°Π²Π΅Π½ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM ΠΈ ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»Ρ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Swift. Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Mojo Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Python, Π° систСма Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ C/C++. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ прСдставСн ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Python Π·Π° систСмно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, подходящ Π·Π° ΡˆΠΈΡ€ΠΎΠΊ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° простота Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° изслСдоватСлски Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π±ΡŠΡ€Π·ΠΎ създаванС Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ с пригодност Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° високо ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°Ρ‚Π° сС постига Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° познатия синтаксис Π½Π° Π΅Π·ΠΈΠΊΠ° Python, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ сС улСснява ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° компилация Π² машинСн ΠΊΠΎΠ΄, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° бСзопасна Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° срСдства Π·Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΎ ускорСниС Π½Π° изчислСнията. Π—Π° постиганС Π½Π° висока производитСлност сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° разпаралСляванС Π½Π° изчислСнията, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² систСмата Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ рСсурси ΠΎΡ‚ Ρ…Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΠΈ систСми, ΠΊΠ°Ρ‚ΠΎ GPU, спСциализирани ускоритСли Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ инструкции Π·Π° процСсори (SIMD). ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΈ изчислСния разпаралСляванСто ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички изчислитСлни рСсурси Π΄Π°Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° постиганС Π½Π° производитСлност, ΠΏΡ€Π΅Π²ΠΈΡˆΠ°Π²Π°Ρ‰Π° прилоТСнията Π½Π° C/C++.

Π•Π·ΠΈΠΊΡŠΡ‚ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° статична типизация ΠΈ срСдства Π·Π° бСзопасна нискоуровнСва Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, напомнящи Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΠΊΠ°Ρ‚ΠΎ прослСдяванС Π½Π° ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (borrow checker). Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π² Π΅Π·ΠΈΠΊΠ° са Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° нискоуровнСва Ρ€Π°Π±ΠΎΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌ unsafe с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΈΠΏΠ° Pointer, ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ SIMD-инструкции ΠΈΠ»ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ°Ρ‚ΠΎ TensorCores ΠΈ AMX.

Mojo ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° интСрпрСтация с JIT, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° компилация Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (AOT, ahead-of-time). ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° оптимизация, ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ ΠΈ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° компилация. Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° Mojo сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Π² нискоуровнСвСн ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ MLIR (Multi-Level Intermediate Representation), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM. ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° машинния ΠΊΠΎΠ΄, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ MLIR.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster