동적 객체 속성 조회를 빠르게 하는 shape와 인라인 캐시
Max Bernstein의 글은 동적 객체의 속성 이름과 슬롯 위치를 shape로 연결하고, 인라인 캐시가 조회 지점에서 shape와 슬롯을 재사용하는 원리를 설명합니다. Python 축약 구현과 C++ 메모리 배치 스케치로 작동 방식을 보여 주며, 속성 추가 순서에 따라 shape가 달라지고 다른 클래스의 객체도 같은 shape를 공유할 수 있다고 설명합니다.
AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.
Max Bernstein의 글은 동적 객체의 속성 이름과 슬롯 위치를 shape로 연결하고, 인라인 캐시가 조회 지점에서 shape와 슬롯을 재사용하는 원리를 설명합니다. Python 축약 구현과 C++ 메모리 배치 스케치로 작동 방식을 보여 주며, 속성 추가 순서에 따라 shape가 달라지고 다른 클래스의 객체도 같은 shape를 공유할 수 있다고 설명합니다.
Micron은 모듈마다 언어 수준을 지정하고, 각 모듈이 같은 수준 이하의 모듈만 가져오게 합니다. 이에 따라 level 1 커널이 힙을 쓰는 level 3 모듈에 의존하는 경로를 제한합니다. 컴파일러와 인터프리터는 구현됐고 C99 변환기와 네이티브 백엔드는 개발 중이며, 교재는 Project Oberon 이식체를 에뮬레이트한 RISC-V 기계에서 부팅하는 과정을 소개합니다.
Zig 프로젝트가 11월 3일 0.17.1을 공개해 0.17.0 이후 보고된 57건 넘는 문제를 다뤘습니다. 수정 사례에는 macOS에서 중복 라이브러리 연결로 실행이 중단되던 회귀와 ppc64le Linux에서 Zig를 빌드할 때 발생하던 ABI 오류가 포함됩니다. 프로젝트는 0.17.0으로 업그레이드하지 못한 이용자 대부분이 0.17.1로 전환할 수 있을 것으로 안내했습니다.
2026년 10월 23일 C++26 국제표준안은 DIS 표결에서 필요한 3분의 2 찬성을 얻지 못해 국제표준으로 출판되지 못했습니다. WG21 위원 Andreas Fertig는 개인 블로그에서 여러 국가기구가 함수의 사전·사후 조건 등을 코드에 적는 Contracts 기능을 표준에 넣기에는 준비가 덜 됐다고 봤다고 전했습니다. 수정안 재표결·위원회 단계 회귀·기술 명세 발행·취소가 후속 경로로 남았지만, 모두 WG21의 다수 지지를 필요로 하고 차기 표준 일정도 늦어질 것이라고 그는 설명했습니다.
Pharo 14는 개발 도구와 리팩터링 명령 체계, 가상 머신을 정비한 Smalltalk 계열 언어·개발 환경의 새 버전입니다. RISC-V JIT 지원과 명령줄 디버거를 추가했으며, Pharo 저장소에서 978개 PR을 통합하고 Pharo 13 이후 이슈 616건을 닫았습니다.
언어를 C나 Rust로 바꿔도 대부분의 프로그램은 I/O 대기나 이미 최적화된 라이브러리 때문에 크게 빨라지지 않는다고 주장합니다. 프로파일링으로 병목을 찾고 쿼리 수를 줄이거나 작업을 비동기화하는 등 설계를 바꾸는 편이 효과적이라는 조언입니다.
Goose는 힙 할당이나 가비지 컬렉션 없이, 컴파일러가 정적으로 관리하는 데이터 스택에 값을 저장하는 시스템 언어입니다. 벤치마크에서 C++와 안전한 Rust보다 빠르고 메모리를 적게 쓴다고 주장하지만, 데이터 수명에 맞춰 구조를 설계해야 하며 재현 가능한 비교에는 의문이 남습니다.
C++26 국제 표준안이 회원국 표결에서 부결됐습니다. 찬성률은 정회원 투표 기준에 못 미쳤고 반대표 비율은 허용치를 넘었습니다. Lobsters 댓글에서는 계약(contracts) 기능을 둘러싼 이견이 원인으로 거론되지만, 이후 절차는 불확실하다는 의견이 나옵니다.
Roc으로 작성한 DEFLATE 압축기 roc-deflate를 C 라이브러리 libdeflate와 비교한 결과, 144개 벤치마크의 중앙값에서 Ryzen 9 3900X는 8.9%, M1 MacBook Pro는 2.6% 느렸습니다. 글쓴이는 메모리 안전성과 순수성 같은 보장을 유지하면서 C에 근접한 성능을 얻은 사례라고 설명하고, Roc의 최적화 방법을 공유합니다.
Josh Triplett가 Kangrejos 2026에서 Rust의 개발 중인 기능을 소개했습니다. 구조체 일부만 빌리는 view types, 값의 범위를 타입에 담는 pattern types, 새 borrow checker Polonius와 컴파일 타임 함수 등이 포함됩니다. 여러 기능은 아직 설계·실험 단계입니다.
개발자 dom96이 LLM과 코딩 에이전트가 다루기 어렵도록 설계한 난해 언어 KillSwitch와 모델 벤치마크를 공개했습니다. 최고 점수는 66.8점이지만 과제가 단순하고 인간 대조군도 없어, 결과만으로 모델의 코드 이해 능력을 판정하기는 어렵습니다.
Lean v4.35.0은 개발 내용을 여러 커널로 다시 검사하는 `lake check`를 제공합니다. Lean으로 작성하고 일관성을 증명한 con-leche와 Rust로 옮겨 검증한 con-ron을 포함해 검사 경로를 늘렸으며, 정식 배포 커널과 구현·컴파일러의 오류가 증명 결과에 끼칠 위험을 줄이는 데 초점을 둡니다.
저자는 네 정리 증명기에서 유클리드 방식으로 소수의 무한성을 증명하고, 자동화·증명 과정 확인·정리 검색·사용 경험을 비교합니다. Isabelle/HOL과 HOL4는 자동화가 강하고, Agda는 증명 과정을 명시적으로 드러내지만 수작업이 많다는 평가입니다.
컴파일러 최적화에는 양방향 등식보다 추상적인 프로그램을 더 구체적인 프로그램으로 좁혀 가는 정제(refinement) 규칙이 자주 등장합니다. 글은 E-Graph에 반사적·추이적인 부등식 관계를 내장하고, 함수 인자의 분산성(variance)에 맞춰 정제 폐쇄, E-matching, 추출을 확장한 프로토타입을 설명합니다.
PLDB는 1973년 첫 POPL 논문부터 올해 학회 논문까지 프로그래밍 언어 분야 논문 33,580편의 제목과 초록을 모아 검색하는 서비스입니다. 저자명이나 주제, 제목으로 검색할 수 있고 API도 제공합니다.
UC Berkeley의 Edward Lee가 동시성과 비결정성을 구분하고, 결정성을 물리 시스템이 아닌 모델의 속성으로 보자고 제안합니다. 결정적 모델이 성능을 반드시 떨어뜨리지 않으며, 동시·분산 시스템의 설계와 장애 허용을 쉽게 할 수 있다는 주장을 소개합니다.
개발자가 직접 쓰거나 자주 복사하고, 웃거나 놀랐던 열 가지 코드와 짧은 스크립트를 돌아봅니다. Hello World를 처음 입력한 순간부터 6502 자기 수정 코드, CSS만으로 만든 시까지, 코드가 컴퓨터의 가능성을 보여준 경험을 엮습니다.
코딩 에이전트가 코드 대부분을 작성하는 시대에도 프로그래밍 언어와 컴파일러는 필요하며, 언어 설계의 초점은 사람의 입력 편의성보다 강한 보장과 도구 연동으로 옮겨갈 수 있다고 주장합니다. 저자는 LSP 대신 질의 가능한 프로그램 데이터베이스를, 디버거 대신 에이전트가 탐색하는 런타임 관측 도구를 제안합니다.
if 조건문은 조건을 검사하는 데 쓰고, 상태를 바꾸는 호출은 먼저 별도 문장으로 실행하자는 제안입니다. 동작과 검사 과정을 분리하면 반환값의 뜻이 분명해지고, 짧게 훑어볼 때도 중요한 호출을 놓치기 어렵습니다.