LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , ,

Я понял, почему темы набирают по 1к комментариев

 

Пример темы Если вы пробовали вкатиться в GNU Emacs, расскажите, что пошло не так

Все кто внутри - набивают посты т.к тема в desktop. Думаю, что это целая технология, потому что часто бывает так, что в мою тему пишет кто-то с 5 звездами, а я его первый раз вижу. Скорей всего звезды набивают в подобных темах

PS: кстати, этой теме место в talks

bryak
()

Герб Саттер — отчёт о встрече по стандартам ISO C++ в июне 2026 года

 ,

https://herbsutter.com/2026/06/13/brno-trip-report.

Несколько минут назад (прим.: 13 июня 2026 г.) комитет ISO по C++ завершил первое заседание по C++29 в прекрасном городе Брно, Чехия (в гибридном формате с онлайн-участием через Zoom).

Организатором этой встречи выступил Университет имени Менделя в Брно. Благодарим всех, кто принимал участие в её проведении, и в особенности Хану Дусикову, которая возглавила работу по подготовке мероприятия! Наши хозяева обеспечили нам высококачественные условия для проведения шестидневной встречи с понедельника по субботу.

В мероприятии приняли участие около 200 человек, из которых примерно 55% присутствовали на месте, а 45% — онлайн; они официально представляли 28 стран. На каждой встрече у нас регулярно появляются новые гости, которые никогда раньше не участвовали в мероприятии, и на этот раз, помимо новых участников, являющихся официальными представителями национальных организаций, было 25 новых гостей, в основном присутствовавших на месте. Ещё раз приветствуем всех!

В настоящее время в составе комитета действуют 22 подгруппы, 11 из которых в течение недели проводили заседания в рамках 6 параллельных сессий. Некоторые группы работали всю неделю, а другие — несколько дней или часть дня, в зависимости от объёма работы. Краткое изложение процедур ISO можно найти здесь.

Принято для C++29: Изменения и новые возможности ядра языка

Эти ссылки ведут на самые последние общедоступные версии каждой статьи. Если статья была доработана на заседании перед утверждением, ссылка отслеживает изменения и автоматически найдёт обновлённую версию, как только она будет загружена на общедоступный сайт. Некоторые из принятых нововведений в языке и библиотеках уже сегодня поддерживаются в основных реализациях C++. «Принято для C++29» не означает, что «придётся ждать до 2029 года или позже, чтобы увидеть их поддержку в реальных компиляторах и стандартных библиотеках». Помимо устранения ряда проблем, основная рабочая группа одобрила 19 документов, в том числе следующие:

  • P3596R3 «Неопределённое поведение и приложения IFNDR» (авторы: Joshua Berne, Timur Doumler, Jens Maurer и Shafik Yaghmour). Данная статья дополняет стандарт C++ двумя приложениями, в которых подробно каталогизированы и задокументированы все случаи неопределённого поведения (UB) в C++, включая случаи, помеченные как «некорректная форма, диагностика не требуется» (IFNDR). Данный каталог предназначен для содействия смягчению или устранению случаев UB, в том числе с помощью профилей. Это была, простите за мой французский, целая «[метрическая] тонна» работы, проделанной на протяжении нескольких лет. Спасибо Shafik, Joshua, Timur, Jens и всем, кто помог им составить этот подробный каталог, благодаря чему теперь мы сможем систематически заняться этими случаями неопределённости (UB)! Следующим шагом станет рассмотрение каждого случая в отдельности, которое начнётся в следующем месяце с целью систематического решения этих проблем к C++29, возможно, уже в течение следующего года (подробнее об этом ниже). Здесь, в C++, мы смотрим в глаза реальности без страха и пристрастий. На случай, если это нужно повторить: «Да, Вирджиния, существует динамичный, живой и современный язык программирования под названием C++». (Только, в отличие от оригинала, эта версия — правда для взрослых).

  • P3097R3 «Контракты в C++: виртуальные функции» (авторы: Timur Doumler, Joshua Berne и Gašper Ažman). Цитата из статьи:

    «Утверждения переопределяющей функции не зависят от утверждений в переопределяемой функции. При вызове виртуальной функции оцениваются утверждения о предварительных и конечных условиях как статически выбранной функции, так и конечной переопределяющей функции. Данный подход развивает ранее предложенные решения, поддерживая более широкий спектр сценариев использования, встречающихся в существующем коде, более естественно интегрируясь с семантикой оценки контрактов и обработкой нарушений контрактов в C++26, а также лучше подходя для языка C++, чем более ограничительные модели в таких языках, как Eiffel и D».

    Добавление этой функции устраняет одну из основных претензий к контрактам в C++26, а именно то, что первоначальная версия контрактов не поддерживала виртуальные функции. Теперь, менее чем через три месяца после технического завершения работы над C++26, в проекте стандарта C++29 контракты уже поддерживают виртуальные функции. Это свидетельствует о том, что комитет серьёзно настроен на развитие контрактов C++26 в рамках C++29. Спасибо, Timur, Joshua and Gašper!

  • P3668R4 «Операции инкремента и декремента в постфиксной нотации по умолчанию» (авторы: Matthew Taylor и Alex). В данной статье добавляется поддержка =default для операторов инкремента и декремента в постфиксной нотации, что позволяет использовать каноническое определение, отсылающее к префиксным версиям, без необходимости вручную писать шаблонный код (и, возможно, допускать ошибки). Спасибо, Matthew и Alex! Например, приведённый в статье пример теперь допустим в проекте C++29:

class foo{
    int member;
public:
    constexpr foo& operator++(){
        ++member;
        return *this;
    }
    constexpr foo operator++(int) = default;
};
struct A { int a; };

struct B : A { int b; };

B{{1}, 2}         // уже допустимо в C++17
B{1, 2}           // уже допустимо в C++17

B{.a=1, .b=2}     // теперь допустимо в C++29
B{{.a=1}, .b=2}   // теперь допустимо в C++29
B{.a{1}, .b{2}}   // теперь допустимо в C++29

B{.b=2, .a=1}     // остаётся недопустимым

Кроме того, мы добавили ещё целый ряд языковых расширений и улучшений.

Принято для C++29: Изменения и новые возможности стандартной библиотеки

Помимо устранения ряда проблем, в стандартную библиотеку были включены 18 статей, в том числе следующие:

  • P3091 «Улучшенные операции поиска для map, unordered_map и flat_map» (автор: Pablo Halpern). Этот документ добавляет в C++29 поддержку вызова .lookup(key) в стиле Python для map, unordered_map и flat_map. Эта функция, возвращающая опциональный параметр, открывает возможности, недоступные сегодня с помощью оператора [], который всегда вставляет элемент, если его нет, и find, который находит только те элементы, которые присутствуют. Спасибо, Pablo! Вот пример из статьи:
constexpr double inf = std::numeric_limits<double>::infinity();

double largest = -inf;

for (int i = 1; i <= 100; ++i) {
  largest = std::max(largest, theMap.lookup(i).value_or(-inf));
}
  • P3125R6 «Маркировка указателей constexpr» (автор: Hana Dusíková, известная как «королева constexpr»). Представленный в этой статье тип указателя с тегом pointer_tag_pair<Pointer, BitsRequested = /* доступные младшие биты */, Tag = unsigned> обеспечивает переносимую поддержку хранения информации в младших битах указателей. Это библиотека низкого уровня, полезная для решения многих задач, включая обеспечение безопасности памяти и усиление защиты. Спасибо, Hana!
  • P3248 «Сделать [u]intptr_t обязательными» (автор: Gonzalo Brito Gadeschi). Формально в C и C++ до сих пор типы intptr_t и uintptr_t были «необязательными», поэтому реализация на C++ могла не поддерживать их. Поскольку они полезны для низкоуровневого кода и уже широко поддерживаются, теперь стандарт C++ будет требовать их наличия. Спасибо, Gonzalo!
    Мы также добавили ряд других расширений и улучшений библиотеки.
Другие достижения, в частности в области обеспечения безопасности работы с памятью

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

  • Систематическое решение проблемы неопределённого поведения (UB) в C++ для стандарта C++29. Подгруппа по развитию языка (EWG) также одобрила выделение значительного времени этим летом и осенью на построчное рассмотрение в режиме телеконференции документа P3100 «Концептуальная основа для систематического решения проблемы неопределённого поведения в стандарте C++» (авторы: Timur Doumler and Joshua Berne), с целью включения его в стандарт C++29. Отличное краткое изложение можно найти в аннотации к документу.
  • Спецификация профилей для C++29. Подгруппа по безопасности и защите (SG23) приняла решение разработать спецификацию профилей, которая позволит использовать правила статического и иного анализа, ограничивающие набор функций C++, с целью обеспечения того, чтобы в коде не использовались нежелательные (например, небезопасные с точки зрения памяти) операции, и тем самым усилить безопасность кода C++ определёнными способами. Эта спецификация будет включена в C++29, если она будет готова вовремя, как ожидается; в противном случае она может быть опубликована в виде технического документа одновременно с C++29.
  • Профиль инициализации. Группа SG23 также рассмотрела текущий проект документа P4222 «Профиль инициализации» (автор: Bjarne Stroustrup), и мы рассчитываем добиться дальнейшего прогресса в этой работе в течение этого года, в том числе с учётом опыта реализации по крайней мере в одной крупной кодовой базе компилятора.

Как я уже упоминал в своих предыдущих отчетах о поездках, среди других документов по профилям, над которыми я ранее работал, можно назвать P3984 «Профиль безопасности типов» (автор: Bjarne Stroustrup) и P3589R2 «Профили C++: инфраструктура» (автор: Gabriel Dos Reis), а также ряд других дополняющих их документов с предложениями по профилям.

Сказать, что это были бы чрезвычайно важные и исторические достижения — значит сильно преуменьшить их значение:

  • предоставляется способ систематически решать проблемы, связанные с неопределённым поведением (UB) в C++, и
  • предоставляется способ гарантировать, что программа на C++ обладает определёнными свойствами, например, отсутствие ошибок, связанных с безопасностью работы с памятью.

Мы ещё не достигли этой цели, но обе задачи теперь явно выходят за рамки простого желания; это серьёзные рабочие задачи, по которым комитет намерен добиться значительного прогресса в ближайшем будущем. Я буду продолжать освещать эти усилия в будущих отчётах о поездках по мере продвижения работы.

Напоминание для тех, кто по-прежнему скептически относится к тому, что реализация UB на C++ когда-нибудь станет возможной: помните, что мы уже этим занимаемся. Не живите прошлым… «Уже не 2021 год». BeCPP, YouTube.

  • Код constexpr C++, который в настоящее время охватывает практически весь язык C++ и стандартную библиотеку, уже гарантированно не вызывает неопределённого поведения при выполнении на этапе компиляции.
  • В C++26 были устранены ещё два основных источника неопределённого поведения (UB): использование неинициализированных переменных стека больше не приводит к UB, а в упрочнённой стандартной библиотеке C++ добавлена защита от выхода за пределы для десятков наиболее распространённых операций с границами (эта функция уже широко внедрена для упрочнения платформ Apple и Google; подробнее об этом см. в моём предыдущем отчёте о поездке).
В заключение

Еще раз благодарим около 200 экспертов, которые приняли участие в заседании на этой неделе как очно, так и в режиме онлайн, а также всех тех, кто участвует в работе по стандартизации через свои национальные органы!

Но мы не собираемся сбавлять обороты… Мы продолжим проводить заседания подгрупп в Zoom, а наше следующее полное заседание состоится в ноябре в Армасан-дус-Бузиус, недалеко от Рио-де-Жанейро (Бразилия), где мы продолжим работу над добавлением новых возможностей в C++29. Надеюсь увидеть многих из вас там.

Спасибо всем, кто читает это сообщение, за ваш интерес и поддержку C++ и его стандартизации.

dataman
()

РКН не имеет планов на блокировку иностранных ИИ провайдеров, или вайб-кодинг угрожает цифровому суверенитету России

 

Искусственный интеллект вмешался в процесс импортозамещения в России. Еще недавно оно сводилось к замене иностранных ИТ-решений на российские, а сегодня мы оказываемся внутри совсем другой парадигмы. Значительная часть кода российских информационных систем разрабатывается и поддерживается в ИИ-сервисах на базе зарубежных генеративных моделей. И, кажется, с учетом нарастающей популярности вайбкодинга пришло время вырабатывать принципиально новые подходы к импортозамещению, чтобы не подрывать национальный технологический суверенитет.

Большая часть кода российских информационных систем сегодня разрабатывается и поддерживается с помощью ИИ-сервисов на базе зарубежных языковых моделей. Парадокс: компании и ведомства активно переезжают с зарубежных корпоративных продуктов на российские, — подталкиваемые санкциями, законодательством и иностранными вендорами, ушедшими из страны, — но при этом их разработчики пишут код с помощью зарубежных ИИ-инструментов.

Продолжение

unclestephen
()

В Linux 7.2 вошёл набор архитектурных изменений для ARM64

 ,

В ветку разработки Linux 7.2 принят набор обновлений для архитектуры ARM64/AArch64. Изменения собраны в pull request сопровождающего ARM64-порта Уилла Дикона и описаны в официальном теге arm64-upstream. В теге перечислены новые HWCAPS для расширений 2025 dpISA, доработки обработки CPU errata, подготовка к удалению секций kernel data и BSS из linear map, поддержка MPAM v0.1, изменения в SVE/SME, perf, selftests и описании системных регистров.

Часть контекста релиза — влияние AI-инструментов на разработку ядра. В материале Phoronix приводится комментарий Уилла Дикона из pull request: по его словам, «новый мир AI tooling» замедлил работу над функциональными изменениями, а дополнительные раунды проверки Sashiko вытеснили часть патчей в следующий цикл. Phoronix подчёркивает, что ARM64 — не единственное направление ядра, где сопровождающие сталкиваются с потоком AI/LLM-сгенерированных патчей.

Главное техническое изменение — добавление новых аппаратных capability-битов для 2025 dpISA. В патче arm64/cpufeature объясняется, что эти расширения в основном добавляют новые инструкции, а не новое архитектурное состояние, поэтому ядру не нужно управлять дополнительным контекстом: достаточно сообщить userspace, какие инструкции доступны на конкретном CPU. Для этого в ARM64 добавлены новые HWCAP3-флаги, включая sveb16mm, sve2p3, smelut6, sme2p3, f16mm, f16f32dot, f16f32mm и svelut6.

( читать дальше... )

Источник

Перемещено hobbit из kernel

unclestephen
()

Лучший телефон для линуксоида

 , ,

Что сейчас вообще можно купить из мобильников? Сейчас гоняю с Pixel 10 (до этого 9-ый, до этого xiomi t17 вроде). Всё отлично, вообще без претензий. Но иногда думаю а есть ли сейчас что-то, на что реально имеет смысл обновиться? Айфоны тоже выглядят вполне норм. Но то, что нельзя просто взять и поставить приложение мимо App Store (без Мака) - это прям серьёзный turn off для меня. Поэтому пока на iPhone переходить не тянет.

Смотрю невнимательно на linux телефоны, но там по железу фигня обычно.

В общем, на что обратить внимание?

pi11
()

Забавная новость про ошибку в интеловских процессорах

 , , , ,

На опеннете появилась статейка в которой описывается баг CPU Intel на базе микроархитектуры Raptor Lake 13 и 14 поколений

Проблема возникала из-за того, что генератор кода LLVM использовал инструкцию «mov byte ptr [rsi + rdi + 1], ch» при записи в память результатов кодирования Хаффмана. При выполнении данной инструкции на CPU Raptor Lake вместо 8-15 битов из регистра RCX, соответствующих указанному в инструкции регистру CH, в память записывались биты 0-7, соответствующие регистру CL.

Охренеть! Как с таким багом оно работает?

vel
()

Не игнорируется пользователь

 ,

За игнорировал Не работает javascript код (комментарий) static_lab, а он все равно у меня в Уведомлениях висит. Непорядок! Надо чтоб он оттуда пропал.

saufesma
()

настройки в профиль

 

день добрый!
предлагаю добавить:
- что отображать на главной странице (имеется в виду - под «основным потоком»).

по моему, раньше не отображались «всякие» скриншоты/голосoвалки итд (они появились недавно).
(без притензий) имхо считаю их лишним (для кого-то наоборот, наверное)... но, настраивать данный момент - было-бы очень неплохо!

спасибо :о)

add: только что заметил, что появилась кнопка «ДОБАВИТЬ» (новость) - по моему не логично на главной & вообще не логично, если человек заходит «только почитать» - то это кнопка там реально лишняя и в глаза лезет так ... навязчиво! :о)

sunjob
()

MrSugoma спамит в AUR

 , nocord, ,

firkax
()

Учёт трафика

 

Многие просто перестали учитывать трафик из-за легкой доступности и не особо высоких цен.

Пишите ваше примерное кол-во трафика в день.

nixbrain
()

Присвоенный порядок переменных меняется местами непонятно где

 ,

let y12, y11, x12, x11, bv;
…………………………..
app.post('/init', (req, res) => {
    ({ y12, y11, x12, x11, bv } = req.body);
    console.log('После присваивания:', { y12, y11, x12, x11, bv });
      console.log(`y12 = ${y12}`);
       console.log(`y11 = ${y11}`);
       console.log(`x12 = ${x12}`);
       console.log(`x11 = ${x11}`);
       console.log(`xv = ${xv}`);
       console.log(`bv = ${bv}`);
});

function FFF(y12, y11, x12, x11, xv, bv) {
   if (y12 === undefined || y11 === undefined || x12 === undefined || x11 === undefined || bv === undefined) {
    // Code to execute if any variable is undefined
       console.log('После вызова FFF:', { y12, y11, x12, x11, xv, bv });
   } else {
       console.log(`y12 = ${y12}`);
       console.log(`y11 = ${y11}`);
       console.log(`x12 = ${x12}`);
       console.log(`x11 = ${x11}`);
       console.log(`xv = ${xv}`);
       console.log(`bv = ${bv}`);
    const deltaX = x12 - x11;
    const deltaY = y12 - y11;
    const m = deltaY / deltaX;
    const Uvel = (m * xv + bv);
    return parseFloat(Uvel.toFixed(1)); 
   }
}; 

самый прикол

$ node item.js
Server is running on port 3000
После присваивания: { y12: 12.3, y11: 4.02, x12: 3.03, x11: 0.9, bv: 0.526 }
y12 = 12.3
y11 = 4.02
x12 = 3.03
x11 = 0.9
xv = 0
bv = 0.526

а это выхлоп FFF(y12, y11, x12, x11, xv, bv)
y12 = 0.9
y11 = 3.03
x12 = 4.02
x11 = 12.3
xv = 1.911 это верно
bv = 0.526 это верно
в верных вариантах вопрос, xv bv меняю местами а числовые значения как присохли к своим местам. Пчему порядок переменных нарушается?

saufesma
()

Доля firefox на рынке, или рецепт для весёлых и находчивых через любимый браузер.

 , ,

Сабж

Поскольку в статье, тащемта, подсудное дело, для Ъ не будет.

tiinn
()

LE и GlobalSign всё, куда двигаться за сертификатом, остаётся только Минцифры, но...

 ,

… как я себе это представляю, обернётся массовой недоступностью сервисов. Какие сценарии развёртывания, кто-то уже размышлял?

unclestephen
()

Можно ли использовать debian на десктопе

 ,

я думаю о переходе на дебиан но многие говорят это для серваков а для десктопа не подходит, а особенно что сложен для новичков, правда ли это?

imkablit
()

Как перекодировать 866 в Юникод?

 

Я заменяю юникодные символы 128-255 на числа

1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055
1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071
1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087
9617, 9618, 9619, 9474, 9508, 9569, 9570, 9558, 9557, 9571, 9553, 9559, 9565, 9564, 9563, 9488
9492, 9524, 9516, 9500, 9472, 9532, 9566, 9567, 9562, 9556, 9577, 9574, 9568, 9552, 9580, 9575
9576, 9572, 9573, 9561, 9560, 9554, 9555, 9579, 9578, 9496, 9484, 9608, 9604, 9612, 9616, 9600
1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103
1025, 1105, 1028, 1108, 1031, 1111, 1038, 1118, 176, 8729, 183, 8730, 8470, 164, 9632, 160

В заглавных буквах какая-то каша.

Таблицу я нагуглил, точнее расположение букв и взял их аналоги из юникода. С 1251 работает.

AZJIO
()

Насколько же VSCode в.ратее, чем emacs!

 , , ,

Subj.

Стало сильно больше работы с SQL и python кодом, в том числе с «блокнотами» и захотелось больше вменяемой ИИ автоматизации.

Так как Eclipse всё ещё нишевая платформа, решил в который раз подойти к emacs... Сейчас по-тихоньку всё настраиваю, настроил уже мышеводство и jupyter... Блин, ну да, надо много настраивать, но насколько же оно вменяемее, чем VSCode и производные! Так как работаю в основном полулёжа, работаю с ноутбуком с оффтопиком, и вот даже на оффтопике emacs хорош.

Shadow
()

Умные выключатели с ESP8266/ESP32

 

Приветствую.

Помогите человеку, поделитесь линкой на Алиекспресс на выключатели света, которые:

а) С физической кнопкой. Никаких сенсоров;

б) Гарантированно построены на базе esp8266 \ esp32.

Благодарю.

windows10
()

Не могу совладать с буфером обмена

 , ,

Крик души.

Как же хорошо было в макоси. Один буфер обмена. Одно сочетание клавиш. Никаких проблем.

В линуксе:

В браузере Ctrl+C копирует текст. В терминале Ctrl+C посылает SIGINT.

В браузере Ctrl+Shift+C открывает developer tools. В терминале Ctrl+Shift+C копирует текст.

В браузере и в терминале Ctrl+Insert копируют текст. Ладно, хорошо, привыкаем к Ctrl+Insert для копирования.

В браузере Ctrl+V копирует текст. В терминале Ctrl+V не пойми что делает.

В браузере Ctrl+Shift+V обычно вставляет текст, но не всегда. В терминале Ctrl+Shift+V вставляет текст.

Раз мы привыкаем с Ctrl+Insert, значит и к Shift+Insert будем привыкать. И вроде на первый взгляд работает.

В браузере Shift+Insert вставляет текст из обычного буфера обмена.

В терминале Shift+Insert вставляет текст из первичного буфера, который выделяется мышкой.

В терминале Ctrl+Shift+Insert вставляет текст из обычного буфера обмена.

В браузере Ctrl+Shift+Insert ничего не делает.

«Браузер» можно заменить на любое другое приложение (но это не точно).

Ааа. Зачем такое.

vbr
()

Какой язык короче?

 

Кто-нибудь пытался сравнивать объёмы исходников на разных языках?

Я понимаю, что разные языки удобнее для одних задач, и неудобнее для других. Где-то хорошее матичное умножение, где-то работа со строками, где-то GUI, где-то обвязка для БД, где-то удобнее писать ветвящиеся условия, а где-то мегабайты бойлерплейта и неприемлемо длинные ключевые слова.

Хорошо бы, если бы заодно сравнивали читаемость по каким-нибудь объективным критериям.

Кто-нибудь пытался анализировать статистику?

question4
()

При следующем логине на сайт будут разлогинены другие устройства

 

При следующем логине на сайт будут разлогинены сессии на других устройствах. Не пугайтесь, это разовая история. Связано с заменой алгоритма хеширования паролей (bcrypt вместо устаревшено jasypt basic password encryptor).

maxcom
()

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