[alexandria-devel] Proposed addition of temporary file creation utilities

Faré fahree at gmail.com
Sun Apr 22 19:37:17 UTC 2012


2012/4/22 Hans Hübner <hans.huebner at gmail.com>:
> neither iolib nor osicat are the right place for temporary file
> handling operators like the one I proposed.  Both these libraries are
> specifically targeted towards POSIX systems, so there is no chance
> that they will cooperate, say, with ABCL.
>
iolib certainly *intends* to be more portable than that,
but admittedly isn't quite there yet.

> Setting the process umask is something that is completely unrelated to
> portably creating temporary files.
>
The umask, atomicity and a proper directory are all important security concerns.
An implementation that doesn't make sure these issues are handled
should make sure to tag itself as "not for use where security matters"
AND to encourage all its clients to taint themselves as such, too.

Failure of my implementation to properly address security concerns
(for the same reason as yours) is one reason I haven't pushed
my own with-temporary-file for semi-standardization in the past.
I still believe its API is better than the one you propose
(though I can imagine further improvements for
creation modes, early deletion, etc.).

> If this is not going into Alexandria, there are two likely other
> outcomes:  Either the code goes into Postmodern, giving the next
> person the same problem (and I've not had this problem once, but many
> times), or it will end up in a trivial-temporary-file library that may
> include some conditional code for setting up the default temporary
> directory in a meaningful way. With Quicklisp, this would not hurt
> much, but it certainly feels a little silly to additional
> trivial-whatever libraries for basic functionality.
>
Please go the trivial-temporary-file way.
It is not silly at all.

> Your remarks regarding how this request represents a "poor way to
> promote Lisp as a serious language" are unwelcome, unconstructive and
> wrong.  Thank you for not continuing on that path.
>
Reinventing an octogonal wheel then trying to semi-standardize it is poor taste.
Please either use existing round wheels, or make it round if you make a new one.
Please no 90% solutions that come bite you later;
or at the very least, document it as a 90% solution
and discourage its use in code that aims at providing 100% abstractions.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Truth comes as conqueror only to those who have lost the art of receiving it
as friend. — Tagore




More information about the alexandria-devel mailing list