잠깐 쉬어가는 글입니다. (아니, 방법 설명을 제대로 시작하기도 전에 쓰는 글이네요.) 3일 째 Common Lisp 을 무진장 삽질했습니다. 하도 안되니까 피곤하네요.

과정과 목표는 이렇습니다.

  1. 기초적인 Common Lisp 환경 구축 (이거야 이미 되어 있는....)
  2. asdf 과 asdf-install 을 이용한 패키지 설치 환경 구축
  3. cffi 를 이용해서 C/C++ 라이브러리를 사용
  4. 위의 환경들을 이용해서 OpenGL 구축 (혹은 SDL 환경)
  5. OpenGL 을 사용해서 실시간 인터랙티브 렌더링 환경 구축

리눅스였다면 3번까지는 별 무리 없이 진행했을 듯 합니다만, 현재 몇가지 전제 조건을 두고 삽질 중입니다.

  • Windows 환경
  • Cygwin 을 사용하지 않는 순수 윈도우 환경 (원래는 cygwin 을 아에 사용하지 않는 것이 아니라, cygwin 을 이용해서 리눅스 경로로 진행하지 않으려고 했습니다만, cygwin 를 조금이라도 쓴다면 PATH 문제 때문에 아에 리눅스 환경처럼 진행해야겠더군요.)
  • emacs 환경
  • SBCL 환경

현재 cygwin 을 사용하지 않는 것은 포기해야하나 고민중에 있습니다.

구체적으로 말하면 현재 2번을 두고 삽질 중입니다. asdf-install 을 사용해서 설치하는 시스템이 이렇습니다.

  1. 인터넷으로 접속해서 tar.gz 형식의 파일을 다운 받는다.
  2. 정해진 경로로 압축을 푼다.
  3. asd 파일(C/C++ 의 헤더파일이라고 보면 됨)을 찾아서 load 한다.

현재 3번이 안되고 있습니다. 기존에 가지고 있던 윈도우의 tar.exe 파일(제 경우는 KTUG 설치시에 따라온 파일입니다.)은 -z 옵션을 지원하지 않아서 사용 못합니다. 또한 cygwin\bin\tar.exe 의 경우는 윈도우 경로를 인식하지 못해서 사용하지 못합니다. 결국 GnuWin32 의 일부인 bsdtar.exe 를 설치해서 이것으로 압축을 풀도록 했습니다.

여기서 막혔는데요. 이 압축을 풀 때 나오는 파일 이름들을 가지고 나중에 로딩할 때 사용해야하는데, 그 과정이 안되고 있습니다. 자세한 얘기는 해결을 하면 하도록 하죠.

제가 말하는 '실시간 인터액티브 렌더링 환경'이란, 그냥 기존의 실시간 환경, 즉 사용자가 인터랙티브한 환경을 말하는 것이 아니라 프로그래머 기준으로 인터랙티브한 환경을 말하는 것입니다.

가령 실시간으로 웹서버 내의 웹페이지를 구축하는 방법은 이미 유명합니다. (emacs+os=emacsos)실시간으로 코딩으로 음악+이미지 시스템을 만드는 것도 얼마전에 소개했었죠. (Live Coding - Stained)

OpenGL (혹은 SDL) 도 불가능하지 않을 것 같고, 이미 어딘가에서는 구현되었을지 모르는데, 나름대로 고집을 가지고 윈도우에서 하기는 여간 힘든게 아니네요. (SBCL 은 제발 윈도우도 좀 제대로 구현해줘요!!)

오늘은 이만하고, Superbike 2008 경기나 좀 보다가 자야겠습니다. 아흑!

추천 태그


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/02/03 22:34 2010/02/03 22:34

트랙백 주소 :: http://www.hybrid.pe.kr/tt/trackback/509

댓글을 달아 주세요

  1. 이덕희 2010/02/04 01:22  댓글주소  수정/삭제  댓글쓰기

    노고가 느껴지는 글이네요^^

    Lisp과 함수형 언어에 지식이 전무한 사람이 입문할 때 추천해 주실 문서나 책이 있으신가요?

    • Hybrid 2010/02/04 11:31  댓글주소  수정/삭제

      제 경우는 ANSI Common Lisp 과 Practical Common Lisp 두권을 보고 공부하고 있는데요.
      ANSI Common Lisp 의 경우는 조금 어렵지만, 근본적으로 설명하는 책이라서 언젠가는 꼭 보는게 좋구요.
      Practical Common Lisp 가 그나마 예시와 함께 설명하기 때문에 보기 쉬울겁니다. (초보자용은 아니라고 하시는 분도 계신데, 꾸준히 집중해서 본다면 초보자가 보기에도 무리가 없을 것 같습니다.)

  2. 이덕희 2010/02/05 13:35  댓글주소  수정/삭제  댓글쓰기

    추천 감사합니다. 한마디씩 써주신 설명도 도움이 됐습니다!
    사실 간단 명료하게 소개하는 "공짜 점심"같은 문서를 찾고있었지만 쉽지않네요 ㅎㅎ

    http://www.moxleystratton.com/article/clojure/for-non-lisp-programmers

    찾아다니다 위 문서로 기본적인 문법만 눈에 익혀둔 상태입니다. 저는 Clojure를 해볼 생각입니다. (이것 저것 비교해본 것은 아니지만...)
    Programming Clojure라는 책을 사볼 예정이었는데, 근본적인 Lisp책을 먼저보는게 좋을지 고민이네요...

    • Hybrid 2010/02/05 14:04  댓글주소  수정/삭제

      Clojure 가 목적이라면 Clojure 를 추천드립니다. (사실 전 Clojure 를 모릅니다만...)
      저도 Common Lisp 을 시작할때 Lisp 공부 이전에 CL 부터 시작한 것입니다.
      Lisp 자체가 워낙 dialect 가 많아서, 그런 것들을 모두 익히거나, 일일이 차이점을 알기는 힘들겁니다. 특히 초보시절엔 더욱 그렇구요.

      일단은 Clojure 로 시작하신 후 나중에 scheme 이나 CL 같은 다른 dialect 와 비교하시는게 좋다고 생각합니다.

      ps. 링크 걸어주신 문서는 굉장히 좋네요. 저도 언제 시간내서 clojure 에 대해서 간략하게 살펴봐야겠습니다.

[로그인][오픈아이디란?]