I don't know how likely it is that HOME is undefined, but it seems to me that Eiffel should do something reasonable if it isn't. The only reasonable thing to do on a Unix platform is to call `getpwuid' to find out what the home directory is. There is no other way to find out, as far as I know. The shell has to call getpwuid or getpwuid_r once at login to set the "home" shell variable and the HOME environment variable values. I don't think the C code to do this is very complicated. There is a similar example in file.c routine `file_owner'. Another option would be to return "" (empty string) if HOME is undefined but presumably this would violate the expectation of callers of {EXECUTION_ENVIRONMENT}.home_directory_name. If you did this, then estudio could refuse to run if HOME is not set, just as it does if ISE_EIFFEL is not set. I don't think this is a great solution. A third option is to raise an exception if HOME environment variable is not set, but then all programs would have to catch it to display a nice error message.