MaskRay
- Posts
- 297 from 14 Nov 2009 to 12 Oct 2026
- Posting
- monthly (20 in the last year)
- Kind
- personal blog
- Feed
- https://maskray.me/blog/atom.xml
2026 17
- Who pays for Clang
- ClangIR and the cost of MLIR
- Linker I/O tricks and their downsides
- lld 23 ELF changes
- Block frequency
- Estimating branch probabilities
- Irreducible loops
- Optimizing LLVM's bump allocator
- A deep dive into SmallVector::push_back
- Recent LLVM hash table improvements
- Fighting Hyrum's Law in LLVM
- Recent lld/ELF performance improvements
- Bit-field layout
- Call relocation types
- lld 22 ELF changes
- Long branches in compilers, assemblers, and linkers
- Maintaining shadow branches for GitHub PRs
2025 19
- 2025年总结
- Weak AVL Tree
- Sacramento游记
- Stack walking: space and time trade-offs
- Remarks on SFrame
- lld 21 ELF changes
- Benchmarking compression programs
- Understanding alignment - from source to object file
- LLVM integrated assembler: Improving sections and symbols
- LLVM integrated assembler: Engineering better fragments
- GCC 13.3.0 miscompiles LLVM
- LLVM integrated assembler: Improving expressions and relocations
- LLVM integrated assembler: Improving MCExpr and MCValue
- Relocation generation in assemblers
- Compiling C++ with the Clang API
- Migrating comments to giscus
- lld 20 ELF changes
- Natural loops
- Understanding and improving Clang -ftime-report
2024 31
- 2024年總結
- Skipping boring functions in debuggers
- Exporting Tweets
- Simplifying disassembly with LLVM tools
- clang-format and single-line statements
- Removing global state from LLD
- Keeping pace with LLVM: compatibility strategies
- Tinkering with Neovim
- ccls and LSP Semantic Tokens
- My involvement with LLVM 19
- lld 19 ELF changes
- Mapping symbols: rethinking for efficiency
- Linker compatibility and the "User-Agent" problem
- Integrated assembler improvements in LLVM 19
- Understanding orphan sections
- Evolution of the ELF object file format
- Exploring GNU extensions in the Linux kernel
- Clang's -O0 output: branch displacement and size increase
- When QOI meets XZ
- Light ELF: exploring potential size reduction
- A compact section header table for ELF
- C++ exit-time destructors
- A compact relocation format for ELF
- My involvement with LLVM 18
- MMU-less systems and FDPIC
- lld 18 ELF changes
- Toolchain notes on z/Architecture
- Raw symbol names in inline assembly
- Modified condition/decision coverage (MC/DC) and compiler implementations
- RISC-V TLSDESC works!
- Exploring object file formats
2023 29
- 2023年總結
- reviews.llvm.org became a read-only archive
- Reflections on LLVM's switch to GitHub pull requests
- Exploring the section layout in linker output
- Linker notes on PE/COFF
- DSO undef and non-exported definition
- AddressSanitizer: global variable instrumentation
- A deep dive into Clang's source file compilation
- Toolchain notes on MIPS
- Clang -Wunused-command-line-argument
- My involvement with LLVM 17
- lld 17 ELF changes
- Precompiled headers
- Compressed arbitrary sections
- C++ standard library ABI compatibility
- Port LLVM XRay to Apple systems
- Relocation overflow and code models
- Assemblers
- Compiler output files
- Linker notes on AArch32
- ELF hash function may overflow
- lld 16 ELF changes
- Linker notes on AArch64
- Linker notes on Power ISA
- Linker notes on x86
- All about LeakSanitizer
- Function multi-versioning
- All about UndefinedBehaviorSanitizer
- All about sanitizer interceptors
2022 26
- 2022年總結
- kth element in a subarray
- Control-flow integrity
- Relocatable linking
- ODR violation detection
- _FORTIFY_SOURCE
- lld linked musl on PowerPC64
- Distribution of debug information
- C minifier with Clang
- Layering check with Clang
- zstd compressed debug sections
- lld 15 ELF changes
- -march=, -mcpu=, and -mtune=
- glibc and DT_GNU_HASH
- DWARF in reproducible builds
- RISC-V linker relaxation in lld
- Everything I know about glibc
- C standard library headers in C++
- PI_STATIC_AND_HIDDEN/HIDDEN_VAR_NEEDS_DYNAMIC_RELOC in glibc rtld
- Unwinding through a signal handler
- Analysis and introspection options in linkers
- lld 14 ELF changes
- All about COMMON symbols
- Compressed debug sections
- Archives and --start-lib
- Symbol processing
2021 28
- 2021年總結
- Why isn't ld.lld faster?
- .init, .ctors, and .init_array
- Relative relocations and RELR
- When can glibc be built with Clang?
- Competitive programming in Nim
- All about Procedure Linkage Table
- Build glibc with LLD 13
- All about Global Offset Table
- FreeBSD src browsing on Linux and my rtld contribution
- Extract an archive member to satisfy a DSO undef
- Toolchain testing
- COMDAT and section group
- SECTIONS and OVERWRITE_SECTIONS
- Dependency related linker options
- Dependency related linker options
- ELF interposition and -Bsymbolic
- -fno-semantic-interposition
- Weak symbol
- Segment tree
- Compiler driver and cross compilation
- The dark side of RISC-V linker relaxation
- Linker garbage collection
- All about thread-local storage
- Metadata sections, COMDAT and SHF_LINK_ORDER
- Everything I know about GNU toolchain
- GNU indirect function
- Copy relocations, canonical PLT entries and protected visibility
2020 11
2019 2
2018 8
2017 6
2016 15
- Buffalo WZR-600DHP OpenWrt使用Comcast的IPv6
- 2016 12 10 situation
- 整係數Discrete Fourier transform技巧
- Cyber Grand Challenge及DEFCON 24 CTF決賽介紹
- DEFCON 24 CTF參賽記
- WeeChat操作各種聊天軟件
- 無需每日掃碼的IRC版微信和QQ:wechatircd、webqqircd
- 偃師——finite automaton生成工具
- telegramircd——用IRC客戶端控制Telegram
- webqqircd——用IRC客戶端控制WebQQ
- 終端模擬器下寬字符退格
- BCTF 2016 hsab及BetaFour命題報告
- 終端模擬器下使用雙倍寬度多色Emoji字體
- wechatircd——用IRC客戶端控制微信網頁版
- Gmail的OfflineIMAP XOAUTH2認證
2015 15
- 支持Android、iOS 9內置IPSec客戶端的strongSwan 5.3.5配置
- LeetCode Expression Add Operators:SLR(1)、meet-in-the-middle及其他
- 從ASC'14到ISC'15——我的超算競賽生涯謝幕
- Nginx根據Accept-Language的簡繁體支持
- 指定dynamic linker以使用高版本GCC
- 皈依Emacs
- 2015 09 08 j programming language
- DEFCON 23 CTF參賽記
- 一次服務器BMC固件逆向經歷
- 常數空間Invert Binary Tree與仿Morris法後序遍歷
- jq实现原理——字节码
- LeetCode Best Time to Buy and Sell Stock IV(k不重疊最大子段和)線性解法
- ELF Hacks
- BCTF 2015 CamlMaze命題報告及CTF題目鏡像準備方法
- 2015 03 14 debug hacks 2
2014 19
- 2014年總結——競賽的一年
- Js_of_ocaml和Emscripten
- ML编译器Caml Featherweight——抽象机器
- ML编译器Caml Featherweight——编译
- ML编译器Caml Featherweight——数据表示
- ML編譯器Caml Featherweight——設計
- ML编译器Caml Featherweight——垃圾收集
- ML編譯器Caml Featherweight——pretty printer
- ML編譯器Caml Featherweight——概覽
- 江蘇信安競賽初賽工作組記事
- Hackerrank FP Compilers题目
- Android微信數據導出
- 二叉樹遍歷算法總結
- Trend Micro Codinsanity 2014參賽記
- DEFCON 22 CTF參賽記
- ISC'14 Student Cluster Competition
- LeetCode solutions
- Ko-Aluru suffix array construction algorithm
- BCTF工作組記事
2013 20
- 算法、FP、前端、安全、系統管理——2013年總結
- “1001夜”學生節線上解謎活動1001/key題解
- RedTigers Hackit Wargame - Level 1 ~ Level 7
- D-Link路由器後門註記
- 約瑟夫問題的兩個O(log n)解法
- HDU OJ一些題目
- 用Google Analytics API爲靜態站點實現“閱讀最多文章”功能
- E-mail文化拾趣
- OverTheWire - Natas Wargame - Level 0 ~ Level 17
- DEFCON 21 CTF參賽記
- DEFCON 21——我的奮鬥
- 第二屆青少年開發者大會
- 使用Suricata進行IDS/IPS
- 《Debug Hacks》和調試技巧
- Ouroborus Program - quine-relay 分析
- SECUINSIDE CTF Quals 2013雜記
- String index structure: suffix automaton
- TUNA技術沙龍及A Pretty Printer Library in Haskell
- 使用Double-array trie優化Proxy auto-config
- 使用Burkhard-Keller tree優化近似串匹配
2012 24
- Python is ugly
- 異於Make的另一種構建系統
- RuCTFE 2012參賽記
- 建立清華大學Node Packaged Modules鏡像
- 智能體大賽與平臺開發
- 用DocPad構建靜態網站
- 基於 mutt+offlineimap+notmuch+inotifywait 的個人郵件系統
- 用Pike's VM實現的非回溯正則表達式引擎
- 完美迷宮生成算法
- 自然語言處理之詞語抽取
- Force-directed算法(1)——Fruchterman-Reingold
- 域名遷移至maskray.me
- 並行N-body模擬
- SVT13117ECS上Gentoo安裝記(含內核配置)
- 8門編程語言的設計思考
- 80分鐘8語言
- Evil--在Emacs中模擬Vim
- gcc中sqrt實現
- 給xbindkeys添加key sequence支持
- Makefile介紹
- Haskell學習筆記
- 根據計劃求解Rush
- Tiling window manager的應用與設計
- 計算所有後綴的排名