• Francois-Rene Rideau's avatar
    2.011.3: fix infinite loop when a .asd file has a timestamp in the future. · 5db8c252
    Francois-Rene Rideau authored
    The issue was reported by Sid H <shortsightedsid@gmail.com> on asdf-devel.
    Problem is, when the filesystem server clock is in the future of
    the system clock (either because the NFS server has a clock in the future,
    or because the lisp host has a clock in the past),
    defsystem would call find-system (via find-component via parse-component-form)
    to make sure it modifies any previously registered object if any,
    rather than create a new object with "interesting" consequences if anyone
    held to the previous object.
    find-system would see the file has been modified
    since last registered with register-system,
    and proceed to load again, in an infinite loop that stop
    either when the Lisp process runs out of stack, or
    the date and time specified in the timestamp is reached.
    Now, ASDF doesn't bother reloading if the timestamp is in the future.