squeak과 64bit 지원

linux에서 squeak을 쓰는데 귀찮았던 이유중에 하나가 squeak vm이 32bit라는거…

근래에 이런저런 자료를 찾느라 뒤지다가 모처럼 맘먹어보니 생각보다 자료가 open된게 있네요.

결론부터 말하자면 지금도 지원은 가능…그런데………………….

 

1. vm을 64bit를 써야한다 – 손쉽게 납득

2. vm에서 사용하는 image를 64bit용으로 전환을 해야한다 – ……………………..응? 야?

 

일단 alpha부터 시작해서 sparc까지.. 64bit cpu는 몽땅 지원하는게 좀 감사하기는 합니다만……
(mac os X의 경우는 ppc cpu군요.. 대략 G4 이상이려나)

 

조만간에 가능한 상황이 된다면 테스트를 한번 해봐야겠습니다.

일단 관련된 FAQ페이지까지 이미 있군요.. 내용도 꽤나 많구요…

 

http://www.squeakvm.org/squeak64/

http://www.squeakvm.org/squeak64/faq.html

 

아마도 호환성없이 가야하는건지.. 좀 암담..하기는 합니다…..-.-;

object pascal에서의 self와 sender

http://www.borlandforum.com/impboard/impboard.dll?action=read&db=del_qna&no=4112

일단 위의 강좌를 기초로하면 이러한 결과물을 볼 수가 있습니다

object pascal에서의 sender와 self예제
object pascal에서의 sender와 self예제

조금 더 생각을 해서 이걸 분석해 보도록 하겠습니다.

현재 저 예제 대로라면

Sender :: Tbutton

self :: TForm1

이런 결과가 나오게 됩니다.

 

자아.. 멀쩡히 TButton의 OnClick을 눌렀는데 왜 이런 결과가 나오게 될까요?

여기에는 기본 전제가 필요합니다.

button이고 뭐고.. Form위에 얹혀진 객체들은 OnClick 이벤트를 눌렀다고 하더라도  실행되는건 TForm의 method이다

 

사실 대단히 당연한겁니다. 해당되는 method의 이름은 TForm1.Button1Click 이니깐요.

Form의 위에서 뭔가를 추가한다고 해도 사실 TForm을 벗어나지는 못한다는 얘기죠.

당연히 Sender는 Button1의 OnClick이벤트가 TForm1.Button1Click을 호출하는거니깐 TButton이 되는거고

self는 TForm1.Button1Click 이라는 method가 TForm의 method기때문에 메소드가 소속된 객체이름인 TForm이 되는겁니다.

 

간단한건데 여태까지 별 생각없이 살았네요…-.-;

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

메서드 생성

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

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

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

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

 

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

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