posted by 아겔-_- 2009.03.18 17:59

하악하악...

SBCL에서 기본적으로 유니코드를 지원하지만, 뭔가 부족했음. (사실 전 커먼리습 요즘엔 다 까먹;;;)

중국어도, 일본어도 기본적으로 native encodings을 지원하는데...

그래서 그냥 감기로 병가내고 쉬면서 작업해서 만들어봤음.


sbcl-devel에 코드 보내야징...
신고
posted by 아겔-_- 2009.03.01 19:24
CP949문자열을 ISO-2022-KR로 변환하는 예제.

DESIGNATOR을 출력하지 않아도 되긴 되는구나.

테스트는 2022kr등으로 컴파일한 다음에 

$ ./2022kr | iconv -f

...이렇게 iconv을 이용해서 CP949로 다시 변환해보기로.
 
 1 #include <stdio.h> 
 2 #include <string.h> 
 3
 4
 5 #define CP949_PHRASE "이것이 바로 락앤롤 땐스!" 
 6
 7 const char DESIGNATOR[] = {0x1b, 0x24, 0x29, 0x43};
 8
 9 const char SO = 0x0e;
10 const char SI = 0x0f;
11
12 main() {
13     int n = 0;
14     char state = SI;
15
16     // print designator 
17     /* 
18     for ( n = 0 ; n < 4 ; n ++ ) { 
19         putc(DESIGNATOR[n], stdout); 
20     } 
21     */ 
22
23     // cp949-phrase -> iso2022kr 
24     for ( n = 0 ; n < strlen(CP949_PHRASE) ; n ++ ) {
25         char c = CP949_PHRASE[n];
26         if (c & 0x80) {
27             // non-ascii 
28             if (state != SO) {
29                 state = SO;
30                 putc(SO, stdout);
31             }
32             putc(c & 0x7f, stdout);
33         } else {
34             // ascii 
35             if (state != SI) {
36                 state = SI;
37                 putc(SI, stdout);
38             }
39             putc(c, stdout);
40         }
41     }
42
43 }


신고
posted by 아겔-_- 2009.03.01 12:50


팩터의 인코딩시스템에 다음을 작업중/작업완료입니다.

  • 조합형 : 구현완료. 테스트도 성공.
  • io.encodings.blackhole : /dev/null 같은 인코딩-_-;;; 심심해서 만들어봄
  • io.encodings.asian : 유니코드 코드테이블 로딩/변환 모듈, cp949, johab, sjis등 많은 인코딩 변환에 공통적으로 이용하는 vocab. 한국어에는 적용을 했는데 일본어는 Dan이 적용하길;;;
  • ISO-2022-KR : 뭔가 제대로 작동하고 있지 않은듯. 뭔가 <SO>~<SI>처리가 틀린걸지도...
  • EUC-JP : 내가 왜 일본어 인코딩을 작업하고 있는지-_- 문득 깨어나보니 작업중이었음;;; 대충 작성해서 커밋했음. 테스트는 심심할때 해볼 생각.

ISO-2022-KR은 뭔가 도움이 필요할듯하군함.

이제 이번주는 인코딩 이렇게 완료하고 다음주부터는 유니코드 한글에서 가나다 정렬지원(Unicode Collation)등을 작업해야겠군함.

EUC-JP은 Dan한테 미룰까-_-;;;
신고
posted by 아겔-_- 2009.02.23 23:12
2009/2/22 팩터 바이너리를 받아 실행해보니 적용이 잘되어있네요. 

간단히 작성한 문서도 잘 포함이 되있구요. 

new_ui에 대한 작업이 어느정도 이루어지면 한글출력도 팩터ui에서 가능할걸로 보입니다. (pango backend) 그리고 추가적으로 win32, cocoa, x11에서 입력기에 대한 지원을 더하면 완전한 한글환경을 갖출것으로 생각됩니다. :-) 


ㅋ... 매일 매일이 설레고 즐겁군요. :-)
신고
posted by 아겔-_- 2009.02.17 22:20
저의 개인 factor clone에 io.encodings.korean을 push했습니다.

사실 지난 주말부터 factor offical git-repository에 올라와있어서 원하는 사람은(특히 개별적으로 팩터를 빌드하시거나 하시는 분들) 얼마든지 한글코드 지원을 맛보실 수 있었습니다.

Daniel Ehrnberg의 큰 갈굼도움으로 좋은일을 할수있었던것 같습니다. (Daniel, thank you!)

도움말 문서도 얼추 작성했고 보람차네요.

현재로서는 cp949(euckr, uhc, 확장완성형)만을 지원하지만 조합형이나, 쌩뚱맞게 euc-jp코드에 대한 작업도 해나갈 생각입니다. (마지막것두 io.encodings.korean에 넣어볼까요?^^;)

나름 별거 아닌 인코딩 지원이지만, 이를 위해서 많은 지원을 해준 Slava Pestov에게도 고맙네요. (알고보니 저보다 두살이나 어리더군요! 아... 참 인생 헛살았다는 느낌;;)


팩터가 io.encodings.korean와 연관하여 개선된 부분과 개선될 부분도 생겨서 기쁩니다.
  • 리소스 pathname에 vocab:을 지정가능하게되었습니다. 예를 들어, resource:work/io/encodings/korean/cp949.txt
  • 와 같이 work디렉토리나 basis디렉토리에 참조가 있을수밖에 없었는데, 이를 vocab:io/encodings/korean/cp949.txt와 같이 어떤 위치에 있건 vocab의 위치에 따라가게. (현재 git버젼엔 반영)
  • cp949, shift-jis, euc-jp등 unicode.org에서 제공하는 코드 테이블을 이용하여 매핑하는 방식을 공식적으로 지원하기 위한 파서/코드테이블 vocab (작업중)



마지막으로 스샷 하나 올립니다. 아직 ui-listener에서는 유니코드 한글출력이 구현되지않아 어렵지만, 유니코드를 정상적으로 지원하게 설정한 emacs+fuel에서는 한글을 느끼실수있답니다. ^^
신고

'삽질+돈되는짓 > FactorLanguage' 카테고리의 다른 글

Imperative Factor  (0) 2009.02.21
어째서 함수의 조합은 복잡해야만 할까?  (0) 2009.02.19
io.encodings.korean 커밋  (2) 2009.02.17
Factor에서 개발하기  (0) 2009.02.15
Factor History & Features  (0) 2009.02.14
concatenative language?  (1) 2009.02.14
posted by 아겔-_- 2009.02.12 21:59
k은행 파견에도 지치지 않고,(사실 지친 주제에!)

퇴근후 매일 1시간정도 작업해서 4일정도 작업하여 겨우 cp949 인코딩 지원 vocab을 완성했습니다.

단위테스트를 잘 통과해서 기쁘네요. (물론 테스트도 제가 짰지만. ^^;)

어서 official에 반영하고 싶다는 마음인데 아아;;; irc에도 별 응답이 없고. (거기는 아침일까;)
메일링도 잠잠하고;;;

하악하악... happy factor-ing!
신고

'삽질+돈되는짓 > FactorLanguage' 카테고리의 다른 글

팩터는 어떤 언어임까?  (0) 2009.02.13
Why "Factor"?  (0) 2009.02.13
io.encodings.korean을 완성했습니다.  (2) 2009.02.12
factor-kr을 시작했습니다.  (0) 2009.02.08
ProjectEuler 풀면서 한컷!  (0) 2009.02.01
FactorLanguage을 위한 SLIME?  (2) 2009.01.31

티스토리 툴바