Brainfuck으로 레이 트레이서를 만들기
저자는 Brainfuck의 여덟 가지 명령만으로 레이 트레이서를 구현하며 고정소수점 연산과 산술·제어 흐름을 직접 구성합니다. 2,300만 바이트가 넘는 프로그램은 픽셀 하나를 그리는 데 약 1분이 걸렸고, 후속 JIT 개선으로 렌더링 결과도 얻었습니다.
개발 도구와 언어, 웹 기술과 오픈소스 프로젝트의 변화를 다룹니다.
저자는 Brainfuck의 여덟 가지 명령만으로 레이 트레이서를 구현하며 고정소수점 연산과 산술·제어 흐름을 직접 구성합니다. 2,300만 바이트가 넘는 프로그램은 픽셀 하나를 그리는 데 약 1분이 걸렸고, 후속 JIT 개선으로 렌더링 결과도 얻었습니다.
LLVM 컴파일러 프로젝트의 주요 기여자이자 OpenMP·고성능 컴퓨팅 연구자인 요하네스 되퍼트가 암 투병 끝에 36세로 세상을 떠났습니다. 그는 Attributor 프레임워크와 GPU 오프로딩 개발을 이끌었고, 연구·멘토링·커뮤니티 활동으로 LLVM 생태계에 흔적을 남겼습니다.
c(x)는 타입과 값에 같은 언어를 쓰고, 교집합·합집합 연산과 확장 가능한 has 메서드로 모나드 조합과 효과 처리를 표현합니다. 글쓴이는 서로 다른 모나드의 연산을 한 블록에서 이어 쓰는 예제와, 실행 시점에 핸들러를 적용해 효과 구현을 바꾸는 방식을 소개합니다.
GCC 4~16과 Clang 3~23으로 50개 테스트를 담은 C 벤치마크를 빌드해 실행 시간과 컴파일 시간을 비교했습니다. GCC는 실행 시간이 5% 줄었지만 컴파일 시간은 66% 늘었고, Clang은 각각 8%, 4% 줄었습니다.
Futhark는 배열을 복사하지 않고 갱신하는 기능의 안전성을 보장하려고 소비(consumption)와 별칭(alias)을 타입 검사에서 추적합니다. 이 글은 추상 타입과 고차 함수가 추적 규칙을 복잡하게 만드는 과정을 설명하고, 자기 별칭(self-aliasing) 처리와 매개변수성(parametricity)을 활용하는 설계안을 제시합니다.
C3 0.8.4는 매개변수 리플렉션과 계약 기능을 확장하고, 스택 보호 옵션과 iOS 타깃 지원을 추가한 릴리스입니다. 0.9.0에서 문법을 동결하기 전 마지막 키워드 변경을 시험하며, 표준 라이브러리와 컴파일러의 여러 기능 및 버그 수정도 포함합니다.
Evocation은 Forth에서 파생한 64비트 amd64용 언어이자 자기 호스팅 컴파일러입니다. 주석이 달린 hex dump로 바이너리 생성 과정을 감사할 수 있는 자기 부트스트래핑 구조를 갖추고 있으며, 현재 컴파일에는 최대 10분이 걸립니다.
Resident Evil 4 GameCube 디버그 빌드 전체를 C/C++로 재구성한 프로젝트입니다. 원본 컴파일러와 도구를 재현해 main.dol과 114개 REL을 바이트 단위로 일치시키며, 1,083개 오브젝트와 15,641개 함수를 약 55만 줄의 소스로 제공합니다.
Skia 같은 래스터화 라이브러리는 빠르지만 애플리케이션이 전달하는 연산 순서가 비효율적일 수 있습니다. 연구진은 Skia의 동작을 Lean으로 형식화한 μSkia를 만들고, Chrome에서 발견한 네 가지 최적화를 검증해 99개 웹사이트 프로그램에서 최대 32μs의 분석 비용으로 18.7% 속도 향상을 얻었습니다.
OpenGOAL은 Jak & Daxter 시리즈의 원래 GOAL 언어와 게임 코드를 바탕으로 만든 오픈소스 프로젝트입니다. 에뮬레이션 대신 네이티브 x86-64 포트를 제공하며, 첫 세 게임을 플레이 가능한 수준으로 구현하고 모딩·접근성·삶의 질 개선 기능까지 확장하고 있습니다.
SDCC는 8051, Z80, STM8, 6502, Padauk 등 다양한 레거시·소형 MCU를 대상으로 하는 오픈소스 최적화 C 컴파일러 제품군입니다. 2026년 4.6.0 릴리스와 함께 최신 C 표준, 링크 타임 최적화, 임베디드 보안 및 여러 타깃 아키텍처 지원을 강화하는 개발이 진행되고 있습니다.
Vale 언어의 저자 Evan Ovadia가 Rust 컴파일러와 직접 통신하는 새 언어 Valen의 첫 상호운용 성공 사례를 공개했습니다. C ABI를 우회하고 rustc를 라이브러리로 구동해 언어 경계를 넘는 제네릭 호출과 Rust 트레이트 구현을 실현했으며, 최종 목표는 경계를 넘나드는 메모리 안전성입니다.