C++
There is a need for more organized, open system with standard proposals
Once again there is a question "Does anyone know what is the status of XXX proposal?" posted on this subreddit. Myself, I had such a question about different proposals many times, and always found it hard to answer. The information seems to be all over the place - reddit posts, meeting reports, mailing lists... I think there is a dire need for system, where one can find all ongoing / closed proposals with their statuses, current revisions, and links to all the previous revisions. One could argue, that papers on https://www.open-std.org/ have all the information, but it is impossible to: - find the newest revision of given paper, - search for any particular paper, without knowing the year it was published, - filt...
Read full post
There is a need for more organized, open system with standard proposals
Once again there is a question "Does anyone know what is the status of XXX proposal?" posted on this subreddit. Myself, I had such a question about different proposals many times, and always found it hard to answer. The information seems to be all over the place - reddit posts, meeting reports, mailing lists... I think there is a dire need for system, where one can find all ongoing / closed proposals with their statuses, current revisions, and links to all the previous revisions. One could argue, that papers on https://www.open-std.org/ have all the information, but it is impossible to: - find the newest revision of given paper, - search for any particular paper, without knowing the year it was published, - filt...
Read full post
reddit
There is a need for more organized, open system with standard...
Once again there is a question "Does anyone know what is the status of XXX proposal?" posted on this subreddit. Myself, I had such a question...
C++
Other than generators, what do coroutines solve better?
I posted to cpp_questions and got answers about what coroutines do: split a thread’s execution from its state. But I still don’t understand when they are the right tool. I wrote a chess engine. I have an alpha-beta pruned minimax tree. I don’t need a full list of child nodes (chess moves) at every depth (board), only a few up to an alpha-beta cutoff. Generators solve this problem elegantly. I’m struggling to come up with any other situations where coroutines are the right tool. When is polling, std::async, a thread-pool, a functor, or a thread-safe container a not a more performant or simple option? In other words, co_yield is great. But why co_await? submitted by /u/XiPingTing
...
Read full post
Other than generators, what do coroutines solve better?
I posted to cpp_questions and got answers about what coroutines do: split a thread’s execution from its state. But I still don’t understand when they are the right tool. I wrote a chess engine. I have an alpha-beta pruned minimax tree. I don’t need a full list of child nodes (chess moves) at every depth (board), only a few up to an alpha-beta cutoff. Generators solve this problem elegantly. I’m struggling to come up with any other situations where coroutines are the right tool. When is polling, std::async, a thread-pool, a functor, or a thread-safe container a not a more performant or simple option? In other words, co_yield is great. But why co_await? submitted by /u/XiPingTing
...
Read full post
reddit
Other than generators, what do coroutines solve better?
I posted to cpp_questions and got answers about what coroutines do: split a thread’s *execution* from its *state*. But I still don’t understand...
Standard C++ (Twitter)
More Convenience Functions for Containers with C++20--Rainer Grimm bit.ly/3nqY7ML #cpp
More Convenience Functions for Containers with C++20--Rainer Grimm bit.ly/3nqY7ML #cpp
CppCon (Youtube)
Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
SIMD capabilities are virtually ubiquitous in modern computing hardware, and yet much of that computing capacity often goes unused. This talk will provide a high-level overview of the SSE, AVX, and AVX-512 instruction set architecture provided by Intel microprocessors, and provide some specific examples of real-world problems where additional performance can be gained by thinking "vertically".
We'll begin with a quick, high-level description of the features provided by the SSE, AVX, and AVX-512 instruction sets. We'll then use C++ to compose a simple API employing various compiler intrinsics implementing those instruction sets. At the lowest level, the API will wrap some primitive operations, and then build some very useful ...
Read full post
Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
SIMD capabilities are virtually ubiquitous in modern computing hardware, and yet much of that computing capacity often goes unused. This talk will provide a high-level overview of the SSE, AVX, and AVX-512 instruction set architecture provided by Intel microprocessors, and provide some specific examples of real-world problems where additional performance can be gained by thinking "vertically".
We'll begin with a quick, high-level description of the features provided by the SSE, AVX, and AVX-512 instruction sets. We'll then use C++ to compose a simple API employing various compiler intrinsics implementing those instruction sets. At the lowest level, the API will wrap some primitive operations, and then build some very useful ...
Read full post
CppCon (Youtube)
Adventures in SIMD-Thinking (part 2 of 2) - Bob Steagall - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
SIMD capabilities are virtually ubiquitous in modern computing hardware, and yet much of that computing capacity often goes unused. This talk will provide a high-level overview of the SSE, AVX, and AVX-512 instruction set architecture provided by Intel microprocessors, and provide some specific examples of real-world problems where additional performance can be gained by thinking "vertically".
We'll begin with a quick, high-level description of the features provided by the SSE, AVX, and AVX-512 instruction sets. We'll then use C++ to compose a simple API employing various compiler intrinsics implementing those instruction sets. At the lowest level, the API will wrap some primitive operations, and then build some very useful ...
Read full post
Adventures in SIMD-Thinking (part 2 of 2) - Bob Steagall - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
SIMD capabilities are virtually ubiquitous in modern computing hardware, and yet much of that computing capacity often goes unused. This talk will provide a high-level overview of the SSE, AVX, and AVX-512 instruction set architecture provided by Intel microprocessors, and provide some specific examples of real-world problems where additional performance can be gained by thinking "vertically".
We'll begin with a quick, high-level description of the features provided by the SSE, AVX, and AVX-512 instruction sets. We'll then use C++ to compose a simple API employing various compiler intrinsics implementing those instruction sets. At the lowest level, the API will wrap some primitive operations, and then build some very useful ...
Read full post
CppCon (Youtube)
Functional Error and Optional-value Handling with STX - Basit Ayantunde - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
Error-handling is arguably the most divergent part of C++. Many coding guidelines partially allow exceptions or totally ban it and this leads to many projects supporting multiple error-handling interfaces such as exceptions, the error-prone c-style error-handling, and/or custom error-handling types. This also leads many C++ developers to not use exceptions and instead roll their in-house error and optional-value handling facilities which are duplicated across the ecosystem.
This divergence has birthed numerous projects like boost.expected, boost.outcome, boost.leaf, tl::optional, tl::expected, and many others that have done a great job at addressing these issues.
This talk introduces STX; a C++ library that t...
Read full post
Functional Error and Optional-value Handling with STX - Basit Ayantunde - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
Error-handling is arguably the most divergent part of C++. Many coding guidelines partially allow exceptions or totally ban it and this leads to many projects supporting multiple error-handling interfaces such as exceptions, the error-prone c-style error-handling, and/or custom error-handling types. This also leads many C++ developers to not use exceptions and instead roll their in-house error and optional-value handling facilities which are duplicated across the ecosystem.
This divergence has birthed numerous projects like boost.expected, boost.outcome, boost.leaf, tl::optional, tl::expected, and many others that have done a great job at addressing these issues.
This talk introduces STX; a C++ library that t...
Read full post
CppCon (Youtube)
Fuzzing Class Interfaces for Generating and Running Tests with libFuzzer - Barnabás Bágyi - CppCon
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
Although various frameworks support the writing of unit tests, creating a well designed effective unit test suite is still a non-trivial manual work. In this presentation we show how fuzzing can be used to automatically generate and run test cases based only on the class' interface.
Imagine you want test a container like the std::deque, essentially a vector of fix sized buffers with push/pop operations at both ends. You write tests for the empty container, then for push_back, but then how to continue? Write test for push_back then pop_back or push_back then pop_front and then push_front etc... We see that there is an explosion of the number of possible test cases with regarding all the interface o...
Read full post
Fuzzing Class Interfaces for Generating and Running Tests with libFuzzer - Barnabás Bágyi - CppCon
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
Although various frameworks support the writing of unit tests, creating a well designed effective unit test suite is still a non-trivial manual work. In this presentation we show how fuzzing can be used to automatically generate and run test cases based only on the class' interface.
Imagine you want test a container like the std::deque, essentially a vector of fix sized buffers with push/pop operations at both ends. You write tests for the empty container, then for push_back, but then how to continue? Write test for push_back then pop_back or push_back then pop_front and then push_front etc... We see that there is an explosion of the number of possible test cases with regarding all the interface o...
Read full post
CppCon (Youtube)
Introducing Microsoft’s New Open Source Fuzzing Platform - Michael Walker & Justin Campbell - CppCon
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
This native code security talk is a joint presentation by Principals from Windows Security (COSINE) and Microsoft Research. The work by Google and other contributors to the llvm ecosystem on libfuzzer, ASan, and sancov have “shifted left” the field of fuzz testing from the hands of hackers and security auditors directly to CI/CD developers. Rather than waiting for an auditing gate, developers should be able to receive fuzz testing results directly from their build system: quickly, cheaply, and reliably without false positives. To this end, Microsoft is adopting this testing paradigm via continuous cloud-based fuzzing of dedicated test binaries.
Microsoft is currently fuzzing Windows continuously...
Read full post
Introducing Microsoft’s New Open Source Fuzzing Platform - Michael Walker & Justin Campbell - CppCon
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
This native code security talk is a joint presentation by Principals from Windows Security (COSINE) and Microsoft Research. The work by Google and other contributors to the llvm ecosystem on libfuzzer, ASan, and sancov have “shifted left” the field of fuzz testing from the hands of hackers and security auditors directly to CI/CD developers. Rather than waiting for an auditing gate, developers should be able to receive fuzz testing results directly from their build system: quickly, cheaply, and reliably without false positives. To this end, Microsoft is adopting this testing paradigm via continuous cloud-based fuzzing of dedicated test binaries.
Microsoft is currently fuzzing Windows continuously...
Read full post
C++
Searching for a person for exchanges
At the moment I am learning C++ (my first programming language) and I am looking for someone with whom I can exchange ideas about this and could possibly program together! :D submitted by /u/Mahlnycdir
[link] [comments]
Searching for a person for exchanges
At the moment I am learning C++ (my first programming language) and I am looking for someone with whom I can exchange ideas about this and could possibly program together! :D submitted by /u/Mahlnycdir
[link] [comments]
C++ – Типизированный язык программирования
Под капотом сортировок в STL
Стандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алгоритмы и структуры данных имели ввиду авторы стандарта, указывая ограничения для той или иной сортировки и для некоторых других алгоритмов. А так же как эти алгоритмы реализованы на практике.
При написании статьи я использовал стандарт C++17. В качестве реализаций рассматривал GCC 10.1.0 (май 2020) и LLVM/Clang 10.0.0 (март 2020). В каждой и них есть своя реализация STL, а значит и std алгоритмов. Читать дальше →
Под капотом сортировок в STL
Стандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алгоритмы и структуры данных имели ввиду авторы стандарта, указывая ограничения для той или иной сортировки и для некоторых других алгоритмов. А так же как эти алгоритмы реализованы на практике.
При написании статьи я использовал стандарт C++17. В качестве реализаций рассматривал GCC 10.1.0 (май 2020) и LLVM/Clang 10.0.0 (март 2020). В каждой и них есть своя реализация STL, а значит и std алгоритмов. Читать дальше →
C++ – Типизированный язык программирования
[Перевод] Тридцать лет С++. Интервью с Бьерном Страуструпом
Ранее мы делали материал про использование C и C++ в Data Science. А сегодня мы хотим поделиться с вами интервью с автором C++ Бьерном Страуструпом. Далее в посте вас ждет рассказ о профессиональном пути Бьерна, деталях создания собственного языка программирования и извлеченные им из этого уроки.
Приятного чтения!
[Перевод] Тридцать лет С++. Интервью с Бьерном Страуструпом
Ранее мы делали материал про использование C и C++ в Data Science. А сегодня мы хотим поделиться с вами интервью с автором C++ Бьерном Страуструпом. Далее в посте вас ждет рассказ о профессиональном пути Бьерна, деталях создания собственного языка программирования и извлеченные им из этого уроки.
Приятного чтения!
CppCon (Youtube)
A New Decade of Visual Studio: C++20, Open STL, and More - Marian Luparu & Sy Brand - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
As C++20 brings new features for C++ programmers at all levels of experience, so does our last year of work on Visual Studio and MSVC. New versions of the IDE have brought new productivity features and experience improvements for all developers, no matter what platforms they are targeting. Our open source standard library has seen contributions from across the C++ ecosystem, improving in conformance and performance. We've been hard at work on key C++20 compiler features like Concepts. We're also working on bold new ways of working on C++ projects with cloud environments.
Come along to hear about all of these as well as announcements about the future of our tools.
---
Marian Luparu
Microsoft
Princi...
Read full post
A New Decade of Visual Studio: C++20, Open STL, and More - Marian Luparu & Sy Brand - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
As C++20 brings new features for C++ programmers at all levels of experience, so does our last year of work on Visual Studio and MSVC. New versions of the IDE have brought new productivity features and experience improvements for all developers, no matter what platforms they are targeting. Our open source standard library has seen contributions from across the C++ ecosystem, improving in conformance and performance. We've been hard at work on key C++20 compiler features like Concepts. We're also working on bold new ways of working on C++ projects with cloud environments.
Come along to hear about all of these as well as announcements about the future of our tools.
---
Marian Luparu
Microsoft
Princi...
Read full post
CppCon (Youtube)
Some Things C++ Does Right - Patrice Roy - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
People often complain about C++: to some, it's not memory-safe enough, not type-safe enough. Some will tell you that some (or all!) of its defaults are wrong. Many complain that it's too expert-friendly.
There's often a grain of truth in criticism, and C++ surely has a bit of each of these alleged warts; it's a language that has history, obviously, and that has evolved organically over the years, and it has the imperfections we can expect for a tool used by millions to perform high-performance or safety- critical tasks in various application domains.
However, there are a significant number of things C++ does right, and there are a number of reasons why we love this language... and love it so much that we gather together to trade ideas, lea...
Read full post
Some Things C++ Does Right - Patrice Roy - CppCon 2020
https://cppcon.org/
https://github.com/CppCon/CppCon2020
---
People often complain about C++: to some, it's not memory-safe enough, not type-safe enough. Some will tell you that some (or all!) of its defaults are wrong. Many complain that it's too expert-friendly.
There's often a grain of truth in criticism, and C++ surely has a bit of each of these alleged warts; it's a language that has history, obviously, and that has evolved organically over the years, and it has the imperfections we can expect for a tool used by millions to perform high-performance or safety- critical tasks in various application domains.
However, there are a significant number of things C++ does right, and there are a number of reasons why we love this language... and love it so much that we gather together to trade ideas, lea...
Read full post