LINUX.ORG.RU

Релиз Nim 1.2.0

 , ,


0

5

Вышла новая версия системного языка программирования Nim. В ней имеется частичная несовместимость с версией 1.0, например, из-за более строгого преобразования типов. Но на этот случай есть флаг --useVersion:1.0.

Главное нововведение — новый сборщик мусора, включаемый опцией --gc:arc. Автор языка Andreas Rumpf собрается написать подробную статью о преимуществах ARC, а пока предлагает ознакомиться с его выступлением на FOSDEM, где показаны результаты бенчмарков.

  • Компилятор теперь поддерживает опцию --asm для более удобного изучения производимого ассемблерного кода.
  • align pragma может быть использована для переменных и полей объекта, это похоже на alignas в C/C++.
  • =sink оператор теперь опционален. Компилятор теперь может использовать комбинацию =destroy и copyMem для эффективного перемещения объектов.
  • Преобразования в unsigned integers не проверяются в рантайме. Подробности в https://github.com/nim-lang/RFCs/issues/175
  • Новый синтаксис для lvalue: var b {.byaddr.} = expr, подключаемый через import std/decls
  • Компилятор поддерживает новый ключ --panics:on, который превращает рантаймовые ошибки такие как IndexError или OverflowError в фатальные ошибки, которые не могут быть пойманы через try. Это может улучшить эффективность рантайма и размер программы.
  • Генерируемый JS-код использует только пробелы вместо мешанины из пробелов и табов.
  • В компилятор добавлена поддержка .localPassc pragma, с помощью которой можно обработать специальные опции C(++) бэкенда для C(++) файла, который генерируется из текущего модуля Nim.
  • Nimpretty теперь не принимает отрицательный аргумент для настройки отступов, так как это ломало файлы.
  • Добавлены новые макросы (collect, dup, capture), подключаемые через import sugar.

Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.

>>> Подробности

anonymous

Проверено: maxcom ()

Ответ на: комментарий от WatchCat

То, что ЯП называется не «системным», а «общего назначения», вовсе не значит, что на нём нельзя писать системный софт. Потому что системщина не ограничивается ОС и драйверами. Например, парсер какого-нибудь языка вполне можно написать на Java, и это будет системщина.

seiken ★★★★★
()
Ответ на: комментарий от anonymous

Какая разница между крипичом и абстракцией, если оба - некие абстракции?

Разница в применении: низкоуровневые абстракции ближе к особенностям машин и языков, а высокоуровневые — к прикладным задачам. Не удивительно, что бизнес предпочитает больше вторых и меньше первых.

Для зубрилы не важно, что имел виду Пушкин

Ну об этом речь: особенности говноязыков макаки просто вызубривают и кидаются какахами в тех, кто ещё не вызубривали или отказываются вызубривать, мотивируя это тем, что язык — говно.

mertvoprog
()
Ответ на: комментарий от Uncle_Bobby

Белинский

Тоже декабрист-революционер (так скажем), которого при царе народ не знал, естественно из-за цензуры. А узнали про него только в советское время. Это конечно не умаляет заслуги Пушкина, как талантливого поэта но раздолбая, но «народность» приписывать не надо. Это про критические способности Белинского.

anonymous
()
Ответ на: комментарий от mertvoprog

низкоуровневые абстракции

машина –<абстракции>– макака –<абстракции>– задача

Относительно кого/чего задается уровень абстракции? «Макака» - это какой уровень в системе абстракций?

anonymous
()
Ответ на: комментарий от mertvoprog

Без проблем - в роли «макаки» будет выступать «заказчик».

«Макака», ой, «заказчик» - это какой уровень в системе абстракций?

anonymous
()
Ответ на: комментарий от anonymous

Макакозаказчик — это и вовсе не абстракция языка, это его носитель.

mertvoprog
()
Ответ на: комментарий от WatchCat

Тогда и википедия тоже «натягивает»:

https://en.wikipedia.org/wiki/Systems_programming:

The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user directly (e.g. word processor), whereas systems programming aims to produce software and software platforms which provide services to other software, are performance constrained, or both (e.g. operating systems, computational science applications, game engines, industrial automation, and software as a service applications).

seiken ★★★★★
()
Ответ на: комментарий от seiken

Да. Или англоязычная Википедия стала последней инстанцией?

Мне русский вариант как-то ближе: «Систе́мное програ́ммное обеспе́чение — комплекс программ, которые обеспечивают управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой — приложения пользователя.»

WatchCat ★★★★★
()
Ответ на: комментарий от WatchCat

Аудит системы и прочие инструменты системного администратора в чистом виде системное по, т.к. служит для управления системой.

Uncle_Bobby
()
Ответ на: комментарий от WatchCat

Или англоязычная Википедия стала последней инстанцией?

По сравнению с русской вики - да, разумеется, английская - истина в последней инстанции. Ведь язык мирового общения и тем более IT именно английский, а не русский, не французский и не суахили. Если бы ты мне учебник по соотв. специальности, одобренный МО показал, где такое написано, это был бы более надежный источник, чем русская википедия. Из того, что я помню, в российских учебниках нулевых годов, средства разработки (например, компиляторы) тоже системный софт.

seiken ★★★★★
()
Ответ на: комментарий от seiken

да, разумеется, английская - истина в последней инстанции

facepalm.jpg

WatchCat ★★★★★
()
Последнее исправление: WatchCat (всего исправлений: 1)
Ответ на: комментарий от seiken

Да забей. Он по-английски свой ник то не с первой попытки сможет прочитать, вот и бугуртит.

anonymous
()
Ответ на: комментарий от Uncle_Bobby

Внезапно, но докер это прикладное по. Он не заменяет собой системное ПО.

WatchCat ★★★★★
()

Как взаимодействовать с сишными структурами?

andalevor ★★
()
Ответ на: комментарий от silver-bullet-bfg

Все принципы и паттерны поясились примерно 50лет назад. Да новые алгоритмы до сих пор появляются но это все очень специализированное. Базовые вещи которые преподавали вам в институте, вполне востребованы и сейчас вот только не у джунов, которым дали все либы и сказали писать бизнес логику.

anonymous
()
Ответ на: комментарий от silver-bullet-bfg

— Причину всех своих несчастьев всегда в себе находить стоит. Тогда и проблем меньше станет.

anonymous
()
Ответ на: комментарий от Nervous

Вышел Ним — да и хрен с ним!

Вышел Ним — да и хрен с Ним!

Владимир

anonymous
()

Разработчику Nim - recpect!

Владимир

anonymous
()
Ответ на: комментарий от Virtuos86

Ним настолько не нужен, что …

Да. Это проклятье питоноподобного синтаксиса. Он подходит только для фанатов питона. Казалось бы отлично, так много потенциальных кодеров! Но есть проблема: фанаты питона не подходят для такого языка как Nim. Они вообще мало для чего подходят, и даже для собственно питона годятся так себе.

bread
()

Я начал использовать Nim для всех своих проектов и, зело, оно мне приглянулось.

Владимир

anonymous
()
Ответ на: комментарий от bread

Похапешники настолько суровы, что не осиливают в отступы…

Мне, кстати, Nim тоже зашел. Макросы и возможность крутить-вертеть AST вообще прекрасны.

Q-Master
()
Ответ на: комментарий от anonymous

Я начал использовать Nim для всех своих проектов и, зело, оно мне приглянулось.

Молодец!

Владимир

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.