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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ языка программирования Mojo Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² разряд ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ПО. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΠΎΠ΄ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0 c ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° 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