Generic Const Arguments와 개발자
Rust Const Generics 프로젝트 그룹이 제네릭 매개변수를 포함한 상수 인자를 지원하는 GCA 기능군의 설계와 사용법을 소개합니다. 기존 제약을 풀지만 모든 기능은 아직 실험 단계이며, 안정화 제안까지 시간이 더 필요합니다.
개발 도구와 언어, 웹 기술과 오픈소스 프로젝트의 변화를 다룹니다.
Rust Const Generics 프로젝트 그룹이 제네릭 매개변수를 포함한 상수 인자를 지원하는 GCA 기능군의 설계와 사용법을 소개합니다. 기존 제약을 풀지만 모든 기능은 아직 실험 단계이며, 안정화 제안까지 시간이 더 필요합니다.
RacketCon이 10월 3~4일 열립니다. 발표는 Typed Racket의 타입 추론부터 LLVM 기반 언어 Pille, 매크로와 IDE 지원, 부동소수점 정확도, 새 FFI까지 Racket 생태계의 언어 설계와 구현을 다룹니다.
`wgsl-rs`가 Rust 코드를 WGSL 셰이더로 바꾸는 0.1.0-beta를 공개했습니다. 연산자 우선순위와 벡터 비교처럼 두 언어의 의미가 다른 부분을 보정하고, 런타임 IR에서 `wgpu` 파이프라인을 생성하도록 개선했습니다.
Rust 1.99.0이 안정 버전으로 출시됐습니다. C ABI 가변 인자를 받는 함수를 Rust로 정의하는 기능과 raw pointer의 크기·정렬 정보를 다루는 기능이 안정화됐으며, Box::leak으로 누수시킨 메모리를 나중에 해제하는 패턴은 피하도록 문서 지침을 바꿨습니다.
타입클래스는 여러 타입에 같은 연산 이름을 쓰는 임의 다형성을, 모듈 시스템은 프로그램을 인터페이스와 구현 단위로 나누는 모듈 추상화를 목표로 합니다. 글은 두 기능의 차이를 예시와 언어별 구현으로 설명하며, 작성자는 대규모 프로그램을 구성할 때 모듈 추상화를 더 중시합니다.
Edward Kmett가 만든 THC는 GHC의 프런트엔드와 Core 최적화를 유지하면서, GHC Core를 Truffle·GraalVM 위에서 JIT 또는 AOT 컴파일하는 프로젝트입니다. GHC 9.14.1의 prim-op와 여러 고급 기능을 지원하며, Haskell 프로그램은 물론 GHC 자체도 실행합니다. 성능은 워밍업 뒤 GHC보다 대체로 10~20% 느렸지만, 최근 회귀가 발생해 개선 중입니다.
TypeScript AST에서 부모 노드와 자식 속성을 함께 좁히는 재사용 타입 가드를 `is-kit`의 `and`, `refineKey`, `refineDefinedKey`, `refineIndex`로 구성하는 방법을 설명합니다. TypeScript 7의 AST 타입과 타입 검사 성능에 관한 고려 사항도 다룹니다.
`foldl`과 `foldr`는 리스트를 훑는 방향보다 결합 순서가 다르며, Haskell의 지연 평가에서는 누산 함수의 엄격성에 따라 시간·공간 사용과 스트리밍 동작이 달라집니다. 누산 함수가 엄격하면 `foldl'`, 두 번째 인자에 느슨하면 `foldr`를 쓰는 기준을 설명합니다.
이 글은 이진 트리로 산술식을 계산하는 과제에서 출발해 C로 그래프 환원 기반 함수형 언어를 만든 과정을 설명합니다. 클로저와 청크 메모리 할당기, 마크-앤드-스윕 가비지 컬렉터를 구현하며 fib(40)의 메모리 사용량을 12GB 이상에서 1.7MB로 줄였지만, 실행에는 6분이 걸렸습니다.
리스프(Lisp)의 괄호가 읽기를 방해한다는 주장에 반박하며, 익숙해진 독자는 괄호를 세기보다 들여쓰기와 표현식의 구조를 본다고 설명합니다. 저자는 괄호가 편집기에서 코드 구조를 유지하고 자동 들여쓰기를 돕는 점도 강조합니다.
LLM이 코딩 비용을 크게 낮췄다는 주장만으로 개발의 병목이 사라지지는 않습니다. 글은 DHH의 Rails World 기조연설을 비판적으로 검토하며, 코드 작성 뒤에 남는 배포·유지보수·회귀 방지와 새로운 아이디어의 희소성을 짚습니다.
Tcl/Tk 9.1은 Tcl 9.0을 바탕으로 새 명령과 C API, 메모리 효율 개선을 더한 개발 릴리스입니다. Tk에는 스크린 리더 지원과 양방향 텍스트, 토글 스위치 위젯이 추가됩니다.
rust-analyzer #347은 자동 완성, 의미 토큰 캐시, 상수 평가와 비동기 클로저 처리를 개선합니다. 트레이트 메서드에 구현 정보를 표시하고, `#[cfg]` 값과 속성 자동 완성의 중복·누락 문제도 수정합니다.
C의 int와 long이 고정된 비트 수를 보장하지 않는 이유를 1970년대의 다양한 컴퓨터 구조와 C의 이식성 목표에서 설명합니다. 글은 최소 범위를 보장하면서 하드웨어에 맞춰 타입 크기를 정한 선택이 당시에는 효율적인 코드 생성과 여러 기종 지원에 도움이 됐다고 주장하고, 오늘날의 고정 폭 정수 타입과 남은 불편도 함께 다룹니다.
Lisp의 괄호 중심 문법이 낯설게 읽히는 이유를 인지과학과 시각적 그룹화 관점에서 분석합니다. 저자는 괄호 사이 거리, 코드의 중첩과 읽는 순서가 가독성에 영향을 준다고 설명하고, 새 언어 문법을 설계할 때 고려할 원칙을 제안합니다.
LuaRocks.org가 LuaJIT 바이트코드를 일반 Lua 소스처럼 불러오는 취약점으로 원격 코드 실행 공격을 받았습니다. 운영자는 서버를 교체하고 자격 증명을 폐기했으며, 기존 패키지 변조 흔적은 찾지 못했다고 밝혔습니다. 이용자는 API 키를 재발급하고 비밀번호와 2단계 인증을 다시 설정해야 합니다.
Contrastive-LM은 Qwen3-8B 인코더를 고정하고 상태·행동 프로젝션 헤드만 학습한 8B 모델입니다. 후보를 생성하는 대신 주어진 후보를 점수화하며, 상태와 행동 임베딩을 캐싱해 다수 후보를 빠르게 평가합니다.
저자는 Brainfuck의 여덟 가지 명령만으로 레이 트레이서를 구현하며 고정소수점 연산과 산술·제어 흐름을 직접 구성합니다. 2,300만 바이트가 넘는 프로그램은 픽셀 하나를 그리는 데 약 1분이 걸렸고, 후속 JIT 개선으로 렌더링 결과도 얻었습니다.
C와 C++의 포인터를 메모리 주소와 바이트 단위의 관점에서 설명합니다. 포인터 연산, 배열 인덱싱, 동적 할당, 가상 메모리와 세그멘테이션 오류가 어떻게 연결되는지 예제로 살펴봅니다. 다만 포인터를 단순한 정수로 보는 설명에는 언어 표준과 구현에 따른 주의점이 있습니다.
c(x)는 타입과 값에 같은 언어를 쓰고, 교집합·합집합 연산과 확장 가능한 has 메서드로 모나드 조합과 효과 처리를 표현합니다. 글쓴이는 서로 다른 모나드의 연산을 한 블록에서 이어 쓰는 예제와, 실행 시점에 핸들러를 적용해 효과 구현을 바꾸는 방식을 소개합니다.