Надо бы добавить мой strlen во «Флиппер»
Можно подумать, что я забросил возню с «Флиппером», так как какое-то время писал об этом часто, а сейчас поутих. На самом деле я всё жду, когда разработчики прошивки вмержат мой коммит для поддержки Юникода, плюс потихоньку вожусь со своей векторной реализацией функции для определения длины строки в кодировке UTF-8.
До недавнего времени я её надеялся ускорить, поэтому пытался вносить какие-то мелкие улучшения, но все они никакого эффекта не дали. Зато при аккуратном тестировании нашёл ошибку, — неправильно задал граничное условие в векторизованном куске. Хорошо, что проверил. В блоге у меня уже исправленная версия.
Будем считать, что с этим вопросом я закончил, хочу теперь попробовать добавить этот код в прошивку «Флиппера». Остались сделать два шага.
На замерах моя реализация обогнала встроенную на порядок — восемь секунд против 55 на двух миллионах итераций по небольшой строке. Но теперь надо воткнуть её в прошивку, чтобы учесть влияние реализации строкового типа FuriString, в котором будет использоваться эта функция и провести новые замеры. Надеюсь сделать это в ближайшие выходные.
Второй шаг для меня сложнее. У меня уже есть выписанная прошивка «Флиппера», в которой торчит непринятый коммит. Я никогда раньше не создавал на «Гитхабе» два разных запроса в рамках одного чужого проекта, не знаю как это делается. Если кто-то умеет, расскажите в комментариях.
Для второго шага. Создай у себя ветку fast-strlen, закомить изменения туда и сделай PR из bolknote/fast-strlen вместо bolknote/dev.
О, спасибо!
Если изменения независимые, нужно сделать другую ветку от оригинальной и сделать независимый пр, чтобы ревьюить и мержить их можно было бы по-отдельности и в любом порядке. Если код зависим от предыдущего пр, то я предпочитаю ждать мержа первого. При этом в обсуждении мерджа первого можно указать, мол, вот тут кще изменения и улучшения, которые зависят, давайте поглядим этот пжалста.
Не, код изолирован один от другого, они независимые. Первая часть — поддержка Юникода, вот эта — ускорение конкретной функции.
Меня смущает, что в оригинальную-то ветку я свой коммит уже влил. Надо до точки вливания другую ветку создать что ли?
В оригинальную в своём форке? Да, тогда отдельную ветку перед этим.
Ну смотри, в моём форке в ветке dev (это ветка, где идёт разработка прошивки для «Флиппера») вмержена парочка моих коммитов. Получается мне надо найти самую позднюю точку без моих коммитов, сделать от неё ветку и сунуть мой новый коммит туда, верно?
Ага. Иногда проще для каждой фичи делать отдельную ветку, которую мержить, когда ревью пройден.
Да я что-то не подумал, что могу начать пилить другую фичу, ещё не закончив предыдущую.