let get_modules_from_dir dir =
  let dump_file = Filename.concat dir "dump.odoc" in
  try
    Hashtbl.find dump_files dump_file
  with
    Not_found ->
      try
        if not (Sys.file_exists dump_file) then
          failwith ("no file "^dump_file)
        else
          let l = Odoc_info.load_modules dump_file in
          Hashtbl.replace dump_files dump_file l;
          l
      with
        Failure s ->
          prerr_endline s;
          prerr_endline ("no module information in "^dir);
          []