The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новая версия языка программирования Nim 0.18.0"
Отправлено opennews, 03-Мрт-18 21:58 
Представлен (https://nim-lang.org/blog/2018/03/01/version-0180-released.h... значительный релиз языка  системного программирования Nim 0.18.0 (https://nim-lang.org). Язык использует (https://ru.wikipedia.org/wiki/Nim) статическую типизацию и создан с оглядкой на Pascal, C++, Python и Lisp. Код проекта поставляется (https://github.com/nim-lang/Nim) под лицензией MIT.


Исходный код на языке Nim  компилируется в представление на C, C++ или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятора (clang, gcc, icc, Visual C++), что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора.
По аналогии с Python в Nim в качестве разделителей блоков применяются отступы. Регистр написания символов в идентификаторах не учитывается. Поддерживаются средства метапрограммирования (https://ru.wikipedia.org/wiki/%D0%9C%D0%... и возможности для создания  предметно-ориентированных языков (DSL).


В новом выпуске отмечается ряд существенных новшеств и изменений, связанных с проведением чистки стандартной библиотеки перед релизом 1.0. Также внесена большая порция изменений, нарушающих обратную совместимость. Оператор индексирования "[]" теперь выдаёт ошибку, если запрошенный диапазон выходит за границы строки, вместо выдачи подпадающий под запрос части строки (например, var myString = "hello world"; myString[6 .. 45] теперь инициирует исключение IndexError). Также изменена логика обработки коллекций оператором "$" и прекращено приведение массивов array[x, char] к типу cstring. Спецсимвол "\n" теперь выводит только код перевода строки без кода возврата каретки.


Среди  новшеств:


-  Добавлен модуль strformat, предоставляющий поддержку форматируемых строковых литералов, позволяющих определить строку, содержащую подстановки (например let name = "Fred"; doAssert  fmt"My name is {name}."), в стиле "f"-строк Python 3.6.
-  В генератор документации добавлен макрос runnableExamples, позволяющий протестировать работу приводимых примеров кода.
-   Добавлен новый макрос mapLiterals, упрощающий создание массивов и последовательностей (например, "let x = mapLiterals([12, 34, 15, 1], uint32)").
-  Изменён алгоритм управления памятью. Новый алгоритм TLSF позволяет снизить фрагментацию памяти, ценой усложнения операций alloc и dealloc;

-  Серия изменений в модулях для асинхронного ввода/вывода. Представлена унифицированная реализация asyncdispatch и новая процедура getIoHandler, возвращающая дескриптор ввода/вывода или epoll/kqueue.  В модуле asyncjs появилась новая реализация async await  для бэкенда JavaScript;

-  Пакетный менеджер Nimble  обновлён до версии 0.8.10, в которой появилась возможность размещения нескольких пакетов Nimble в одном репозитории Git или Hg;

-  Из stdlib в обособленные пакеты Nimble переведены библиотеки gentabs, libuv, polynumeric, pdcurses, romans, libsvm и     joyent_http_parser. Объявлены устаревшими basic2d  и basic3d, вместо которых следует использовать такие пакеты, как glm, arraymancer и neo.

URL: https://nim-lang.org/blog/2018/03/01/version-0180-released.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=48186

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру