2024年总结

一如既往,主要在工具链领域耕耘。

Blogging

I have been busy creating posts, authoring a total of 31 blog posts (including this one). 7 posts resonated on Hacker News, garnering over 50 points. (https://news.ycombinator.com/from?site=maskray.me).

I have also revised many posts initially written between 2020 and 2024.

Mastodon: https://hachyderm.io/@meowray

GCC

I made 5 commits to the project, including the addition of the x86 inline asm constraint "Ws". you can read more about that in my earlier post Raw symbol names in inline assembly.

I believe that modernizing code review and test infrastructure will enhance the contributor experience and attract more contributors.

llvm-project

  • Reviewed numerous patches. query is:pr created:>2024-01-01 reviewed-by:MaskRay => "989 Closed"
  • Official maintainer status on the MC layer and binary utilities
  • My involvement with LLVM 18 and 19

Key Points:

llvm/ADT/Hashing.h stability

To facilitate improvements, llvm/ADT/Hashing.h promised to be non-deteriministic so that users could not depend on exact hash values. However, the values were actually deterministic unless set_fixed_execution_hash_seed was called. A lot of internal code incorrectly relied on the stability of hash_value/hash_combine/hash_combine_range. I have fixed them and landed https://github.com/llvm/llvm-project/pull/96282 to make the hash value non-deteriministic in LLVM_ENABLE_ABI_BREAKING_CHECKS builds.

lld/ELF

lld/ELF is quite stable. I have made some maintenance changes. As usual, I wrote the ELF port's release notes for the two releases. See lld 18 ELF changes and lld 19 ELF changes for detail.

Linux kernel

Contributed 4 commits.

ccls

I finally removed support for LLVM 7, 8, and 9. The latest release https://github.com/MaskRay/ccls/releases/tag/0.20241108 has some nice features.

  • didOpen: sort index requests. When you open A/B/foo.cc, files under "A/B/" and "A/" will be prioritized during the initial indexing process, leading to a quicker response time.
  • Support for older these LLVM versions 7, 8, and 9 has been dropped.
  • LSP semantic tokens are now supported. See usage guide https://maskray.me/blog/2024-10-20-ccls-and-lsp-semantic-tokens usage (including rainbow semantic highlighting)
  • textDocument/switchSourceHeader (LSP extension) is now supported.

Misc

Reported 12 feature requests or bugs to binutils.

Reported 2 feature requests to glibc