Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Super Smash Bros: Compile Limit Edition

Super Smash Bros: Compile Limit Edition

Do you work with a large codebase? Does it contain thousands of Swift files? Then you might hit an annoying issue with which you won't be able to compile. After hitting us for 2 years now, we may have some experience working around it. Hear the story of what this issue is, and how we heroically dealt with it (disclaimer: there're no dragons involved).

Avatar for Wallapop Eng

Wallapop Eng

May 23, 2019

More Decks by Wallapop Eng

Other Decks in Programming

Transcript

  1. iOS Team Takes absolute paths of all source files when

    compiling /Users/Luis/Developer/a_bit_long_folder_name/Projects/My_Cool_Project/iOS/
  2. iOS Team UNIX system has a limit on how many

    bytes can be used for the command line argument and environment variables
  3. iOS Team UNIX system has a limit on how many

    bytes can be used for the command line argument and environment variables getconf ARG_MAX
  4. iOS Team UNIX system has a limit on how many

    bytes can be used for the command line argument and environment variables (~262k bytes) getconf ARG_MAX
  5. iOS Team + no project changes + fast to apply

    - environment dependent - no supported - magic
  6. iOS Team + correct approach + secure future + additional

    perks - difficult - time consuming - file git history
  7. iOS Team 1. Go to bugreport.apple.com and report a new

    bug 2. Select Product > Developer Tools > Xcode
  8. iOS Team 1. Go to bugreport.apple.com and report a new

    bug 2. Select Product > Developer Tools > Xcode 3. Set title “Xcode build: support passing parameters via response files”
  9. iOS Team 1. Go to bugreport.apple.com and report a new

    bug 2. Select Product > Developer Tools > Xcode 3. Set title “Xcode build: support passing parameters via response files” 4. Set Classification to “Serious Bug”
  10. iOS Team 1. Go to bugreport.apple.com and report a new

    bug 2. Select Product > Developer Tools > Xcode 3. Set title “Xcode build: support passing parameters via response files” 4. Set Classification to “Serious Bug” 5. Set Reproducibility to “Always”
  11. iOS Team 1. Go to bugreport.apple.com and report a new

    bug 2. Select Product > Developer Tools > Xcode 3. Set title “Xcode build: support passing parameters via response files” 4. Set Classification to “Serious Bug” 5. Set Reproducibility to “Always” 6. Copy description from wallapop.to/rdar-xcode