Frozendict 🧊: Python·Node.js를 위한 최신 불변 해시맵
frozndict는 Rust로 구현하고 Python·Node.js 바인딩을 제공하는 불변·해시 가능 딕셔너리입니다. 삽입 순서를 유지하면서 해시를 캐시하고 copy()를 O(1)로 처리하며, 작성자가 제시한 벤치마크에서는 반복·복제·동등성 검사에서 기존 구현과 비교 가능한 성능을 보입니다.
frozndict는 Rust로 구현하고 Python·Node.js 바인딩을 제공하는 불변·해시 가능 딕셔너리입니다. 삽입 순서를 유지하면서 해시를 캐시하고 copy()를 O(1)로 처리하며, 작성자가 제시한 벤치마크에서는 반복·복제·동등성 검사에서 기존 구현과 비교 가능한 성능을 보입니다.
불변(immutable)과 가변(mutable) 자료구조가 서로의 서브타입이 될 수 없는 이유를 Liskov 치환 원칙과 암묵적 계약의 관점에서 설명합니다. 단순히 제공 메서드의 개수만 비교하면 놓치기 쉬운 해시 안정성, 타입 클래스(type class), duck typing의 차이까지 다룹니다.
C++20에서는 UTF-8 문자열 리터럴인 u8"..."의 원소 타입이 기존 const char에서 const char8_t로 바뀌었습니다. 그 결과 C++17에서 정상적으로 컴파일되던 코드가 const char*를 요구하는 기존 API 호출에서 깨질 수 있으며, Google C++ Style Guide도 가능한 경우 u8 접두사를 피하라고 권고합니다.
Rust로 작성된 조판 시스템 Typst가 0.15 버전을 공개하며 가변 폰트, MathML 수식 출력, 다중 문서 번들, 챕터별 참고문헌, 다중 PDF 표준 지정 등 대형 기능을 추가했습니다. HTML 출력은 아직 실험 단계지만 MathJax 없이 TeX 수준의 수식을 브라우저에 렌더링할 수 있게 되어 LaTeX 대체재로서의 가능성을 다시 보여주었습니다.
Go 1.24부터 기본이 된 Swiss Table 기반 map에서 map[int64]int64 100만 엔트리가 이론값 16MB가 아닌 37.8MB를 차지하는 이유를 강제 GC와 HeapAlloc 측정으로 분석한 글입니다. 그룹·테이블 구조와 7/8 로드 팩터, 할당자의 크기 클래스 올림 때문에 엔트리당 비용이 21~44바이트 사이를 오가며, struct{} set의 패딩 회귀와 삭제 시 메모리 미회수 같은 실무 영향도 함께 다룹니다.
고대 그리스어에는 인도유럽어로 거슬러 올라가지 않는 단어가 약 1,000개 존재하며, '미로(labyrinth)', '올리브', '바다(θάλασσα)', 아테네, 아킬레우스 같은 이름까지 포함됩니다. 이 글은 이 단어들이 그리스인 이전 에게해 지역의 기층 언어(Pre-Greek)가 남긴 흔적임을 음운 규칙, 발음 변형, 의미 범주 분포라는 세 가지 증거로 추적합니다.
Python 코드만으로 데스크톱·모바일·웹 앱을 만들 수 있는 UI 프레임워크 Flet이 1.0을 공개했습니다. Flutter 기반으로 150개 이상의 컨트롤을 제공하며, NumPy와 pandas 같은 Python 패키지를 그대로 쓰고 flet build로 각 플랫폼용으로 패키징할 수 있습니다.
PHP 배열이 정수 순서대로 채워진 packed list로 유지되는 동안에는 원소당 16바이트로 매우 효율적이지만, 문자열 키 하나만 추가해도 해시 테이블로 전환되며 백만 개 원소 기준 25MB가 추가로 소모됩니다. 저자는 PHP 8.4 기준으로 zend_array 내부 구조를 뜯어보며 전환 조건과 비용을 계측했고, 연관 배열 대신 타입이 선언된 클래스로 행을 담으면 메모리가 거의 절반이 된다는 결론을 제시합니다.
Perl Weekly Challenge 391회의 두 과제 — 정렬된 두 배열을 합쳐 중앙값을 구하는 문제와 상자를 서로 안에 넣어 최대 스택을 구하는 문제 — 를 Perl로 풀이한 글입니다. 저자는 통계 모듈·직접 정렬·부분 병합 세 접근을 벤치마크해 직접 정렬이 가장 빠르다는 결과를 확인했고, 상자 문제는 Perl 5.44의 새 class 문법과 너비 우선 탐색으로 해결합니다.
RE#(resharp) 정규식 엔진의 저자가 여러 패턴에 레이블을 붙여 한 번의 스캔으로 텍스트를 분류하는 'categorize_all' 기능을 소개합니다. spaCy NER 대비 약 4,500배 빠른 1.92 GB/s 처리량을 보였고, 교집합(&)과 여집합(~) 연산으로 윤년까지 포함한 달력 패턴이 32개 DFA 상태로 컴파일됨을 보여줍니다.
Bend는 C에 근접한 단일 코어 속도, 스레드나 락 없이 CPU·GPU로 확장되는 자동 병렬화, 그리고 Lean·Rocq식 증명 검사를 결합한 새 프로그래밍 언어입니다. LAWS.bend에 깨면 안 되는 법칙을 선언해 두면 AI가 이를 위반하는 코드를 배포할 수 없게 만들어, AI가 코드를 대신 쓰는 시대에 '의도를 정밀하게 명시하는 수단'을 표방합니다.
V 언어로 커널을 처음부터 작성한 Unix-like 운영체제 Vinix가 Apple Silicon Mac 지원과 Alpine Linux 바이너리 호환을 내세우며 다시 주목받고 있습니다. 부팅 후 약 100MB RAM과 1GB 디스크만 사용하며, Linux 시스템 콜 인터페이스를 구현해 Chromium, GIMP, Blender 등 기존 패키지를 네이티브로 실행합니다. 현재 M1 GPU 드라이버 개발이 진행 중이며, Wine과 x86 변환 레이어를 기반으로 한 게이밍 지원도 로드맵에 포함되어 있습니다.
C 언어 배경의 개발자가 Python의 for 루프를 낯설어하다가 range 함수의 구조를 이해하면서 루프의 동작 방식을 파악하게 된 과정을 정리한 글입니다. range가 start·stop·step 인자를 받는 불변 시퀀스 객체이며, 크기와 무관하게 O(1)의 시간과 공간으로 생성된다는 사실을 설명하고, 비선형 반복은 while 루프가 더 적합하다는 점을 짚습니다.
한 번에 하나의 작업을 처리하는 소규모 AI 에이전트를 2,150줄의 bash에서 Python으로 하루 만에 포팅한 개발자의 회고입니다. 결론은 단순한 'bash가 틀렸다'가 아니라, 리라이트의 비용은 시작 전에 이미 결정되어 있으며, 표현력 부족이 성능보다 먼저 설계를 지배한다는 분석입니다. 포팅 결과 코드는 40% 줄었지만 총 라인 수는 주석 때문에 오히려 늘었다는 역설적인 수치도 담겨 있습니다.
Rust 프로젝트가 rust-lang 멤버와 인기 크레이트(crates) 소유자를 노리는 표적 공격 캠페인이 진행 중이라고 공식 경고했습니다. 공격자는 채용·계약 등을 미끼로 한 화상 통화를 통해 악성코드를 설치하게 만들고, 탈취한 계정으로 악성 크레이트를 배포하려는 것이 목적입니다. Rust 사용자라면 MFA 상태와 계정 로그인 기록을 점검할 것이 권고됩니다.
Mark Karpov이 처음부터 새로 작성한 Haskell 포매터 Tilia가 Hackage에 첫 릴리스로 공개되었습니다. ghc-lib-parser 기반 위에서 오랫동안 난제로 꼽히던 연산자 픽시티(fixity) 추론과 CPP 전처리기 지원을 원리 있는 방식으로 해결하려 시도했다는 점이 핵심입니다. 포매터가 Cabal 빌드 플랜과 공생하며 실제 의존성 정보를 읽어 정확도를 보장하는 설계가 특징입니다.
Vale 언어의 저자 Evan Ovadia가 Rust 컴파일러와 직접 통신하는 새 언어 Valen의 첫 상호운용 성공 사례를 공개했습니다. C ABI를 우회하고 rustc를 라이브러리로 구동해 언어 경계를 넘는 제네릭 호출과 Rust 트레이트 구현을 실현했으며, 최종 목표는 경계를 넘나드는 메모리 안전성입니다.
Quarkus 4와 Spring Boot 4.x가 2026년 11월 같은 시기에 주요 릴리스를 앞두고 있습니다. Quarkus는 Vert.x 5 기반 I/O 코어 전면 재작성과 Project Leyden AOT로 기동 시간을 3초에서 900ms까지 줄이는 등 공격적인 변화를, Spring Boot는 모듈화와 점진적 개선으로 대응하고 있습니다. JVM 백엔드를 운영한다면 향후 몇 달이 향후 수년간의 기본값을 결정한다는 것이 저자의 진단입니다.
Meta(Facebook) AI가 공개한 MMS(Massively Multilingual Speech) 프로젝트의 3억 파라미터 체크포인트입니다. 약 50만 시간 분량, 1,400개 이상 언어의 음성 데이터로 Wav2Vec2 자기지도학습 방식으로 사전학습됐으며, ASR·번역·분류 같은 다운스트림 작업에 파인튜닝해 사용하는 기반 모델입니다.
멀티스레드 프로그램에서 힙이 병목이 되는 이유를 설명하고, dlmalloc부터 snmalloc까지 주요 메모리 할당자를 스레드 안전성·CAS 경합·NUMA 지역성·파편화 관점에서 비교한 글입니다. 워크로드 유형별로 어떤 할당자를 고르고 무엇을 피해야 하는지 추천표까지 제시합니다. 임베디드·저지연·NUMA 환경에서 할당자 선택을 고민하는 개발자에게 유용한 참고 자료입니다.