code: private boolean compileCurrent() throws IOException {
          Specification spec;
          Mapper result;
  
          output.normal(currentJob.source + ":");
          if (currentJob.listing != null) {
              output.openListing(currentJob.listing);
          }
          spec = (Specification) mapperMapper.invoke(currentJob.source);
          if (spec == null) {
              return false;
          }
          try {
              result = spec.translate(currentJob.k, currentJob.threadCount, output);
              compiler.run(result, spec.getMapperName(), currentJob.source, currentJob.outputPath);
          } catch (GenericException e) {
              output.error(currentJob.source.getName(), e);
              return false;
          } catch (IOException e) {
              output.error(currentJob.source.getName(), e.getMessage());
              return false;
          }
          return true;
      }
docs: Helper for compile