code: public static Job[] jobs() {
      final Value val = DKV.get(LIST);
      if( val==null ) return new Job[0];
      JobList jl = val.get();
      Job[] jobs = new Job[jl._jobs.length];
      int j=0;
      for( int i=0; i<jl._jobs.length; i++ ) {
        final Value job = DKV.get(jl._jobs[i]);
        if( job != null ) jobs[j++] = job.get();
      }
      if( j==jobs.length ) return jobs; // All jobs still exist
      jobs = Arrays.copyOf(jobs,j);     // Shrink out removed
      Key keys[] = new Key[j];
      for( int i=0; i<j; i++ ) keys[i] = jobs[i]._key;
      // One-shot throw-away attempt at remove dead jobs from the jobs list
      DKV.DputIfMatch(LIST,new Value(LIST,new JobList(keys)),val,new Futures());
      return jobs;
    }
docs: The list of all Jobs, past and present.
  @return The list of all Jobs, past and present