LINUX.ORG.RU

Сообщения KennyMinigun

 

Можно создать голосование на меньше чем 2 пункта

Сабж: www.linux.org.ru/polls/polls/14670374

Баг? Фича?

 , , ,

KennyMinigun ()

Для std::vector, полезен ли .reserve() перед std::move в конец оного?

Вопрос о std::move для range: https://en.cppreference.com/w/cpp/algorithm/move

Полезно ли делать .reserve перед тем, как добавлять элементы в конец контейнера с помощью вышеупомянутой функции и std::back_inserter? Или STL сам это уже делает?

std::vector<T> result;
while (someCondition) {
  // ...
  std::vector<T> part = process();
  result.reserve(result.size() + part.size()); // <-- сабж, полезно ли?
  std::move(part.begin(), part.end(), std::back_inserter(result));
}

 

KennyMinigun ()

Всем Disco Dingo, леди и джентельмены

Сабж, название следующего выпуска Ubuntu будет Disco Dingo. Танцуем, что ли.

https://www.omgubuntu.co.uk/2018/10/ubuntu-19-04-name-revealed

 , , ,

KennyMinigun ()

Палец Линуса^W Мартина

Так вот, NVIDIA начали работу над поддержкой EGL Streams в KDE: https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-KDE-KWin-EGLSt...

 , , ,

KennyMinigun ()

Qt Creator научился распознавать перегруженные операторы

Компильнул пару часов назад 4.8 (beta2) с git master. Перегруженные операторы неожиданно подсветились. Правда «Follow Symbol Under Cursor» (aka F2) работает только для многосимвольных операторов (напр. ==, +=, <<, ->). По односимвольным не переходит (или мне не удалось найти способ). Надеюсь к официальному выходу 4.8 сделают.

 , ,

KennyMinigun ()

Выбираем Nokia 6.1

Ищу андроидофон по критериям:

  • До $350
  • Минимум bloatware по дефолту
  • Небольшой размер (около 5.2")
  • Хорошее время жизни от батареи

Мое внимание привлек сабжевый телефон (хотя 5.1 тоже вроди ок). Порадовало, что там Android One. Но он немного больше, чем хотелось.

Есть тут владельцы оного? Android 9 Pie уже прилетел? Или стоит дорлатить за 7.1? Что посоветуете?

 , ,

KennyMinigun ()

Я не понимаю git gc

/tmp/test $ git init
Initialized empty Git repository in /tmp/test/.git/

/tmp/test master # $ git commit --allow-empty -m 'Commit #1'
[master (root-commit) 1dc2d41] Commit #1

/tmp/test master $ git co -b feature
Switched to a new branch 'feature'

/tmp/test feature $ git commit --allow-empty -m 'Commit #2'
[feature f35f72b] Commit #2

/tmp/test feature $ SHA=$(git rev-parse HEAD)

/tmp/test feature $ git co master
Switched to branch 'master'

/tmp/test master $ git show --pretty=oneline $SHA
f35f72b78586ca394dc9cccb33c7fab18d2aa373 Commit #2

sg302447 /tmp/test master $ git branch -D feature
Deleted branch feature (was f35f72b).

/tmp/test master $ git gc --aggressive
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), done.
Total 3 (delta 1), reused 2 (delta 0)

/tmp/test master $ git show --pretty=oneline $SHA
f35f72b78586ca394dc9cccb33c7fab18d2aa373 Commit #2

Почему Commit #2 все еще существует?

 , ,

KennyMinigun ()

В неподтверждённых можно голосовать

Сабж: www.linux.org.ru/view-all.jsp?section=5

Можно ткнуть любую опцию и нажать «голосовать». Только не видно куда результат идет и считается ли он

Баг или фича?

 , ,

KennyMinigun ()

Линус теперь няшка

https://www.phoronix.com/scan.php?page=news_item&px=Linus-Torvalds-New-Po...

Ответ к коммиту, который добавляет драйвер для контроллера BigBen в ядро и включает его по умолчанию:

We do *not* enable new random drivers by default. And we most *definitely* don't do it when they are odd-ball ones that most people have never heard of.

Yet the new «BigBen Interactive» driver that was added this merge window did exactly that.

Just don't do it.

Yes, yes, every developer always thinks that _their_ driver is so special and so magically important that it should be enabled by default. But no. When we have thousands of drivers, we don't randomly pick one new driver to be enabled by default just because some developer thinks it is special. It's not.

So the

default !EXPERT

was completely wrong in commit 256a90ed9e46 («HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad»). Please don't do things like this.

Linus

 , ,

KennyMinigun ()

Структура данных для набора одинаковых std::vector

Есть контейнер типа std::vector<std::vector<T>>. Обычно в нем хранится 3-5 векторов гарантированно одинакого размера (по 2-6 элементов). Хочу, чтоб контейнер находился в одном куске памяти, как какое проще всего сделать? (может уже есть такая структура?)

 , ,

KennyMinigun ()

Курица или яйцо

JS (Юникод) знает ответ:

["🥚", "🐔"].sort()

Источник (примечание: особо впечатлительным профиль не смотреть): https://twitter.com/aBagorn/status/1051286652663025664

 , ,

KennyMinigun ()

Constexpr if и числа в Clang

Есть такой код:

int main()
{
  constexpr int flags = 2;
  
  if constexpr (flags & 3) {
    return 0;
  }
  
  return 1;
}
GCC спокойно проглатывает и работает. Clang же противится:
prog.cc:5:17: error: constexpr if condition evaluates to 2, which cannot be narrowed to type 'bool' [-Wc++11-narrowing]
  if constexpr (flags & 3) {
                ^
https://wandbox.org/permlink/P4JWOgkWj8veamrf

Причем без -Werror. Если подать -Wno-c++11-narrowing то тоже работает (как надо).

Кто прав? Баг ли?

P.S. Наиболее похожее что удалось нагуглить вот: https://stackoverflow.com/questions/41253121/strange-behavior-of-narrowing-in...

 , , ,

KennyMinigun ()

Странное поведение поиска на некоторых символах

Если например поискать в комментариях какого-либо пользователя что-то вроди http:// то в результатах получим подсветку только http (т.е. :// вроди как игнорируется).

Самое веселье начинается если пробовать искать http://site в комметариях: в результатах пусто.

Вот например, возьмем такой запрос: www.linux.org.ru/search.jsp?q=http://esxi&range=COMMENTS&interval=ALL...

Результаты пусты, однако там должно быть хотя бы вот это: Krita убивает Gimp (комментарий)

Я подозреваю, что возможно на стороне сервера не вызывается urldecode (и поиск производится по строке как в GET http%3A%2F%2Fesxi)

 , ,

KennyMinigun ()

Посоветуйте минимальный Agile Board

Всяческие Agile борды на данный момент просто напичканы кнопками, категориями и настройками. Есть ли что-нибудь, чтоб можно было поднять сайтик с минимальным интерфейсом и минимум функций (aka GNOME) чтоб хоть как-то напоминало Agile Board? Т.е. чтоб порог вхождения был ниже плинтуса, и интерфейс не вызывал вопросов «а как тут создать задание?». Cамодельность в каком-нибудь online блокноте (как Google Keep) не подходит: там хоть и просто, но надо все делать самому и помнить кучу правил.

Пока что я осилил такой свой критериев:

  • Минимальное количество телодвижений на типичные действия
  • Отсутствие overengineered bullshit: неиспользуемых полей, непонятных связей, свистелок, перделок etc
  • Однозначность (т.е. как можно малый «просвет» для интерпретации сущностей неподготовленым умом)
  • Не требует обучения пользованию / помнить «howto».

 , ,

KennyMinigun ()

Bash Hackers Wiki

Наткнулся в сети на вику, которая открыла для меня новые глубины боли Bash. Да так, что «трюки» с арчвики показались мне цветочками...

Короче, сабж: http://wiki.bash-hackers.org

Для оценки ситуации с «белым пушистым зверьком» (aka «песец») в Bash, предлагаю взглянуть хотя б на две странички:

Может кому пригодится...

 , , ,

KennyMinigun ()

Пример, когда с std::launder действительно работает иначе

Вопрос чисто практический. Пытаюсь собрать примеры кода, которые работают по разному с std::launder и без него.

На cppreference подано 3 примера (в моем понимании):

  1. Подменяется обьект (struct X) с const member (const int X::n) в куче через placement new и доступ к его данным через старый указатель (p) есть UB
  2. Обьект (struct Y) создается в заранее алоцированном пространстве, но с другим типом (std::byte[] s). Использование созданного обьекта используя только reinterpret_cast есть UB.
  3. Метод обьекта подменяет *this, использование обьекта (struct A) по старой ссылке есть UB.

У меня получилось только для пункта 3 собрать пример, когда работа кода отличается: https://wandbox.org/permlink/qi5yoGmIPgeset9I

Для пункта 1 у меня не удается «обмануть» компилятор (я хочу, чтоб он закешировал значение root.next и код вошел в вечный цикл): https://wandbox.org/permlink/A1DDj7KInEKRP4uG

Для пункта 2 пока нет идей откуда может произойти UB.

Есть у кого идеи как увидеть UB из-за неиспользования std::launder? (UBSAN в планах тоже)

 , , ,

KennyMinigun ()

«Только для модераторов» в недавней новости

Линус Торвальдс временно уходит с поста координатора Linux

Странное ограничение (учитывая природу новости). Или обсуждение *только* в Talks? Может тогда закинуть ссылку в коментарии, чтоб меньше искать? (Линус извинился, Линус берёт паузу ). С пометкой «обсуждение в Talks».

Shaman007

 ,

KennyMinigun ()

Может ли в APT показать процесс разрешения конфликтов?

Короче, ситуация такова, что пакет kde-l10n-uk почему-то конфликтует с основными пакетами:

$ LC_ALL=C sudo apt install kde-l10n-uk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  plasma-browser-integration
Use 'sudo apt autoremove' to remove it.
The following packages will be REMOVED:
  kubuntu-desktop plasma-desktop plasma-desktop-data
The following NEW packages will be installed:
  kde-l10n-uk
0 upgraded, 1 newly installed, 3 to remove and 0 not upgraded.
Need to get 4041 kB of archives.
After this operation, 32.9 MB disk space will be freed.
Do you want to continue? [Y/n] 

Поскольку мне лень смотреть в Depends/Conflicts/Replaces каждого пакета, то вопрос: можно ли как-то заставить APT написать причину удаления (или напечатать процесс разрешения зависимостей)?

 , , ,

KennyMinigun ()

Кто нибудь уже сидит на Cosmic?

Сабж. Обновлялся ли кто на Ubuntu 18.10 Cosmic Cuttlefish? Как впечатления?

Я себе накатил Kubuntu 18.10, во время обновления один пакет не установлися (ttf-mscorefonts-installer) и обновление прервалось. Через несколько часов пакет пофиксили и он устанавливается нормально. Только я вот теперь озадачен, не поломалось ли чего? По крайней мере мантра из sudo dpkg --configure -a и sudo apt install -f ничего подозрительного не выводит (и соответственно ничего не делает). Meтапакет kubuntu-desktop установлен нормально.

 , ,

KennyMinigun ()

Эвалуация аргументов функции при вызове

Есть вот такие функции:

void whatever(std::vector<int> lhs, bool rhs);
bool check(const std::vector<int> &v);

Вызываются вот так:

std::vector<int> arg{1, 2, 3};
whatever(std::move(arg), check(arg));

Понятно, что

Order of evaluation of the operands of almost all C++ operators (including the order of evaluation of function arguments in a function-call expression and the order of evaluation of the subexpressions within any expression) is unspecified.

Вопрос скорее о том, чем в данном случае является результат Эвалуации std::move(arg)? Обьект std::vector<int> или же rvalue-reference (std::vector<int>&&)?

 , , ,

KennyMinigun ()

RSS подписка на новые темы