В конце августа 2025 года графической многозадачной операционной системе Windows 95 (кодовое имя Chicago) исполнилось 30 лет (если быть точным, 24 августа система стала доступна для широкой публики)
Средняя конфигурация ПК на то время (например, для пользователей в США), включала винчестер объёмом в 320 МБ, 8 МБ ОЗУ, процессор 386DX или выше (для установки и нормальной работы ОС рекомендовался 486).
В ОС впервые появилась меню «Старт» (легендарная кнопка «Пуск»), графический интерфейс стал главным способом управления, отодвинув командную строку на второй план, а также удобные и понятные «Панель задач» и «Проводник».
В Windows 95 были введены профили как дополнительная функция, они хранили только персонализированные настройки, такие как обои и настройки рабочего стола.
Также разработчики Microsoft добавили в Windows 95 поддержку длинных (до 256 знаков) имён файлов и систему Plug and Play.
Попробовать Windows 95 в браузере можно на ресурсе
https://copy.sh/v86/?profile=windows95
Средняя конфигурация ПК на то время (например, для пользователей в США), включала винчестер объёмом в 320 МБ, 8 МБ ОЗУ, процессор 386DX или выше (для установки и нормальной работы ОС рекомендовался 486).
В ОС впервые появилась меню «Старт» (легендарная кнопка «Пуск»), графический интерфейс стал главным способом управления, отодвинув командную строку на второй план, а также удобные и понятные «Панель задач» и «Проводник».
В Windows 95 были введены профили как дополнительная функция, они хранили только персонализированные настройки, такие как обои и настройки рабочего стола.
Также разработчики Microsoft добавили в Windows 95 поддержку длинных (до 256 знаков) имён файлов и систему Plug and Play.
Попробовать Windows 95 в браузере можно на ресурсе
https://copy.sh/v86/?profile=windows95
❤25🔥11🤩6👍4
Краткая шпаргалка по API Gateway (Шлюз API), его функциях, популярных продуктах и эволюции.
(подолжение в следующем посте)
(подолжение в следующем посте)
👍9🔥1🥰1
Краткая шпаргалка по API Gateway (Шлюз API), его функциях, популярных продуктах и эволюции.
(продолжение предыдущего поста)
1. Основные уровни API Gateway и их функции
- Core layer (ядро): Включает запросы на аутентификацию, доступ к кэшу, маршрутизацию, преобразование протоколов, управление данными.
- Management layer (уровень управления): Управление трафиком, базовые настройки, конфигурация мониторинга.
- Monitoring layer (уровень мониторинга): Журналы мониторинга, отчеты.
2. Популярные продукты API Gateway:
- Amazon API Gateway: Полностью управляемая служба AWS, поддерживает REST, WebSocket, HTTP APIs, интегрируется с другими сервисами AWS.
- Azure API Management: Полностью управляемая служба Microsoft Azure, интегрируется с Azure Services.
- Kong: Open-source с поддержкой предприятия, включает аналитику, безопасность, управление API-жизненным циклом.
- IBM API Connect: Комплексное управление API, включает создание API, безопасность, социальные функции.
- Nginx: Высокая производительность, балансировка нагрузки, ограничение скорости.
- MuleSoft API Management Platform: Подключение различных приложений, данных и устройств.
3. Эволюция API Gateway:
- Hardware Load Balancer (балансировщик нагрузки): Начальный этап.
- Nginx-based API Gateway (Шлюз на основе Nginx): Современный обратный прокси и балансировщик нагрузки.
- Full Lifecycle API Management (управление всем жизненным циклом): Комплексное управление API
(продолжение предыдущего поста)
1. Основные уровни API Gateway и их функции
- Core layer (ядро): Включает запросы на аутентификацию, доступ к кэшу, маршрутизацию, преобразование протоколов, управление данными.
- Management layer (уровень управления): Управление трафиком, базовые настройки, конфигурация мониторинга.
- Monitoring layer (уровень мониторинга): Журналы мониторинга, отчеты.
2. Популярные продукты API Gateway:
- Amazon API Gateway: Полностью управляемая служба AWS, поддерживает REST, WebSocket, HTTP APIs, интегрируется с другими сервисами AWS.
- Azure API Management: Полностью управляемая служба Microsoft Azure, интегрируется с Azure Services.
- Kong: Open-source с поддержкой предприятия, включает аналитику, безопасность, управление API-жизненным циклом.
- IBM API Connect: Комплексное управление API, включает создание API, безопасность, социальные функции.
- Nginx: Высокая производительность, балансировка нагрузки, ограничение скорости.
- MuleSoft API Management Platform: Подключение различных приложений, данных и устройств.
3. Эволюция API Gateway:
- Hardware Load Balancer (балансировщик нагрузки): Начальный этап.
- Nginx-based API Gateway (Шлюз на основе Nginx): Современный обратный прокси и балансировщик нагрузки.
- Full Lifecycle API Management (управление всем жизненным циклом): Комплексное управление API
Telegram
METANIT.COM
Краткая шпаргалка по API Gateway (Шлюз API), его функциях, популярных продуктах и эволюции.
(подолжение в следующем посте)
(подолжение в следующем посте)
❤4👍2🔥2
Какой способ возврата из условной конструкции более интуитивен
Anonymous Poll
63%
c = a > b ? a : b;
37%
c = if (a > b) {a} else {b}
🤪21🤷♂9🤣9❤3
Основные аспекты оптимизации производительности баз данных:
(продолжение предыдущего поста)
1. Query Optimization (Оптимизация запросов):
- Описывает проблемы с медленными запросами и их влияние на производительность.
- Инструменты: EXPLAIN PLAN, pg_stat_statements, MySQL Slow Log.
- Влияние: от незначительных задержек до сбоев в работе системы.
2. Index Strategy (Стратегия индексирования):
- Рассматривает правильное использование индексов для часто запрашиваемых столбцов.
- Инструменты: Database Tuning Advisor, Index Usage Stats, pg_index.
- Влияние: оптимизация запросов и снижение нагрузки на CPU.
3. Connection Pooling (Пул соединений):
- Управление соединениями и их размер для предотвращения задержек.
- Инструменты: HikariCP, pgBouncer, Connection Metrics.
- Влияние: минимизация времени ожидания соединений.
4. Schema Design (Дизайн схемы):
- Нормализация данных и выбор типов данных.
- Инструменты: Schema Analyzer, Data Modeling Tools, Foreign Key Checker.
- Влияние: устранение избыточности и улучшение производительности.
5. Locking & Deadlocks (Блокировки и взаимоблокировки):
- Мониторинг и предотвращение длительных блокировок.
- Инструменты: Deadlock Monitor, Lock Wait Analysis, Transaction Isolation.
- Влияние: снижение производительности из-за блокировок.
6. Partitioning Strategy (Стратегия партиционирования):
- Горизонтальное и вертикальное разделение больших таблиц.
- Инструменты: Range Partitioning, Hash Partitioning, Partition Pruning.
- Влияние: улучшение производительности запросов.
7. Backup Impact (Влияние резервного копирования):
- Неблокирующее резервное копирование и его влияние на производительность.
- Инструменты: Point-in-Time Recovery, Snapshot Backups, Incremental Backups.
- Влияние: замедление работы системы во время резервного копирования.
8. Statistics & Query Planning (Статистика и планирование запросов):
- Поддержание актуальности статистики для оптимизации запросов.
- Инструменты: AUTO_STATS, ANALYZE TABLE, Statistics Monitoring.
- Влияние: выбор неэффективных планов запросов и снижение производительности.
9. Replication Lag (Задержка репликации):
- Мониторинг и минимизация задержек репликации.
- Инструменты: Replication Monitor, Lag Alerts, Asynchronous Replication.
- Влияние: задержки в чтении данных и несогласованность данных.
(продолжение предыдущего поста)
1. Query Optimization (Оптимизация запросов):
- Описывает проблемы с медленными запросами и их влияние на производительность.
- Инструменты: EXPLAIN PLAN, pg_stat_statements, MySQL Slow Log.
- Влияние: от незначительных задержек до сбоев в работе системы.
2. Index Strategy (Стратегия индексирования):
- Рассматривает правильное использование индексов для часто запрашиваемых столбцов.
- Инструменты: Database Tuning Advisor, Index Usage Stats, pg_index.
- Влияние: оптимизация запросов и снижение нагрузки на CPU.
3. Connection Pooling (Пул соединений):
- Управление соединениями и их размер для предотвращения задержек.
- Инструменты: HikariCP, pgBouncer, Connection Metrics.
- Влияние: минимизация времени ожидания соединений.
4. Schema Design (Дизайн схемы):
- Нормализация данных и выбор типов данных.
- Инструменты: Schema Analyzer, Data Modeling Tools, Foreign Key Checker.
- Влияние: устранение избыточности и улучшение производительности.
5. Locking & Deadlocks (Блокировки и взаимоблокировки):
- Мониторинг и предотвращение длительных блокировок.
- Инструменты: Deadlock Monitor, Lock Wait Analysis, Transaction Isolation.
- Влияние: снижение производительности из-за блокировок.
6. Partitioning Strategy (Стратегия партиционирования):
- Горизонтальное и вертикальное разделение больших таблиц.
- Инструменты: Range Partitioning, Hash Partitioning, Partition Pruning.
- Влияние: улучшение производительности запросов.
7. Backup Impact (Влияние резервного копирования):
- Неблокирующее резервное копирование и его влияние на производительность.
- Инструменты: Point-in-Time Recovery, Snapshot Backups, Incremental Backups.
- Влияние: замедление работы системы во время резервного копирования.
8. Statistics & Query Planning (Статистика и планирование запросов):
- Поддержание актуальности статистики для оптимизации запросов.
- Инструменты: AUTO_STATS, ANALYZE TABLE, Statistics Monitoring.
- Влияние: выбор неэффективных планов запросов и снижение производительности.
9. Replication Lag (Задержка репликации):
- Мониторинг и минимизация задержек репликации.
- Инструменты: Replication Monitor, Lag Alerts, Asynchronous Replication.
- Влияние: задержки в чтении данных и несогласованность данных.
Telegram
METANIT.COM
Основные аспекты оптимизации производительности баз данных
(продолжение в следующем посте)
(продолжение в следующем посте)
❤8❤🔥1👍1🎉1🤮1
В сертифицированных Android-устройствах запретят установку приложений от незарегистрированных разработчиков
Компания Google анонсировала переход на использование на сертифицированных Android-устройствах только зарегистрированных приложений от верифицированных разработчиков. Поддержка установки приложений из сторонних каталогов и из вручную загруженных apk-пакетов будет запрещена, если они созданы разработчиками, не зарегистрировавшим пакеты в Google и не подтвердившими свои персональные данные.
В качестве причины введения ограничений называется желание усложнить распространение вредоносных приложений с использованием мошеннических схем, предлагающих загрузить и установить apk-пакет в обход каталога Google Play Store. По статистике Google через сторонние источники распространяется в 50 раз больше вредоносных программ для Android, чем фиксируется в Google Play Store.
Тестовое внедрение новой проверки начнётся в октябре 2025 года, а возможность прохождения верификации всех разработчиков приложений будет предоставлена в марте 2026 года. В сентябре 2026 года проверка станет обязательной в Бразилии, Индонезии, Сингапуре и Тайланде - любые приложения, устанавливаемые на сертифицированных устройствах в данных странах, должны быть зарегистрированы верифицированным разработчиком. В 2027 году практика запрета программ от неверифицированных разработчиков постепенно начнёт применяться и в других странах.
https://android-developers.googleblog.com/2025/08/elevating-android-security.html
#android
Компания Google анонсировала переход на использование на сертифицированных Android-устройствах только зарегистрированных приложений от верифицированных разработчиков. Поддержка установки приложений из сторонних каталогов и из вручную загруженных apk-пакетов будет запрещена, если они созданы разработчиками, не зарегистрировавшим пакеты в Google и не подтвердившими свои персональные данные.
В качестве причины введения ограничений называется желание усложнить распространение вредоносных приложений с использованием мошеннических схем, предлагающих загрузить и установить apk-пакет в обход каталога Google Play Store. По статистике Google через сторонние источники распространяется в 50 раз больше вредоносных программ для Android, чем фиксируется в Google Play Store.
Тестовое внедрение новой проверки начнётся в октябре 2025 года, а возможность прохождения верификации всех разработчиков приложений будет предоставлена в марте 2026 года. В сентябре 2026 года проверка станет обязательной в Бразилии, Индонезии, Сингапуре и Тайланде - любые приложения, устанавливаемые на сертифицированных устройствах в данных странах, должны быть зарегистрированы верифицированным разработчиком. В 2027 году практика запрета программ от неверифицированных разработчиков постепенно начнёт применяться и в других странах.
https://android-developers.googleblog.com/2025/08/elevating-android-security.html
#android
Android Developers Blog
A new layer of security for certified Android devices
Starting in 2026 and in select countries first, Android apps must be registered to a verified developer in order to be installed.
👎55🤡17👍6❤2🤔2
В руководство по языку Python добавлена новая статья про Модуль sched и выполнение действий по расписанию
https://metanit.com/python/tutorial/6.12.php
#python
https://metanit.com/python/tutorial/6.12.php
#python
👍12🤮1
Краткий совет по Linux:
Используйте команду «tree» для отображения структуры каталога и его содержимого в визуальной иерархии.
$ tree -L 2 /etc
Здесь выводится список файлов и каталогов внутри /etc на 2 уровня в глубину.
Отлично подходит для быстрого изучения макетов конфигураций.
PS. На некоторых системах утилита tree может отсутствовать по умолчанию, тогда ее можно установить через пакетный менеджер, например, через apt: sudo apt install tree
#linux
Используйте команду «tree» для отображения структуры каталога и его содержимого в визуальной иерархии.
$ tree -L 2 /etc
Здесь выводится список файлов и каталогов внутри /etc на 2 уровня в глубину.
Отлично подходит для быстрого изучения макетов конфигураций.
PS. На некоторых системах утилита tree может отсутствовать по умолчанию, тогда ее можно установить через пакетный менеджер, например, через apt: sudo apt install tree
#linux
👍21🔥8👏3
Четыре подхода в машинном обучении:
(продолжение предыдущего поста)
1. Transfer Learning (Перенос обучения):
Это метод, при котором модель, обученная на одной задаче, используется как основа для решения другой, связанной задачи.
- Используется предварительно обученная сеть, которая не обучается заново.
- Новые данные проходят через эту сеть, и результат используется для решения задачи.
2. Fine Tuning (Тонкая настройка):
Процесс дообучения предварительно обученной модели на новом наборе данных, чтобы адаптировать её к конкретной задаче.
- Предварительно обученная сеть дообучается на новых данных.
- Добавляются новые слои, которые адаптируются к конкретной задаче.
3. Multi-task Learning:
Метод, при котором одна модель обучается выполнять несколько задач одновременно, используя общие и специализированные слои.
- Общая сеть используется для решения нескольких задач одновременно.
- Для каждой задачи добавляются отдельные ветви, которые обучаются параллельно.
4. Federated Learning (Федеративное обучение):
Подход, при котором обучение модели происходит на устройствах пользователей, а не на центральном сервере, что обеспечивает конфиденциальность данных.
- Модель обучается на устройствах пользователей с использованием их приватных данных.
- Обновленные веса отправляются на сервер, где они агрегируются и возвращаются обратно для дальнейшего обучения.
(продолжение предыдущего поста)
1. Transfer Learning (Перенос обучения):
Это метод, при котором модель, обученная на одной задаче, используется как основа для решения другой, связанной задачи.
- Используется предварительно обученная сеть, которая не обучается заново.
- Новые данные проходят через эту сеть, и результат используется для решения задачи.
2. Fine Tuning (Тонкая настройка):
Процесс дообучения предварительно обученной модели на новом наборе данных, чтобы адаптировать её к конкретной задаче.
- Предварительно обученная сеть дообучается на новых данных.
- Добавляются новые слои, которые адаптируются к конкретной задаче.
3. Multi-task Learning:
Метод, при котором одна модель обучается выполнять несколько задач одновременно, используя общие и специализированные слои.
- Общая сеть используется для решения нескольких задач одновременно.
- Для каждой задачи добавляются отдельные ветви, которые обучаются параллельно.
4. Federated Learning (Федеративное обучение):
Подход, при котором обучение модели происходит на устройствах пользователей, а не на центральном сервере, что обеспечивает конфиденциальность данных.
- Модель обучается на устройствах пользователей с использованием их приватных данных.
- Обновленные веса отправляются на сервер, где они агрегируются и возвращаются обратно для дальнейшего обучения.
Telegram
METANIT.COM
Четыре подхода в машинном обучении
(продолжение в следующем посте)
(продолжение в следующем посте)
❤6🤮1
Рынок IT массово ищет специалистов по «вайб-кодингу»
Число вакансий с требованием навыка «вайб-кодинг» — программирования с помощью нейросетей — с начала 2025 года выросло на 27%. Об этом свидетельствуют данные исследования hh.ru. Медианная зарплата на таких позициях в Москве и Петербурге достигает 140 тыс. руб.
Подход, при котором разработчик формулирует задачу ИИ на естественном языке, а тот генерирует код, ускоряет работу и снижает порог входа в профессию. В «СберТехе» его называют стратегическим преимуществом для бизнеса.
Однако эксперты предупреждают о рисках: код становится более «тяжелым», уязвимым и дорогим в поддержке. Для минимизации угроз в компании возвращают обязательный код-ревью и фиксируют ответственность за проверку решений ИИ.
https://www.kommersant.ru/doc/7990356
https://www.kommersant.ru/doc/7990371
Число вакансий с требованием навыка «вайб-кодинг» — программирования с помощью нейросетей — с начала 2025 года выросло на 27%. Об этом свидетельствуют данные исследования hh.ru. Медианная зарплата на таких позициях в Москве и Петербурге достигает 140 тыс. руб.
Подход, при котором разработчик формулирует задачу ИИ на естественном языке, а тот генерирует код, ускоряет работу и снижает порог входа в профессию. В «СберТехе» его называют стратегическим преимуществом для бизнеса.
Однако эксперты предупреждают о рисках: код становится более «тяжелым», уязвимым и дорогим в поддержке. Для минимизации угроз в компании возвращают обязательный код-ревью и фиксируют ответственность за проверку решений ИИ.
https://www.kommersant.ru/doc/7990356
https://www.kommersant.ru/doc/7990371
Коммерсантъ
Рынок IT массово ищет специалистов по «вайб-кодингу»
Подробнее на сайте
🤣28🤡6👎4👍2
🤣20🤔8🤷♂7😭3🌚1
Исследователи Стэнфордского университета провели исследование на тему влияния ИИ на занятость и пришли к выводу, что ИИ затрудняет поиск работы для начинающих технических специалистов
В начале карьеры (в возрасте 22–25 лет) в профессиях, связанных с искусственным интеллектом, наблюдается снижение занятости на 13%
Сокращение занятости наблюдается в основном в тех профессиях, где ИИ, скорее всего, автоматизирует, а не дополняет человеческий труд
Напротив, занятость работников в менее подверженных воздействию ИИ областях и более опытных работников в тех же профессиях оставалась стабильной или продолжала расти.
Общие выводы исследователей о недавнем влиянии ИИ на рынок труда:
• существенное снижение занятости среди молодых работников в профессиях, наиболее подверженных влиянию ИИ, таких как разработка программного обеспечения и поддержка клиентов.
• занятость в экономике в целом продолжает расти, но рост занятости среди молодых работников стагнирует.
• занятость на начальном уровне снизилась в приложениях ИИ, автоматизирующих работу, при этом эффект для тех, кто её дополняет, был сдержанным.
• это снижение занятости сохраняется после учета влияния временных факторов, связанных с работой в компании, с относительным снижением занятости на 13% среди молодых работников в профессиях, наиболее подверженных влиянию ИИ.
• эти корректировки на рынке труда более заметны в сфере занятости, чем в сфере оплаты труда.
• эти закономерности сохраняются в профессиях, не затронутых удалённой работой, и в различных альтернативных структурах выборки.
Таким образом, генеративный ИИ уже начал оказывать значительное влияние на занятостьна начальном уровне.
Само исследование: https://digitaleconomy.stanford.edu/wp-content/uploads/2025/08/Canaries_BrynjolfssonChandarChen.pdf
В начале карьеры (в возрасте 22–25 лет) в профессиях, связанных с искусственным интеллектом, наблюдается снижение занятости на 13%
Сокращение занятости наблюдается в основном в тех профессиях, где ИИ, скорее всего, автоматизирует, а не дополняет человеческий труд
Напротив, занятость работников в менее подверженных воздействию ИИ областях и более опытных работников в тех же профессиях оставалась стабильной или продолжала расти.
Общие выводы исследователей о недавнем влиянии ИИ на рынок труда:
• существенное снижение занятости среди молодых работников в профессиях, наиболее подверженных влиянию ИИ, таких как разработка программного обеспечения и поддержка клиентов.
• занятость в экономике в целом продолжает расти, но рост занятости среди молодых работников стагнирует.
• занятость на начальном уровне снизилась в приложениях ИИ, автоматизирующих работу, при этом эффект для тех, кто её дополняет, был сдержанным.
• это снижение занятости сохраняется после учета влияния временных факторов, связанных с работой в компании, с относительным снижением занятости на 13% среди молодых работников в профессиях, наиболее подверженных влиянию ИИ.
• эти корректировки на рынке труда более заметны в сфере занятости, чем в сфере оплаты труда.
• эти закономерности сохраняются в профессиях, не затронутых удалённой работой, и в различных альтернативных структурах выборки.
Таким образом, генеративный ИИ уже начал оказывать значительное влияние на занятостьна начальном уровне.
Само исследование: https://digitaleconomy.stanford.edu/wp-content/uploads/2025/08/Canaries_BrynjolfssonChandarChen.pdf
👍7🤬4👎2😢2
Проект LLVM представил новый релиз - LLVM 21.1.0 - инструментарий, который объединяет компиляторы, оптимизаторы и генераторы кода и который используется многими системами и компиляторами.
И также вышел новая верси компилятора Clang - Clang 21, поддерживающий языки программирования C, C++ и Objective-C
Основные нововведения в Clang 21:
Для С++:
- реализована возможность использования константных выражений в ассемблерных вставках, определяемых директивой "asm":
- добавлена возможность вычисления на этапе компиляции (в контексте константного выражения) лямбда-функций
- добавлены расширенные варианты выражений "new" и "delete", поддерживающие аргумент "std::type_identity<T>", через который можно указать информацию о типе объекта, для которого выделяется или освобождается память.
- добавлена возможность использования синтаксиса "..." для указания оставшегося числа элементов последовательности.
- добавлена возможность применения структурированного связывания (structured binding) в качестве условия в операторах "if" и "switch".
- добавлены новые префиксы для восьмеричных литералов - "0o" и "0O", а также восьмеричные и шестнадцатеричные escape-последовательности "\o{...}" и "\x{...}". Поддержка восьмеричных литералов 0xxx объявлена устаревшей. Например, "0o123" и "\o{123}" вместо "0123".
- добавлен оператор "_Countof" для определения количества элементов в массиве. Также добавлен заголовочный файл stdcountof.h, определяющий вариант макроса "countof", реализованный через "_Countof".
Для Си стандарта C23:
- разрешено переопределять tag‑типы (struct, union, enum) в пределах одного блока трансляции, если повторные определения структурно эквивалентны (то же число членов, одинаковые типы и имена тегов).
- упрощено использование списков с переменным числом аргументов (variadic)
- добавлена совместимая с GCC встроенная функция "__builtin_c23_va_start()", улучшающая поведение диагностики для макроса va_start() в режиме C23.
- разрешено использовать квалификатор "restrict" для типов массивов с элементами-указателями.
Также добавлен ряд новых предупреждений и флагов компилятора. Расширены средства диагностики и статического анализа, добавлены новые проверки, связанных с диагностикой.
Улучшены бэкенды для архитектур ARM, Aarch64, AMDGPU, x86, RISC-V, LoongArch, MIPS и PowerPC. В бэкенд для RISC-V добавлена экспериментальная поддержка ассемблера для расширений Qualcomm uC, Andes и SiFive.
https://discourse.llvm.org/t/llvm-21-1-0-released/88066
И также вышел новая верси компилятора Clang - Clang 21, поддерживающий языки программирования C, C++ и Objective-C
Основные нововведения в Clang 21:
Для С++:
- реализована возможность использования константных выражений в ассемблерных вставках, определяемых директивой "asm":
- добавлена возможность вычисления на этапе компиляции (в контексте константного выражения) лямбда-функций
- добавлены расширенные варианты выражений "new" и "delete", поддерживающие аргумент "std::type_identity<T>", через который можно указать информацию о типе объекта, для которого выделяется или освобождается память.
- добавлена возможность использования синтаксиса "..." для указания оставшегося числа элементов последовательности.
- добавлена возможность применения структурированного связывания (structured binding) в качестве условия в операторах "if" и "switch".
- добавлены новые префиксы для восьмеричных литералов - "0o" и "0O", а также восьмеричные и шестнадцатеричные escape-последовательности "\o{...}" и "\x{...}". Поддержка восьмеричных литералов 0xxx объявлена устаревшей. Например, "0o123" и "\o{123}" вместо "0123".
- добавлен оператор "_Countof" для определения количества элементов в массиве. Также добавлен заголовочный файл stdcountof.h, определяющий вариант макроса "countof", реализованный через "_Countof".
Для Си стандарта C23:
- разрешено переопределять tag‑типы (struct, union, enum) в пределах одного блока трансляции, если повторные определения структурно эквивалентны (то же число членов, одинаковые типы и имена тегов).
- упрощено использование списков с переменным числом аргументов (variadic)
- добавлена совместимая с GCC встроенная функция "__builtin_c23_va_start()", улучшающая поведение диагностики для макроса va_start() в режиме C23.
- разрешено использовать квалификатор "restrict" для типов массивов с элементами-указателями.
Также добавлен ряд новых предупреждений и флагов компилятора. Расширены средства диагностики и статического анализа, добавлены новые проверки, связанных с диагностикой.
Улучшены бэкенды для архитектур ARM, Aarch64, AMDGPU, x86, RISC-V, LoongArch, MIPS и PowerPC. В бэкенд для RISC-V добавлена экспериментальная поддержка ассемблера для расширений Qualcomm uC, Andes и SiFive.
https://discourse.llvm.org/t/llvm-21-1-0-released/88066
LLVM Discussion Forums
LLVM 21.1.0 Released!
We are happy to announce that LLVM 21.1.0 is now released! This includes the main LLVM project, and its subprojects including clang, lld, libc++, and MLIR. Huge thanks to everyone that contributed, reviewed, provide support and in any other way contributed…
🔥10👍4⚡3🤮1
This media is not supported in your browser
VIEW IN TELEGRAM
Как выглядит современный вайб-кодинг: чел делает миксы параллельно с кодингом
🤮43🤡21❤7🤣6👎2🥴2👍1🤯1