Латинский тоже по кусочкам изучают. Ну, я изучал так в своей гимназии.
Сначала первое склонение, первое спряжение... Потом второе и четвёртое спряжения, второе склонение мужского рода... Третье спряжение, средний род, прилагательные первого-второго склонения... Причастие настоящего времени, имперфект, местоимения, повелительное наклонение, простенький пассивный залог. Это был пятый класс у меня. Потом уже пошли более сложные штуки (перфект, PPP, футурум, все три вида третьего склонения, четвёртое и пятое склонение, accusativus cum infinitivo, nominativus cum infinitivo, ablativus absolutus, функции падежей, конъюнктив, плюсквамперфект, сложные предложения).
Отличная работа! После работы над PPSSPP было интересно прикинуть, как там живут в параллельных мирах другие эмуляторы. Кстати, рад, что воспользовались ImHex, я дофига сил отдал, чтобы он стал более-менее стабильным.
О, упомянули PPSSPP! Первый "баг" оттуда. В кавычках, т.к. при отсутствии памяти уже течь нечему)) На практике у нас это не происходит, но я это отдельно спрошу у hrydgard-а, не стоит ли починить. Кстати, вот цитата из статьи про PPSSPP:
В этой статье приведён далеко не весь список обнаруженных ошибок. Поэтому про оставшуюся их часть выйдет отдельная статья.
Надо полагать, это уже в следующем году только ждать? Поскорей бы...)
Не понимаю, о чём они. Есть же закон Яровой, который требует от провайдеров хранить полгода (или сколько там было) весь трафик своих клиентов в персональных досье. Формально всё и у них и так есть, а тут какие-то "сведения об адресах"...?
Я смотрел видео-презентацию этого TrapC, там было больше информации...
Они обещали классы завезти, с конструкторами и деструкторами. Причём слово new всё-таки есть, и означает оно там как раз создание объекта. А вот delete нет.
Гарантии отсутствия сегфолтов, утечек памяти или обращений вне границ. Никаких "garbage in => garbage out".
Скорость - не медленнее C/C++...
...однако в TrapC нет UB!
GC работает "не как в Java".
Встроенный тип "decimal". А ещё все принтфо-образные и сканфо-образные функции libc умеют работать с "%j" - JSON. В примере они суют какую-то структуру типа Point в printf по указателю, и она выводится в виде JSON.
Язык "простой": в нем нет наследования (да и нужно нам энто ваше наследование), нет шаблонов (не жили хорошо, нечего и начинать), нет перегрузок функций (горит сарай, гори и хата).
Скажите, а по новинкам C++26 вы будете статью делать? Очень люблю ваш цикл статей про современные стандарты и как там дела у компиляторов с их поддержкой (если я не ошибаюсь, в clang всё никак не завезут std::jthread и std::expected)
Тут другой вопрос возникает... А что делать с результатами анализа на PR? Блокировать мёрдж, если есть, что сказать анализатору? Да нет... Просто любоваться на 100500 предложений в кодовой базе использовать std::transform от CppCheck? Да тоже нет...
Если что, вариант прям в комментариях рядом с кодом что-то сообщать анализатору (например, глушить диагностики) не предлагать. IMO, это вредит читабельности кода.
Мне надоели туториалы в стиле решения задач первой части профильного ЕГЭ по шаблонам (из серии "если в задаче про равнобедренный треугольник есть вариант 'сумма углов 180°', то это единственный правильный ответ").
Это всё неосмысленная магия бытового уровня. "Сделай X, и всё заработает! А ещё в ТГ зайди". А если перестанет работать, жди пост, где скажут "Сделай Y, и всё заработает! А ещё в ТГ зайди" Повторять до бесконечности.
Или наконец, может, всё-таки что-нибудь содержательное будем делать? Например, хладнокровный анализ ситуации у разных провайдеров, сбор статистики... Поднятие сетевой грамотности, в конце концов... Это же Хабр, а не муравейник.
Я всё ждал, когда вы доберётесь до проекта! Очень приятная новость для меня. Я contributor, но шарю только за маленький кусочек кодовой базы, связанной с отладкой и исполнением. Ну и упоминание Patapon доставило, т.к. я его реверс-инженерю. В прошлом году я прошерстил кодовую базу с помощью CppCheck и нашёл несколько ошибок:
Потом ещё кто-то clang-tidy запускал, тоже собрали кое-какие ошибки... GermanAizek сделал очень много пул реквестов на основании статического анализа, кое-что помёрджили. Не всё. Я согласен с hrydgard-ом, что vec.push_back(TypeName(args)); читабельнее, чем vec.emplace_back(args));, т.к. в случае с эплейсом ещё надо вспомнить, какого типа объекты хранятся в векторе и какая сигнатура у конструктора. Когда пушбэк с явным упоминанием типа, IDE подсказывает нам всё. Ну и CE читабельнее тоже будут, а не "при попытке инстанцировать метод vector<T>::emplace_back от ваших аргументов где-то в глубинах вектора случился статик ассерт" или что-то подобное.
А где тут сложносочинённое предложение? Я тут вижу две однородные придаточные части сложноподчинённого предложения (союз "чтобы"), соединённые союзом "да". Запятая НЕ ставится.
Маркетплейсы, консорциумы, инвесторов и доли пролистал глазами, а на единственный мой содержательный вопрос ответа не нашёл... Что же это за единый QR-код такой? Ничего в статье не написано, поэтому общее впечатление: "бизнесмены переизобретают QR-код за большие деньги".
А что значит "тортную"?
Латинский тоже по кусочкам изучают. Ну, я изучал так в своей гимназии.
Сначала первое склонение, первое спряжение... Потом второе и четвёртое спряжения, второе склонение мужского рода... Третье спряжение, средний род, прилагательные первого-второго склонения... Причастие настоящего времени, имперфект, местоимения, повелительное наклонение, простенький пассивный залог. Это был пятый класс у меня. Потом уже пошли более сложные штуки (перфект, PPP, футурум, все три вида третьего склонения, четвёртое и пятое склонение, accusativus cum infinitivo, nominativus cum infinitivo, ablativus absolutus, функции падежей, конъюнктив, плюсквамперфект, сложные предложения).
Вот так к концу 8 класса всё и изучил.
Отличная работа! После работы над PPSSPP было интересно прикинуть, как там живут в параллельных мирах другие эмуляторы. Кстати, рад, что воспользовались ImHex, я дофига сил отдал, чтобы он стал более-менее стабильным.
О, упомянули PPSSPP! Первый "баг" оттуда. В кавычках, т.к. при отсутствии памяти уже течь нечему)) На практике у нас это не происходит, но я это отдельно спрошу у hrydgard-а, не стоит ли починить. Кстати, вот цитата из статьи про PPSSPP:
В этой статье приведён далеко не весь список обнаруженных ошибок. Поэтому про оставшуюся их часть выйдет отдельная статья.
Надо полагать, это уже в следующем году только ждать? Поскорей бы...)
Не понимаю, о чём они. Есть же закон Яровой, который требует от провайдеров хранить полгода (или сколько там было) весь трафик своих клиентов в персональных досье. Формально всё и у них и так есть, а тут какие-то "сведения об адресах"...?
Я смотрел видео-презентацию этого TrapC, там было больше информации...
Они обещали классы завезти, с конструкторами и деструкторами. Причём слово new всё-таки есть, и означает оно там как раз создание объекта. А вот delete нет.
Гарантии отсутствия сегфолтов, утечек памяти или обращений вне границ. Никаких "garbage in => garbage out".
Скорость - не медленнее C/C++...
...однако в TrapC нет UB!
GC работает "не как в Java".
Встроенный тип "decimal". А ещё все принтфо-образные и сканфо-образные функции libc умеют работать с "%j" - JSON. В примере они суют какую-то структуру типа Point в printf по указателю, и она выводится в виде JSON.
Язык "простой": в нем нет наследования (да и нужно нам энто ваше наследование), нет шаблонов (не жили хорошо, нечего и начинать), нет перегрузок функций (горит сарай, гори и хата).
Одним словом, убийца C++! /s
А что кривого в MinGW? По мне так это единственный способ что-то кроссплатформенное пилить.
Скажите, а по новинкам C++26 вы будете статью делать? Очень люблю ваш цикл статей про современные стандарты и как там дела у компиляторов с их поддержкой (если я не ошибаюсь, в clang всё никак не завезут std::jthread и std::expected)
Про вычисление корня из функции Эйлера ничего не сказали и в коде тоже не реализовали(
В остальном хорошая статья!
А я-то целую статью создал, чтобы мне комментировать дали! Наверное, что-то не так делал, если то, что Вы говорите, правда (про read&comment).
Тут другой вопрос возникает... А что делать с результатами анализа на PR? Блокировать мёрдж, если есть, что сказать анализатору? Да нет... Просто любоваться на 100500 предложений в кодовой базе использовать std::transform от CppCheck? Да тоже нет...
Если что, вариант прям в комментариях рядом с кодом что-то сообщать анализатору (например, глушить диагностики) не предлагать. IMO, это вредит читабельности кода.
Мне надоели туториалы в стиле решения задач первой части профильного ЕГЭ по шаблонам (из серии "если в задаче про равнобедренный треугольник есть вариант 'сумма углов 180°', то это единственный правильный ответ").
Это всё неосмысленная магия бытового уровня. "Сделай X, и всё заработает! А ещё в ТГ зайди". А если перестанет работать, жди пост, где скажут "Сделай Y, и всё заработает! А ещё в ТГ зайди" Повторять до бесконечности.
Или наконец, может, всё-таки что-нибудь содержательное будем делать? Например, хладнокровный анализ ситуации у разных провайдеров, сбор статистики... Поднятие сетевой грамотности, в конце концов... Это же Хабр, а не муравейник.
Я всё ждал, когда вы доберётесь до проекта! Очень приятная новость для меня. Я contributor, но шарю только за маленький кусочек кодовой базы, связанной с отладкой и исполнением. Ну и упоминание Patapon доставило, т.к. я его реверс-инженерю. В прошлом году я прошерстил кодовую базу с помощью CppCheck и нашёл несколько ошибок:
https://github.com/hrydgard/ppsspp/commit/dae758e5f45ddd576c5e7abef025e54834ab3777
Потом ещё кто-то clang-tidy запускал, тоже собрали кое-какие ошибки... GermanAizek сделал очень много пул реквестов на основании статического анализа, кое-что помёрджили. Не всё. Я согласен с hrydgard-ом, что
vec.push_back(TypeName(args));читабельнее, чемvec.emplace_back(args));, т.к. в случае с эплейсом ещё надо вспомнить, какого типа объекты хранятся в векторе и какая сигнатура у конструктора. Когда пушбэк с явным упоминанием типа, IDE подсказывает нам всё. Ну и CE читабельнее тоже будут, а не "при попытке инстанцировать метод vector<T>::emplace_back от ваших аргументов где-то в глубинах вектора случился статик ассерт" или что-то подобное.Очень жду продолжения!
Хорошая гипотеза. Как проверять будем?
По айпи рубанут? Пока что на каждую эвристику ТСПУ подбирается контрпример.
Войсы идут через UDP, верно? А как его блокируют? Тут нет SNI.
Вечер перестаёт быть томным... Дискорд просто заблокировали.
Улыбнуло "определение" множества через якобы более простой термин "коллекция". Это ж без определения идёт обычно.)
А где тут сложносочинённое предложение? Я тут вижу две однородные придаточные части сложноподчинённого предложения (союз "чтобы"), соединённые союзом "да". Запятая НЕ ставится.
Маркетплейсы, консорциумы, инвесторов и доли пролистал глазами, а на единственный мой содержательный вопрос ответа не нашёл... Что же это за единый QR-код такой? Ничего в статье не написано, поэтому общее впечатление: "бизнесмены переизобретают QR-код за большие деньги".