LLVM static analysis
Research areas Live-variable analysis Dead-code analysis Nullness analysis Typestate analysis
Research areas Live-variable analysis Dead-code analysis Nullness analysis Typestate analysis
SmallVector SmallVector has a smart design. I was amazed the first time reading the implementation. It utilizes the memory layout of derived classes to achieve the separation of logic and data. Sm...
Parsing Most vexing parse Clang driver See https://clang.llvm.org/docs/DriverInternals.html Useful arguments: -### -ccc-print-phases -ccc-print-bindings Terminology PCH: precom...
First, Clang is both the frontend of C like language, and it is also a compiler driver. As a frontend, Clang has a hand-written recursive decent parser, and it is quite complicated. Quote from Walt...
Bash Bash test framework: https://github.com/sstephenson/bats Zsh Parameter expansion Zsh does not do word splitting. For example, this is what happens in zsh $ export DYDB="aws dynamodb -...
Celery has a AMQP broker and an consumer backend. kombu Kombu is a messaging library that supports AMQP, redis, etc. It is basically an AMQP broker. I feel reading its user guide is super helpful...
There are only two difficult problems in the traditional RDBMS domain: query optimization and concurrency control. This blog discuss various aspects of the latter in Mysql. Isolation levels The b...
Tricks Use class... Args to mimic Python *args and **kwargs. See example.
QEP: query execution plan Join straight join It is kind of option that forbid reordering tables when joining. According to official doc, This can be used for those (few) cases for which the ...
Some random thoughts or learnings. 2024-07-29 Mon Python traceback and stacktrace are two different concepts. Traceback is an object from the place an exception is thrown to the place it is caugh...