Standardpaths library

Marco Leise via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Apr 8 07:46:34 PDT 2015


Am Tue, 07 Apr 2015 11:58:58 +0000
schrieb "Kagamin" <spam at here.lot>:

> On Monday, 6 April 2015 at 21:40:28 UTC, Marco Leise wrote:
> > So if some configuration is "portable" and you want to create 
> > something
> > really fine grained you could offer that directory as an
> > alternative "roaming config dir" (returning null or
> > "~/.config" on Linux).
> 
> Though it's unusual for an average programmer to figure out the 
> correct usage of roaming profiles :)

All they need to know is that Roaming must only contain small
and machine independent files.

(Why? Because in environments where users profiles are stored
on servers, this is the part that gets synced with those
servers. So e.g. a browser cache should not end up there, nor
should configuration that makes sense only on the current
workstation.)

Frankly, I didn't know until FreeSlave's library brought it
up. :D
Anyways my idea of portable libraries is that they should not
implement the least common denominator, but the full width of
what is available or not across different systems and offer a
common API for that, so you have the option to write well
behaving applications while rewriting as little code as
possible.

Two examples:
There is an "application menu" in OS X and in
Gnome 3, but other desktops don't provide it. I would support
it, so applications integrate nicely with these desktops and
turn it into another main menu item or taskbar right-click
menu on other desktops.
POSIX doesn't close file handles for spawned child-processes
by default, which is now considered a bad default by most.
I think a portable library should try to provide the same
functionality across systems and open files in "close on exec"
mode by default on POSIX so it is similar to Windows.

-- 
Marco



More information about the Digitalmars-d-announce mailing list