[llvm-dev] [Path] RFC: Known directories

Aaron Ballman via llvm-dev
Mon, 23 Nov 2015 14:54:32 -0000

On Thu, Nov 19, 2015 at 6:50 AM, Paweł Bylica <chfast at gmail.com>
wrote:
> Hi,
>
> llvm::sys::path allows the user to query "known directory" paths:
temp,
> cache, home. I was tweaking this area a bit for some time. I would like to
> propose a small redesign.
>
> What we have so far?
>
> home_directory() tries to return what it promises. No issues with that.
>
> system_temp_directory(true) returns a path to a directory that can be
erased
> on reboot. On Linux it is usually /tmp. On Windows and OSX it returns
user's
> temp directories as a first choice.
>
> system_temp_directory(false) returns a path to a directory that is not
> cleared on reboot. On Linux it is usually /var/tmp. On Windows is the same
> as system_temp_directory(true). On OSX it is user's cache directory.
>
> user_cache_directory() returns a path to user's cache directory.
>
> Redesign proposal:
>
> Add function temp_directory() - a replacement for
> system_temp_directory(true). If it returns system or user temp directory is
> OS-specific. Same as system_temp_directory() it always succeed.
> Implement system_temp_directory(bool) in terms of temp_directory() and
> user_cache_directory().
> Deprecate system_temp_directory(bool).
>
> Comments?

We appear to use both system_temp_directory(true) and
system_temp_directory(false) in ways that seem like they could matter.
For instance, modules uses a temp directory that does not get erased
on reboot, possibly for performance reasons. Do we gain something from
deprecating system_temp_directory()?

~Aaron