MIT-Scheme Edwin에서 컴파일하고 불러오기

2014. 1. 5. 02:42

MIT Scheme에서 컴파일하지 않고 그냥 실행하면 실행속도가 무지무지무지무지 느리다. 컴파일 과정에서의 최적화가 되지 않기 때문인 것 같은데 해결하기 위해서 코드 마지막에 (begin (cf "test") (load "test"))를 넣고(스킴 설치폴더에 파일명이 test.scm인 소스파일이 있다고 가정) 실행하면 (cf "test)도 컴파일하고 하는식으로 무한재귀의 문제가 생긴다. 그러다가 코멘트로 처리하고 X-z로 실행하면 어떨까 하고 생각한 후 아래와 같은 코드를 삽입하고 begin부분에서 X-z했더니 제대로 작동한다.


요컨대, 설치폴더에 소스파일을 두고, 소스 마지막에 아래의 코드를 삽입한 후, 소스 파일을 저장(C-x C-s)하고 아래의 코드에 커서를 두고 X-z하면 된다. 물론 여전히 Racket이 약간 더 빠르긴 하지만... Racket은 internal definition에서 뭔가 문제가 있는 것 같다. 이 방법을 이용하면 Edwin에서도 나름 빠른 실행이 가능하니 Racket은 Windows에서도 거의 켤 일이 없을 듯.


#|
(begin (cf "test")
       (load "test"))
|#

Programming/SICP