Abseil 매크로 — ABSL_HAVE_*·ABSL_ATTRIBUTE_*
Part 2-01: feature detection과 attribute 매크로 — 컴파일러·플랫폼 차이를 흡수하는 Abseil의 기반.
219개의 포스트 · 4/10 페이지
Part 2-01: feature detection과 attribute 매크로 — 컴파일러·플랫폼 차이를 흡수하는 Abseil의 기반.
Part 1-05: Abseil의 versioning 정책 — inline namespace, ABI 호환 범위, prebuilt 사용 시 함정.
Part 1-04: LTS vs HEAD — Abseil의 두 가지 릴리스 모델, breaking change 정책, 마이그레이션 비용.
Part 1-03: Abseil 빌드 — Bazel(WORKSPACE/MODULE) vs CMake(FetchContent), vcpkg/Conan 패키지 매니저.
Part 1-02: Abseil 설계 철학 — std 호환, ABI 안정성 정책, Live at Head 모델.
Part 1-01: Abseil 개요 — Google이 std의 한계를 보완하기 위해 만든 industrial-grade C++ 라이브러리.
Google이 만든 Abseil C++ 라이브러리를 code review의 시선으로 읽는다. std를 보완하는 industrial-grade 도구의 설계 의도와 사용 패턴을 13 Parts 68편으로 살펴본다.
Meta fbcode 코드 리뷰에서 반복적으로 등장하는 folly 사용 패턴 — overview + 시리즈 마무리.
folly::observer — read mostly 값의 atomic refresh, hot config·feature flag·LB weight 같은 패턴의 표준.
CancellationSource/Token의 전파 모델 — coroutine·Future·callback 트리에서 협력적 취소.
folly::AsyncIO와 IoUringBackend — kernel async disk I/O, callback과 coroutine 통합.
folly::io::Codec — IOBuf 기반 통합 compression API. zstd/lz4/snappy를 같은 인터페이스로.
RecordIO의 frame 포맷, checksum, mid-file 복구 — append-only log 파일의 표준 패턴.
DynamicConverter의 역할 — folly::dynamic과 user struct 사이 boilerplate 없는 양방향 변환.
folly::demangle의 역할 — C++ mangled name을 읽기 쉬운 형식으로, crash log와 typeid 출력에 필수.
folly::format의 historical 위치, fmt와의 관계, std::format으로의 마이그레이션 경로.
MicroSpinLock의 1-byte 표현, sleep 없는 순수 spin — 짧은 critical section 전용.
MicroLock의 1-byte 표현 — futex 기반 lock으로 std::mutex(40+ byte)의 메모리 비용 회피.
Indestructible<T>의 동기 — Meyers singleton의 static deinitialization 함정과 그 회피.
folly::Init의 역할 — gflags 파싱, signal handler, glog 설정, exit handler 통합.
SpookyHashV2의 ARX (Add/Rotate/Xor) 기반 빠른 hash — F14의 hasher 기본 후보.
Fingerprint의 polynomial Rabin-Karp 기반 hash — sharding, dedup, content addressing.
Uri의 RFC 3986 파싱, query string 추출, scheme/host/path 분해 — 표준에 없는 빈자리.
Range<Iter>의 설계, StringPiece의 일반화, std::span / std::string_view와의 관계.