I am fully sympathetic towards the cross-platform compatibility, and not asking for anything to be put into the main sources which would threaten that. However, some small refinements to the current system would I think benefit all platforms. The .pdrc is an entirely acceptable solution - though it will serve the cross-platform paradigm if accesses to it are abstracted, as I suggested in an earler post, so that people like me can implement Windows-specific patches (rather as happens in Csound) without breaking the underlying code. My goal is as user-friendly a Windows version as possible, so that composers who never want even to see a compiler, much less use one, can use PD with as much ease as possible.
My only real ~problem~ was having to have dlls in the working directory
Under Windows, basic code to access the .ini file to read/write user settings is virtually identical to the Registry mode. I am not proposing, or planning, the sort of intense Registry usage that leads to the problems you describe. We still use the .ini file mechanism in Windows Csound, as it happens, for compatibility with Windows 3.1. It is not really a multi-user solution though.
Richard Dobson
Karl MacMillan wrote:
Having to enter command-line arguments within the Windows file association mechanism is not the idiomatic way of doing things anyway; every time you want to load different libraries you have to rewrite the command-line for the association. An environment variable or registry entry for a 'LIB' directory would be much more flexible, as I have suggested previously.
As PD is cross platform I would really hate to see any platform specific attributes added. This would take away what I think is a strong point. In particular I think that any use of the registry should be avoided. As part of my job I help support several hundred windows desktop systems and I can't tell you how many problems are caused by this windows 'feature'. It works so poorly many large software companies refuse to code for it. I agree with Richard that environment variables are not an elegant solution under windows - I am not even a fan of application specific enviroment variables under unix. Plain text file .pdrc (unix) or pd.ini (windows) seem like the best choice to me. Many of us really dislike the windows way of doing things - probably as much as many people dislike the unix way of doing things. Any solution that steers clear of either direction is probably good and I think that .rc and .ini files are pretty neutral. Just my two cents.
Karl