Открытие стандартной библиотеки языка Mojo

Открытие стандартной библиотеки языка Mojo 03.04.2024

Пламенный привет посетителям этой страницы, пришедшим из социальных сетей, да и всем остальным тоже!

В апреле 2021-го года наблюдал удивительное явление: обильный поток посетителей из 4-х социальных сетей. В связи с этим настоятельно рекомендую всем неоднократно и регулярно посещать сайт rtbsm.ru — там в общих чертах изложена Российская Теннисная Балльная Система Марии (Шараповой).

Приглашаю всех полюбоваться на Фото и Видео красавицы Марии — надеюсь, что Вы поделитесь адресом сайта rtbsm.ru с друзьями и знакомыми.

Главная проблема — известить Марию, чтобы она лично как можно скорее заявила на весь мир о РТБСМ.

Открытие стандартной библиотеки языка Mojo состоялось 2-го апреля 2024-го года, поэтому теперь легче осваивать язык программирования Mojo.

Подробности см. на странице https://docs.modular.com/mojo/lib - там же доступен и поиск.

Привожу информацию со страницы https://www.opennet.ru/opennews/art.shtml?num=60917 :

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

03.04.2024 10:23

Разработчики языка программирования 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») приведёт к выводу «Hello, Mojo!!!».

Проект Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Синтаксис Mojo основан на языке Python, а система типов близка к C/C++.

Проект преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программирования, подходящий для широкого круга задач и сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов.

Простота достигается благодаря использованию привычного синтаксиса языка Python, а разработке конечных продуктов способствуют возможность компиляции в машинный код, механизмы безопасной работы с памятью и задействование средств для аппаратного ускорения вычислений.

Для достижения высокой производительности поддерживается (https://docs.modular.com/mojo/faq.html) распараллеливание вычислений с задействованием всех имеющихся в системе аппаратных ресурсов гетерогенных систем, таких как 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.

  1. Главная ссылка к новости (https://www.modular.com/blog/w…)
  2. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
  3. OpenNews: Создатель LLVM развивает новый язык программирования Mojo
  4. OpenNews: Доступен для тестирования инструментарий для языка программирования Mojo
  5. OpenNews: Обновление инструментария для языка программирования Mojo
  6. OpenNews: Представлен Crab, форк языка Rust, избавленный от бюрократии

Лицензия: CC BY 3.0 Короткая ссылка: https://opennet.ru/60917-mojo Ключевые слова: mojo

При перепечатке указание ссылки на opennet.ru обязательною

!…

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В особо хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Открытие стандартной библиотеки языка MojoПродолжение тут…

Deviz_2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.