Обновление инструментария для языка программирования Mojo

Разработчики языка программирования Mojo опубликовали выпуск инструментария Mojo SDK 0.7, позволяющего компилировать проекты на локальной системе. В состав Mojo SDK включены компоненты, необходимые для разработки приложений на языке Mojo, включая компилятор, runtime, интерактивную REPL-оболочку для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) с поддержкой автодополнения ввода, форматирования кода и подсветки синтаксиса, модуль для интеграции с Jupyter для сборки и запуска Mojo notebook.
Сборки Mojo SDK подготовлены для платформы Linux. Исходные тексты компилятора и других наработок проекта планируют открыть после завершения проектирования внутренней архитектуры.

В новой версии:

  • Добавлен тип Dict с реализацией ассоциативных массивов для хранения пар ключ/значение.
  • Добавлен безопасный (safe) тип для работы с указателями “Reference“, который может использоваться в качестве альтернативы обычным незащищённым (unsafe) указателям. Reference отличается отслеживанием информации о времени жизни указателя и проверками косвенного доступа.
  • В стандартную библиотеку sys.info добавлены функции num_physical_cores, num_logical_cores и num_performance_cores для получения информации о физических и логических CPU, а также получения доступа к счётчикам производительности.
  • В компилятор добавлена опция “-D MOJO_ENABLE_ASSERTIONS” для включения в функциях стандартной библиотеки отладочных проверок (assertion) для выявления различных видов ошибок. По умолчанию режим отключён, так как он негативно отражается на производительности
  • В Mojo Language Server и плагин для Visual Studio Code добавлены операции поиска всех ссылок (Find All References) и перехода к ссылкам (Go to References).

Проект Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Язык Mojo сочетает простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов. Первое достигается благодаря использованию привычного синтаксиса языка Python, а второе за счёт возможности компиляции в машинный код, механизмов безопасной работы с памятью (например, статическая типизация, отслеживание времени жизни ссылок и проверка заимствования переменных) и задействованию средств для аппаратного ускорения вычислений (например, могут привлекаться GPU, специализированные ускорители для машинного обучения и векторные процессорные инструкции). Подробнее о Mojo можно узнать в первом анонсе проекта.

Release. Ссылка here.