linux상에서의 Pharo한글입력 도전기-결과

결론부터 말하자면 실패.

일단 ImmX11Plugin을 다운로드 받기위해 검색을 한 결과

ftp://ftp.uwsg.indiana.edu/pub/FreeBSD/ports/distfiles/squeak/

위의 주소에서 SqueakImmX11Plugin3a.tar.gz 파일을 구해서 내용을 봤습니다.

XIM관련 patch가 들어있네요? (아마도 2007년에 제가 했을겁니다만.. 기억이 잘 사라지니 별 수 없죠)

 

일단 시도한 방법은 다음과 같습니다.

1. chroot를 이용해서 gentoo를 32bit 버전으로 빌드한다

2. cogvm 소스를 다운로드받아서 빌드한다

3. http://smalltalk.kr/wiki/doku.php?id=wiki:compilevm01 이 내용을 참고로해서 Pharo에서 사용된 cogvm을 compile시도한다.(smalltalkKR분들 감사드립니다)

 

1번은 당연히 별 어려움이 없구요

2번은 성공. 별다르게 큰 patch없이 ImmX11Plugin만 빌드해서 make install에 성공.

3번은 진행하다가 gg (chroot상에서 vmmaker로 뭔가 해야하는데 그건 X를 호출못하므로 실패)

 

 

자… 이 결과물로 해본삽질은 다음과같습니다.

1. cogvm으로 pharo를 띄운다
plugin lodaing이 바뀌는건 봤지만 결국 ImmX11Plugin은 로딩이 안됨.(인거같음)

2. cogvm에서 생성된 plugin을 pharo onclick 2.0에 넣고 Pharo를 구동
안됨. 아마도 다른환경에서 빌드되어 그런게 아닐까 생각

3. pharo oneclick 2.0에 있는 vm에 plugin만 cogvm에서 생성된걸 연결해봤음
안됨. 분명 로딩되는 plugin이 바뀌는건 확인할 수 있는데 정작 필요한건 로딩이 안되는듯.

pharo loaded module list
pharo loaded module list

위의 화면에서 아래쪽이 Pharo oneclick의 원래 module들. 위쪽이 cogvm의 module을 loading한 결과물.

더군다나 한글입력하면 이전의 안되던 상황이랑 별 차이가 없다는게 문제라는거죠.

 

사실 이 이후에 좀 더 삽질을 해볼까..하고 ImmX11Patch의 ImmX11.patch파일을 봤지만…

실질적으로 내수준에서는 drop을 하는게 맞다고 판단.

이유인즉슨 이미 Pharo에서 사용하는 cogvm이나 pharo에서 사용하는 sqUnixX11.c 파일에는 이미 XIM관련된 내용이 들어가있고 그것이 주석처리 되어있다는거. 이건 그에 합당한 이유가 있기때문이라고 생각.

 

대략.. 아침부터 좀 파봤습니다만 역시 제 허접한 실력으로는 이것이 한계인듯 합니다.

조만간에 커뮤니티에서 누군가가 해주기만을 바랄뿐…..

(가능하면 어떤 방법으로 했는지도 알려주시면 참 감사하겠는데말이죠…-.-)

 

일단 linux상에서 Pharo한글입력은 저는 이수준에서 포기입니다…하.하.하

linux상에서의 Pharo한글입력 도전기-시작

Pharo상에서의 한글 출력은 상당히 잘되어있습니다.

일단 다른 OS에서 작성한 pharo의 한글을 linux상에서 copy and paste해봤더니 한글이 제대로 잘 붙는군요.

그럼 한글 출력은 linux에서도 font만 맞춰주면 전혀 이상이 없다는거고……………..

그래서 AntiAliasing도 잘 먹고해서 방심하고있었는데.. linux에서는 한글 입력이 안되네?

정확히는 입력은 되는데 XIM에서 뭐가 넘어오는지를 똑바로 처리 못하는 상황이 되겠습니다.

예를들어 “가” 라는걸 pharo에서 입력하면 눈에 깨지는 글자가 나와도 그걸 복사해서 linux에 붙여넣으면 올바르게 “가” 라는 글자가 나와야 하는데

깨진글자가 그대로 linux의 편집기에서도 똑같이 깨지더군요.

이런 상황이라면 아마도 방법이 있을거야..라고 생각하고 찾기 시작했습니다.

immx11plugin search
immx11plugin search

 

 

Pharo의 finder를 열어서 이것저것 찾다보니 어라? 많이 보던 단어가 나오네?

selector면 method니까…. 분명 쓰는데가 있다는 얘기군….이라고 생각하고 찾기 시작.

방법을 인터넷에서 찾아보니 다음과같은 URL이 있습니다.

http://book.pharo-project.org/book/Tidbits/TipsAndTricks/HowToDebugPluginAbsence/?_s=i5cCoOHKgbE_259B&_k=_6D56-FFGv-jwNI7

호오.. 이렇게하면 로딩된 module을 찾을 수 있다는건가?

module list
module list

 

물론 do it 따위로 출력이 될리가 없겠죠. Print it을 이용해서 출력을 하면 다음과같은 결과가 나옵니다.

module_list_finish
module_list_finish

 

아.. 정말 보기 난잡하게 출력됐군요…. 볼성사납게 말입니다.

그래서 이걸 간단하게 메모장에서 정리를 해봤습니다.

‘ZipPlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘Matrix2x3Plugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘FloatArrayPlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘B2DPlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘BitBltPlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘FT2Plugin Freetype-Plugin-dtl.63 (e)’
‘LocalePlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘SecurityPlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘FilePlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘MiscPrimitivePlugin VMMaker-oscog-EstebanLorenzano.166 (i)’
‘LargeIntegers v1.5 VMMaker-oscog-EstebanLorenzano.166 (i)’

흠.. 그래 잘 로딩되어있군.. 흠흠……………………흠?

……………..야… ImmX11Plugin어디갔니? 뭔가 이상하다…… 그래서 Pharo one click의 소스디렉토리를 뒤졌더니

pharo module list
pharo module list

 

흠.. 그래 좋다.. 흠…………………………………….응?

플러그인이 디렉토리에 없어요……………..하하하

고로 로딩도 당연히 못함.

 

위에서 셀렉터들을 뒤지다가 본건데 unix나 linux상에서 X11을 이용해 Pharo를 돌리는경우 locale에 대한 정보등을 ImmX11Plugin module을 통해서 얻고 처리하는데

해당되는게 없으니 당연히 얻을 수 있는게 없어서 아무것도 안되는상황….

아마도 XIM에서 입력받는걸 걍 ansi로 처리해버리는게 아닌가 싶은데 말이죠…………………….

 

이제부터의 문제는 Pharo의 vm위에서가 아니라.. Pharo의 소스를 가져다가 plugin을 빌드하고 그걸 넣어주는 과정이 필요할듯합니다.

허 참….. 애매하군요…. 소스를 좀 찾아서 한참 봐야할듯한데……………….

문제는 Pharo자체는 32bit라는거………………….

…………………………………

하아…. 32bit gentoo를 빌드해서 거기서 라이브러리를 빌드한다음에 추출해서 넣어야할거같네요.

이 다음step하고나면 반드시 저장하고 짱박아놔야겠습니다…T.T

스크린샷 한장으로 보는 메소드 생성

메서드 생성

일단 까먹을까봐 주석을 달아 스샷을 올리기는 했습니다만..

사실 smalltalk의 기본 방향은 주석을 가능한한 쓰지 않는거죠 😀

그래도 이런거 하나 해놓으면 나중에 도움될거같아 흔적삼아 남겨놓습니다.

여러분은 이러시면 안돼요 😀

 

아래의 주소를 참고로한 내용입니다.

http://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:2.6