uiop:delete-file-if-exists doesn't signa an error when it should
Why does a name such as delete-file-if-exists starts the red alert in my mind?
(uiop:delete-file-if-exists "/etc/passwd") -> nil
which is wrong, you want a file-error in that case!
note:
(progn (uiop:delete-file-if-exists "/etc/passwd") (probe-file "/etc/passwd")) #| --> #P"/private/etc/passwd" |#
but no other process created it in between! ie. the fundamental post-condition of delete-file-if-exists is not respected.
Please, either signal the error when the file cannot be deleted, or rename it uiop:delete-file-if-you-can
.
Also, hint: cl has ignore-errors: (ignore-errors (delete-file foo)) is as good and should be used instead.