Brown 연구진, async/await 런타임 7종의 관찰 가능한 의미론을 9개 설계 축으로 분류

Brown 연구진, async/await 런타임 7종의 관찰 가능한 의미론을 9개 설계 축으로 분류

  • 7개 비동기 런타임에서 백그라운드 로그 작업을 띄우는 짧은 의사코드와 그 변형 3개를 비교한 결과, 어느 두 런타임도 같은 출력을 내지 않았음
  • 논문은 straight-line asynchrony 구현의 관찰 가능한 의미론을 9개 설계 축으로 분류했으며, 시작 단계의 Eagerness·Suspension, 종료 단계의 Extent·참조 강도·정리·예외 전파, 취소의 Awareness·Direction·Persistence를 제시함
  • Eagerness에서 Python과 Rust는 async 함수 호출이 실행하지 않는 코루틴을 만드는 Lazy 방식이고, C#과 JavaScript는 현재 스레드에서 평가한 뒤 await 시 작업을 예약하는 Eager 방식임
  • Swift와 Python의 Trio는 Dynamic Extent를 택해 함수 안에서 생성한 작업이 그 함수를 벗어나 존재할 수 없으며, JavaScript·C#·Tokio·Smol·Asyncio는 기본적으로 런타임 종료까지 작업이 남을 수 있는 Indefinite Extent임
  • 취소를 인지하는 런타임 중 Asyncio는 작업이 취소를 무시하고 계속 진행하면 취소 상태가 사라지는 Transient cancellation이고, Trio와 Swift는 취소를 무시해도 취소 상태가 지속됨

Hacker News opinions

이런 프로그램을 언어별로 번역하되 각 런타임의 의미를 제대로 보존하는지 보는 코딩 에이전트 벤치마크가 있으면 재밌겠음.

9개 축을 잡았으니 9차원 거리로 런타임 조합의 유사도와 차이를 계산할 수도 있겠네. 한 비동기 시스템을 아는 사람이 다른 시스템을 배울 때 비교 도구로도 좋겠음.

퀴즈에서 자바스크립트 개발자라고 나오긴 했는데, 난 async/await 자체가 싫어서 루비를 택한 쪽임. await가 정지를 뜻하지 않는다면 대체 뭘 뜻하는 건지 모르겠고, 스레드의 의미론은 언어와 런타임을 넘어 더 잘 옮겨감.

await 지점에서 반드시 멈추는지, 런타임이 멈추지 않을 수 있는지가 여기서 말하는 차이임. 비동기와 병렬성은 같은 얘기도 아니고.

이미 완료된 Future나 Promise를 await하면 실행 중인 스레드는 멈출 이유가 없음. await는 스레드를 정지하는 동의어라기보다 coreturn 기능을 효과로 표현하려는 연산에 가까움.

스레드와 async/await를 같은 프로그램에서 둘 다 써 봤는데, async/await가 더 쉽게 맞출 수 있다는 말에는 동의 못 하겠음. 내게는 스레드를 너무 많이 만들지 않으려는 방법이었고, Erlang 프로세스나 Java Loom 가상 스레드 같은 쪽이 더 나아 보임.

C#이 주력인데 퀴즈는 내가 JS 개발자라고 하더라. Jon Skeet 글을 몇십 개 읽고 반성해야 할 듯.

그래도 C#에서 main이 끝날 때 대기 중인 작업이 종료된다는 점은 보통 개발자가 잘 안 마주침. 대개 오래 실행되는 서버나 앱 안에서 작업하니까.

구현 선택이 중요하다는 건 알았지만 설계 축이 9개나 될 줄은 몰랐음. async는 작고 자족적인 언어 기능처럼 보이지만 조합마다 결과가 달라지고, 그 함의를 아직 다 이해하지 못한 것 같음.

Zig도 넣어 줬으면 했음.

Zig는 이 글이 다루는 스택리스 코루틴 기반 async/await를 현재 지원하지 않음. 예전 기능은 제거됐고, 0.16의 사용자 공간 I/O API로 그린 스레드 등은 만들 수 있지만 컴파일러 지원 없이는 스택리스 코루틴을 만들 수 없음. 전용 문법 없이 저수준 버퍼 API로 코루틴을 되살리자는 제안은 열려 있음.

난 스레드보다 async/await부터 배워서 그런지 async가 더 어렵다는 말에 공감 못 하겠음. 스레드, 고루틴, Kotlin 구조적 동시성보다 훨씬 이해하기 쉬웠음.

해커뉴스
Rune, Go로 만든 네이티브 IDE를 GPLv3로 공개하고 기여자 수익 배분 제도 예고Brown 연구진, async/await 런타임 7종의 관찰 가능한 의미론을 9개 설계 축으로 분류141가지 신체 현상을 부위·유형별로 정리한 Show HN, 제작자는 AI 사용과 위키백과 출처 공개Tinybird 공동창업자, ClickHouse 18.4부터 6년간 페타바이트 클러스터 운영 경험 정리GrapheneOS, Jetpack Compose·Material 3로 다시 만든 Messages 13 공개MIT Logo 소개: 거북이 그래픽으로 배우는 Lisp 계열 언어의 대화형·확장형 설계구글 앱 광고 $220 집행 뒤, 청구 설치 56건 중 33건에서 봇팜 의심 패턴 발견EPA, 데이터센터 등 산업시설 대기오염 허가의 주민 통지·의견수렴 의무 폐지 추진조사팀, OpenAI 에이전트가 RubyGems에 2,480개 패키지를 올려 API 키 탈취를 시도했다고 주장필즈상 수상자 25명, AI의 수학 문제 풀이 경쟁이 인간의 이해와 전승을 해친다고 경고RTK, Terminal-Bench에서 DeepSeek 비용 평균 17% 증가Magit의 Git 워크트리 단축키와 AI 에이전트 병렬 작업 흐름 정리성과 없이 경쟁만 격화되는 상태를 뜻하는 중국어 '네이쥐안'IAEA가 설명한 체렌코프 복사, 물속 빛보다 빠른 하전 입자가 만드는 청색광웨이모식 편의가 연구 협업자를 LLM으로 대체한다는 주장HN 이용자들, AI 글 쏠림과 비AI 기술 글 노출 감소를 두고 필터·편집 필요성 논쟁Anthropic, Claude를 18세 이상 전용으로 전환하고 Yoti 연령 인증 도입같은 오픈 모델도 OpenRouter 공급자에 따라 도구 호출 점수가 20점 넘게 갈렸다ERSC, Git 프로토콜은 유지하고 자체 스토리지 엔진으로 차세대 VCS를 만들겠다고 주장구글, Alt+Space로 호출하는 Windows용 Gemini 데스크톱 앱 출시로컬 Qwen 27B에서 코딩 하네스 9종 비교, OpenCode 첫 응답 226초·Chad 26초90분 중강도 사이클링과 6회 30초 전력질주, 일부 심대사 바이오마커 변화가 비슷YuE2, 기호 악보를 먼저 만들고 보컬·반주로 렌더링하는 음악 생성 모델 공개System76, GPU 메모리 최대 192GB의 Thelio Mira AI 리눅스 워크스테이션 공개NTSB, 마이애미 767 활주로 이탈 사고서 158노트 접지 뒤 4초 만의 복행 중단 기록 공개라즈베리 파이 카메라가 pHash 서명을 이미지 워터마크에 숨겨 압축 뒤에도 촬영 증명을 남기는 오픈소스 프로젝트멕시코 16세 학생, 30Hz 음파로 촛불을 5-8초 만에 끈다는 소화기 제작Astra에 40억 토큰과 35시간을 맡긴 개발자, "가치 있는 결과물은 없었다"WebGPU 무한 셰이더가 macOS WindowServer를 멈춰 강제 재시작 유발Anthropic, 8개월간 Claude 악용 7개 분야 차단 사례 공개OpenAI, Codex 하네스를 세션·오케스트레이션·샌드박스까지 관리하는 Agents API로 공개OpenAI, 나비에-스토크스 166쪽 증명과 Lean 4 형식 증명 함께 공개더글러스 호프스태터 스탠퍼드 강연, 유추를 인지와 범주화의 중심으로 설명Forgejo 16.0.3 이하, 악성 템플릿으로 호스트 데이터 탈취·원격 코드 실행 가능보고서: 미 국방·정보기관의 공개 기술기업 계약 상한, 2019-2022년 최소 $530억로버트 허친슨의 무료 온라인 음악 이론 교재, 현대성·표기법·범위 놓고 HN 토론NASA 위성영상 색상 알고리즘, 앙코르와트의 희미한 벽화 약 200점 발견에 사용10년 묵은 케이블 두 개를 찾은 뒤, 가족 케이블 상자에 '버리지 말라'는 글을 붙인 개발자Magic, 공개 베이스 모델 대비 사전학습 FLOPs 효율 10배 이상 주장NASA 위성영상 색 보정 기법, DStretch로 희미한 고대 암각화 드러내PlanetScale, 실제 PostgreSQL 샤드와 라우터로 구성한 Neki 플랫폼 프리뷰 공개소프트웨어의 숨은 변경 비용과 끝없는 선택지가 조직을 과열시킨다는 주장Cognition, Kimi K3 후학습 SWE-2 공개… FrontierCode 50.0%, Fable 5.1보다 64% 저렴 주장히타치, 태양광 잉여 전력용 주간 요금제 대응 CO2 히트펌프 급탕기 출시소니, 플레이스테이션 디지털 게임의 '구매' 표기와 취소 가능한 라이선스를 둘러싼 캘리포니아 소송수학자 Thom, OpenAI의 비공개 수학 대화 데이터 처리 설명에 신뢰 문제 제기마이크로소프트, Rust를 내부 Tier-1 언어로 지정하고 MSVC용 rustc 코드생성 백엔드 운용Shopify, 코딩 에이전트 비용 변화로 React Native에서 Swift·Kotlin 네이티브로 전환아드먼, 창립 50주년 맞아 월리스와 그로밋 원본 인형 등 약 250점 경매스톡피시 19, 18 대비 최대 44 Elo 상승하고 범용 CPU 바이너리로 전환메타를 떠난 IT 종사자, 인터넷이 연결보다 관리 부담과 착취가 됐다고 비판개인 개발자가 8× B200으로 3.8B LLM을 43시간·998달러에 학습해 CORE 0.384 기록미국 스트리밍 9종 묶음, 2021년 3월 대비 월 61% 올라 연 $702 증가유리수 전처리로 9차 다항식 평가를 곱셈 8회에서 5회로 줄인 인터랙티브 데모Windows XP의 첫 사용자 그림, GetTickCount 시드와 리저버 샘플링으로 골랐다테런스 타오: 목표만 푸는 AI가 수학의 우회와 탐색을 지울 수 있다DeepSeek, 552B MoE V4.1-Flash 출시하고 V4-Pro 요청을 새 모델로 전환 예정리비안, 프레임 간 객체 추적으로 완전자율주행 겨냥하고 월 49.99달러 책정UN, 메르카토르 대신 등적 Equal Earth 지도 권고안 164 대 1로 채택Cognition, Devin으로 GPU GNFS 구현해 RSA-260 인수분해. RSA-1024 비용 약 $3천만 추정정적 타입 언어 Bespoke, 컴파일러에 정중한 문장으로 요청해야 코드가 되는 풍자Planet Labs 공개 궤도 데이터와 DuckDB로 97기 위성군을 추적한 재현 가능한 분석블리자드 직원 1,900명, AI 대체 사전협의·해고 후 14개월 재고용권 담은 노조 계약 비준광속을 시속 5km로 낮춘 가상 공원에서 상대론 효과를 직접 조작하는 Show HNAutomattic 이사회, 매트 뮬런웨그를 유급 휴직 처리하고 CFO를 임시 CEO로 선임Read the Docs, 분당 550만 요청 DDoS에 캐시 미스 404·302 집중 공격Qwen3.8, GPT-5.5 Pro 추론 1% 접두사에 답변 중복률 18.18%p 상승IEEE Spectrum 자율주행 안전 기사 본문 누락, HN은 ADAS 과신과 안전 검증 기준을 논쟁Anthropic, AI 성능·채택률로 2030년 미국 GDP·고용을 계산하는 경제 시나리오 공개GNU Radio DSP와 Qt GUI를 WebAssembly로 컴파일해 브라우저에서 SDR 플로우그래프 실행Apple Watch Series 12, 고빈도 HRV 측정과 준비도 점수 도입애플, 가변 조리개 48MP 카메라와 A20 Pro 탑재 iPhone 18 Pro 공개No Man's Sky 7.0 'Cosmos', 우주 정거장 운영·연합·심우주 인양 추가비자와 마스터카드는 카드 발급사가 아니라 승인·정산·분쟁 규칙을 운영하는 결제망GPT-6 Astra의 루프드 트랜스포머, CoT를 감추는 구조인가애플, 오픈형 ANC를 강화한 AirPods 5를 $129에 발표애플 첫 폴더블 iPhone Duo 공개, 10월 16일 예약 시작하고 $1,999부터 판매클라우드플레어 초기 구조를 설계한 공동창업자 리 할로웨이의 전기 1부뉴요커의 1990년 풍자 법정문: 와일 E. 코요테가 Acme에 85건의 제품 책임 소송 제기Lotus Notes: 1989년 이메일 기능보다 먼저 복제형 협업 데이터베이스를 만든 플랫폼OpenAI, GPT-5.6 Sol로 6큐비트 칩 보정 측정 자동 실행 사례 공개OpenAI, 1만 AI 에이전트로 나비에-스토크스 반례 주장…연구자 공로·사용 데이터 논란데저트 앤트, iPhone에서 300배 실시간 전사 내세운 온디바이스 모델 18종 공개구글 광고가 RACE를 악성 소프트웨어로 정지시켰다가 HN 노출 뒤 복구딥시크, V4.1 Flash 출시 뒤 Pro 요청까지 Flash 요금으로 전환 예고Tailwind Labs, Shopify 합류하고 Tailwind Plus 신규 가입 중단"장바구니에 담기" 버튼만 파랗게 바꾸라며 Claude의 과잉 작업을 풍자한 체험 사이트빈 프롬프트가 가리는 AI 활용 가능성, 저자는 이를 발견 문제로 규정조슈아 갠스, AI를 '예측의 가격'으로 보는 미시경제학 오픈 액세스 책 출간10명 에이전트가 모노레포 계획 파일을 블랙보드처럼 써 항공 운항 장애 시스템을 4일 만에 구현미 법원, X의 TWITTER 표장은 유지하되 TWEET·새 로고는 포기 가능성 인정27.5KB WebGPU 모델로 문법 없이 75개 언어 소스에 하이라이트주곡률 해칭과 숨은선 처리를 조절하며 위상 곡면을 판화처럼 그리는 인터랙티브 웹 앱나무는 중력·빛 없이도 줄기 휨을 감지해 장력목으로 스스로 곧게 편다Plush 인터프리터, Rust enum을 64비트 태그 값으로 바꿔 17% 가속GrapheneOS의 저작권 폐지 주장에 HN, GPL 보호와 보호기간 단축을 두고 충돌OpenAI, 생성 지연 최대 50% 줄인 ChatGPT Images 2.5 발표ICML 논문: LLM은 무작위 결과를 반복 학습하며 가상 집단에도 새 사회적 편향을 만든다Inception, 초당 1,107토큰·260K 컨텍스트의 확산 LLM Mercury 2.5 출시브라우저에서 6억 파라미터 LLM의 토큰별 어텐션 합산값을 즉시 시각화하는 데모