squeak등의 smalltalk에서 smalltalk class는 대체 어떤 건가요?

Smalltalk class browse
Smalltalk class browse

 

이런저런 삽질을 좀 하다가 문득 궁금증이 생겼습니다.

그래서 World menu의 Transcript는 대체 어느 class에서 오는지를 찾다가보니

 

workspace에서 Smalltalk tools transcript open 이라고 치고 doit을 하면 Transcript가 열리네요.

 

그럼 여기에 등장하는 Smalltalk이라는 객체를 찾아보자고 해서 Inspect나 Browse를 해봐도….

뭔가 딱히 이거다! 라고 마음에 드는 내용이 없습니다.

 

혹시 이 부분에 대해서 명쾌한 답변을 주실 수 있는 분이 있으신가요?

 

==============================

감사하게도 smalltalk KR의 김승범님이 답변을 주셨습니다.

 

Smalltalk는 글로벌 딕셔너리라 보시면 됩니다.
원래 Squeak에서는 SystemDictionary의 인스턴스였는데요, Pharo는 SmalltalkImage라는 클래스를 따로 빼서 기존의 globals와 다른 이미지 관리에 필요한 기능들을 모아놨습니다.
Smalltalk inspect해보시면 모든 클래스의 이름들을 확인할 수 있습니다.
==============================
그래서 확인해봤더니 System-Support package에 SystemDictionary라는 클래스가 있네요.
이제부터는 이런식으로 좀 더 뒤져볼 생각입니다.
재미있네요 😀

 

squeak에서의 Primitive

http://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:3.1#cite_ref-.EC.97.AD.EC.9E.90.EC.A3.BC2_1-0

 

이 부분을 검수하면서 어디선가 본거같은 생각이 불현듯 들어서 Pharo의 source를 좀 찾아보니 이런 구문이 보이네요.

<primitive: ‘primGetLocaleEncoding’ module: ‘ImmX11Plugin’>

 

흐음.. 그런데 아래의 link를 보면 이런식으로 번역이 되더란말입니다.

http://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:3.1#.ED.94.84.EB.A6.AC.EB.AF.B8.ED.8B.B0.EB.B8.8C

 

이 프리미티브 뒤에 오는 코드는 프리미티브 처리에 실패했을 경우에만 실행합니다.

 

흐음.. 이 다음의 코드는 사실 ^ nil 입니다만…. 다음의 코드가 의미하는게 ^ nil인지 아니면 module: 부분을 말하는건지.. 누가 좀 알려주실분 없나요…-.-;