Modular объявила, Ρ‡Ρ‚ΠΎ язык MojoπŸ”₯ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Apache 2.0 (с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ LLVM). Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ компилятора Mojo, инструмСнтария ΠΈ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для сборки языка, доступно Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ modular Π½Π° GitHub.

Mojo задумывался ΠΊΠ°ΠΊ смСлая ставка: Π½ΠΎΠ²Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ дальшС своих ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ². Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ послСдниС достиТСния Π² области компиляторов ΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ языков программирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» GPU, AI-ускоритСлСй ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ спСциализированного Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ оборудования. ПослСдниС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³ΠΎΠ΄Π° Mojo развивался ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ участии сообщСства, Π½ΠΎ с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ компилятором. На ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π²Ρ‹ΡˆΠ»Π° вСрсия Mojo 1.0 со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вСсь компилятор ΠΈ инструмСнтарий Ρ‚ΠΎΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ.

Apache 2: Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ лицСнзия

ЛицСнзия Apache 2.0 считаСтся Π·ΠΎΠ»ΠΎΡ‚Ρ‹ΠΌ стандартом для языков программирования ΠΈ компиляторов β€” ΠΎΠ½Π° Π΄Π°Ρ‘Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² использовании для самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ДополнСния LLVM ΠΊ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ эти свободы ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ сборкС ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², скомпилированных ΠΈΠ· Mojo. ЦСль β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Mojo ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² максимально ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ спСктрС Π·Π°Π΄Π°Ρ‡.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ исходного ΠΊΠΎΠ΄Π° Π±Ρ‹Π» осознанным: нСбольшиС ΠΈ сплочённыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π° Π½Π΅ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Ρ‹) Π»ΡƒΡ‡ΡˆΠ΅ всСго находят Β«Π΄ΡƒΡˆΡƒΒ» языка, Π½ΠΎ обратная связь ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ сообщСства Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ эффСкта эхо-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Mojo, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ сотни тысяч строк ΠΊΠΎΠ΄Π° ядСр, написанных Π½Π° Mojo, инструмСнты ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСлась совмСстно с сообщСством β€” с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ дошла ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ Π΄ΠΎ компилятора. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ дальшС ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития языка.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ компилятор

Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ Mojo Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн Π² основном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ modular Π½Π° GitHub. Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ локально:

git clone https://github.com/modular/modular.git

cd modular

Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ компилятор Mojo ΠΈΠ· исходников ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π΅ Mojo, достаточно ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сборки:

./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo

Π’ Modular для управлСния слоТными процСссами сборки ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Mojo ΠΈ MAX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Bazel. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° скачаСт ΠΈΠ»ΠΈ собСрёт всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для сборки компилятора Mojo ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π€Π»Π°Π³ --config=build-mojo ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ систСмС сборки ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всё с нуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ исходный ΠΊΠΎΠ΄ ΠΈΠ· локальной систСмы.

Π­Ρ‚ΠΎ касаСтся ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Mojo: ΠΊΠΎΠ΄ компилятора ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ тСстов ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

./bazelw test --config=build-mojo mojo/stdlib/test/...

Если Ρ€Π°Π±ΠΎΡ‚Π° с самим компилятором Π½Π΅ вСдётся, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ --config=prebuilt-mojo β€” Ρ‚ΠΎΠ³Π΄Π° систСма сборки скачаСт послСднюю Π½ΠΎΡ‡Π½ΡƒΡŽ сборку компилятора, Ρ‡Ρ‚ΠΎ сэкономит врСмя Π½Π° компиляции. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ собранный компилятор Mojo ΠΏΠΎΠΊΠ° всё Π΅Ρ‰Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡ€ΠΈ кастомизации ядСр ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ MAX.

Π’ΠΊΠ»Π°Π΄ сообщСства

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Mojo ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²ΠΊΠ»Π°Π΄ сообщСства с 2024 Π³ΠΎΠ΄Π°, ΠΈ Π² Modular Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ всСм, ΠΊΡ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π» Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ язык. Один ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² (особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π² Π½Ρ‹Π½Π΅ΡˆΠ½ΡŽΡŽ эпоху ИИ-программирования) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π²ΠΊΠ»Π°Π΄ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ осознанно. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ pull request'Ρ‹ Π² компилятор ΠΈ инструмСнтарий. ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ сообщСства Π² компилятор ΠΈ инструмСнтарий Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π³ΠΎΠ΄Π° β€” подробности Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ·Π²ΡƒΡ‡Π΅Π½Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅.

To ask any questions about the Mojo compiler source as you read through it, or to share what you're working on, please join our forum. Clone the source code and let us know what you're building with the Mojo language. We're excited to open Mojo up to the world and see how it grows!

ВсС вопросы ΠΏΠΎ исходному ΠΊΠΎΠ΄Ρƒ компилятора Mojo, Π° Ρ‚Π°ΠΊΠΆΠ΅ рассказы ΠΎ собствСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π½Π° языкС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ сообщСства.