GCC는 어떻게 불필요한 정수 나눗셈을 제거하는가 — 매직 넘버와 역수 곱셈의 원리
GCC가 상수 제수로 나누는 코드를 만나면 div 명령 대신 '매직 넘버' 곱셈과 비교 연산으로 치환하는 최적화를 다룬 글입니다. 저자는 Number Field Sieve 구현 과정에서 이 현상을 관찰하고, Granlund-Montgomery 계열의 round-up·round-down 알고리즘으로 매직 넘버를 직접 도출하는 C 코드를 제시합니다.
언어와 프레임워크, SDK와 개발 방식·도구의 변화를 다룹니다.
GCC가 상수 제수로 나누는 코드를 만나면 div 명령 대신 '매직 넘버' 곱셈과 비교 연산으로 치환하는 최적화를 다룬 글입니다. 저자는 Number Field Sieve 구현 과정에서 이 현상을 관찰하고, Granlund-Montgomery 계열의 round-up·round-down 알고리즘으로 매직 넘버를 직접 도출하는 C 코드를 제시합니다.
Forth 구현 경험이 없던 개발자가 Lua의 C API 위에서 C로 작성한 Forth 구현체 MoonForth의 개발 과정을 회고한 글입니다. JonesForth의 소스를 참조하되 어셈블리 대신 Lua 스택을 직접 조작하는 C 함수로 코어 워드를 구성했고, 함수 포인터 테이블로 컴파일을 구현해 일주일 만에 조건문과 루프까지 갖춘 실사용 가능한 Forth를 완성했습니다.
Cloudflare의 Rust 기반 DNS 리졸버 Big Pineapple이 캐시 엔트리의 메모리 레이아웃을 최적화해 엔트리당 메모리를 56% 줄이고, 전체 플릿에서 약 100TB의 메모리를 절감한 사례를 분석한 글입니다. Vec·String을 Box 슬라이스로 교체하고, enum의 대형 variant를 박싱하며, 레코드를 raw bytes로 저장하는 하이브리드 방식이 핵심입니다.
Capsule은 UI, 미디어 자산, 로컬 SQLite 데이터베이스를 하나의 .capsule 파일에 담아 문서처럼 공유하고 실행할 수 있게 하는 도구입니다. 클라우드 계정 없이 오프라인으로 동작하며, AI 프롬프트로 앱을 생성하고 실시간으로 수정할 수 있습니다. Show HN에서 189점과 93개의 댓글을 기록하며 '앱을 파일처럼 배포하는 방식'의 실용성과 배포 마찰에 대한 논쟁을 불러일으켰습니다.
Postman이 오프라인 모드를 제거하고 클라우드 동기화를 강제하면서 시작된 개발자 이탈 현상을 다룬 글입니다. Insomnia, Thunder Client 등 대안으로 꼽히던 도구들마저 같은 수익화 경로를 따라가며, Bruno 같은 로컬 우선·Git 네이티브 도구가 새로운 선택지로 부상하고 있습니다.
Microsoft가 9월 보안 업데이트 KB5124008에서 USB Audio Class 1.0 장치의 오디오 출력을 망가뜨리는 문제를 공식 확인했습니다. 장치 관리자에서 'Code 10' 오류가 뜨거나 볼륨 조절과 사운드 설정이 먹통이 되는 증상이 보고되며, 임시 해결책으로 2채널 스테레오 모드 전환이 제시됐습니다.
DigitalOcean에 인수된 웹 개발 전문 매체 CSS-Tricks가 다시 업데이트를 멈추고 표류 상태에 빠졌습니다. 2023년 인력 해고, 2024년 편집장 복귀를 거쳐 다시 침묵에 들어간 가운데, DigitalOcean이 Omarchy에 300만 달러를 기부하고 GNOME·Flathub 후원은 중단한 사실이 알려지며 우선순위에 대한 비판이 제기되고 있습니다.
W3C 초청 전문가로 web applications working group에 참여하게 된 Jeremy Keith가 Technical Architecture Group(TAG) 회의에서 목격한 WebKit의 입장을 정리한 글입니다. 다른 브라우저 벤더들이 installable web app(PWA)을 위한 API 세부 사항을 논의하려는 반면, WebKit은 그 작업의 전제 자체를 거부하고 있습니다. 저자는 '설치는 북마크와 같다'와 '설치는 특별한 권한을 부여한다'는 WebKit의 양립하기 어려운 주장을 지적하며, 개발자 입장에서 설치 플로우 개시 API가 필요한 이유를 정리합니다.
GNU coreutils 프로젝트가 지금까지 받은 기능 제안 중 채택되지 않은 요청들과 그 사유를 정리한 문서입니다. '기존 도구 조합으로 충분하다', '복잡도 대비 효용이 낮다'는 유닉스 철학에 기반한 거절 기준이 드러나며, 유틸리티 설계와 유지보수 관점에서 좋은 참고 자료입니다.
GNU Compiler Collection(GCC) 13 시리즈의 마지막 포인트 릴리스인 GCC 13.5가 공개되었습니다. 3년 전에 출시된 GCC 13을 프로덕션 환경에서 계속 사용하는 사용자들을 위해 265개 이상의 버그 수정이 포함되었으며, 이번 릴리스를 끝으로 GCC 13 브랜치는 더 이상 개발되지 않습니다.
동일한 시스템을 TypeScript와 GDScript로 각각 구현한 개발자가 GDScript를 심층 분석한 글입니다. 게임 로직 전용 언어로서의 강점(네이티브 벡터 타입, 시그널, GC 없는 메모리 관리)을 높이 평가하면서도, 미완성에 가까운 정적 타이핑 시스템과 함수형 프로그래밍 지원 부재를 약점으로 지적합니다.
atomic exchange 루프로 만든 순진한 스핀락을 acquire/release 메모리 순서, test-and-test-and-set, 지수 백오프 순으로 개선해 4스레드 기준 246ns에서 43.0ns로 5.7배 빠르게 하고 에너지 소비도 64.92J에서 11.92J로 5.4배 줄이는 단계별 최적화 과정을 다룹니다. 캐시 라인 소유권 경쟁과 분기 예측 실패가 성능 저하의 원인임을 perf 수치로 보여주며, 저자는 std::mutex가 여전히 올바른 기본값이라고 강조합니다.
Rust로 작성한 단순한 내적(dot product) 루프가 자동 벡터화되지 않는 이유는 IEEE 754 부동소수점 덧셈이 결합법칙을 만족하지 않아 컴파일러가 연산 순서를 바꿀 수 없기 때문입니다. 저자는 수동 청킹과 Rust 1.98에서 안정화된 algebraic 연산자로 벡터화를 유도하는 과정을 어셈블리와 함께 보여주며, 컴파일러가 생성한 코드가 naive한 intrinsics 구현보다 빠르다는 결과를 확인합니다.
Google과 Microsoft에서 개발자로 일하며 디자인 문서를 작성해온 Michael Lynch가 효과적인 설계 문서의 작성 원칙을 정리했습니다. 언제 문서를 써야 하는지, 어떤 내용을 담고 빼야 하는지를 '틀렸을 때의 대가'라는 기준으로 설명하며, 실제 웹 앱을 위한 예시 문서도 함께 공개했습니다.
개발자 vantezzen이 전 세계 국기를 '몇 비트로 표현할 수 있을까'라는 질문에서 출발해 커스텀 바이너리 포맷을 설계한 프로젝트입니다. 가로세로 비율·색상 팔레트·레이어를 각각 허프만(Huffman) 트리로 부호화해 평균 76비트, 중앙값 55비트로 128개국 국기를 인코딩했고, 가장 짧은 인도네시아 국기는 단 8비트에 불과합니다.
Simon Willison의 '펠리컨이 자전거를 타는 SVG' 테스트를 확장해, 동물과 사물을 조합한 드로잉 프롬프트 30개를 2025년과 2026년의 여러 LLM에 던지고 결과물을 편집 없이 나란히 전시한 사이트입니다. 모델 간 편차와 세대별 진전, 그리고 여전히 어려운 '두 개체 얽기' 문제를 한눈에 비교할 수 있습니다.
Shopify가 2020년의 React Native 올인 결정을 뒤집고 모든 모바일 앱을 Swift와 Kotlin으로 재구축한다고 발표했습니다. 결정적 변수는 코딩 에이전트의 발전으로, '같은 기능을 두 플랫폼에 두 번 만드는 비용'이라는 핵심 가정이 무너졌기 때문입니다. Shop 앱은 AI 지원 하에 개념 증명에서 스토어 출시까지 12주 만에 네이티브 재구축을 완료했습니다.
4x4 스도쿠의 해는 전부 288개지만, 숫자 치환을 같은 것으로 치면 구조적으로 다른 해는 12개뿐입니다. 저자는 브루트포스 Python 코드로 이를 직접 세고, 유일해를 갖는 최소 퍼즐 85,632개를 열거하면서 비트마스크로 부분집합 여부를 효율적으로 검사하는 트릭을 소개합니다.
React와 Tailwind CSS v4용 네오브루탈리즘(neobrutalism) 스타일 컴포넌트 모음 Neobrutalism.dev가 Base UI 지원과 새 컬러 테마를 추가했습니다. shadcn/ui와 Base UI 위에 구축된 64개의 컴포넌트·차트·스타 셰이프를 제공하며, 팔레트를 골라 바로 적용할 수 있습니다. AI가 생성한 듯한 디자인으로 보일 수 있다는 식별력 논쟁이 커뮤니티에서 이어졌습니다.
코드 작성 비용이 붕괴했고 리뷰·배포·운영도 에이전트가 삼켜갈 것이라는 전제 아래, 소프트웨어 개발에서 지속 가능하게 남는 일은 '고객이 진짜 원하는 것을 찾아내고 정의하는 일'이라는 장문의 전망입니다. Stanford 고용 통계, GitHub PR 데이터, 급증 중인 forward deployed engineer 채용을 근거로, 프로그래머라는 직업이 60년 된 역사를 가진 프로덕트 엔지니어링으로 수렴할 것이라고 주장합니다.