Hang on El Capitan with Xcode 7 using Faux Pas 1.5

Issue #72 closed
Thorsten Lockert created an issue

Attempting to run Faux Pas (trial) on El Capitan (GM) and Xcode 7 (GM), I see hangs... I see it start analyzing 8 files (one per core in my rMBP?), then hang for 5-10 minutes, then complain about not being able to build Foundation and UIKit modules, then going on to the next file(s).

Sample output looks like:

Determining build settings for 1 targets and 2 build configurations
Checking project: ....
          target: ....
   configuration: Release
         ruleset: 83 Rules tagged [Recommended]: UndetachedDelegate, InvalidStringsFile, StringsFileEncoding, UIKitKVO, UnnecessaryNullCheck, RetinaImagesResolution, AssertionSideEffects, SuspiciousResources, NullCoalescingOp, LoadMethodWithoutAutoreleasePool, UnknownResourceCodeReference, StringsdictWithoutStrings, InitializeSuperInvocation, CompilerWarnings, HardcodedUIString, UnsupportedWeakReference, HardcodedSelfClass, MacroBasedIncludeGuard, RestrictedDirectMethodCall, RecommendedVCSIgnores, RetainingImmutableProperty, MissingAPIUsageDescription, XIBRuntimeAttributeMismatch, ThreadUnsafeInstanceCaching, MissingTranslation, RestrictedMethodOverride, MissingDeviceTypeResource, OldVerboseObjCSyntax, IsEqualAndHash, FileRefOutsideVCS, LiteralStringKeyPath, BasicProjectSettings, DuplicateTranslation, StrongDelegate, ConstructorReturnType, SetterInvocationInInitOrDealloc, ArgumentModification, FastEnumElementOutside, UnusedErrorValue, CopyingMutableProperty, ImplicitBundleId, UnnecessaryNibMethod, OrderedPointerToZeroComparison, PrefixHeaderIncludeSuggestion, ReleaseBuildCompilerArgs, XcconfigOverwrites, BuildSettingSelfReference, FixedFormatDateFormatter, BuildSettingPlacement, TerminatingApp, AbsPathInBuildSetting, PrivateCategory, FileRefWithAbsPath, MissingImageResolutionVariant, TranslationPunctuation, WeakReferenceToTopLevelXIBObject, UnprefixedClass, InitializeMethodCategoryOverride, SuspiciousDateTimeFormat, ReleaseBuildConfig, AssigningDelegate, UnknownResourceXIBReference, GlobalAndLocalizedResource, UnknownResourceModifier, Swizzling, ZeroAssignmentToPointer, DiscardedOpaqueNotificationObserver, DylibInstallName, TranslationFormatMismatch, SuspiciousMissingResources, ErrorConditionCheck, RedundantInclude, ReservedPrefix, NSLogUsed, UnprefixedCategoryMethod, UncommentedLocalizedString, UnidiomaticAccessorNaming, DuplicateResource, ViewControllerInitWithNibName, CategoryMethodConflict, BlockAPIRetainCycle, FileRefIgnoredInVCS, MissingNotificationCenterDetachment

Trial Version: Delaying operation for 15 more seconds
Trial Version: Delaying operation for 14 more seconds
Trial Version: Delaying operation for 13 more seconds
Trial Version: Delaying operation for 12 more seconds
Trial Version: Delaying operation for 11 more seconds
Trial Version: Delaying operation for 10 more seconds
Trial Version: Delaying operation for 9 more seconds
Trial Version: Delaying operation for 8 more seconds
Trial Version: Delaying operation for 7 more seconds
Trial Version: Delaying operation for 6 more seconds
Trial Version: Delaying operation for 5 more seconds
Trial Version: Delaying operation for 4 more seconds
Trial Version: Delaying operation for 3 more seconds
Trial Version: Delaying operation for 2 more seconds
Trial Version: Delaying operation for 1 more seconds
Initialization: Determining VCS state...
Initialization: Resolving build settings...
Rule InvalidStringsFile will not be applied: Applies to localized projects.
Rule LoadMethodWithoutAutoreleasePool will not be applied: Applies to projects targeting an OS prior to iOS 6 or Mac OS 10.8.
Rule StringsdictWithoutStrings will not be applied: Applies to localized projects.
Rule HardcodedUIString will not be applied: Applies to localized projects.
Rule UnsupportedWeakReference will not be applied: Applies to OS X targets.
Rule MissingTranslation will not be applied: Applies to localized projects.
Rule DuplicateTranslation will not be applied: Applies to localized projects.
Rule PrefixHeaderIncludeSuggestion will not be applied: Applies to projects that use a prefix header, and have at least 10 source code files.
Rule TranslationPunctuation will not be applied: Applies to localized projects.
Rule DylibInstallName will not be applied: Applies to OS X targets.
Rule TranslationFormatMismatch will not be applied: Applies to localized projects.
Rule RedundantInclude will not be applied: Applies to projects using a prefix header.
Rule UncommentedLocalizedString will not be applied: Applies to localized projects.
Initialization: Reading cached build steps
Initialization: Processing build steps
Initialization: Interpreting 2 XIB files...
Applying rules before checking code
Checking file #0/19 (19 remaining): /..../..../.....m

Checking file #1/19 (19 remaining): /..../..../....Client.m

Checking file #4/19 (19 remaining): /..../..../....Layer.m

Checking file #2/19 (19 remaining): /..../..../....Client.m

Checking file #3/19 (19 remaining): /..../AppDelegate.m

Checking file #7/19 (19 remaining): /..../..../....TableViewController.m

Checking file #6/19 (19 remaining): /..../..../....ViewController.m

Checking file #5/19 (19 remaining): /..../..../.....m

hang for 5-10 minutes here before...:

COMPILER ERROR when parsing file /.../.../....m: ..../..../..../.....h:9:9: fatal error: timed out waiting to acquire lock file for module 'Foundation'

Checking file #8/19 (18 remaining): /..../..../....PageController.m

COMPILER ERROR when parsing file /..../..../....Client.m: ..../..../AFNetworking/AFNetworking/AFHTTPSessionManager.h:22:9: fatal error: timed out waiting to acquire lock file for module 'Foundation'

Checking file #9/19 (17 remaining): /..../Supporting Files/main.m

COMPILER ERROR when parsing file /..../..../....Layer.m: ..../..../..../..../....Layer.h:9:9: fatal error: could not build module 'UIKit'

Checking file #10/19 (16 remaining): /..../..../....View.m

COMPILER ERROR when parsing file /..../AppDelegate.m: ..../..../..../AppDelegate.h:9:9: fatal error: could not build module 'UIKit'

Checking file #11/19 (15 remaining): /..../..../....View.m

Comments (8)

  1. Ali Rantakari repo owner

    Thanks for reporting this. This is most likely a code-dependent issue that occurs when interpreting source code with the version of open-source Clang that Faux Pas uses when experimental "Xcode 7" support is requested. I have encountered the same issue but have not been able to reproduce it reliably and deterministically.

    The next version of Faux Pas will use a newer version of Clang for this purpose, and this will hopefully fix this issue.

  2. Thorsten Lockert reporter

    I had sort-of assumed it was something like that. This is two ObjC projects (one small, one larger) that both built with Xcode 6.3 until I upgraded everything to the new GM releases — and then I decided to try out Faux Pas. Should have tried it out first... 😉

  3. Ali Rantakari repo owner

    Version 1.6 has been released — please let me know if it fixes this issue for you.

  4. Thorsten Lockert reporter

    Hah. I had 1 (!) day left of the eval period. I ran it on one of the projects that previously caused hangs, and … I think you just gained a new customer.

    No hang, some expected things and some … surprises that needs to be looked at. Woot!

    Hopefully there will be a Swift version at some point (after Apple follows through on the open source promise, to be sure).

    Thanks!

  5. Darren Ehlers

    Oops, my mistake. I assumed I was on the latest (just downloaded it) but it appears I was on 1.5. Installing 1.6 right now and will report back shortly...

  6. Log in to comment