-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warnings under unices #8
Comments
Hi @plzombie . "Красивый" списочек. И частично к этому списку я руку приложил. Значительная часть сидит в |
@zvezdochiot Ладно. В альт-линуксе там списочек, кстати, выглядит не таким ужасающим. Это в debian настройки по умолчанию какие-то уж слишком жёсткие. |
@plzombie , что то эта "отечественная ОС" попахивает чем то средним между яндексом и РосНаном. Т.е. даже ежели она "отечественная", то непонятно о каком отечестве идёт речь. PS: У таких старпёров, как я, слово отечественная всегда асоциируется с народом русским. В данном же случае ассоциация обратная. |
Типовое вроде сообщение. В h-файле члены определены в одном порядке, а в cpp в списке инициализации конструктора - в другом. Visual Studio под виндой тоже на такое ругается. А если включить максимальный уровень предупреждений, там еще и не такая портяка вылазит.
Просто в русской традиции букву "ё" печатать как "е" для экономии чернил. На мониторе же для экономии энергии точки лучше, наоборот, включать, и писать полностью - "отёчественная". 🤣 |
@zvezdochiot @noobie-iv Да ладно вам. Это, наверное, действительно исконно русский, "НАШ", дистрибутив. Разрабатывает ООО "Базальт СПО", а не какой-то там кипрский офшор. Он от Red Hat откололся больше двадцати лет назад. Там уже и скрипты свои есть, и пакеты, и много чего модифицировано. Да и интерфейс мне честно нравится (не вот этот вот модный Gnome3/4), равно как и стабильная работа под виртуалкой Я вас, кстати, поздравляю. Пакет с x86 версией Scantailor приняли в WinGet. Надо только доработать установщик, чтобы правильную версию и идентификатор отдавал |
@zvezdochiot @noobie-iv можете мне подсказать, как вы сейчас в линуксе вообще авторизуетесь в git? Под виндой есть git credential manager, который поддерживает двухфакторную авторизацию. А тут - пароль приложения создавать? |
@plzombie , не знаю, как остальные, а у меня в настройках авторизации и SSH-ключ прописан, и GPG-ключ прописан. Правда вторым я не пользуюсь, ибо эксплуатация муторная. А вот по SSH данные туда-обратно совершенно спокойно гуляют. Создайте себе SSH-ключ, активируйте его в eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519 PS: Про web-морду я уже писал, добавил addon в лису и с его помощью как то зашёл. Как? Сам не понял. |
@zvezdochiot да у меня есть приложение. Получается, просто генерируешь в Developer Settings->Personal access tokens->Tokens (classic) себе индивидуальный пароль и его вводишь вместо основного |
@plzombie , да я без понятия как это всё дерьмо работает. Для меня всё это просто конкретное МММ, то бишь разводилово. Я уж подумывал вообще валить с гитхаба, когда всё это увидел. Дураку же понятно, что никакую безопасность это дерьмо не делает, а лишь усложняет работу обычному пользователю. |
Я под виндой сижу, вход через FF, плагин Authenticator. Когда вход выполнен - git тоже получает доступ. После этого работают и git-bash, и VSCode. Ничего больше не настраивал. |
@noobie-iv у меня под виндой проще - Github app для телефона и git credentials manager (да, я прогнулся под корпорации и поставил приложение:)). С ssh я когда-то игрался. Но проще token вместо пароля создать (и просто тупо вместо пароля его вводишь, как раньше) UPD: Github app, кстати, криворукие люди писали. Нельзя комментировать коммиты. Ты видишь, что кто-то его прокоментировал, ты нажимаешь на уведомление, а в ответ - ничего |
Я вроде основные варнинги убрал. Там остался -Wmaybe-uninitialized в файле |
@plzombie say:
Это определённая когда то "модная" фитча работы с кучей. Полностью тебя поддерживаю. Я сам все |
Я простой инженер, и в плюсах не копенгаген. Но, насколько я знаю, move - это новый вид оптимизации, при передаче объектов, владеющих ресурами. В некоторых случаях, когда ресурс надо передать по цепочке, вызвается специальный конструктор перемещения, внутри которого просто переприсваивается указатель на ресурс, а не делаются лишние "выделим новую память, скопируем из старой, удалим старую". И вызов std::move - это подсказка компилятору, что этот объект - временный, и при копировании можно не копировать его ресурс, а забирать, потому что объект все равно удаляется. А еще современные плюсы насобачились даже вообще пропускать вызовы конструкторов/деструкторов при возвращении переменной из функции (гуглить RVO-оптимизация). Видимо, в старых плюсах на возвращаемые значения надо было делать move, потому они по коду и раскиданы. А в современных компиляторах это наоборот, мешает оптимизации. Судя по типу предупреждения "pessimizing-move", тут оптимизация заблокировалась, и пошли лишние копирования с тормозами. В современных компиляторах достаточно просто возвращать результат, без move: 169: - return std::move(result); И потому же std::unique_ptr живет без конструктора копии - вместо него работает конструктор перемещения. Кстати, студия на такое не ругается. Видимо, тут комплятор про себя матерится, и просто молча делает как надо. |
Тут какая-то шаблонная магия, в которой я не разбираюсь. Но судя по сообщению, возможны баги с неинициализированной переменной. Деварпинг в этой версии - лучший из всех, но и он работает не идеально. Например, если его на эту книгу натравить: https://forum.dwg.ru/showpost.php?p=2046477&postcount=3713, то достаточно много страниц будут кривыми. Возможно, тут это предупреждение и вылазит - надо тестить. Может, это и не предупреждение даже, а реальная ошибка. |
Я вообще, хоть и программист, но совершенно из другой обособленной области, и у нас тут абсолютно свой технологический стек. А c++ я учил ещё по книжкам pre-c++98. @noobie-iv спасибо, попробую разобраться хотя-бы с move |
Я по книжке Страуструпа, по той, которой убить можно. |
@zvezdochiot @noobie-iv возвращаясь к теме... В Fedora ругается на класс IntrusivePtr. Надо посмотреть, что это, и можно ли его на что-то заменить из стандарта. |
@plzombie , а как именно ругается? Дай выхлоп посмотреть. (насколько я помню "это" связанно с сортировкой, а без сортировки ST - не ST). Но за "сигнал" спасибо. Опять "умельцы" из GNU каких то грабель подбросили. |
Там несколько одинаковых записей, меняется только место использования класса |
@plzombie , фу, отлегло. Я думал ты ещё что то "нащупал". А на "это" да, ругается. И не зря ругается. Уж больно шальная на самом деле в STEX сортировка. На каких то этапах через костыли стабилизируется, а на каких то |
По-моему, нет. Такое в стандарт забыли положить, потому оно и самописное. Разве что аналог, вроде, есть в бусте. Но пересадить всю программу на буст долго будет, там эти указатели повсюду. Хороших учебников по указателям не видел. Везде, как в учебниках математики, "мы придумали вот такую хрень, а вы придумайте, куда ее засунуть." Насколько я понимаю, указатели применены так:
Среди unique-intrusive-shared каждый следующий сложнее и тормознее предыдущего, поэтому использованы всегда минимально необходимые, а не везде просто shared. |
Судя по сообщению, где-то есть объект, который создан на стеке, а потом (возможно, по ошибке) завернут в IntrusivePtr. Указатель в своем деструкторе вызывает unref() объекта (унаследованный от RefCountable), который должен вызвать delete, потому что указатель должен создаваться из объектов, созданных через new. Типа такого
|
@zvezdochiot решил отдельно завести для варнингов под юниксы тикет, чтобы не загромождать под винду
Вот debian12 x64 с
-D CMAKE_BUILD_TYPE=Release
, boost я в список не включал. Завтра попробую эту войну и мир разгрести. Начну с-Wreorder
, потому что это самое тривиальное, и там их куча, больше половины наверноеThe text was updated successfully, but these errors were encountered: