Gambit-C Scheme은 gsi(interpreter), gsc(compiler)로 이루어져 있고, compiler는 C 코드를 생성해준다.
아래는 Scheme에 관한 간단한 튜토리얼 및 Gambit-C를 사용해서 native app을 개발하는 것을 설명한 링크이다.
http://www.devx.com/opensource/Article/42778
happy hackin'
Gambit-C Scheme은 gsi(interpreter), gsc(compiler)로 이루어져 있고, compiler는 C 코드를 생성해준다.
아래는 Scheme에 관한 간단한 튜토리얼 및 Gambit-C를 사용해서 native app을 개발하는 것을 설명한 링크이다.
http://www.devx.com/opensource/Article/42778
happy hackin'
eval을 써서 멋지게 해결했다고 생각했는데 실행파일을 만들어서 실행하거나, DrRacket에서 run 버튼으로 실행할 때 다음과 같은 오류가 났다.
fn-name: unbound identifier;
also, no #%top syntax transformer is bound in: fn-name
eval을 쓸때 REPL에서하는 것과 그냥 실행하는 것에 차이가 있다 (phase에 따른 namespace의 문제. 자세한건 링크 참조).
빨리 해결하려는 맘에 (define ns (make-base-namespace)) (eval ... ... ns)의 형태로 변경하라는 예제를 보고 그렇게 했더니 아래와 같은 다른 에러가 났다. 아예 정의가 안됐다는 에러.
(나중에 찬찬히 읽어보니 make-base-namespace는 racket/base module이 export하는 symbol들만 resolve가능하게 해주는 것이었다)
fn-name: undefined;
cannot reference undefined identifier
해결책은 namespace anchor를 사용하는 것이었다. 참고 링크의 맨 마지막에 있다(역시 끝까지 읽어보는 것이 중요하다).
(define-namespace-anchor a)
(define ns (namespace-anchor->namespace a))
......
ref: http://docs.racket-lang.org/guide/eval.html
happy hackin'
http://www.cs.washington.edu/education/courses/cse341/12au/racket/eval-apply.html
happy hackin'
C:\Program Files\PLT\collects 디렉토리에서 컴파일한다고 가정하면, 다음과 같이...
..\mzc --auto-dir ++ldf c:\mysql\lib\opt\mysqlclient.lib ++ldl d:\mysql\lib\opt\mysqlclient.lib ++ldl WSock32.Lib ++ldl AdvAPI32.Lib ++ccf -Ic:\mysql\include ++ccf -D__LCC__ mysqlclient\mysqlclient.ss