Compc (компилятор библиотеки Actionscript) не завершится ошибкой, если сначала я не удалю файл? - PullRequest
0 голосов
/ 27 января 2009

Вот сценарий: я запускаю compc в исходном каталоге, чтобы перекомпилировать уже существующую библиотеку после некоторых изменений, которые успешно завершаются. Затем я удаляю библиотеку (файл .swc) и перекомпилирую, что вызывает много ошибок.

Ничего не изменилось за это время - очевидно, что это должно было быть либо успешным оба раза, либо неудачным оба раза.

libs/pv3ddebug $ compc -library-path+=.. -source-path=./src -compiler.optimize -include-sources+=./src -output ../pv3ddebug.swc
Loading configuration file /Users/bill/flex_sdk_3/frameworks/flex-config.xml
/Users/bill/lg/vision/libs/pv3ddebug.swc (152944 bytes)

/libs/pv3ddebug $ rm ../pv3ddebug.swc 

/libs/pv3ddebug $ compc -library-path+=.. -source-path=./src -compiler.optimize -include-sources+=./src -output ../pv3ddebug.swc
Loading configuration file /Users/bill/flex_sdk_3/frameworks/flex-config.xml
/Users/bill/lg/vision/libs/pv3ddebug/src/com/phenomblue/pv3ddebug/PV3DDebug.as(45): col: 34 Error: Type was not found or was not a compile-time constant: AdvancedView.

                public function PV3DDebug(view:AdvancedView)
                                               ^
... more errors follow

Мне кажется, я узнал, почему происходят ошибки, и могу их исправить, но я обеспокоен тем, что первая компиляция не удалась.

У меня есть теория:

  1. Библиотека A, от которой зависит pv3ddebug, была правильной
  2. pv3ddebug был успешно скомпилирован (и это правильно)
  3. Библиотека A была переведена в состояние, которое не может быть скомпилировано с pv3ddebug
  4. pv3ddebug был успешно скомпилирован неправильно, потому что compc не заметил, что A был обновлен до состояния отказа
  5. удаление pv3ddebug и последующая перекомпиляция привели к тому, что compc попытался скомпилировать с новым A, поэтому компиляция не удалась.

Мои вопросы к вам: шаг 4 - ошибка? Это поведение кэширования, которое я должен был ожидать, или его можно изменить с помощью переключателя компилятора? Что-то происходит, что моя теория не объясняет?

1 Ответ

1 голос
/ 28 января 2009

Вы можете попробовать -incremental = false. Предполагается, что это по умолчанию для компилятора командной строки, но то, что вы описываете, звучит так, как будто оно включено.

...