Hello,
I have attached to this message version 4 of user-load-dir.el.
Several changes have been made to this version.
1. The error handling in load-dir actually works as expected. If one
of the files in the user-load-dir generates an error, it is
silently ignored and load-dir continues to load all the other
files in the user-load-dir.
2. Added the function byte-compile-dir to user-load-dir.el. This
function can be used to byte compile all files in the directory
specified by the directory parameter. If the optional parameter
recurs is non-nil, this is done recursively.
3. Added the function byte-compile-user-load-dir-files. This
interactive function may be used to byte compile all files in the
user-load-dir.
4. The function load-user-load-dir-files does nothing if
user-load-dir is nil.
5. Modified the user-load-dir defcustom so that it is set to t
instead of nil in the case that it cannot be initialized at load
time due to user-init-file being nil.
6. Modified user-load-dir-after-init-hook so that it only sets
user-load-dir to its default value if it is equal to t.
The reason I made changes 5 and 6 is to allow for the possibility of
this feature being disabled by the user setting user-load-dir to nil.
Setting auto-load-files-in-user-load-dir to nil causes to not be called
automatically by the user-load-dir-after-init-hook but the files can
still be called by calling load-user-load-dir-files interactively.
Setting user-load-dir to nil disables load-user-load-dir-files and
byte-compile-user-load-dir-files.