Trawling

개발 · 최신기사

언어와 프레임워크, SDK와 개발 방식·도구의 변화를 다룹니다.

Gleam, 이제 Erlang 소스 코드로 컴파일하지 않습니다

발행

Gleam 1.19.0은 Erlang 코드를 생성하던 방식을 바꿔 Erlang 컴파일러의 중간 표현인 abstract forms를 직접 출력합니다. 빌드 속도와 오류 위치 정보가 개선됐으며, JavaScript 코드 생성, TypeScript 타입 선언, 빌드 도구 연동과 언어 서버 기능도 함께 다듬었습니다.

고속 링커 mold, Rust로 재작성해 3.0.0 출시

발행

고속 링커 mold가 C++ 구현을 Rust로 전면 재작성해 3.0.0을 출시했습니다. 명령행 옵션과 지원 아키텍처를 유지하고 기존 수준의 링크 성능을 확인했으며, GNU ld와의 호환성 개선을 이어갑니다.

AnyPS5 — PS5 실행 파일을 Linux와 Windows용으로 포팅하는 도구

발행

AnyPS5는 PS5 실행 파일을 Linux와 Windows의 네이티브 형식으로 변환하고, 동적 링크에 필요한 시스템 라이브러리를 구현하는 프로젝트입니다. 에뮬레이션이나 별도 런타임 프로세스 없이 Dreaming Sarah를 특정 PC에서 60fps로 실행했다고 소개합니다.

Refinement E-Graph — 등식 대신 정제 관계를 내장한 E-Graph

발행

컴파일러 최적화에는 양방향 등식보다 추상적인 프로그램을 더 구체적인 프로그램으로 좁혀 가는 정제(refinement) 규칙이 자주 등장합니다. 글은 E-Graph에 반사적·추이적인 부등식 관계를 내장하고, 함수 인자의 분산성(variance)에 맞춰 정제 폐쇄, E-matching, 추출을 확장한 프로토타입을 설명합니다.

MS-DOS용 8바이트 인트로 ‘8-pinski’

발행

Héll Mood가 MS-DOS용 8바이트 데모를 공개했습니다. 8086 명령어의 겹치는 해석과 텍스트 비디오 메모리, PC 스피커를 이용해 화면 효과와 소리를 만듭니다.

Go 컴파일러를 손봐 IPv4를 IPv6로 효율적으로 매핑하기

발행

Go의 netip.Addr에는 IPv4 주소를 IPv4-mapped IPv6 주소로 바꾸는 To6() 메서드가 없습니다. 글쓴이는 권장되는 AddrFrom16(ip.As16()) 방식이 네이티브 구현보다 약 8배 느린 이유를 분석하고, 컴파일러 최적화로 성능 차이를 없애는 방법과 그 과정의 부작용을 설명합니다.

Infidel에서 발견한 메모리 손상 버그

발행

텍스트 어드벤처 Infidel의 ZIL 코드에서 선택적 인수의 기본값으로 전역 변수를 지정한 부분이 컴파일 오류를 일으킵니다. 사막에 물건을 여러 개 버리면 메모리 주소 30번대부터 덮어쓰고, 결국 문자열 압축용 약어 데이터까지 손상됩니다.

빨강과 초록이 탁해지는 문제: Total Draw의 색 혼합 개선

발행

Total Draw 개발자가 빨강과 초록을 섞을 때 경계가 어둡고 탁해지는 문제를 OKLab 색 공간으로 개선했습니다. 색을 섞는 방식에 따라 결과의 밝기와 붓질 느낌이 달라지는 이유를 설명하고, 연산 비용과 문서 호환성 때문에 레이어 혼합은 기존 방식으로 남긴 배경도 소개합니다.

메타데이터를 일찍 내보내 Rust 빌드·검사를 최대 두 배 빠르게

발행

Rust 프로토타입 Headstart는 크레이트의 함수 본문 검사가 끝나기 전에 인터페이스 메타데이터를 내보내 의존 크레이트의 작업을 앞당깁니다. 16코어에서 실제 프로젝트 13개의 빌드와 검사를 측정해 cargo check는 최대 54%, cargo build는 최대 42% 빨라졌으며, 개선 폭은 남는 코어 수와 의존 관계에 따라 달라집니다.

쓰레기통에도 초광대역 무전기를 달아보셨나요?

발행

Home Assistant가 수거 일정뿐 아니라 쓰레기통을 실제로 내놓았는지도 알도록 UWB 태그와 고정 앵커를 만든 프로젝트입니다. 거리 측정부터 저전력 펌웨어, 무선 업데이트, 알림 자동화까지 구현하고 실제 수거 과정에서 확인한 한계도 기록했습니다.

규칙을 지어내지 않는 AI 던전 마스터, The Goblin Warren

발행

The Goblin Warren은 Sanity에 저장한 D&D 5e 규칙을 조회하고 근거 문서를 인용하는 브라우저 기반 던전 크롤입니다. 자연어 규칙 질문은 Knowledge Base로, 정확한 능력치 조회는 GROQ로 나눠 처리하며, 답변 추적 화면에서 조회 과정도 확인합니다.

소프트웨어 오류로 멈춰 선 F1 차량, 드라이버들 불만

발행

젖은 노면에서 열린 바레인 GP에서 파워 유닛 제어 소프트웨어 오류가 여러 차량을 공회전 상태에 빠뜨려 경기 시작이 50분 지연됐습니다. FIA는 적색기 상황에서 영향을 받은 구간의 출력 제한을 해제하는 패치를 배포했으며, 드라이버들은 전자 제어와 하이브리드 파워 유닛에 불만을 나타냈습니다.

Sanity Context MCP로 DEV.to 게시물 도용을 추적하는 OriginTrace

발행

OriginTrace는 DEV.to 게시물의 웹상 복제본을 찾고, 문구 유사도와 출처 표기 여부를 분석하는 프로토타입입니다. 분석 결과를 Sanity에 구조화해 저장하고, Sanity Context MCP 기반 AI 에이전트가 이를 질의해 복제본 판별과 DMCA 통지 초안 작성을 돕습니다.

명령줄에서 쓰기 불편한 Flatpak

발행

Flatpak 앱은 배포판에 상관없이 설치하고 샌드박스에서 실행할 수 있지만, 명령줄에서 쓰려면 긴 앱 ID를 입력하고 파일 접근도 따로 처리해야 합니다. 글은 Windows의 실행 별칭을 참고해 Flatpak에 명령 별칭과 래퍼 스크립트를 추가하자고 제안하며, 댓글은 파일 전달 자동화의 한계와 보안 문제를 지적합니다.

친구의 면접 복기를 돕는 도구를 만들었습니다

발행

면접에서 탈락한 뒤 피드백을 받지 못하는 친구를 위해 면접 복기 도구 Duster를 만들었습니다. 답변의 약점을 태그로 기록하고 면접마다 반복되는 패턴을 보여주며, 해당 약점을 겨냥한 연습 문제를 제공합니다. 로컬 모델과 규칙 기반 분석기를 지원해 민감한 면접 정보를 다루는 방식도 선택할 수 있습니다.

true의 비트 보수는 true입니다, false가 되는 경우만 빼면

발행

C++의 정수 승격과 enum 변환 규칙이 비트 연산에서 일으키는 까다로운 사례를 살펴봅니다. bool의 비트 보수와 열거형 변환에서 GCC·Clang·MSVC가 표준과 다르게 동작하는 사례, 고정 기반형이 없는 enum에 생기는 정의되지 않은 동작을 짚습니다.

FeelMyMac — Mac 트랙패드로 다양한 질감을 느끼세요

발행

FeelMyMac은 Mac 트랙패드의 햅틱 엔진을 활용해 커서를 움직이거나 스크롤할 때 다양한 표면의 질감을 진동으로 표현합니다. 움직임·스크롤·탭의 햅틱 강도를 따로 조절하고 소리 효과도 추가할 수 있습니다.

tester-army/e2e — 자연어로 웹·모바일 앱을 테스트하는 E2E 프레임워크

발행

tester-army/e2e는 자연어로 테스트 목표를 지정하면 에이전트가 웹·모바일 앱을 조작하는 E2E 테스트 프레임워크입니다. 에이전트 동작을 검증한 테스트는 다음 실행에서 기록한 동작을 재생해 모델 호출을 줄이며, 일반적인 로케이터와 어서션도 함께 사용할 수 있습니다.

에이전트에게 필요한 것은 기억이 아니라 문서입니다

발행

글쓴이는 대화에서 잘라낸 조각을 벡터 검색으로 불러오는 에이전트 메모리가 오래되거나 맥락을 잃고, 무엇이 빠졌는지도 알기 어렵다고 지적합니다. 대신 Markdown 문서를 지식 저장소로 삼아 작업 전 읽고 작업 후 갱신하는 방식을 제안합니다.