#prog #rust #amazingopensource
git-absorb
You have a feature branch with a few commits. Your teammate reviewed the branch and pointed out a few bugs. You have fixes for the bugs, but you don't want to shove them all into an opaque commit that says fixes, because you believe in atomic commits. Instead of manually finding commit SHAs for git commit --fixup, or running a manual interactive rebase, do this:
git absorb will automatically identify which commits are safe to modify, and which staged changes belong to each of those commits. It will then write fixup! commits for each of those changes.
With the --and-rebase flag, these fixup commits will be automatically integrated into the corresponding ones. Alternatively, you can check its output manually if you don't trust it, and then fold the fixups into your feature branch with git's built-in autosquash functionality:
Является портом аналогичной вещи для Mercurial: hg-absorb
git-absorb
You have a feature branch with a few commits. Your teammate reviewed the branch and pointed out a few bugs. You have fixes for the bugs, but you don't want to shove them all into an opaque commit that says fixes, because you believe in atomic commits. Instead of manually finding commit SHAs for git commit --fixup, or running a manual interactive rebase, do this:
git add $FILES_YOU_FIXED
git absorb --and-rebase
git absorb will automatically identify which commits are safe to modify, and which staged changes belong to each of those commits. It will then write fixup! commits for each of those changes.
With the --and-rebase flag, these fixup commits will be automatically integrated into the corresponding ones. Alternatively, you can check its output manually if you don't trust it, and then fold the fixups into your feature branch with git's built-in autosquash functionality:
git add $FILES_YOU_FIXED
git absorb
git log # check the auto-generated fixup commits
git rebase -i --autosquash master
Является портом аналогичной вещи для Mercurial: hg-absorb
GitHub
GitHub - tummychow/git-absorb: git commit --fixup, but automatic
git commit --fixup, but automatic. Contribute to tummychow/git-absorb development by creating an account on GitHub.
👍6🔥2❤1🤔1
Forwarded from Kotarium NSFW 🇺🇦 (Rony M. Hope)
This media is not supported in your browser
VIEW IN TELEGRAM
🤬7😭5😁2
В комментариях под этим постом я распишу все преимущества Go
🤡20👍12😁9🌚8❤🔥3😱2💩2😭2👎1🤔1🖕1
Блог*
А это правда, что у меня красивые папищеки?
Папищеки, а как вы выглядите? Покажите себя!
Блог*
Папищеки, а как вы выглядите? Покажите себя!
(мемы — это, конечно, неплохо, но хотелось бы увидеть вашу реальную внешность)
🥴10😁1🤡1
#prog #rust #article
Garbage Collection Without Unsafe Code
Простой не потокобезопасный mark-and-sweep сборщик мусора с довольно простым дизайном. Естественно, не самый быстрый. С другой стороны, потенциальные проблемы с памятью тут не приводят к UB.
Что мне не очень нравится — в текущем виде страдает от ABA-проблемы, но это, как пишет автор, должно быть легко исправить.
Garbage Collection Without Unsafe Code
Простой не потокобезопасный mark-and-sweep сборщик мусора с довольно простым дизайном. Естественно, не самый быстрый. С другой стороны, потенциальные проблемы с памятью тут не приводят к UB.
Что мне не очень нравится — в текущем виде страдает от ABA-проблемы, но это, как пишет автор, должно быть легко исправить.
Fitzgen
Garbage Collection Without Unsafe Code
Many people, including myself, have implemented garbage collection (GC)libraries for Rust. Manish Goregaokar wrote up a fantastic survey of thisspace a few y...
#prog #rust #article
Wasmtime 1.0: A Look at Performance
Статья довольно старая (6 сентября 2022 года), но читать всё равно интересно. Что занятно, никакая из оптимизаций не является Rust-специфичной. С другой стороны, в каких ещё языках можно легко аллоцировать меньше памяти при помощи использования SmallVec вместо Vec?
Wasmtime 1.0: A Look at Performance
Статья довольно старая (6 сентября 2022 года), но читать всё равно интересно. Что занятно, никакая из оптимизаций не является Rust-специфичной. С другой стороны, в каких ещё языках можно легко аллоцировать меньше памяти при помощи использования SmallVec вместо Vec?
Bytecode Alliance
Wasmtime 1.0: A Look at Performance
In preparation for our upcoming release of Wasmtime 1.0 on September20, we have prepared two blog posts describing the work we have putinto the compiler and runtime recently. This first post will describeperformance-related projects: mak...
❤🔥1❤1
#prog #article
Understanding Mesh Allocator
Аллокатор, который позволяет проводить дефрагментацию выделенной памяти без смены адресов выделенных объектов за счёт манипуляции отображения виртуальной памяти на физическую.
Именно, если объекты в пределах двух страниц виртуальной памяти располагаются на неперекрывающихся местах, то можно скопировать объекты из одной соответствующей страницы физической памяти в другую, после чего исправить отображение виртуальной памяти на физическую и отдать страницу физической памяти обратно операционной системе. Собственно, это и есть операция meshing, которая и дала аллокатору имя.
Для того, чтобы повысить вероятность применимости операции meshing, аллокатор выделяет объекты в пределах одной страницы в случайных местах. На удивление, на производительности это не сказывается — авторы спекулируют, что это связано с тем, что в реальных нагрузках с более традиционными аллокаторами память и так фрагментирована.
(thanks @jemalloc)
Understanding Mesh Allocator
Аллокатор, который позволяет проводить дефрагментацию выделенной памяти без смены адресов выделенных объектов за счёт манипуляции отображения виртуальной памяти на физическую.
Именно, если объекты в пределах двух страниц виртуальной памяти располагаются на неперекрывающихся местах, то можно скопировать объекты из одной соответствующей страницы физической памяти в другую, после чего исправить отображение виртуальной памяти на физическую и отдать страницу физической памяти обратно операционной системе. Собственно, это и есть операция meshing, которая и дала аллокатору имя.
Для того, чтобы повысить вероятность применимости операции meshing, аллокатор выделяет объекты в пределах одной страницы в случайных местах. На удивление, на производительности это не сказывается — авторы спекулируют, что это связано с тем, что в реальных нагрузках с более традиционными аллокаторами память и так фрагментирована.
(thanks @jemalloc)
veera.app
Understanding Mesh Allocator
👍5🤔1