본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 05. 20. 01:46

Show HN: W++ – NuGet 지원을 갖춘 .NET용 Python 스타일 스크립팅 언어

요약

W++ v2는 Rust와 LLVM을 기반으로 새롭게 재설계된 .NET용 Python 스타일 스크립팅 언어입니다. 기존 C# 인터프리터 방식에서 벗어나 LLVM IR로 직접 컴파일되는 고성능 컴파일러 구조를 채택하여 실행 속도를 최적화했습니다.

핵심 포인트

  • Rust로 재작성되었으며 LLVM을 타겟팅하는 진정한 컴파일러 구조 제공
  • let 선언, 제어문, 사용자 정의 함수 등 핵심 프로그래밍 기능 지원
  • LLVM 백엔드를 통한 네이티브 수준의 최적화된 실행 속도
  • NuGet 지원을 통해 .NET 생태계와의 연동 가능

W++ 🦥

혼돈으로 만들어졌고, 나무늘보에 의해 단련되었으며, Rust로 다시 작성되었습니다.


🧠 W++ v2에 오신 것을 환영합니다 — LLVM 시대

W++ v2는 여러분이 요청한 적 없는 **나무늘보 기반 스크립팅 언어 (scripting language)**의 완전한 재탄생을 알립니다.
기존의 C# 인터프리터(interpreter)는 평화롭게 은퇴하였고, 그 자리에 **진정한 컴파일러 (compiler)**가 등장했습니다 — Rust로 구축되었으며, LLVM을 타겟팅하고, 의심스러운 인생의 선택들에 의해 구동됩니다.

이것은 단순한 재작성이 아닙니다. W++가 공식적으로 "장난감" 단계에서 "무서울 정도로 기능적인" 단계로 이동한다는 선언입니다.


⚙️ v2는 무엇이 다른가요?

기존 W++새로운 W++ (v2)
☠️ 비동기(async)의 눈물을 흘리는 C# 인터프리터🦀 Rust + LLVM 기반 컴파일러
...

🧩 핵심 기능

  • let 선언 및 표현식 (expressions)
  • print (네이티브 printf를 통해 제공)
  • if / else, while, for, break, continue
  • 사용자 정의 함수 (User-defined functions)
  • 기본적인 예외 전역 변수 (exception globals) (여러분의 피할 수 없는 실수를 위해)

모든 기능은 LLVM IR로 직접 컴파일되며, Clang 및 Rust를 구동하는 것과 동일한 백엔드(backend)에 의해 최적화됩니다.
(네, 이제 여러분의 밈(memes)도 네이티브 속도로 실행됩니다.)


💾 설치 방법

  1. Releases에서 사용 중인 플랫폼에 맞는 최신 바이너리(binary)를 다운로드하세요.

  2. 편리한 곳에 압축을 해제하세요.

  3. 시스템 PATH에 추가하세요.

  4. 파일을 실행하세요:

    ingot run hello.wpp
    

만약 폭발한다면, 축하합니다 — 제대로 사용하고 계신 겁니다.


🪟 Windows 지원에 대하여

현재 LLVM과 Windows는 서로 대화가 통하지 않는 상태입니다.
평화 협상이 성공하면 네이티브 바이너리(native binaries)가 다시 돌아올 것입니다.

그때까지는:

  • WSL 🐧을 사용하거나
  • Linux VM을 사용하거나
  • 그냥 운명을 받아들이세요

💻 Chromebook에 W++ 설치하기 (일명, 보증을 무효화하는 방법)

그러니까... 여러분은 Chromebook을 사용 중이면서 이렇게 생각했군요:

"그래, 내 브라우저 기반 노트북에 나무늘보 기반 LLVM 컴파일러가 꼭 필요해."

존중합니다. 어떻게 실행하는지 알려드리겠습니다:

  1. Linux (Crostini) 활성화
    설정(Settings) → 고급(Advanced) → 개발자(Developers) → **Linux 개발 환경(Beta) 켜기(Turn On Linux (Beta))**를 선택하세요.
    (만약 비활성화되어 있다면 — 죄송합니다, 학교 IT 관리자가 이미 재미를 싫어하는 모양이네요.)

  2. 터미널(Terminal) 열기
    “Penguin 🐧”라고 적힌 그 무시무시한 검은 창 — 바로 그겁니다.
    업데이트를 요청하더라도 당황하지 마세요. 업데이트를 요청하지 않을 때 당황해야 합니다.

  3. 리포지토리(repo) 수동 클론(Clone)
    아직 화려한 설치 스크립트가 없기 때문에 (아직요 😭), 고전적인 방식을 사용해야 합니다:

sudo apt update
sudo apt install -y git build-essential llvm-15 clang-15
git clone https://github.com/sinisterMage/WPlusPlus.git
  1. PATH에 W++ 추가 (선택 사항이지만 전문가처럼 보이게 해줍니다)
echo 'export PATH="$PATH:$HOME/WPlusPlus/target/release"' >> ~/.bashrc
source ~/.bashrc
  1. 첫 번째 혼돈의 프로그램 실행하기
ingot run hello.wpp

무언가 출력된다면 — 축하합니다!
방금 Chromebook에서 프로그래밍 언어를 컴파일하셨습니다.
(이제 당신의 팬(fan)은 NASA 수준으로 작동하고 있을 겁니다.)

⚠️ 면책 조항: W++는 당신의 Chromebook이 자신의 존재 이유를 의심하게 만들 수 있습니다.
정서적 안정을 위해 근처에 간식을 준비해 두세요.


🧬 기술 스택 (Tech Stack)

  • 언어 코어 (Language core): Rust 🦀
  • 백엔드 (Backend): inkwell + llvm-sys를 통한 LLVM 15
  • CLI: ingot, 이제 컴파일러를 라이브러리로 호출하는 독립형 바이너리(standalone binary)로 작동
  • 최적화 (Optimization): JIT 및 빌드를 위한 선택적 패스(passes)
  • 설계 목표 (Design goal): “컴파일이 되고, 재미있어야 한다.”

❤️ 크레딧 (Credits)

  • LLVM Project – 존재해 주는 것과 내 삶을 힘들게 해주는 것에 대해 (여전히 사랑합니다 💕)
  • Rust 커뮤니티 – 패닉 메시지(panic messages)를 시(poetry)로 바꿔준 것에 대해
  • Wloth the Sloth – 모든 커밋(commit)을 0.2배속으로 승인해 준 것에 대해

🗺️ W++ 로드맵 (Roadmap) — 통제된 혼돈으로 가는 길


🦥 릴리스 1.0 — LLVM의 각성 (첫 번째 안정 버전)

  • 드디어 **W++ v2의 최초 안정 버전(stable release)**이 출시되었습니다!
    전부 Rust로 구축되었고, LLVM을 기반으로 하며, 네이티브한 혼돈의 속도로 실행됩니다.

  • 기존 C# 인터프리터로부터 완전히 재작성되었으며, 이제 다음을 포함합니다:

  • UTF-8 가변 이름 (UTF-8 variable names)

    • 람다 지원 (Lambda support)
    • 다중 디스패치 (Multiple dispatch)
    • OOPSIE Framework™
    • Ingot 패키지 레지스트리 (ingotwpp.dev)
  • 세그폴트 (segfaulting) 없이 실행된다면, 그것은 기능 (feature)입니다.

  • 만약 그렇지 않다면 — 그것은 전통 (tradition)입니다.

“컴파일됩니다! 아마도요!”


🧩 계획된 라이브러리 (일명: 나무늘보 유니버스 확장팩)

라이브러리설명
🧠 JSON네이티브 JSON 파싱 및 직렬화 (serialization) - ingot 레지스트리에서 확인 가능
...

🧩 퍼스트 파티 라이브러리 가이드라인

  1. 모든 퍼스트 파티 W++ 라이브러리는 OSI 승인 허용적 라이선스 (permissive license) 하에 **오픈 소스 (open-sourced)**로 공개됩니다.
  2. 모든 퍼스트 파티 라이브러리는 실제로 작동해야 합니다.
    네 — 심지어 is-odd조차도 말이죠.

🧃 미래의 꿈 / 위협

  • 감정적으로 분리된 메모리 관리 (memory management)를 위한 async drop
  • 네이티브 그래픽 API (draw.rect, draw.wloth)
  • W++ Cloud ☁️ — 서버리스 (serverless), 상태 비저장 (stateless), 정신 나간 (sanity-less)
  • 양자 지원 (우리가 “얽힌 null (entangled null)”이 무엇인지 알아낸 후에)

🦥 “W++는 결코 완성되지 않을 것입니다 — 오직 일시적으로 안정적일 뿐입니다.”


🦥 철학

W++는 결코 완벽해지기 위해 만들어진 것이 아닙니다.
이것은 재미있고, 혼란스러우며, 교육적이기 위해 만들어졌습니다 — 컴파일러를 끊임없이 파괴하려고 시도함으로써 컴파일러를 가르치는 언어입니다.
만약 당신이 W++ v2로 무언가를 만들었는데 세그폴트 (segfault)가 발생하지 않는다면, 그것은 기능 (feature)입니다.


나아가서, 혼돈을 컴파일하고, 나무늘보를 자랑스럽게 만드세요.

— Ofek “sinisterMage” Bickel 🦥
W++ 제작자 | 전문 혼돈 엔지니어 (Professional Chaos Engineer)

AI 자동 생성 콘텐츠

본 콘텐츠는 HN Game Dev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0