aaron.ballman added a comment.

I'm sympathetic to the problem you're trying to solve (not having to set 
environment variable for the temp directory), but I'm also not convinced this 
is the correct way to approach it. This feels like a configuration property of 
the libclang execution -- so it'd be nice to require it to be set up from 
`clang_createIndex()` (IIRC that's the entrypoint for CIndex functionality, but 
I'm not 100% sure), rather than an API that the user can call repeatedly. Did 
you consider a design like that?



================
Comment at: clang/docs/ReleaseNotes.rst:863
+- Introduced the new function ``clang_setTemporaryDirectory``,
+  which allows to override the temporary directory path used by Clang.
 - ``clang_Cursor_getNumTemplateArguments``, 
``clang_Cursor_getTemplateArgumentKind``,
----------------



================
Comment at: clang/include/clang-c/Index.h:78-79
+ * this function in order to reset the temporary directory to the default value
+ * from the environment. Such a resetting should be done before deleting a
+ * tempDirUtf8 pointer previously passed to this function.
+ */
----------------
Should we mention anything about relative vs absolute path requirements? 
Separators? 


================
Comment at: llvm/include/llvm/Support/Path.h:423
+/// tempDirUtf8 pointer previously passed to this function.
+void set_system_temp_directory_erased_on_reboot(const char *tempDirUtf8);
+
----------------
Err, I'm not super excited about this new API. For starters, it's not setting 
the system temp directory at all (it doesn't make any modifications to the host 
system); instead it overrides the system temp directory. But also, this is 
pretty fragile due to allowing the user to override the temp directory after 
the compiler has already queried for the system temp directory, so now you get 
files in two different places. Further, it's fragile because the caller is 
responsible for keeping that pointer valid for the lifetime of the program. 
Finally, we don't allow you to override any other system directory that you can 
query (like the home directory).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139774/new/

https://reviews.llvm.org/D139774

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to