Squeak/Pharo mają specjalną obsługę w przypadku nieobecnego kodu źródłowego: próbują dekompilować CompiledMethod z odpowiedniego MethodDictionary.
To, co tu zobaczyłeś, to błąd dekompilatora, który właściwie dekompiluje jakąś metodę.
Bez kodu IDE nie jest funkcjonalny i utkniesz (nie można zapisać kod, przeglądanie kodu, debugowania kodu ...)
Ta wersja Pharo 1.1 jest bardzo stary i ty nie otrzyma na to żadnego wsparcia.
Ale co ciekawe, bug Decompiler, które napotkał jest nadal obecny na obecnym rozwoju Zapiszczeć bagażnika (4.5)
A metoda, która sprawia, że loosy Decompiler jest:
< aNumberWithUnits
(self compareUnits: aNumberWithUnits)
ifTrue: [self value: ((aNumberWithUnits value) < (self value) ifTrue: [^true] ifFalse: [^false]).]
ifFalse: [^Error new signal: 'Incompatible unit types.'].
Jest to kod raczej niekonwencjonalny ponieważ wiadomość [self value: ...]
nigdy nie zostanie wysłana.
Powód jest taki, że parametr zostanie najpierw oceniony, a obie gałęzie warunku zwrócą ifTrue: [^true] ifFalse: [^false]
.
Odkąd odkryłeś jakiś ciemny zakątek, który dopiero odkrywają nowicjusze i nie udało nam się przetestować, po prostu dziękuję.
Jeśli masz ochotę, możesz otworzyć raport o http://bugs.squeak.org
z obrazka, to wygląda jak smak pisk 4.x.Która dokładnie wersja? Wygląda jak błąd, więc prawdopodobnie będziesz musiał zrzucić stos i opublikować go na liście dyskusyjnej squeak-dev (lub otworzyć problem modliszki). –
Ładne znalezisko błędów !! –