LINUX.ORG.RU

Сообщения fsb4000

 

clang 19.1 удалил поддержку 3dnow.

Сабж: https://www.phoronix.com/news/LLVM-Ends-AMD-3DNow

Не знал, где написать, тут или Talks. Решил тут.

Так что если у кого остались Athlon до Athlon XP, то тогда использовать используйте gcc или clang 18.

Скрин максимального процессора Athlon без SSE: http://valid.x86.fr/cache/screenshot/69hccl.png

Если кто-то никогда не видел как выглядит 3dnow,и кому интересно, вот пример функции вычисления векторного произведения.

https://gcc.godbolt.org/z/91vf1Whrx

struct Vector3 {
    float x;
    float y;
    float z;
};
// Наивная версия векторного произведения
Vector3 naiveCrossProduct(const Vector3& a, const Vector3& b) {
    Vector3 result;
    result.x = a.y * b.z - a.z * b.y;
    result.y = a.z * b.x - a.x * b.z;
    result.z = a.x * b.y - a.y * b.x;
    return result;
}

и 3dnow

Vector3 threeDNowCrossProduct(const Vector3& a, const Vector3& b) {
    Vector3 result;

    __m64 va = _m_from_int(*(int*)&a.x); // a.x | 0
    __m64 vb = _m_from_int(*(int*)&a.y); // a.y | 0
    __m64 vc = _m_from_int(*(int*)&b.y); // b.y | 0
    __m64 vd = _m_from_int(*(int*)&b.x); // b.x | 0

    __m64 temp1 = _m_pfmul(va, vc);         // a.x*b.y | 0
    __m64 temp2 = _m_pfmul(vb, vd);         // a.y*b.x | 0
    __m64 result2 = _m_pfsub(temp1, temp2); // a.x*b.y-a.y*b.x | 0
    memcpy(&result.z, &result2, sizeof(float));

    temp1 = _m_from_int(*(int*)&a.z);  // a.z | 0
    temp2 = _m_from_int(*(int*)&b.z);  // b.z | 0
    result2 = va;                      // a.x | 0
    va = _m_punpckldq(vb, temp1);      // a.y | a.z
    vb = _m_punpckldq(temp1, result2); // a.z | a.x
    temp1 = vc;                        // b.y | 0
    vc = _m_punpckldq(temp2, vd);      // b.z | b.x
    vd = _m_punpckldq(temp1, temp2);   // b.y | b.z

    temp1 = _m_pfmul(va, vc);                // a.y*b.z | a.z*b.x
    temp2 = _m_pfmul(vb, vd);                // a.z*b.y | a.x*b.z
    __m64 result1 = _m_pfsub(temp1, temp2);  // a.y*b.z-a.z*b.y | a.z*b.x-a.x*b.z
    memcpy(&result.x, &result1, sizeof(result1));
    
    _m_femms(); // Завершение работы с MMX/3dnow

    return result;
}

 ,

fsb4000
()

Вышла новая версия clang: clang 18

На phoronix есть новость с описанием: https://www.phoronix.com/news/LLVM-Clang-18.1-Released

 , ,

fsb4000
()

CMake наконец-то поддерживает модули во всех компиляторах С++

https://gitlab.kitware.com/cmake/cmake/-/issues/18355

5 лет и эта issue закрыта!

обсуждение и где я увидел эту новость:

https://www.reddit.com/r/cpp/comments/16y9qv2/cmake_c_modules_support_in_328/?share_id=zmiaFsJ_WEOoKPFD4IT-Q&utm_content=1&utm_medium=android_app&utm_name=androidcss&utm_source=share&utm_term=13

After 5 years its finally done. Next cmake 3.28 release will support cpp modules

C++ 20 named modules are now supported by Ninja Generators and Visual Studio Generators for VS 2022 and newer, in combination with the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang 16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and newer.

 ,

fsb4000
()

АСТРА готовит IPO

https://astralinux.ru/about/press-center/news/odin-iz-liderov-rossiyskogo-it-rynka-i-vedushchiy-proizvoditel-zashchishchennogo-infrastrukturnogo-p/

5% акций разместят на бирже.

Обещают 50% чистой прибыли пускать на дивиденды

13 октября начнутся торги.

Так что можете стать совладельцами Астра Линукса :)

 ,

fsb4000
()

С++ standard library модули будут доступны в С++20

Разработчики трёх основных компиляторов будут поддерживать модули стандартной библиотеки начиная с С++20, а не с С++23.

Что должно ускорить внедрение модулей в реальную жизнь так как больше проектов на С++20 чем на С++23.

https://github.com/microsoft/STL/issues/3945

 

fsb4000
()

gcc 13.1 released

 

fsb4000
()

Rust - русский язык программирования?

Сегодня случайно открыл страницу контрибуторов Rust: https://github.com/rust-lang/rust/graphs/contributors

И увидел что первое место у Алексея Кладова.

Я раньше его курсы на youtube видел:

https://www.youtube.com/playlist?list=PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e

https://www.youtube.com/playlist?list=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku

Прикольно. Решил поделиться с лоровцами.

 ,

fsb4000
()

Уязвимости OpenSSL

https://www.opennet.ru/opennews/art.shtml?num=58622

8 новых уязвимостей устранили.

Судя по их пайплайну, они пользуются санитайзерами, но это не помогло не допустить уязвимости :(

https://github.com/openssl/openssl/actions/runs/4124496105

 ,

fsb4000
()

бесплатный курс от Yandex

Увидел рекламу https://practicum.yandex.ru/ycloud/

Курс «Инженер облачных сервисов»

Вы научитесь применять управляемые базы данных и контейнеры, изучите принципы построения отказоустойчивого сервиса, попробуете Serverless разработку. Обещаем, будет много практики в облаке.

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

 , , ,

fsb4000
()

Создатели Astra Linux купили российского разработчика СУБД на базе PostrgreSQL Tantor Labs

 ,

fsb4000
()

Вышла Qt 6.4

 

fsb4000
()

С++ Standard Library Modules

Появился PR реализующий P2465R3 Standard Library Modules std And std.compat: https://github.com/microsoft/STL/pull/3108

@hobbit @dimgel

Возможно вам будет интересно посмотреть как там сделано, чтобы поддерживались и предыдущие стандарты с хедерами и модули совместно.

 

fsb4000
()

Конкурс от avito

Увидел ссылку, решил поделиться.

Сам не начинал, так что не знаю что там за задания.

https://avito-park.geecko.com/

 , ,

fsb4000
()

Присоединился к LLVM

Захотелось поделиться, видимо для этого и существует тег жж.

Пока Google начал создавать Carbon, и вероятно меньше ресурсов будет тратить на clang/libc++ я решил присоединиться к LLVM libc++ и показать силу OpenSource сообщества 💪

Я буду делать CTRL-C CTRL-V в свободное время пока в таблице cppreference Microsoft STL и LLVM libc++ не сравняются по зеленым квадратикам 😜

Уже добавил реализацию одной С++ фичи: P2499R0

Оригинальный PR: https://github.com/microsoft/STL/pull/2947

Мой патч: https://reviews.llvm.org/D130785

 libc++, ,

fsb4000
()

Даже Линус Торвальдс пользуется Apple

Линус упомянул, что использовал для формирования релиза ноутбук Apple на базе архитектуры ARM64 (Apple Silicon) с Linux-окружением на базе дистрибутива Asahi Linux. Это не основная рабочая станция Линуса, но он использовал данную платформу, чтобы проверить её пригодность для работы над ядром и быть уверенным в том, что сможет формировать выпуски ядра в поездке, имея под рукой лёгкий ноутбук.

https://www.opennet.ru/opennews/art.shtml?num=57449

 , , ,

fsb4000
()

Произошло очередное заседание комитета C++

25 июля произошло пленарное заседание комитета С++.

Были приняты последние возможности которые войдут в С++23.

Последующие заседания по С++23 будут лишь уточнять формулировки и готовить стандарт к сертификации ISO.

На cppreference уже обновили табличку: https://en.cppreference.com/w/cpp/23

Как вам новые добавленные возможности и что ждёте больше всего?

 

fsb4000
()

#embed принят в C23

https://thephd.dev/finally-embed-in-c23

Truly, a struggle.

It’s deeply depressing and ultimately a great source of burnout being at the grindstone for 4 years for things people were casually discussing about in September of 1995 (and earlier). It’s almost as depressing as putting typeof in the C Standard and then realizing this was something they’d been discussing doing since after C89 (1989). Am I destined to just keep closing the loop on old, unrealized dreams because a bunch of people were too tired/scared/busy/combative to standardize what has literally been decades of existing practice?

It was hard to realize how tired I was of this kind of grind until the day the feature was put into the C Standard, this past Tuesday. I quite literally could not even muster a “yes!” after the vote finished. I just felt empty and numb, because quite literally dragging an entire community of implementers through several hurdles, to finally get them to acknowledge the existence of a problem and its solution, is just… soul-crushing. It is a level of effort that I recommend to nobody in any sphere of life, for any task. At least when you are on the ground and organizing and helping people, you’re providing some kind of material value. Water. Food. Improving something. Here? I’m talking about things that are quite literally older than I am. Just trying to bring ideas from the last 3 decades - things you would think were Table Stakes for foundational languages like C and C++ languages - would not be seen as a radical new paradigm or shift in the language. Nevertheless, I spent (burned?) that energy, and finally.

It was all worth it.

Or. That’s what I keep telling myself. Because it doesn’t feel like it was worth it. It feels like I wasted a lot of my life achieving something so ridiculously basic that it’s almost laughable. How utterly worthless I must consider myself, that hearing someone complain about putting data in C++ 5 years ago put me on the track to decide to try to put something in a programming language standard. That I had to fight this hard for table scraps off the Great C Standard’s table.

What a life, huh?

вот на мой взгляд основное в той статье, человек пишет как ему сложно было добавить фичу в стандарт

 ,

fsb4000
()

Почему люди не хотят выполнять несколько обязанностей на одной позиции?

Читал рассказ одного человека: https://pikabu.ru/story/otvet_na_post_uvolilsya_9283280

для Ъ: Там человек работал сис. админом, его попросили сделать сайт, он сделал за отдельную плату, потом попросили поддерживать его, он попросил дополнительных денег, ему не дали, он уволился.

Подобные рассказы не редки. И мне не очень понятны, хотя в комментариях обычно люди поддерживают все подобные возмущения.

Но какая разница сколько на вас обязанностей? Ведь вы работаете на благо компании 8 часов в день, и у вас есть круг ваших компетенций в которых вы наиболее продуктивны, и другие, которые вы можете делать, но хуже. Руководителям это известно и они готовы на это пойти так как появилась приоритетная задача, а отдельного человека для этой задачи нет. В чём проблема?

 

fsb4000
()

C++ UB: vector<bool>

Забавный С++

#include <vector>

template <typename T>
constexpr auto f(const T &value) {
    std::vector<T> vec(1, value);
    return vec[0];
}

static_assert(f(true));

Видел небольшую дискуссию начавшуюся с сообщения пользователе о баге в компиляторе, что он не может скомпилировать этот код. Но на самом деле в коде UB и компилятор прав.

А вы видите в этом коде UB?

 ,

fsb4000
()

Рекламщики не любят Java разработчиков?

https://imgur.com/a/1D1b2gy

Как думаете под чем были создатели такой рекламы?

 

fsb4000
()

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