2023

2023-01

My contribution numbers are very imprecise because a llvm-project commit may be counted a few times (e.g. llvm-mirror/llvm llvm/llvm-project-staging llvm/llvm-project-release-prs). The number of such repositories varies over the years. https://t.co/gC0TBzYCvO

Linux 6.2给我的网站的引用数增加了2。今天给DataFlowSanitizer加了Linux AArch64支持。不知道有没有人用这个工具 https://t.co/iRTj84abrv

粮食🍚(1962)和疫苗💉(2022,2023) https://t.co/WEmzUCMwQz

@yihong0618 伊老师过奖了🤦🤦🤦

https://t.co/lCIpHSWrDo Tests at the wrong layer are discouraged. Can you make more arguments than what I currently describe?

From time to time there is news about Intel CET landing in Linux kernel and there is indeed some code since 2022. So... glibc has had arch_prctl ARCH_CET_STATUS/ARCH_CET_DISABLE code since 2018 but the Linux kernel as of today doesn't support these operations yet.

Revamped my llvm-project cross compilation workflow. https://t.co/GEI8sGFo3p I can validate builds for Android builds (now) obscure arches like mips64el... All resulted from nerd sniping just to fix sanitizers after I installed =sys-libs/musl-9999 on Gentoo.

@yyw2000 @shisoftgenius 把llvm-symbolizer放在PATH目录里。构建时至少-g1

https://t.co/IBWUFwVnxf All about sanitizer interceptors

@iiirogers Hi! Do you have examples of "workarounds switching malloc to calloc, often with an #ifdef"?

@rui314 Yes that it avoids unneeded conditions. I can think of two drawbacks: size bloat (which can be mitigated a bit by --icf=) and code indexing ability (it's difficult to support multiple versions of a header file in LSP).

@rui314 But indeed, this is what I dislike about mips and ppc: they added a lot of hacks to lld/ELF. And I am concerned of new ports which may or may not do the right thing but fans are fond of porting (LoongArch)...

@cnPhil @Google 太幸福了 😭

@iiirogers OK, I haven't figured out why the state before perf test: Avoid an msan warning in a copied stack. (568beb27959b0515d325ea1c6cf211eed2d66740) was a false positive. The other MEMORY_SANITIZER is the classical msan&assembly problem.

@iiirogers I cloned https://t.co/5izPpeDjjy but cannot see where the syscall is... However, I agree with your analysis. Unfamiliar with bpf, the syscall is probably tot complex to analyze precisely in a msan interceptor.

@rui314 Stack-based relocation processing was removed, but I haven't looked at their new relocation a second time yet. They are now adding linker relaxation which makes me nervous. I have to be very careful with their llvm patches as they seem to have a tendency to copy many legacy.

@rui314 Software debloating seems to be studied a lot for security. I just read a few papers and it seems that they mostly claim debloat effects after clearing/invalidating a function without fixing all the references. Some patch rtld.

@rui314 Real-world applications typically have very low coverage. Using fuzzing can hardly reach some error handling cases. Debloating aggressively in the linker may likely break such code...

Updated some articles. More articles, more burden.🥴My articles written in 2022 did not sell well😭😭One from 2020 (C++ exceptions) is referenced by a Master thesis😊 https://t.co/jMtRKTZZIM

现有一作文题目:“关于CTF与实战的看法,或者自己一路走来的感悟,希望写得能够对一些迷茫的CTFer起到一定的帮助”。能写些什么呢? 目前想到的是 (a) GNU ld 2.31采用-z separate-code想要减少ROP/JOP gadgets,然而"Is Less Really More?"(牺牲文件大小能起到效果吗) https://t.co/SmBVZvfdRx

我排除众议让lld预设-z noseparate-code?(b) 前不久才试图研究了一些CFI方案 (c) 不懂heap exploitation但对各类allocators感兴趣 (d) 总有一些busy work式迷惑行为,如PT_PHDR末尾补trap instr。但我看到这种无用代码又无可奈何,删除了说不定哪个公司的“安全部门”就不开心

LeetCode Weekly非常难得进入前两页纪念一下~折腾Nim解题(需要缩短标识符减小代码大小)时发现了一个Clang RecursiveASTVisitor bug🤣 https://t.co/7vLsx1P4YU

@hronro 是,默认"compileToC - compile project with C code generator",会生成多个.c文件(如每个标准库也有一个.c)。需要合并后才能上传到一些解题网站。因为合并后太大,还需要minifier

@matrixkook67 Fantasque Sans Mono Regular

RT @Collabora: Times are changing: #LLVM has become more than a spare to GCC, such that Glibc - the last big #GCC bastion, is now working t…

Bosses may like this "... No right, no wrong, no rules for me I'm free Let it go, let it go I am one with the wind and sky Let it go, let it go You'll never see me cry Here I stand and here I stay Let the storm rage on..." https://t.co/MePGHWuyig

"Animals Should Be Seen and Not Heard" Elphaba: "Can you imagine a world where Animals are kept in cages and they never speak?" https://t.co/zuCclaAfT6

Elphaba: "So if you care to find me, look to the western sky. As someone told me lately, everyone deserves the chance to fly!"

前几天睡眠不足,这几天稍好,但感觉我仍须要重启一下🐱飞机上补了一段巴斯光年背景知识😹回去还有积攒的无数代码审阅工作🙀 https://t.co/GmJTeSq94k

https://t.co/XBvz8t5SBL All about UndefinedBehaviorSanitizer

@jfbastien Aha, indeed an interesting idea :)

2023-02

May I humbly request a review of an x265 patch https://t.co/YgUdjrXBIF (aarch64: replace ldr pseudo-instruction with adrp+add) fixing a linker issue with -z text (new linker default, future GNU ld default)? There have been so many pings...

@rui314 Yes, ld64.lld is slow, but using mimalloc (-DCMAKE_EXE_LINKER_FLAGS=path/to/libmimalloc.a) and similar compile options will make the comparison slightly fairer..

@delphij https://t.co/mhbNl7zU9s I asked whether --warn-backrefs can be the default and people complained.

https://t.co/AT1bdHhwvG Function multi-versioning

https://t.co/zYHvTkZVWO (LLD -Wl,-z,notext on AArch64 breaks exception handling unwind) is interesting. I fixed lld, updated clang aarch64, and added https://t.co/7qymOhsZyC

I tried to make gcc x86 better but they probably don't like it https://t.co/t03L1dxZu2

百年前梁启超开列了一个清华学生于留美之前应读的“最低限度的书目”。慚愧😥 https://t.co/ypcjZmBtut

Wrote a bit about my understanding of linker support for Cortex-M Security Extensions (CMSE): https://t.co/kuWuoynGt2 (There is an lld patch with a very looooong summary. I could not really follow it, so I ended up reading the code first.)

https://t.co/yzAYm3ej2o All about LeakSanitizer

@iiirogers If you want to detect leaks in a never-ending process, perhaps a heap profiler with two differentiable snapshots will be useful... (It seems that the old HeapLeakChecker does have a snapshot feature, though I don't know how to use it...)

https://t.co/rIptO3AFNY zstd .gnu_debugdata feature request. Wish that Fedora can make a switch from xz.

About OpenBSD emulated TLS, Brad Smith has a comment: "It's easier said that done. I have been asking about this going back like 15 years and it's basically silence from the relevant developers." (https://t.co/MGxo3eB6wJ)🤣This is worse than "miserable".

https://t.co/HdMRKb7rx1 Linker notes on x86

梁启超,1873年2月23日生于广东新会 https://t.co/FHL9zhzqYl

PLCT observed performance decrease(!) due to RISC-V GP relaxation on SPEC2006 for reference workload. Unallocable GP is apparently bad for RVC and RV32E/RV64E. Anyhow I landed my patch adding --no-relax-gp to GNU ld, even if someone doesn't want to make GP relaxation opt-in.

https://t.co/hM8HVHoDij Linker notes on Power ISA (I am the primary author of lld ppc32 and a main contributor of lld ppc64. While going through the code, I noticed IBM contributor's avoidable --no-power10-stubs bugs and fixed them...😥)

2023-03

There is a CRC-64 patch series for GNU ld linker script support on the binutils mailing list, and I am very sad about it. It adds significant complexity for a very special-case feature that can be easily replaced with post-linking processing. https://t.co/tsBA95Nilo

@adhemerval I think it does't, so I asked again... https://t.co/gFTPXnRsWg

https://t.co/4uavPgq5Gx Linker notes on AArch64

@adhemerval A sad story...

In 2019, I reported a GNU ld issue related to -fno-plt -Wa,-mrelax-relocations=no and the discussion died out. I sent a patch this year, with the help of Jan (big thanks to the new global maintainer), I finally fixed the compatibility issue. https://t.co/mwH7AlghPD

Anne Frank exhibits. Location: Museum of Tolerance, West Pico Boulevard, Los Angeles, CA https://t.co/jXj1mbahgu

The Huntington Library, Art Museum, and Botanical Gardens https://t.co/2ivR7hZKfC

@fqj1994 wow,在哪裏

The University of Pennsylvania Museum of Archaeology and Anthropology

看到了昭陵六駿中的颯露紫、拳毛騧 (文字描述裏 騧gua 寫成 qua 了) https://t.co/dEi1HIlMtO

I consider global pointer relaxation to be a mistake as the de facto RISC-V ABI default. It is fortunate that there has been progress/more agreement to weaken it in the ABI. Eventually, GNU ld should default to --no-relax-gp. Linux ABI will unfortunately keep the pessimization. https://t.co/kccIWDgg1q

2023-04

The State Museum of Pennsylvania https://t.co/E6qp8LF8JO

Pennsylvania State Capitol https://t.co/ZEB2g8CgFa

@yihong0618 谢谢~文章加了一段,FreeBSD developer修复了rtld-elf一个问题 https://t.co/c2geioFYS0 约8小时前讨论后确认是一个bug,会导致某些函数名无法被解析🐛

https://t.co/w5o4bcmKtf ELF hash function may overflow

Added a section: A FreeBSD developer posted a rtld-elf patch a few hours after I published this article.☺️And a unpatched rtld-elf makes some identifiers unresolvable.🥹

https://t.co/leYIFtrg1l In the latest Weekly, I spent the rest time accelerating the fourth solution with heavy-light decomposition.🥹 https://t.co/4sDZPwpYLk

libfuse2 has unreasonable symbol versioning usage. I don't think linkers can make any guarantee. A user attacked me personally when ld.lld's behavior changed. I hope that I replied diplomatically. https://t.co/eGVMlK7haq

Created a feature request "ld: Add --remap-inputs-file= to remap input files" https://t.co/36TRYvsKvO https://t.co/0eq2DAsjRF this feature can remap or ignore input files, useful for debugging.

RT @adhemerval: I wrote about a side project to build glibc with clang. It still not complete and I am planning to at least 2 releases ahea…

https://t.co/rNtlOAg694 I have some patches to generalize -fsanitize=function (support non-x86 architectures and C (not just C++)).

This started from a rabbit hole to port the feature to AArch64..🥳

https://t.co/hYzbB7WhbN GCC -dumpdir looks like a good addition to Clang, but its -dumpbase{,-ext} seem unuseful.

Patches tonight (gcc,sanitizer,Linux kernel,bazel,glibc)🥳 (Twitter only allows 4 images.) https://t.co/Eeflfh8T18

2023-05

ChromeOS has a u-boot question about weak symbols in PE/COFF. I added more information to https://t.co/RVUuHBqEI9

There is a RISC-V question about incorrect .debug_line due to linker relaxation. I added "Line number information for assembly files" to https://t.co/OHNGARYaaV

There is an llvm-objdump issue about lack of .plt.got support. I added more information to https://t.co/1vB0L1JUJK "Combining .got and .got.plt".

It's good to have blog posts covering these topics and I just needed to add more sentences to a section:)

Thanks to Feng Wang. llvm-project libunwind can unwind through a sigreturn frame on Linux RISC-V. Added a chapter to https://t.co/vCehrrLQKF

Described an interesting libc++ bug related to glibc __CORRECT_ISO_CPP_WCHAR_H_PROTO and Clang modules -fmodules-local-submodule-visibility https://t.co/k9NA8suWyS

https://t.co/PT2p25DdKr Assemblers

Updated https://t.co/hYzbB7WhbN clang -gsplit-dwarf a.c b.c -o x && clang -ftime-trace a.c b.c -o x (compile and link) have more sensible auxiliary output file names now.

https://t.co/DNZruzAisS Relocation overflow and code models

clang --coverage a.c b.c -o x now have more sensible auxiliary output file names. Added https://t.co/ZIsG1OHCE4 and described why local build determinism is tricky with gcov

2023-06

https://t.co/a0jHnoa5lp added an example that the current limitation in LLVM integrated assembler led to a workaround in Android Runtime (ART).

@iiirogers Thanks for the sharing! My rant is: the assembler part of really really fragile and originally done at a wrong layer. Over the yeas there were some fixups but no principled rearchitecture until compnerd's fix. There is still remaining work and I shall fix that in my spare time...

Reviewed 20+ patches yesterday and today. Pushed a few easy changes:🥳clang ubsan doc, target-specific driver option errors instead of -Wunused-command-line-argument warnings, and finished -fsanitize-address-globals-dead-stripping migration for ELF.

clang -msmall-data-limit= is the saddest RISC-V thing I have run into. Various issues: added an alias -G (not in GCC), different spelling for CC1/driver options, confusing behavior related to -fpic/-shared and -mcmodel=large (case insenstive check?), and an LTO issue.

Part 1 to make LLVM integrated assembler for RISC-V linker relaxation reliable. https://t.co/eK3mBWgJuX (Make linker-relaxable instructions terminate MCDataFragment)

My recent assembler fun: Restore a special case to support limited A-B folding when A/B are in the same fragment being laided out https://t.co/SogCrjI5ql (Fold A-B when A's fragment precedes B's fragment) https://t.co/kWvOCWl6fP (PPC32 bl __tls_get_addr(x@tlsgd)@plt+32768)

https://t.co/L9qxP1hxj9 (RISC-V comments after an operand) https://t.co/0ZU8FXOvwX ([RISCV] relaxDwarfCallFrameFragment: remove unneeded relocations for relaxation)

https://t.co/aSG1zhob2P I spent 1.5h studying and reviewing the three patches for llvm/clang/lld -ffat-lto-objects. Initially, I thought they might be intimidating, so I hesitated to read them. Sorry!

https://t.co/w9tJH4z9Vr Port LLVM XRay to Apple systems

I just reviewed a patch for BPF Type Format support (https://t.co/UW1jLCEdIB) in llvm-objdump -S (https://t.co/Z7TKccHJ3D). Each instruction needs a sizable instance of the 16-byte struct bpf_line_info. This makes it less efficient than the state machine of DWARF .debug_line .

https://t.co/IxDhTmXm3F C++ standard library ABI compatibility

ld.lld --compress-sections =[zlib|zstd] https://t.co/mtGDc8CLLE This is a generalized --compress-debug-sections that applies to arbitrary sections, including SHF_ALLOC ones. Do you have a use case?

I hope my generic-abi proposal looks good: https://t.co/sPUhV8hdGI

https://t.co/YhTfrWQO88 [RFC] Compress arbitrary sections with ld.lld –compress-sections

https://t.co/KmwYnUysfq My 22th Linux kernel commit.. Coredumps' PT_NOTE will finally have the correct p_align value 4 instead of 0. However, GNU readelf/llvm-readelf may carry the workaround forever.

2023-07

Wrote https://t.co/MXoh2wfSPP and uploaded an ld.lld patch:)

I adapted a clean XXH3_64bits for llvm-project, good enough to make ld.lld SHF_MERGE duplicate elimination faster (useful for large .debug_str) https://t.co/xALsKtWu88 I tuned it to be on par with the reference implementation (which contains lots of workarounds for old compilers)

Part 2 to make LLVM integrated assembler for RISC-V linker relaxation reliable. https://t.co/V8HK6KAQWi ([RISCV] Allow delayed decision for ADD/SUB relocations)

https://t.co/U9aWeQgaYA describes Clang precompiled headers with a focus on the internals.

Impressive mutual recursion between libc++ demangling_terminate_handler / libc++abi __cxa_demangle, leading to stack overflow: https://t.co/bc1l7klc8p I have a nice reproduce in a comment:)

@alex_toresh Thank you for these good points. Yeah, the PCH size is much larger. Wow, I don't know they can be GBs ...

llvm-project 4500+ commits🥳 Made the assembler part of RISC-V linker relaxation reliable (longstanding issue). StringMap can now enable (approximate) reverse iteration order to prevent misuses after tree-wide fixing. https://t.co/zHw3TxErvi

Edited https://t.co/fkuuvtG9lt "Alignment directives" to describe the RVC state problem.

I wish that active contributors to binutils (RISC-V folks?) can improve this testsuite https://t.co/JWPfZCKBPR (Also, https://t.co/GMPPjiDrvp is relevant)

Sometimes I am obliged to post patches even when travelling, as I am afraid that contributors may update llvm-project tests in a suboptimal way (e.g. adding a REQUIRES: to a driver test when we can delete lit.local.cfg, adding labels to lld tests when we can adjust llvm-objdump) https://t.co/e1N6rEK7Qj

2023-08

The RISC-V linker relaxation support in the LLVM integrated assembler requires substantial clean-up (the original impl had major flaws and added code to the wrong layers), which I nearly fixed. After adding .uleb128 relocations and fixing DWARF v5&RISC-V, it should be complete. https://t.co/k8JyOnaBvT

madler has released zlib v1.3! It contains fixes for the notorious -Wstrict-prototypes/-Wdeprecated-non-prototype diagnostics. I'm delighted to have filed https://t.co/l0JmjruFhI , which has been linked by numerous projects...

Statistics for the LLVM 17.x release cycle: the numbers of accepted/rejected patches by Phabricator username between llvmorg-17-init and llvmorg-18-init (181 days). https://t.co/TwJ6yhxJ3d

https://t.co/Jkuh9Nk7Yf My involvement with LLVM 17

Broken sanitizer interceptor on FreeBSD/aarch64 leads to discussions on GNU assembler/LLVM integrated assembler behavior and ABI related to GOT relocations https://t.co/4DJdF2kaOV

Implemented a missing feature in Clang that I found when writing the function multi-versioning post... https://t.co/jzcsnKpugQ

https://t.co/86hT9NhcG3 Clang -Wunused-command-line-argument

glibc 2.38 was released on July 31st, 2023, prior to LLVM 17, so there is ample time to address the compatibility issues due to __isoc23_ symbols of strtol/scanf family functions.

Wrote some notes about how to test a just-built glibc 2.38 https://t.co/073UiZK4A6 https://t.co/FdflK2kNUn

2023-09

https://t.co/jDJeHZBqhI "libc++-vendors or clang-vendors"

"Watch (dropdown) => Custom => Issues (Filter by labels)" doesn't work for pull requests, then how to notify folks (for vendor-impacting decision) who don't want to watch all issues or PRs?

https://t.co/HKZESmelmy Toolchain notes on MIPS

@adhemerval Do you know where I can get a copy of n64?

Learned a new term, "Eternal September," which can describe the current chaos of llvm-project's GitHub PR transition... It's a pity that a better code review system was not considered, but we need to adapt to the inferior system...

@disruptnhandlr A system with a stable identifier that supports showing diff between versions, instead of just commits (as GitHub provides). Possibly Gerrit, even if I have very little experience with it. https://t.co/BxVeq06bxh

https://t.co/VpNQH4GU0R Why is someone crawling https://t.co/4DfrmQMhro? (quite like a botnet given IPs from quite a few countries)

Experienced disk resizer! There may be some unneeded steps in restarting Phabricator. https://t.co/oiEyHVk46m

@aidengrossman1 @alex_toresh When Phabricator is finally shutdown, we can use https://t.co/DZZAK1M3zY to create a static mirror like https://t.co/Bsjodeu6S5 .

I think the https://t.co/O8t7Z8Lp8q links will be kept, though I am unsure about https://t.co/D8WixrcBZL

@jevinskie Thank you, but I am merely a sysadmin of one instance (llvm). Phabricator the project is not maintained. https://t.co/tCuWl0vrJa is a maintained fork of Phabricator.

https://t.co/i621JedtVU Reflections on LLVM's switch to GitHub pull requests

Orange site link: https://t.co/F3YNnIeNuG

Wow, mtk.manpages注册了Disqus给我报告了一个错误。我发现这个错误抄自lld规则,于是就修了lld…… https://t.co/flTonYBGWa

Help wanted. Full disk problem. Anyone knows how to remove unpublished commits on Phabricator (e.g. https://t.co/B5QuS5daF8 https://t.co/xgI3eszij9)? The GitHub PR transition might cause quadratic explosion in Phabricator's imported commits.

Mitigated: https://t.co/bsEeexkdtM

Hopefully these unpublished commits don't cause too much harm even if they are kept...

Updated https://t.co/z0KwKUdSZ3 to describe PT_GNU_RELRO complication: GNU ld 2.39's size penalty for a security theatre, mold .relro_padding, and my recent change to support runtime_page_size >= common-page-size in LLD (with some complexity in linker script).

https://t.co/4WGBiSZav3 documented a special behavior about .text : { *(.text) } =0x90 in GNU ld (https://t.co/GsHV8EVfrz)

Condemn Bytespider which does not respect robots.txt. Changed https://t.co/4DfrmQMhro to use this for now

1
RewriteCond %{HTTP_USER_AGENT}  ^.*Bytespider.*$ RewriteRule . - [R=403,L]

I identified two flakiness bugs in a single day: one with 7 failures out of 1000 runs and another with 5 failures out of 5000 runs. https://t.co/O0PHrS6bcw

Recent interesting lld patches https://t.co/crQwn3TPUf

https://t.co/SiYpHK22si A deep dive into Clang's source file compilation

Started a thread about "force push and rebase" on GitHub https://t.co/BODQKNVRtI This is one major disaster brought by GitHub pull request transition.

Fixed regression of AddressSanitizer's ODR violation checker by fixing the ODR violation issue in AddressSanitizer (asan.module_ctor):) https://t.co/8nWHzNQ2gT

2023-10

Johns Hopkins Glacier calving https://t.co/xhL26hebt2

https://t.co/jSTY30jgbn AddressSanitizer: global variable instrumentation

GCC commits++, though I got an From:/Signed-off-by: instead of the git author/commiter fields...

来自广东的恶意爬虫这两天让https://t.co/4DfrmQMhro变得很慢(前人留下的php-fpm设置的进程数很低,使得正常请求不被处理;实际上CPU占用不高)。我只好封掉了整个AS https://t.co/AKQOaOXgYe

https://t.co/CZlvT697JE "Relocatable file definitions shared with DSO"

tl;dr Do we want a linker option to catch certain multiple definition issues involving DSO that are less likely benign?

https://t.co/cyrfY4M6Yx objcopy: add support for changing ELF symbol visibility

https://t.co/VhsTaflS5h I am on the fence whether we need ld.lld --no-allow-non-exported-symbols-shared-with-dso, and whether we need to drop the unintentionally strengthened --no-allow-shlib-undefined check.

2023-11

Useful patches this week. Itanium C++ ABI exceptions optimization(-fassume-nothrow-exception-dtor, thanks to Shoaib for the name), modules, AArch32 stack protector, AArch64/x86-64 code model, lld/ELF. Thanks to 许传奇 for giving me opportunities to contribute to the first two.😊 https://t.co/BShILfUvNw

https://t.co/cWPqfZpnHL Added a section about the potentially-throwing __cxa_end_catch and Clang's new option -fassume-nothrow-exception-dtor

2023-12

https://t.co/wB1XQTIcsW Added a section about a strange behavior from GNU ld (newdyncommon in bfd/elflink.c:_bfd_elf_merge_symbol)

Lake View Cemetery的李振藩(李小龙)、李国豪父子墓 https://t.co/PStTSE3Ect

Pine Hills Cemetery有张国焘、杨子烈夫妇的墓碑(43°43'00.5"N 79°16'09.6"W)。 张国焘是中共一大代表中少有的善终者,也是唯一在异国离世的。 杨子烈转述张的话“在中国舞台上,我原来是个演员,现在仅是个观众,总希望能少看到些悲剧才好。”

不远处有洪門歷代宗親紀念碑和新會縣先僑紀念碑。 https://t.co/6qFqRdO68c

@c01dsummer 好奇为什么有矿泉水瓶

@__broken_mike 又回去啦

https://t.co/bpznRxiVWx

I am adapting Mercurial's phab-archive project to mirror <https://t.co/O8t7Z8Lp8q> pages. I need to make a few adjustments (python,js,css,html).

The "History" button functions properly, although there isn't a "Compare" button. https://t.co/rlGPwBm5uL

https://t.co/X1tIaz2Xmf Exploring the section layout in linker output

https://t.co/Ts8dSiRoIm (libunwind) Use SYS_rt_sigprocmask to check the addressability of 8 bytes. How reliable is it on an unaligned address?

diversity in my recent commits https://t.co/y32jtoEiDe

@markliang1994 Noto Sans和Fantasque Sans Mono

https://t.co/AyKZoJeXUs https://t.co/4DfrmQLJBQ became a read-only archive

@gdhdh89240256 The owner decided to close the website due to concerns about a compromised machine. There are communication issues during holiday seasons, where the remaining individuals maintaining https://t.co/4DfrmQLJBQ cannot connect with those who have domain permissions.

https://t.co/CLOUEn4OZb 2023