LINUX.ORG.RU
ФорумTalks

Ну и какашка же этот ваш Nix

 


0

4

Думаю, дай-ка я все свои пакеты из федорки на nix перенесу. Но не тут-то было.

nix-env: src/libexpr/attr-set.hh:54: void nix::Bindings::push_back(const nix::Attr&): Assertion `size_ < capacity_' failed.

Неужели на С++? Точно. Но не только. Они там свой вектор забабахали, который не может расширяться. https://github.com/NixOS/nix/blob/master/src/libexpr/attr-set.hh#L55

Молодцы ребята. Хорошая система. Надёжная. Не то, что этот dnf на питоне.

★★★★★

Они там свой вектор забабахали

Зачем???

wandrien ()

Они там свой вектор забабахали

Так это ж кресты, там каждый первый пытается свой вектор заделать

upcFrost ★★★★★ ()

Они там свой вектор забабахали

Никогда этого не понимал. Сколько уже проектов на плюсах видел с велосипедами разной степени всратости. То векторы свои делают, то всякие ассоциативные контейнеры… Причём, это уже во времена современных C++ стандартов, где всё это есть из коробки, даже boost больше не нужен. Прям какая-то «специальная олимпиада» у них…

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

Но тут-то не билд сфейлился, а сфейлилась установка уже сбилденного. Да и потом, фейлиться при помощи assert-а? В релизе будет просто крэш после порчи памяти.

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

Это может быть и не максимальная длина. Скажи спасибо, что не сегфолт. Этот крэш надо нести на соотв. список рассылки, трекер проблем, на мыло автору, а не обсуждать на ЛОРе.

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

Предсказуемость билдов. Чтобы билд предсказуемо фейлился, если у него более 9999 зависимостей.

  1. А что плохого иметь 10000 зависимостей? Авторы сабжа – современные последователи древней религии «640 килобайт хватит всем»?
  2. Офигенно билд сфейлился. И сообщение об ошибке оч информативное, сразу понятно, в чем проблема. Прям всё как мы любим. (Нет.)
  3. Если есть такое граничное условие, под него должен быть тест. И если был бы тест, значит кто-то как-минимум произвел проектирование фичи и сделал завершение программы с тестируемым сообщением об ошибке, а не просто влепил ассерт непонятно чего. Там тесты-то хоть есть вообще?
wandrien ()
Последнее исправление: wandrien (всего исправлений: 2)
Ответ на: комментарий от seiken

Кто сказал что в векторе должно быть push_back и ко? Совсем не обязательно.

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

а нафига козе боян? в смысле, ограниченному вектору - push_back ?

Чтобы использовать тот же интерфейс, что и у std::vector. Но тот assert, скорее всего, никакое не ограничение макс. длины, а проверка на ошибочное состояние. Т.е. ранее по ходу выполнения была допущена ошибка, и к моменту выполнения push_back нет никакого «правильного» варанта продолжения выполнения, и лучшее, что можно сделать - упасть намеренно.

Еще был коммент про «в релизе» будет сегфолт. Ну значит, вы, батенька, дебажнную версию тестируете, но зачем-то притащили это на ЛОР, а не разрабам проекта.

seiken ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)