2012-11-05 9 views

Odpowiedz

6

3 możliwych wyjaśnień, spróbuj zidentyfikować dowcip:

  1. przeglądarka jest wystarczająco inteligentny, aby pokazać źródło rekonstruowany (dekompilowana) z kodów bajtowych CompiledMethod. Podpowiedź: w tym przypadku tracisz wszystkie komentarze
  2. znajduje się ścieżka wyszukiwania dla plików źródłowych, a jedna znajduje się gdzieś na dysku
  3. Pharo zmienia się tak szybko, że każde źródło jest teraz znalezione w pliku .changes

W celu weryfikacji 1. można spróbować przejrzeć odwołania do Dekompilatora (jest trochę zbyt wiele zastosowań do mojego gustu).

2. Dla sprawdzenia, można rozpocząć przeglądanie Twórcy implementacji #openSourceFiles

3. W celu weryfikacji, można ocenić ten fragment:

| nSources nChanges | 
nSources := nChanges := 0. 
SystemNavigation default allBehaviorsDo: [:b | 
    b selectorsDo: [:s | 
     (b compiledMethodAt: s) fileIndex = 1 
      ifTrue: [nSources := nSources+1] 
      ifFalse: [nChanges := nChanges+1]]]. 
^{nSources. nChanges} 
8

Plik obrazu zawiera tylko skompilowany kod, a nie oryginalny kod źródłowy. Plik zmian zawiera kod źródłowy dla rzeczy, które sam dodałeś do systemu, ale nie kodu źródłowego dla istniejących klas systemowych. Aby uzyskać kod źródłowy istniejących klas systemowych, potrzebujesz pliku źródłowego.

Po tym, Smalltalk może dekompilować kod i wytworzyć coś, co wygląda jak kod źródłowy, jeśli plik źródłowy nie jest dostępny. W tym kodzie brakuje właściwych nazw zmiennych, komentarzy i spacji. Naprawdę nie chcesz używać dekompilowanego kodu źródłowego, więc potrzebujesz dostępu do pliku źródłowego.

4

Możliwe jest również automatyczne pobieranie PharoV10.sources przez Pharo.

+0

W międzyczasie zauważyłem, że Pharo 2.0 wydaje się automatycznie generować lub pobierać źródła. Jeśli uruchomię obraz Pharo 2.0 bez źródeł, plik obrazu pojawi się nagle w folderze VM, podczas gdy starsze obrazy Pharo (1.4) wyświetlają komunikat o błędzie podczas uruchamiania. – user1801323

+0

Tak, to jest prawidłowe zachowanie. – camillobruni