Racket seems to insist on using ~/.racket as its special place, despite the apparent fix that added XDG compliance. This happens even when I have racket folders neatly set up in all my xdg dirs, and clear ~/.racket* every time.
Stepping through in a debugger, I found the problem was at line 2038 of rktio_fs.c, where rktio_system_path calls rktio_expand_user_tilde on prefer_home_str. When prefer_home_str is set from an appropriate XDG environment variable, it is specifically checked to be an absolute path by starting with a slash, where the default prefer_home_str starts with a tilde.
This wouldn't be a problem if rktio_expand_user_tilde did not respond to an absolute path by setting RKTIO_ERROR_NO_TILDE and returning null, or if the error were caught in rktio_system_path and prefer_home were set properly, or if prefer_home_str were not tilde expanded after being set to an absolute path at line 2008 in the first place. The current behavior results in the non-compliant ~/.racket being used, to my great frustration.
Thank you for your work.