브라우저에서 실행되는 GHC
(discourse.haskell.org)- Haskell 컴파일러 GHC가 이제 브라우저 내에서 완전히 클라이언트 사이드로 실행 가능
 - 제공된 Haskell Playground 데모를 통해 사용자는 별도 설치 없이 브라우저에서 코드를 실행할 수 있음
 - 이 기능은 GHC의 WebAssembly(WasM) 백엔드 발전을 보여주는 사례로 소개됨
 - Brave 브라우저에서는 잠시 멈춤 후 로드되며, 웹 워커 생성 실패 시 메인 스레드에서 코드가 실행됨
 - Safari 브라우저에서는 동일한 경고 메시지가 표시되지만 Run 버튼이 비활성화된 상태로 남음
 
브라우저에서 실행되는 GHC 데모
- GHC가 브라우저 내에서 클라이언트 사이드로 실행되며, 서버 의존 없이 Haskell 코드를 컴파일하고 실행할 수 있음
- 작성자는 이를 Haskell Playground 데모 형태로 공개
 - 세부 설명은 추후 별도로 제공될 예정임
 
 - 이 시연은 GHC WebAssembly 백엔드의 발전 수준을 보여주는 예시로 언급됨
 
브라우저별 동작 보고
- 
Brave 브라우저에서는 초기 몇 초간 응답 없음 상태 후 로드 완료
- “웹 워커를 생성할 수 없음”이라는 메시지가 표시되며, 메인 스레드에서 코드 실행으로 대체됨
 - 이로 인해 UI 멈춤 현상이 발생할 수 있음
 
 - Safari 브라우저에서도 동일한 메시지가 표시되지만, Run 버튼이 비활성화되어 코드 실행이 불가능함
 - 메시지에는 Monaco Editor 관련 경고가 포함되어 있으며, 
MonacoEnvironment.getWorkerUrl또는getWorker정의 필요성이 언급됨 
기술적 의의
- GHC가 WebAssembly 기반으로 브라우저에서 직접 실행된다는 점은 Haskell 개발 환경의 접근성을 높이는 변화
 - 서버 없이 순수 클라이언트 환경에서 컴파일러 동작이 가능해진 점이 핵심 발전 사항
 - 원문에는 추가 기술적 세부사항이나 성능 비교는 포함되어 있지 않음
 
Hacker News 의견
- 
실제 제목은 “GHC now runs in your browser” 임
 - 
QEMU-WASM 덕분에 이제 브라우저에서 안 돌아가는 게 뭐가 있을까 궁금해짐
비판은 아니고, 새 언어를 쉽게 배워볼 수 있는 이런 시도는 정말 좋다고 생각함- 내 가설로는 이 방식이 상당히 빠를 것 같음. 직접 테스트해볼 가치가 있음
 
 - 
아직 Haskell(또는 그 기반 언어)을 완전히 부트스트랩할 방법이 없다는 게 아쉬움
그래서 신뢰도 높은 Linux 배포판에서는 Haskell을 쓰기 어렵다고 느낌
브라우저 샌드박스에서 실행하는 건 위험을 줄이는 임시방편이지만, 소스에서 부트스트랩이 안 되면 언어를 신뢰하기 힘듦- 네가 말하는 건 “GHC Haskell”임. 그건 주류 구현이라 언젠가 해결될 거라 봄
하지만 GHC 없이도 Haskell을 꽤 다룰 수 있음. 예를 들어 MicroHs는 점점 강력해지고 있고, 부트스트랩 가능성이 높다고 생각함 - 이 스레드에서도 사람들이 GHC 부트스트랩을 위해 과거 빌드 과정을 재현하려고 노력 중임
 - 예전 Hugs와 새 MicroHs를 조합하면 충분히 가능하다고 봄. 다만 커뮤니티가 그만큼 관심을 가질지는 모르겠음
 - 왜 언어의 부트스트랩 가능성이 그렇게 중요한지 궁금함. 나는 안정성, 인기도, 툴체인 성숙도 정도만 본다고 생각했음
 - GHC는 부트스트랩 없이 어떻게 컴파일되는지 궁금함. 트리에 재현 불가능한 바이너리가 포함된 건가? 나는 GHC를 여러 번 빌드했는데 문제없었음
 
 - 네가 말하는 건 “GHC Haskell”임. 그건 주류 구현이라 언젠가 해결될 거라 봄
 - 
예전에 HP Jornada에서 Jlime Linux로 Haskell 인터프리터를 돌렸던 기억이 있음
수학 수업 때 수식 입력이 편해서 공학용 계산기보다 훨씬 좋았음
CF 카드에서 실행됐으니 GHC만큼 크진 않았을 텐데, 이름이 기억나지 않음- 아마 Hugs였을 것 같음
 
 - 
정말 인상적임. 예전에 Haskell로 수학·예술 교육용 웹사이트(mathvas.com) 를 만든 적이 있는데, 이런 도구가 있었다면 훨씬 수월했을 것 같음
- Safari(iPhone)에서는 에디터에 붙여넣기가 안 됨
 
 - 
맞음. 관련 프로젝트는 haskell-miso에서도 볼 수 있음
 - 
Haskell에 익숙하지 않은 사람을 위해 설명하자면, GHC는 Haskell의 대표 컴파일러이자 인터랙티브 환경임
- GHC(Glasgow Haskell Compiler)는 사실상 표준 구현체이자 언어 연구의 중심 도구임
하지만 기능 변화가 너무 잦고, 안정된 스타일이 정착되지 않아 결국 Standard ML로 옮겼음
(그때는 타입 패밀리 관련 변화가 한창이던 시기였음) 
 - GHC(Glasgow Haskell Compiler)는 사실상 표준 구현체이자 언어 연구의 중심 도구임
 - 
이 프로젝트가 WasmGC를 사용하는지, 아니면 자체 가비지 컬렉터를 포함하는지 궁금함
- WasmGC는 lazy evaluation과 궁합이 나쁨. Haskell의 게으른 값은 항상 힙의 클로저 형태로 존재함
필요할 때만 계산하고, 중복 호출을 막기 위해 black hole로 대체하는 구조임
하지만 WasmGC는 타입이 고정적이라 이런 동적 구조를 지원하기 어려움
간접 참조나 defunctionalization으로 해결할 수는 있지만 성능 비용이 큼
게다가 Haskell은 finalizer도 지원하므로 WasmGC가 이를 처리해야 함 - WasmGC는 아직 1.0 단계라 C#이나 Go 같은 언어에 필요한 GC 의미론을 다 지원하지 못함. 예를 들어 interior pointer를 다루지 못함
 
 - WasmGC는 lazy evaluation과 궁합이 나쁨. Haskell의 게으른 값은 항상 힙의 클로저 형태로 존재함
 - 
이런 기능과 Blazor Wasm 같은 기술의 차이가 뭔지 알고 싶음. 둘 다 JS 없이 프론트엔드를 작성할 수 있게 해주는 것 같음
 - 
이미 함수형 프로그래밍을 아는 사람을 위한 실용적인 Haskell 튜토리얼을 찾고 있음
모나드, 타입클래스, HKT 개념은 이해하지만, 실제로 ToDo 앱 하나도 못 짜겠음- 
이 튜토리얼과 쿡북이 괜찮았음. 또 joyful.com/Haskell+map도 참고할 만함.
아니면 그냥 코드를 직접 읽고, 막히면 커뮤니티에서 도움을 받는 게 좋음 - 이런 수준의 사람을 위한 자료는 거의 없음. 대신 Monday Morning Haskell 블로그 시리즈가 실용 예제를 다룸
예를 들어 이 글을 참고할 만함 - 단계별로 Snake 게임을 만들어보거나 snake-fury 예제를 참고해볼 수 있음
혹은 이 튜토리얼처럼 작은 웹앱을 만들어보는 것도 좋음 - ChatGPT나 Claude에게 이해 수준에 맞춘 설명을 요청하는 것도 효과적임
 - 혹시 Real World Haskell을 시도해봤는지 물어봄
 
 - 
이 튜토리얼과 쿡북이 괜찮았음. 또 joyful.com/Haskell+map도 참고할 만함.