     )
   "A list of pairs of commands and prerequisite lambdas to perform project compilation.")
 
-(defvar projectile-projects-cache (make-hash-table :test 'equal)
+(defvar projectile-projects-cache
+  (if (file-exists-p projectile-cache-file)
+    (with-temp-buffer
+      (insert-file-contents projectile-cache-file)
+      (read (buffer-string)))
+    (make-hash-table :test 'equal))
   "A hashmap used to cache project file names to speed up related operations.")
 
 (defun projectile-version ()

      (write-region (point-min)
                    (point-max)
                    projectile-cache-file))))

(defun projectile-load-cache ()
  "Load the cache from the hard drive in memory."
  (when (file-exists-p projectile-cache-file)
    (with-temp-buffer
      (insert-file-contents projectile-cache-file)
      (setq projectile-projects-cache (read (buffer-string))))))

(defun projectile-run-project-command (checks)
  "Run command considering CHECKS."

  :group 'projectile
  (if projectile-mode
      ;; on start
      (projectile-add-menu)
    ;; on stop
    (projectile-remove-menu)))

