Nim 2.4.0 안정판 출시…병렬 빌드와 스레드 간 순환 참조 지원
Nim 팀이 10월 28일 안정판 2.4.0을 발표했습니다. 새 문자열 API와 병렬·증분 빌드, 여러 스레드에 걸친 순환 참조를 처리하는 메모리 관리 방식 등을 추가했습니다.
보안과 개인정보, 운영체제와 클라우드·데이터 인프라를 다룹니다.
Nim 팀이 10월 28일 안정판 2.4.0을 발표했습니다. 새 문자열 API와 병렬·증분 빌드, 여러 스레드에 걸친 순환 참조를 처리하는 메모리 관리 방식 등을 추가했습니다.
Jank는 Clojure 방언에 C++ 상호운용 기능을 결합한 언어입니다. Clang 기반 JIT로 REPL에서 C++ 코드를 실행하며, C++ 헤더와 라이브러리를 직접 사용하고 네이티브 의존성을 빌드하도록 설계했습니다.
VCF Midwest 발표에서 Lisp 머신의 개발사와 Symbolics의 Genera 운영체제를 역사와 시연으로 소개합니다. 전용 하드웨어와 마이크로코드부터 Lisp로 구현한 커널·GUI, 실시간 디버깅과 파일 시스템까지 다룹니다.
Rich Hickey가 Clojure의 유연한 정보 처리와 정확성 문제를 설명하고, 데이터 구조의 변화를 견디면서 필요한 값과 기대 조건을 드러내는 destructuring 기능을 소개합니다. 강연은 선택자와 누락 처리 같은 새 지시자도 다루며, 정적 타입의 역할을 둘러싼 논쟁을 불러왔습니다.
Free Pascal Compiler와 Lazarus IDE에 동적 패키지 기능이 처음으로 완전히 구현됐습니다. IDE 전체를 다시 빌드하지 않고 컴포넌트를 설치하거나 제거할 수 있으며, 프로그램에서는 Pascal 클래스와 타입을 노출하는 플러그인을 만들 수 있습니다. 패키지별 유닛 이름 충돌과 추가 메타데이터에 따른 파일 크기 증가는 제약으로 남습니다.
C23을 적용한 C 프로젝트에서 [[maybe_unused]], 빈 초기화자 {}, 고정 기반 열거형을 쓰는 관례를 소개합니다. 반환값을 명시적으로 무시하고, union 초기화와 비트 플래그 열거형에서 생길 수 있는 혼란을 줄이는 방법입니다.
C의 널 종료 문자열은 길이를 구할 때 데이터를 순회해야 하고, 부분 문자열을 따로 쓰려면 복사가 필요합니다. 글쓴이는 포인터와 길이를 담는 읽기 전용 `str_view`, 데이터를 소유하는 `str_owned`를 제안하고 슬라이스, 검색, 비교, 분할 함수를 구현합니다.
스택 기반 언어 Factor 0.102가 1,068개 커밋을 포함해 출시됐습니다. ARM64 네이티브 지원과 Linux용 GTK4 기본 백엔드, RISC-V 포트가 추가됐으며 컴파일러와 VM, 라이브러리의 기능과 안정성도 폭넓게 개선됐습니다.
Intel 문서에 실렸지만 실제 CPU에서는 실행되지 않는 FMA 명령어 vfmaddrnd231pd를 추적합니다. 작성자는 문서의 설명과 실험 결과를 대조해 명령어가 CPU에 구현되지 않았을 가능성을 제기합니다.
저자는 OpenBSD, C, httpd, SQLite를 조합해 상용 웹 서비스를 만들고 CGI 방식으로 운영합니다. 단일 바이너리와 적은 의존성, 간단한 배포가 장점이지만 프로세스 생성 비용과 C의 메모리 안전성, 직접 구현해야 할 기능을 두고 논쟁이 이어집니다.
아레나 할당자(arena allocator)는 비슷한 수명을 가진 데이터를 큰 메모리 블록에 모아 관리하고, 사용이 끝나면 한꺼번에 비우는 방식입니다. 글은 C로 간단한 아레나를 구현하고 문자열 복사에 적용해, 개별 메모리 해제 부담을 줄이는 방법을 설명합니다.
Zig로 작성한 JavaScript 엔진 Kiesel이 Zig 0.17로 업데이트되고 0.4.0을 출시했습니다. 명령행 인자·환경 변수 API, Iterator 헬퍼, SerenityOS 포트와 인라인 캐시 개선을 담았으며, 인라인 캐시 변경은 마이크로벤치마크에서 20~30% 속도 향상을 보였습니다.
strtod 계열 함수의 오류 보고 방식은 표준 C와 POSIX에서 다릅니다. 오버플로·언더플로에는 math_errhandling과 구현별 제약이 따르고, 숫자 변환에 실패했는지는 errno가 아니라 endptr로 확인해야 합니다.
Zeta는 Rust의 빌림 검사기가 놓치는 메모리 영역 간 비중첩 관계를 추론하고, 별칭 가변 참조인 `&alias`와 출처(provenance) 기반 수명 추론을 도입한 실험적 언어입니다. 작성자는 이를 이용해 런타임 참조 세기나 검사 없이 연결 리스트와 병렬 슬라이스 처리를 구현하는 예를 제시하지만, 함수 본문에 기대는 추론의 API 안정성과 모델의 안전성은 토론에서도 쟁점이 됐습니다.
Python 3.15.0이 3.14 이후의 주요 기능과 최적화를 담아 정식 출시됐습니다. 실험적 JIT 성능 개선과 UTF-8 기본 인코딩, 지연 임포트, 프리 스레딩 지원 확대가 포함됐으며 macOS 27.0의 Tk 기반 앱 문제도 안내합니다.
Rust 언어팀이 사용자 정의 스마트 포인터도 내장 참조처럼 다룰 수 있도록 컴파일러의 ‘place’ 개념을 라이브러리 코드에 노출하는 설계를 제안했습니다. 아직 프로토타입 단계이며, borrow checker가 포인터별 읽기·쓰기·빌리기 규칙을 이해하도록 만드는 것이 목표입니다.
Bash를 일반적인 프로그래밍 언어처럼 해석하면 공백, 따옴표, 파이프에서 생기는 오류를 이해하기 어렵습니다. 글은 Bash의 토큰 분리와 확장, 서브셸, 파일 디스크립터 동작을 설명하고 안전한 스크립트 작성 습관을 소개합니다.
Rust를 먼저 배운 개발자가 C를 익히며 마주친 차이를 불리언, 문자열, 정수 폭, 오류 처리, 배열, 포인터 사례로 설명합니다. C의 동작을 이해하고 메모리·플랫폼 관련 실수를 피하는 데 도움이 되는 입문용 비교 글입니다.
Brut은 약 120줄의 POSIX 셸 스크립트로 CLI 명령을 찾아 실행하는 라우터입니다. 명령을 작은 실행 파일로 나누고 네임스페이스와 공유 스크립트로 묶어, 런타임 의존성을 최소화한 유닉스 프로그램을 구성하는 방식을 설명합니다.
Haskell 서비스 코드를 새로 작성하며 이펙트 시스템을 걷어낸 경험을 설명합니다. 글쓴이는 함수 인자, 일반 IO, 예외를 조합해 이펙트를 표현하고, 효과 추적이나 모킹 같은 목적도 별도 프레임워크 없이 해결할 수 있다고 주장합니다.