Squeak/Pharo hanno una gestione speciale in caso di assenza del codice sorgente: tentano di decompilare CompiledMethod da MethodDictionary appropriato.
Quello che hai visto qui è un errore di Decompiler per decompilare correttamente un metodo.
senza codice, l'IDE è non funzionale, e si sono bloccati (non è possibile salvare il codice, sfogliare il codice, debug del codice ...)
Questa versione Pharo 1.1 è molto vecchio e si non otterrà alcun supporto su di esso.
Ma è interessante, il bug di Decompiler che hai incontrato è ancora presente sullo sviluppo tronco Squeak corrente (4.5)
E il metodo che rende il loosy Decompiler è:
< aNumberWithUnits
(self compareUnits: aNumberWithUnits)
ifTrue: [self value: ((aNumberWithUnits value) < (self value) ifTrue: [^true] ifFalse: [^false]).]
ifFalse: [^Error new signal: 'Incompatible unit types.'].
Questo è un codice piuttosto non convenzionale poiché il messaggio [self value: ...]
non verrà mai inviato.
Il motivo è che il parametro verrà valutato per primo e entrambi i rami della condizione restituiranno ifTrue: [^true] ifFalse: [^false]
.
Dato che hai esplorato un angolo buio che solo i neofiti esplorano, e che non siamo riusciti a testare, direi solo grazie.
Se vi piace di più, è possibile aprire una relazione sulla http://bugs.squeak.org
fonte
2013-06-19 23:20:45
Dalla foto, sembra un sapore squittio 4.x.Quale versione esattamente? Sembra un bug, quindi probabilmente dovrai scaricare lo stack e postarlo nella mailing list squeak-dev (o aprire un problema con mantide). –
Bel bug trovare !! –