Trawling

개발·오픈소스 · 최신기사

개발 도구와 언어, 웹 기술과 오픈소스 프로젝트의 변화를 다룹니다.

Brainfuck으로 레이 트레이서를 만들기

발행

저자는 Brainfuck의 여덟 가지 명령만으로 레이 트레이서를 구현하며 고정소수점 연산과 산술·제어 흐름을 직접 구성합니다. 2,300만 바이트가 넘는 프로그램은 픽셀 하나를 그리는 데 약 1분이 걸렸고, 후속 JIT 개선으로 렌더링 결과도 얻었습니다.

요하네스 되퍼트를 추모하며

발행

LLVM 컴파일러 프로젝트의 주요 기여자이자 OpenMP·고성능 컴퓨팅 연구자인 요하네스 되퍼트가 암 투병 끝에 36세로 세상을 떠났습니다. 그는 Attributor 프레임워크와 GPU 오프로딩 개발을 이끌었고, 연구·멘토링·커뮤니티 활동으로 LLVM 생태계에 흔적을 남겼습니다.

c(x)의 효과 처리와 모나드 조합

발행

c(x)는 타입과 값에 같은 언어를 쓰고, 교집합·합집합 연산과 확장 가능한 has 메서드로 모나드 조합과 효과 처리를 표현합니다. 글쓴이는 서로 다른 모나드의 연산을 한 블록에서 이어 쓰는 예제와, 실행 시점에 핸들러를 적용해 효과 구현을 바꾸는 방식을 소개합니다.

10년간 GCC와 Clang 성능은 어떻게 달라졌나

발행

GCC 4~16과 Clang 3~23으로 50개 테스트를 담은 C 벤치마크를 빌드해 실행 시간과 컴파일 시간을 비교했습니다. GCC는 실행 시간이 5% 줄었지만 컴파일 시간은 66% 늘었고, Clang은 각각 8%, 4% 줄었습니다.

프로그래밍 언어의 타입 시스템에 별칭 추론을 맡기지 마세요

발행

Futhark는 배열을 복사하지 않고 갱신하는 기능의 안전성을 보장하려고 소비(consumption)와 별칭(alias)을 타입 검사에서 추적합니다. 이 글은 추상 타입과 고차 함수가 추적 규칙을 복잡하게 만드는 과정을 설명하고, 자기 별칭(self-aliasing) 처리와 매개변수성(parametricity)을 활용하는 설계안을 제시합니다.

Resident Evil 4(GameCube) — C/C++로 완성한 바이트 동일 디컴파일

발행

Resident Evil 4 GameCube 디버그 빌드 전체를 C/C++로 재구성한 프로젝트입니다. 원본 컴파일러와 도구를 재현해 main.dol과 114개 REL을 바이트 단위로 일치시키며, 1,083개 오브젝트와 15,641개 함수를 약 55만 줄의 소스로 제공합니다.

Skia를 위한 컴파일러 스타일 드로잉 최적화 — 2D 래스터화 의미론으로 검증합니다

발행

Skia 같은 래스터화 라이브러리는 빠르지만 애플리케이션이 전달하는 연산 순서가 비효율적일 수 있습니다. 연구진은 Skia의 동작을 Lean으로 형식화한 μSkia를 만들고, Chrome에서 발견한 네 가지 최적화를 검증해 99개 웹사이트 프로그램에서 최대 32μs의 분석 비용으로 18.7% 속도 향상을 얻었습니다.

Jak & Daxter 시리즈를 탄생시킨 언어 되살리기

발행

OpenGOAL은 Jak & Daxter 시리즈의 원래 GOAL 언어와 게임 코드를 바탕으로 만든 오픈소스 프로젝트입니다. 에뮬레이션 대신 네이티브 x86-64 포트를 제공하며, 첫 세 게임을 플레이 가능한 수준으로 구현하고 모딩·접근성·삶의 질 개선 기능까지 확장하고 있습니다.

SDCC – 소형 장치용 C 컴파일러

발행

SDCC는 8051, Z80, STM8, 6502, Padauk 등 다양한 레거시·소형 MCU를 대상으로 하는 오픈소스 최적화 C 컴파일러 제품군입니다. 2026년 4.6.0 릴리스와 함께 최신 C 표준, 링크 타임 최적화, 임베디드 보안 및 여러 타깃 아키텍처 지원을 강화하는 개발이 진행되고 있습니다.

골든 스파이크, 그리고 Vale(n) 프로그래밍 언어의 부활 — rustc와 직접 통신하는 Rust++ 언어를 향하여

발행

Vale 언어의 저자 Evan Ovadia가 Rust 컴파일러와 직접 통신하는 새 언어 Valen의 첫 상호운용 성공 사례를 공개했습니다. C ABI를 우회하고 rustc를 라이브러리로 구동해 언어 경계를 넘는 제네릭 호출과 Rust 트레이트 구현을 실현했으며, 최종 목표는 경계를 넘나드는 메모리 안전성입니다.