Erlang shell과의 삽질

from 관찰소개 2008. 2. 9. 21:33

몇일간 골머리를 썩혔던 문제에 종지부를 찍었다. 명쾌하게 해결된 것은 아니고 적어도 내문제는 아니다 라고 결론 내린 것에 불과하지만 삽질은 무조건 결과물을 남겨야 한다는 생각에 몇자 적어본다.

Erlang Programming을 하는데 필수 에디터는 Emacs다. Emacs의 erlang-mode를 이용하면 정말 편리하게 프로그래밍 할 수 있다. 또한 erlang-shell mode도 지원해서 따로 터미널을 띄우지 않고도 바로바로 쉘에서 테스트를 해볼 수가 있어서 편리하다. 그런데 터미널에서 erl명령어로 작업할 때는 멀쩡하던 놈이 Emacs에서 띄우니까 아웃풋이 다르다. list를 뿌릴때 한줄로 뿌리던 놈이 여러줄로 나뉘어서 뿌리는 것이었다. [1,2,3] 으로 나와야 할 녀석이 [1\n,2\n,3] 이런 식으로 나온다.

슬슬 저 삽입된 newline이 눈에 거슬리기 시작하면서 삽질은 시작되었다. 난 일반 Emacs가 아니라 맥용 Aquamacs를 사용하고 있었기 때문에, 처음에는 내가 혹시 Aquamacs의 설정을 잘 못 한것은 아닐까 의심하였다. Aquamacs의 설정만 무지하게 바꾸어 가면서 개삽질해도 결과는 마찬가지. 혹시나 해서 일반 Emacs로 해보니 동일한 증세 발견. Emacs의 버전 문제인가 하여 Emacs 버전 변경 시도. 결과는 마찬가지. 터미널 문제인가 싶어 터미널 삽질. 결과는 마찬가지. Erlang/OTP R12B-0을 사용중이었는데, 이놈 버그인가 싶어서 Erlang/OTP R12B-1 컴파일. 컴파일 개삽질. (맥에서는 왜이리 안되는 지 원). 결과는 마찬가지. 관리하는 다른 서버(데비안)에서 apt-get install erlang으로 간단하게 깔구서 테스트 해보니 이게 어쩐일인가? 잘나옴. 그쪽 Emacs와 맥북의 Emacs 설정 비교. 설정 문제 없음. 차이점을 찾아보니 Erlang 버전이 다르다는것. 맥북에도 같은 버전으로 깔아보니 역시나 이놈의 Erlang 버전 문제였던 것이다!


Erlang/OTP R12B 이후로 위와 같이 나오고 그 이전은 아래와 같이 나온다.


물론 둘다 터미널에서 하면 한줄로 잘 나온다. -_- 결국 R12B 부터 erlang mode에 뭔 정책이 바뀐건지 암튼지 간에 리스트의 경우에서 한줄당 하나씩 뿌리는 것이다. 젠장할!!! 빌어먹을!!! 저놈의 newline때문에 삽질만 얼마나 했는지 모르겠다. 하긴 뭐 옛날에 리눅스 x-window 잡는다고 한달간 삽질한거에 비하면 새발의 피지만 말이다. ~_~


,