 
 extension Job : CustomStringConvertible {
   public var description: String {
+    func join(_ parts: String?...) -> String {
+      return parts.compactMap { $0 }.joined(separator: " ")
+    }
+
     switch kind {
     case .compile:
-        return "Compiling \(moduleName) \(displayInputs.first?.file.basename ?? "")"
+        return join("Compiling \(moduleName)", displayInputs.first?.file.basename)
 
     case .mergeModule:
         return "Merging module \(moduleName)"

        return "Compiling Clang module \(moduleName)"

    case .dumpPCM:
        return "Dump information about Clang module \(displayInputs.first?.file.name ?? "")"

    case .interpret:
        return "Interpreting \(displayInputs.first?.file.name ?? "")"

    case .repl:
        return "Executing Swift REPL"

        return "Swift help"

    case .backend:
      return join("Embedding bitcode for \(moduleName)", displayInputs.first?.file.basename)

    case .emitSupportedFeatures:
      return "Emitting supported Swift compiler features"
