Category: 개발

Go 채널: 비판적인 재평가

2025-04-13

숙련된 Go 개발자가 Go의 채널 메커니즘에 대한 비판적인 평가를 제시합니다. CSP 모델을 기반으로 한 Go의 이론적 토대와 채널 및 고루틴에 대한 의존성을 인정하면서도, 저자는 실제 구현에는 몇 가지 결점이 있다고 주장합니다. 여기에는 고루틴 누수 가능성, 기존 동기화 원시자보다 낮은 성능, 다른 동시성 메커니즘과의 복잡한 상호 작용 등이 포함됩니다. 저자는 채널 사용에 신중해야 하며, 많은 시나리오에서 뮤텍스와 콜백이 더 나은 대안이라고 주장합니다. 채널 시스템 개선으로 조건 변수에서 선택을 허용하고, 사용되지 않는 채널을 관리하기 위한 가비지 컬렉션을 개선하는 것이 제안됩니다.

개발 채널

Whenever: Python용 형식 안전 및 DST 지원 날짜 및 시간 라이브러리

2025-04-13
Whenever: Python용 형식 안전 및 DST 지원 날짜 및 시간 라이브러리

Python의 `datetime` 라이브러리의 함정에 지치셨나요? Whenever가 등장했습니다! 형식 안전하고 DST를 지원하는 날짜 및 시간 연산을 제공하며 다른 타사 라이브러리와 표준 라이브러리를 훨씬 능가하는 성능을 제공합니다. 고성능 Rust 구현과 사용 편의성을 중시하는 순수 Python 버전 중에서 선택할 수 있습니다. DST 처리 및 형식 검사에서 표준 라이브러리의 결점을 해결하고 정확한 날짜 및 시간 코드를 쉽게 작성할 수 있는 깔끔한 API를 제공합니다.

Chonky: Transformer를 사용한 지능형 텍스트 분할

2025-04-13
Chonky: Transformer를 사용한 지능형 텍스트 분할

Chonky는 미세 조정된 Transformer 모델을 사용하여 텍스트를 의미있는 의미 단위로 지능적으로 분할하는 Python 라이브러리입니다. 이 라이브러리는 검색 증강 생성(RAG) 시스템에서 유용합니다. 대량의 텍스트를 효율적으로 처리하고 더 작고 관리하기 쉬운 조각으로 나누어 분석 및 처리를 용이하게 합니다. 예제 코드는 Chonky를 사용하여 샘플 텍스트를 의미적으로 일관된 조각으로 분할하는 방법을 보여줍니다.

8년간의 헌신 후 ArcoLinux 개발자 은퇴

2025-04-13

8년간 ArcoLinux 프로젝트 개발과 활기찬 Linux 커뮤니티 육성에 헌신해 온 개발자가 은퇴를 발표했습니다. 그의 목표는 Linux 사용자 교육 및 역량 강화였으며, 5,000개 이상의 교육 비디오, ArcoInstall과 같은 도구, 그리고 수많은 커뮤니티 지원을 만들어냈습니다. 나이에 따른 체력적인 어려움에 직면하여 프로젝트가 정점에 달한 현재 은퇴를 결정했습니다. 앞으로는 인생을 즐기고 취미로 Linux를 다룰 계획입니다.

개발

Git 20주년: Linus Torvalds가 회고하다

2025-04-13
Git 20주년: Linus Torvalds가 회고하다

Git 20주년을 기념하여 GitHub은 Linus Torvalds와의 질의응답 세션을 개최했습니다. Linus는 Git의 기원을 회상하며, Linux 커널의 버전 관리 혼란을 해결하기 위해 탄생했음을 설명했습니다. 단 10일 만에 개발된 초기 버전은 전 세계 소프트웨어 개발에 필수적인 도구로 진화했습니다. 초기 어려움에도 불구하고 Git의 채택은 폭발적으로 증가했습니다. Linus는 자신의 필요가 충족된 후 개인적인 관심이 줄어들었고, 유지보수를 Junio Hamano에게 넘겼음을 인정했습니다. 오늘날 Git의 보급은, 버려진 프로젝트 증가와 같은 새로운 과제를 안겨주고 있습니다. Linus는 새로운 프로젝트 계획 없이 Linux 커널의 지속적인 개발에 집중하고 있습니다.

개발

iOS 18.4 주변 소리: Apple Music 구독 필요 없음

2025-04-13
iOS 18.4 주변 소리: Apple Music 구독 필요 없음

iOS 18.4는 제어 센터에 새로운 주변 소리 기능을 추가하여 수면, 휴식, 집중, 웰빙 모드를 제공합니다. 놀랍게도 Apple Music 구독 없이도 사용할 수 있습니다. 저자는 이 기능을 살펴보는 과정에서 음악 앱을 설치해야 하며, *.flac 파일은 지원하지 않는다는 것을 알게 되었습니다. 이 글에서는 ffmpeg 명령줄 도구 또는 XLD/Audio Converter 소프트웨어를 사용하여 *.flac 파일을 Apple의 무손실 *.m4a 형식으로 변환하는 방법을 자세히 설명하고 변환 스크립트를 공유합니다. 최종적으로 저자는 변환된 음악을 케이블을 통해 iPhone에 동기화했으며, Apple Music이 음악 파일에 미칠 수 있는 잠재적인 간섭을 피하기 위해 케이블 전송을 권장합니다.

개발 주변 소리

p2panda: 로컬 우선, 개인 정보 보호를 준수하는 P2P 앱 구축을 위한 모듈식 툴킷

2025-04-13

p2panda는 모듈식 오픈소스 프로젝트로, 개발자가 현대적이고, 개인 정보 보호를 준수하며, 안전한 로컬 우선 애플리케이션을 구축할 수 있도록 지원합니다. 모듈식 설계 덕분에 구성 요소 선택과 기존 시스템과의 원활한 통합에 유연성이 있습니다. BLAKE3, Ed25519, STUN 등 기존 라이브러리와 표준을 활용하여 불안정하거나 일시적인 연결에서도 협업, 암호화, 액세스 제어를 보장합니다. 핵심은 '브로드캐스트 전용' 아키텍처로, 오프라인 우선일 뿐만 아니라 단파, 패킷 무선 등 포스트 인터넷 통신 인프라와도 호환됩니다. 피어 검색, 데이터 동기화, 대용량 파일 전송, 데이터 저장, 스트림 처리를 위한 도구를 제공합니다.

개발

YAML의 "노르웨이 문제": NO가 False로 해석되는 이유

2025-04-12
YAML의

YAML의 불리언 값 파싱에는 "노르웨이 문제"로 알려진 짜증나는 결함이 있습니다. YAML이 ISO 3166-1 ALPHA-2 코드 NO(노르웨이)를 불리언 값 false로 해석하기 때문에 데이터 파싱 오류가 발생할 수 있습니다. 이 게시글에서는 이 문제를 설명하고, 이 문제를 방지하기 위해 이중 따옴표를 사용하여 이스케이프하거나 StrictYAML과 같은 라이브러리를 사용하는 것을 제안합니다. YAML에서의 다른 문제가 되는 값으로는 .0으로 끝나는 버전 번호가 숫자로 변환되는 것과 'Null'과 같은 문자열이 NULL로 변환되는 것이 있습니다.

어셈블리어: LLM 시대에도 여전히 중요한가?

2025-04-12
어셈블리어: LLM 시대에도 여전히 중요한가?

대규모 언어 모델(LLM) 시대에도 어셈블리어 학습은 여전히 가치가 있습니다. 이 글에서는 DeepSeek이 네트워크 작업 속도 향상을 위해 Nvidia의 PTX 중간 언어를 사용한 맥락에서 어셈블리어의 중요성을 살펴봅니다. 고급 언어와 LLM이 코드를 생성할 수 있지만, 어셈블리어를 이해하면 컴퓨터 작동 방식에 대한 깊이 있는 통찰력을 얻고 고급 언어 코드 디버깅에 도움이 됩니다. 이 글에서는 7가지 어셈블리어(레트로 6502, Z80, 8086, 68000, 그리고 최신 x86-64, ARM, RISC-V)를 비교하고, 학습 자료, 학습 곡선, 사용 편의성, 접근성, 재미 측면에서 평가합니다. 최종적으로 명확한 학습 경로, 풍부한 자료, 그리고 미래 전망을 고려하여 초보자에게 RISC-V가 최적의 선택이라고 결론짓습니다.

개발

Rust GPU: Shadertoy 셰이더를 Rust로 이식

2025-04-12

Rust GPU를 사용하면 GPU 프로그램(셰이더)을 Rust로 작성할 수 있습니다. 저자는 몇몇 인기 있는 Shadertoy 셰이더를 Rust로 손쉽게 이식했습니다. Rust GPU는 Rust 코드를 SPIR-V로 컴파일하여 Vulkan 워크플로우에 매끄럽게 통합됩니다. 이 프로젝트는 트레잇, 제네릭, 매크로 등 Rust의 기능을 활용하여 CPU와 GPU 간 데이터 공유를 간소화합니다. 또한 이 프로젝트는 wgpu와 naga의 문제를 해결하여 에코시스템에 기여했습니다.

개발

설정 언어의 다섯 가지 수준: 단순 문자열부터 튜링 완전성까지

2025-04-12

이 글에서는 파일의 단순한 문자열부터 본격적인 프로그래밍 언어까지 설정 언어의 다섯 가지 수준을 탐구합니다. 저자는 적절한 수준을 선택하는 것이 중요하며, 단순성을 유지하고 과도한 설계를 피하기 위해 가능한 한 낮은 수준을 선택해야 한다고 주장합니다. 각 수준의 특징, 장점, 단점, 잠재적인 문제(순환 의존성 등)는 실제 예시를 사용하여 설명합니다. 이 글은 불필요한 복잡성을 피하기 위해 다양한 시나리오에서 현명한 선택을 할 것을 권장하며 결론을 맺습니다.

개발

arXivLabs: 커뮤니티와의 협업을 통한 실험 프로젝트

2025-04-12
arXivLabs: 커뮤니티와의 협업을 통한 실험 프로젝트

arXivLabs는 협력자들이 arXiv의 새로운 기능을 웹사이트에서 직접 개발하고 공유할 수 있는 프레임워크입니다. arXivLabs에 참여하는 개인 및 조직은 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 arXiv의 가치를 수용하고 있습니다. arXiv는 이러한 가치를 위해 노력하며, 이를 준수하는 파트너와만 협력합니다. arXiv 커뮤니티에 가치를 더할 프로젝트 아이디어가 있으십니까? arXivLabs에 대해 자세히 알아보세요.

개발

Zod v4 베타 출시: 더 빠르고, 더 작고, 더 효율적인 타입 검증

2025-04-12
Zod v4 베타 출시: 더 빠르고, 더 작고, 더 효율적인 타입 검증

1년 이상의 활발한 개발 끝에 Zod v4 베타 버전이 출시되었습니다! 더 빠르고, 더 작으며, TypeScript 컴파일 효율이 향상되었고, 오랫동안 요청되었던 기능들이 구현되었습니다. Zod 4는 오랫동안 존재해왔던 설계상의 제약을 해결하고, 오랫동안 요청되었던 기능의 기반을 마련하며, Zod에서 가장 많은 투표를 받았던 열린 이슈 중 9개를 해결하는 완전히 새로운 내부 아키텍처를 사용합니다. 또한 새로운 자매 라이브러리인 @zod/mini는 번들 크기를 크게 줄이는 트리 쉐이킹 가능한 함수형 API를 제공합니다. Zod 4는 새로운 메타데이터 시스템, JSON Schema 변환, 개선된 식별 유니온 지원 및 기타 여러 가지 개선 사항도 도입합니다.

개발 타입 검증

Evidence: 강력한 데이터 시각화 앱 구축 프레임워크

2025-04-12
Evidence: 강력한 데이터 시각화 앱 구축 프레임워크

Evidence는 데이터 시각화 애플리케이션을 구축하기 위한 강력한 프레임워크입니다. 다양한 차트 유형(선 차트, 막대 차트, 산점도, 히트맵 등), 지도, 입력 구성 요소 및 UI 요소를 포함한 풍부한 구성 요소 라이브러리를 갖추고 있습니다. SQL 쿼리를 포함한 여러 데이터 소스를 지원하며 AWS Amplify, Azure Static Apps 등 클라우드 서비스 및 자체 호스팅과 같은 다양한 배포 옵션을 제공합니다. 개발자는 대화형 데이터 시각화 앱을 쉽게 만들고 사용자 지정 구성 요소 및 플러그인을 통해 기능을 확장할 수 있습니다.

개발

Amazon Prime Video, Rust와 WebAssembly로 거실 UI 재구축

2025-04-12
Amazon Prime Video, Rust와 WebAssembly로 거실 UI 재구축

Amazon 엔지니어들이 Rust와 WebAssembly를 사용하여 Prime Video 거실 기기 UI를 재구축한 과정을 자세히 설명합니다. 셋톱박스, 게임 콘솔 등 기기 간 성능 차이, 하드웨어 불일치, 네이티브 코드 업데이트 어려움 등의 과제에 직면하여 하이브리드 아키텍처를 채택했습니다. 저수준 UI 엔진은 Rust와 WebAssembly로 구축되었고, 비즈니스 로직은 React와 JavaScript로 작성되어 메시지 버스를 통해 통신합니다. 성능과 응답성을 더욱 향상시키기 위해 UI 레이어를 완전히 Rust로 마이그레이션하고 새로운 Rust UI SDK를 개발했습니다. 새로운 아키텍처는 입력 대기 시간을 크게 줄였고, 이전에는 불가능했던 애니메이션 효과를 구현했습니다. WebAssembly 생태계는 계속해서 진화하고 있으며, 패닉 처리 등의 과제가 남아 있지만, 전반적인 결과는 긍정적이며 개발자 생산성도 향상되었습니다.

개발

SVG를 사용한 세련된 애니메이션 목차 만들기

2025-04-12
SVG를 사용한 세련된 애니메이션 목차 만들기

이 글에서는 SVG와 CSS 애니메이션을 사용하여 Clerk과 유사한 동적인 목차를 만드는 방법을 보여줍니다. 저자는 먼저 SVG 패스와 mask 속성을 사용하여 애니메이션 라인 효과를 만듭니다. 그런 다음 목차의 강조 표시 부분 애니메이션을 구현하기 위해 SVG 패스에서 마스크 맵을 영리하게 생성하고 CSS의 `mask-image` 속성과 애니메이션을 결합하여 부드러운 강조 표시 효과를 만듭니다. 이 과정은 프런트엔드 애니메이션에서 SVG의 강력함을 보여주며 저자의 독창성과 세부 사항에 대한 주의를 반영합니다.

Kilo Code: 혁신 없이 최고의 AI 코딩 어시스턴트 구축하기

2025-04-12
Kilo Code: 혁신 없이 최고의 AI 코딩 어시스턴트 구축하기

Kilo Code는 혁신 대신 '빠른 추종' 전략을 채택하여 Roo Code 및 Cline과 같은 기존의 오픈소스 AI 코딩 어시스턴트의 최고 기능을 통합합니다. 이러한 프로젝트를 포크하고 병합하여 Kilo Code는 빠르게 두 프로젝트의 상위 집합이 되었으며, 포괄적인 툴셋을 제공합니다. 목표는 시장 경쟁에서 승리하는 것이 아니라 개발자의 생산성을 향상시키는 진정으로 유용한 도구를 만드는 것입니다. 오픈소스 특성은 커뮤니티의 기여를 장려하고 빠른 반복을 가능하게 하여 속도와 협업을 통해 독점적인 솔루션을 능가하고자 합니다.

개발 빠른 추종

Tunarr: 나만의 맞춤형 라이브 TV 플랫폼 구축

2025-04-12

Tunarr는 Plex, Jellyfin 등의 서버에 있는 미디어를 사용하여 라이브 TV 채널을 만들 수 있는 강력한 소프트웨어입니다. 사용하기 쉬운 웹 UI를 통해 채널, 프로그램, 광고, 설정을 사용자 지정할 수 있습니다. 위장된 Tunarr HDHomerun 튜너를 Plex, Jellyfin 또는 Emby에 추가하여 채널을 시청하거나, 생성된 M3U 파일을 사용하여 타사 IPTV 플레이어 앱과 함께 사용할 수 있습니다. TV에 대한 열정과 dizqueTV를 기반으로 탄생한 Tunarr는 스택 현대화, 기존 사용자를 위한 마이그레이션 경로 제공, 안정성 및 성능 향상, 웹 UI 개선, 그리고 수많은 새로운 기능 추가를 목표로 합니다.

개발 라이브 TV

SAP에서 0-day 취약성 발견하기: 보안 엔지니어의 이야기

2025-04-12
SAP에서 0-day 취약성 발견하기: 보안 엔지니어의 이야기

보안 엔지니어가 SAP 프로젝트 작업 중에 SAP setuid 바이너리에서 두 개의 0-day 취약성을 발견하고 로컬 권한 상승을 달성했습니다. 이 블로그 게시물에서는 대상 식별 및 분석부터 악용에 이르기까지 취약성 발견 프로세스를 자세히 설명합니다. 최종적으로 root 권한에 액세스했습니다. SAP SAR 아카이브를 구문 분석하고 조작하기 위해 개발된 SAPCARve라는 도구가 악용에 도움이 되었습니다. 이러한 취약성에는 SAP에서 CVE-2024-47595가 할당되었습니다.

Charts.css: 자바스크립트가 필요 없는 반응형 차트 프레임워크

2025-04-12

Charts.css는 자바스크립트 없이 면적 차트, 막대 차트, 선 차트 등 다양한 반응형 차트를 만들 수 있는 경량의 오픈소스 차트 프레임워크입니다. 의미 있는 HTML 구조를 사용하여 스타일을 쉽게 사용자 지정하고 데이터에 액세스할 수 있으며 접근성이 뛰어납니다. 프레임워크는 크기가 작고(76KB, 압축 시 7KB), 성능이 뛰어나며 외부 종속성이 없으므로 경량 웹 애플리케이션을 구축하는 데 이상적입니다.

AI 코드 생성의 환각: 소프트웨어 공급망에 대한 새로운 위협

2025-04-12
AI 코드 생성의 환각: 소프트웨어 공급망에 대한 새로운 위협

AI 기반 코드 생성 도구의 부상은 소프트웨어 개발에 혁명을 일으키고 있지만 동시에 소프트웨어 공급망에 새로운 위험을 초래하고 있습니다. 이러한 도구는 존재하지 않는 소프트웨어 패키지를 '환각'하는 경우가 있습니다. 이는 공격자가 악용하는 취약점입니다. 공격자는 악성 패키지를 만들어 PyPI나 npm과 같은 레지스트리에 업로드합니다. AI가 다시 해당 이름을 '환각'하면 종속성 설치를 통해 멀웨어가 실행됩니다. 조사에 따르면 상용 AI의 제안 중 약 5.2%가 존재하지 않는 패키지인 반면, 오픈소스 모델에서는 21.7%에 달합니다. 이러한 '환각'은 이봉성 패턴을 보입니다. 일부 가상 이름은 일관되게 재출현하지만 다른 이름은 완전히 사라집니다. 이러한 유형의 타이포스쿼팅은 'slopsquatting'이라고 불리며 개발자는 AI 생성 코드를 신중하게 검증해야 합니다. Python Software Foundation은 이러한 위험을 완화하기 위해 적극적으로 노력하고 있습니다.

개발

Rust 수준의 속도를 자랑하는 Python: 새로운 컴파일러

2025-04-12
Rust 수준의 속도를 자랑하는 Python: 새로운 컴파일러

이 글에서는 Python 코드를 네이티브 코드로 컴파일하여 실행 속도를 크게 향상시키는 Python 컴파일러인 Function을 소개합니다. 행렬 곱셈을 예로 들어, 심볼릭 트레이싱을 통해 중간 표현(IR) 그래프를 생성하고 이를 네이티브 코드(예: C)로 변환하는 방법을 보여줍니다. 이를 통해 Rust와 비슷한 성능을 달성합니다. 아직 개념 증명 단계이지만, Function은 이미 단안 깊이 추정 및 실시간 자세 감지와 같은 프로덕션 애플리케이션을 지원하고 있습니다. 향후 목표는 기기 상에서의 LLM 추론입니다.

개발

창립 TypeScript 엔지니어 채용: 차세대 실시간 데이터베이스 구축

2025-04-12
창립 TypeScript 엔지니어 채용: 차세대 실시간 데이터베이스 구축

프론트엔드용 실시간 데이터베이스인 InstantDB는 샌프란시스코에 있는 4인 팀에 합류할 창립 TypeScript 엔지니어를 채용하고 있습니다. 이상적인 지원자는 타입 시스템에 대한 높은 이해도를 가지고 있으며, 훌륭한 UI를 만드는 것을 즐기고, 다음 Figma나 Notion을 지원하는 동기화 엔진을 구축하고자 하는 분입니다. TypeScript 타입 시스템 개선, UI 개선, 동기화 엔진 성능 향상 등 보람 있는 도전적인 업무입니다.

Yakread 개인 맞춤형 추천 알고리즘 개선

2025-04-12
Yakread 개인 맞춤형 추천 알고리즘 개선

Yakread는 사용자 구독과 북마크된 기사를 단일 개인 맞춤형 피드로 통합하는 핵심 추천 알고리즘을 다시 작성했습니다. 알고리즘은 먼저 북마크된 기사를 상호 작용(건너뛰기 및 북마크 시간)으로 정렬하고, 단조로움을 피하기 위해 약간의 무작위성을 적용하고, 웹사이트별 추천 수를 제한합니다. 구독의 경우 각 소스에 대한 사용자의 최근 10회 상호 작용(조회, 건너뛰기, 좋아요/싫어요 버튼)을 기반으로 "친밀도 점수"를 계산합니다. 고정된 구독은 우선 순위가 높습니다. 마지막으로, 이전 건너뛰기 기록을 기반으로 가중치가 부여된 무작위 선택을 사용하여 구독 항목과 북마크 항목을 번갈아 배치하여 다양성과 사용자의 선호도를 균형 있게 유지합니다.

Shorty: 더욱 간결한 C++ 람다 라이브러리

2025-04-12
Shorty: 더욱 간결한 C++ 람다 라이브러리

Shorty는 C++ 기본 람다 표현식보다 더 간결한 구문을 제공하기 위해 설계된 C++ 라이브러리이며, C++를 지연된 DSL로 대체하려는 것이 아닙니다. 정렬, 필터링, zip 연산 및 외부 함수 호출에 대해 더 직관적인 표기법을 허용하며, 다양한 인수 접근 방식과 형식 변환을 지원합니다. 예를 들어, `std::ranges::sort(subject, $lhs > $rhs);`는 간결하게 정렬하고, `subject | std::views::filter(($i % 2) == 0);`는 짝수를 필터링합니다. 디자인 철학은 개발 효율 향상과 중복 코드 감소입니다.

AI 코딩: 쓰라린 예감

2025-04-12

Claude Code와 같은 AI 코딩 도구를 사용해 본 후 저자는 전례 없는 효율성과 동시에 깊은 불안감을 느꼈습니다. 코딩의 즐거움은 줄어들었고, 비디오 게임에서 치트를 하는 것과 같다고 비유했습니다. 쉽게 이길 수 있지만 만족감은 얻을 수 없습니다. 저자는 이러한 도구의 높은 비용이 큰 진입 장벽이 되어 기존의 기술 격차를 악화시키고 환경 문제도 일으킬 것이라고 우려하고 있습니다. AI의 발전은 불가피하지만, 앞으로 프로그래밍이 많은 사람들에게 즐겁지 않고 접근하기 어려워질 것을 우려하고 있습니다.

고성과 팀은 조화가 아닌 갈등을 수용한다

2025-04-12
고성과 팀은 조화가 아닌 갈등을 수용한다

고성과 팀은 표면적인 조화가 아니라 심리적 안전감, 즉 솔직하게 논의하고 건설적으로 갈등을 해결하는 능력으로 정의됩니다. 진정한 안전감은 갈등을 회피하는 것이 아니라, 도전적인 아이디어를 받아들이고 팀을 더 강하게 만드는 것입니다. 저자는 건강한 팀은 문제를 조기에 발견하고, 철저하게 논의하며, 개인이 아닌 문제에 초점을 맞추고, 실수를 학습 기회로 전환한다고 주장합니다. 반대로, 솔직한 소통이 부족한 “좋은” 팀은 숨겨진 문제를 안고 결국 실패합니다. 이러한 환경을 조성하려면 리더가 자신의 취약성을 보여주고, 논의 규칙을 정하며, 어려운 질문을 하는 사람을 평가하는 것이 중요합니다. 결국 심리적으로 안전한 팀은 갈등이 발생하더라도 문제를 효과적으로 해결하고, 반감을 피하며, 더 질 높은 결과를 만들어냅니다.

Rust-C 컴파일러 업데이트: 핵심 테스트 적용률 96% 달성!

2025-04-12

Rust-C 컴파일러 프로젝트에서 상당한 진전을 이루었습니다. 핵심 테스트 통과율이 95.9%에 달했으며, Rust Week에서 발표되었습니다. 이 글에서는 128비트 정수 인트린식, 검사된 산술 연산, 서브 슬라이싱 버그 수정에 대한 자세한 내용을 설명합니다. C 컴파일러 호환성 개선과 메모리 효율이 높은 새로운 내부 IR로의 전환에 대한 논의도 포함되어 있습니다. 특정 플랫폼에서 컴파일러를 확보하는 데 어려움이 있는 등의 과제도 인정하지만, 작성자는 C99 준수 향상 및 더 광범위한 플랫폼 지원에 전념하고 있습니다. 향후 계획에는 Rust 패닉에 대한 심층적인 조사와 메모리 프로파일러 개발이 포함됩니다.

개발

Sentient: 제약 솔버에서 무한대 다루기

2025-04-12
Sentient: 제약 솔버에서 무한대 다루기

이 글에서는 Sentient 제약 솔버에서 무한대를 다루는 데 따른 어려움을 자세히 논의합니다. Sentient는 문제를 부울 방정식으로 변환하여 제약 만족 문제를 해결하는 프로그래밍 언어입니다. 컴퓨터에서 정수는 유한한 비트 수로 표현되므로 Sentient는 수학적 의미에서 무한한 정수를 직접 처리할 수 없습니다. 저자는 무한 공간을 근사하기 위해 정수의 비트 크기를 점진적으로 늘리는 근사 기반 해결책을 제안합니다. 이 글에서는 중복된 검색을 피하고 효율성을 높이기 위해 증분 SAT 솔버 IPASIR을 활용하는 방법을 논의합니다. 또한 배열 및 최적화 문제 처리와 같이 더 복잡한 시나리오에 이 접근 방식을 확장하는 방법을 탐구하고, 궁극적으로 Sentient가 미래에 튜링 완전해질 가능성을 언급합니다.

Awe: 새로운 ALGOL W 컴파일러

2025-04-12
Awe: 새로운 ALGOL W 컴파일러

Awe는 Algol 60의 후속인 ALGOL W 프로그래밍 언어를 위한 새로운 컴파일러입니다. 1972년 6월 ALGOL W 언어 설명에 나와 있는 대로 언어의 완벽한 구현입니다. Awe는 OS/360 ALGOL W 컴파일러용으로 작성된 코드를 최소한의 변경으로 컴파일해야 합니다. 기능에는 동적 레코드 할당, 문자열 처리, 복소수, 표준 I/O 시스템이 포함됩니다. 이 프로젝트는 Hendrick Boom 등의 기여에 감사드립니다.

개발
1 2 114 115 116 118 120 121 122 214 215