Dear all,
There is a naming conflict between Store.Registry and the Registry namespace of the Registry package (an unsupported contribution to VisualWorks). Niall Ross made me aware of this potential conflict last October, but it didn't seem likely that there would be a real issue. However, I ran into an Exception where somehow Store.ComparePackages>>packageIsInImage resolved the variable name "Registry" as the Registry namespace instead of Store.Registry. I don't know yet why this happened. It may depend on the order in which I loaded Registry and other packages/parcels. So this will have to be fixed. Now that Win32SystemSupport has enhanced registry access methods using the wide string API, this would also be a good time to redirect Registry's system calls to Win32SystemSupport instead of having a completely separate external interface class. I'll see what I can do about it. Before changing the package, I would like to know how important backward compatibility is in this case. Would anybody have a problem if a new version of the Registry package were not 100% backward compatible? Does anybody use the file based registry at all? Would it be okay to replace the current implementation for file based registries, which is based on a directory hierarchy, by an implementation which stores the whole registry contents in a single XML file? Any opinions are welcome. Looking forward to your answers, Joachim Geidel _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
I wrote the original versions of Registry. I don't mind, in fact am
all too glad, to see someone step forward and take an active maintenance role with it. Some intermingled thoughts. On Feb 2, 2010, at 11:00 PM, Joachim Geidel wrote: > Dear all, > > There is a naming conflict between Store.Registry and the Registry > namespace > of the Registry package (an unsupported contribution to > VisualWorks). Niall > Ross made me aware of this potential conflict last October, but it > didn't > seem likely that there would be a real issue. However, I ran into an > Exception where somehow Store.ComparePackages>>packageIsInImage > resolved the > variable name "Registry" as the Registry namespace instead of > Store.Registry. I don't know yet why this happened. It may depend on > the > order in which I loaded Registry and other packages/parcels. This seems unfortunate. I think if I were doing it over gain, I'd just rename it. To something like WinRegistry. Or MSRegistry. Win32Registry. There are all kinds of Registries out there now days. Make it crystal clear that this is specififcally the Microsoft Windows Registry. Not something that is longer, but still vague (e.g. RegistryInterface, RegistrySystem, etc). > So this will have to be fixed. Now that Win32SystemSupport has > enhanced > registry access methods using the wide string API, this would also > be a good > time to redirect Registry's system calls to Win32SystemSupport > instead of > having a completely separate external interface class. I'll see what > I can > do about it. At the time, there was a very good reason for this. It became a practice that I follow today. I found, that extended existing external interfaces was problematic and introduced undesired coupling. By doing it separate, I got rid of a whole bunch of parcel extension method problems with DLLCC that I could never hunt and chase down. And I got out of the problem of what happened when other people extended the same class, with possibly conflicting extensions. Basically, by keeping it small and isolated and simple, I was guaranteed a black box that just worked well for a long time. I've followed this same practice with any library I've written that has more than a trivial (i.e. one or two simple functions) interface with the OS. Cairo, OSTimeZone, etc. You'll have to do as you see fit... if I were actively maintaining it myself, I know I'd keep it as it's own separate interface and not pile more stuff on top of Win32SystemSupport. > Before changing the package, I would like to know how important > backward > compatibility is in this case. Would anybody have a problem if a new > version > of the Registry package were not 100% backward compatible? Does > anybody use > the file based registry at all? Would it be okay to replace the > current > implementation for file based registries, which is based on a > directory > hierarchy, by an implementation which stores the whole registry > contents in > a single XML file? At the time I did the file based one, the software it was primarily written for was Windows. And the multi file approach was simply the simplest thing that could work. XML wasn't a major byword yet either. But one or two people there were dabbling with Linux. So it gave a cheesy way to not have to change all of that, but do development work off of Windows. I would share your suspicion that it's not all that used, and doesn't really matter what the storage mechanism is there. In fact, you could probably just drop it all together. When someone really needs to simulate the abomination known as the registry on other platforms, let them add it in an extension package, in the way that suits them best. -- Travis Griggs Objologist 10 2 letter words: "If it is to be, it is up to me" _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Dear Travis,
I provide a comment below after one of yours. >I wrote the original versions of Registry. I don't mind, in fact am >all too glad, to see someone step forward and take an active >maintenance role with it. Some intermingled thoughts. > >On Feb 2, 2010, at 11:00 PM, Joachim Geidel wrote: > > > >>Dear all, >> >>There is a naming conflict between Store.Registry and the Registry >>namespace >>of the Registry package (an unsupported contribution to >>VisualWorks). Niall >>Ross made me aware of this potential conflict last October, but it >>didn't >>seem likely that there would be a real issue. However, I ran into an >>Exception where somehow Store.ComparePackages>>packageIsInImage >>resolved the >>variable name "Registry" as the Registry namespace instead of >>Store.Registry. I don't know yet why this happened. It may depend on >>the >>order in which I loaded Registry and other packages/parcels. >> >> > >This seems unfortunate. I think if I were doing it over gain, I'd just >rename it. To something like WinRegistry. Or MSRegistry. >Win32Registry. There are all kinds of Registries out there now days. >Make it crystal clear that this is specififcally the Microsoft Windows >Registry. Not something that is longer, but still vague (e.g. >RegistryInterface, RegistrySystem, etc). > > > >>So this will have to be fixed. Now that Win32SystemSupport has >>enhanced >>registry access methods using the wide string API, this would also >>be a good >>time to redirect Registry's system calls to Win32SystemSupport >>instead of >>having a completely separate external interface class. I'll see what >>I can >>do about it. >> >> > >At the time, there was a very good reason for this. It became a >practice that I follow today. I found, that extended existing external >interfaces was problematic and introduced undesired coupling. By doing >it separate, I got rid of a whole bunch of parcel extension method >problems with DLLCC that I could never hunt and chase down. And I got >out of the problem of what happened when other people extended the >same class, with possibly conflicting extensions. Basically, by >keeping it small and isolated and simple, I was guaranteed a black box >that just worked well for a long time. I've followed this same >practice with any library I've written that has more than a trivial >(i.e. one or two simple functions) interface with the OS. Cairo, >OSTimeZone, etc. You'll have to do as you see fit... if I were >actively maintaining it myself, I know I'd keep it as it's own >separate interface and not pile more stuff on top of Win32SystemSupport. > > issues to do with extension methods on ExternalInterface classes that we _believed_ were an effect of trying to make our build process invoke #fillDefineCachesWithValues in a class-oriented instead of package/extension oriented manner. Full generic resolution was deferred till 7.8. These extend-ExternalInterface-class problems may also relate to AR 58099, which discusses cases in which complex chains of typedefs need more #recompileMethods calls than Store provides by default (new Store that is - old Store even more assumed a single pass would suffice which was not always the case). DB2EXDI shows a postLoad action that solves a problem in a specific case. Meanwhile, the general solution is being worked on. Relevance to this: I think if Joachim wanted to extend an ExternalInterface class instead of having a separate one, he'd be able to make it work, but he might want to check DB2EXDI and read the relevant bits of those AR texts. > > >>Before changing the package, I would like to know how important >>backward >>compatibility is in this case. Would anybody have a problem if a new >>version >>of the Registry package were not 100% backward compatible? Does >>anybody use >>the file based registry at all? Would it be okay to replace the >>current >>implementation for file based registries, which is based on a >>directory >>hierarchy, by an implementation which stores the whole registry >>contents in >>a single XML file? >> >> > >At the time I did the file based one, the software it was primarily >written for was Windows. And the multi file approach was simply the >simplest thing that could work. XML wasn't a major byword yet either. >But one or two people there were dabbling with Linux. So it gave a >cheesy way to not have to change all of that, but do development work >off of Windows. > >I would share your suspicion that it's not all that used, and doesn't >really matter what the storage mechanism is there. In fact, you could >probably just drop it all together. When someone really needs to >simulate the abomination known as the registry on other platforms, let >them add it in an extension package, in the way that suits them best. > >-- >Travis Griggs >Objologist >10 2 letter words: "If it is to be, it is up to me" > > >_______________________________________________ >vwnc mailing list >[hidden email] >http://lists.cs.uiuc.edu/mailman/listinfo/vwnc > > > > _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Hi Travis,
Am 08.02.10 08:32 schrieb Travis Griggs: > I wrote the original versions of Registry. I don't mind, in fact am > all too glad, to see someone step forward and take an active > maintenance role with it. Some intermingled thoughts. Hm, my "active maintenance role" may not be all that active... ;-) So far you have been the only one to respond after a whole week, so I guess that the package isn't widely used. It's currently a prerequisite of JNIPort, which can store its configuration in the registry, and that's why I am interested in keeping the package up to date. This may change in the future. Anyway, I am glad you don't object if I update the package. > This seems unfortunate. I think if I were doing it over gain, I'd just > rename it. To something like WinRegistry. Or MSRegistry. > Win32Registry. There are all kinds of Registries out there now days. > Make it crystal clear that this is specififcally the Microsoft Windows > Registry. Not something that is longer, but still vague (e.g. > RegistryInterface, RegistrySystem, etc). I agree. I first thought about something like "RegistryInterface" or "RegistryAccess", but got to dislike those names for the same reason. WinRegistry seems okay. >> So this will have to be fixed. Now that Win32SystemSupport has >> enhanced >> registry access methods using the wide string API, this would also >> be a good >> time to redirect Registry's system calls to Win32SystemSupport >> instead of >> having a completely separate external interface class. I'll see what >> I can >> do about it. > > At the time, there was a very good reason for this. It became a > practice that I follow today. I found, that extended existing external > interfaces was problematic and introduced undesired coupling. By doing > it separate, I got rid of a whole bunch of parcel extension method > problems with DLLCC that I could never hunt and chase down. And I got > out of the problem of what happened when other people extended the > same class, with possibly conflicting extensions. Basically, by > keeping it small and isolated and simple, I was guaranteed a black box > that just worked well for a long time. I've followed this same > practice with any library I've written that has more than a trivial > (i.e. one or two simple functions) interface with the OS. Cairo, > OSTimeZone, etc. You'll have to do as you see fit... if I were > actively maintaining it myself, I know I'd keep it as it's own > separate interface and not pile more stuff on top of Win32SystemSupport. I experimented with making Registry.Win32API a subclass of Win32SystemSupport (which certainly isn't a nice design), but this has drawbacks. E.g., some methods of Win32SystemSupport assume that the hKey parameter is a pointer, while others want it to be an Integer, making it a bit difficult to use them consistently. If Win32SystemSupport is changed, the Registry package would have to implement backward compatibility code to support as many VW versions as possible. So, I'll follow your advice. >> Before changing the package, I would like to know how important >> backward >> compatibility is in this case. Would anybody have a problem if a new >> version >> of the Registry package were not 100% backward compatible? Does >> anybody use >> the file based registry at all? Would it be okay to replace the >> current >> implementation for file based registries, which is based on a >> directory >> hierarchy, by an implementation which stores the whole registry >> contents in >> a single XML file? > > At the time I did the file based one, the software it was primarily > written for was Windows. And the multi file approach was simply the > simplest thing that could work. XML wasn't a major byword yet either. > But one or two people there were dabbling with Linux. So it gave a > cheesy way to not have to change all of that, but do development work > off of Windows. > > I would share your suspicion that it's not all that used, and doesn't > really matter what the storage mechanism is there. In fact, you could > probably just drop it all together. When someone really needs to > simulate the abomination known as the registry on other platforms, let > them add it in an extension package, in the way that suits them best. I have not yet made up my mind about this, and I am not saying that I'll change anything concerning the file based registry. I just wanted to know if anybody really needs it. In fact, an XML based registry emulation would make the package dependent on XML packages, which would certainly be a move away from simplicity. Thanks for your answer! Joachim _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
> -----Original Message----- > From: [hidden email] [mailto:[hidden email]] On Behalf Of Joachim Geidel > Sent: Monday, February 08, 2010 4:08 PM > To: Travis Griggs > Cc: VWNC List > Subject: Re: [vwnc] Naming conflict between Store.Registry and Registry namespace > > Hi Travis, > > Am 08.02.10 08:32 schrieb Travis Griggs: > > I wrote the original versions of Registry. I don't mind, in fact am > > all too glad, to see someone step forward and take an active > > maintenance role with it. Some intermingled thoughts. > > Hm, my "active maintenance role" may not be all that active... ;-) So far > you have been the only one to respond after a whole week, so I guess that > the package isn't widely used. It's currently a prerequisite of JNIPort, Or maybe it works so well that nobody thought it necessary to respond. I use it and have no problems with it. From your description of the changes you are considering I don't think there would be much impact on me. So, there was not any reason to respond. > which can store its configuration in the registry, and that's why I am > interested in keeping the package up to date. This may change in the future. > Anyway, I am glad you don't object if I update the package. > > > This seems unfortunate. I think if I were doing it over gain, I'd just > > rename it. To something like WinRegistry. Or MSRegistry. > > Win32Registry. There are all kinds of Registries out there now days. > > Make it crystal clear that this is specififcally the Microsoft Windows > > Registry. Not something that is longer, but still vague (e.g. > > RegistryInterface, RegistrySystem, etc). > > I agree. I first thought about something like "RegistryInterface" or > "RegistryAccess", but got to dislike those names for the same reason. > WinRegistry seems okay. > > >> So this will have to be fixed. Now that Win32SystemSupport has > >> enhanced > >> registry access methods using the wide string API, this would also > >> be a good > >> time to redirect Registry's system calls to Win32SystemSupport > >> instead of > >> having a completely separate external interface class. I'll see what > >> I can > >> do about it. > > > > At the time, there was a very good reason for this. It became a > > practice that I follow today. I found, that extended existing external > > interfaces was problematic and introduced undesired coupling. By doing > > it separate, I got rid of a whole bunch of parcel extension method > > problems with DLLCC that I could never hunt and chase down. And I got > > out of the problem of what happened when other people extended the > > same class, with possibly conflicting extensions. Basically, by > > keeping it small and isolated and simple, I was guaranteed a black box > > that just worked well for a long time. I've followed this same > > practice with any library I've written that has more than a trivial > > (i.e. one or two simple functions) interface with the OS. Cairo, > > OSTimeZone, etc. You'll have to do as you see fit... if I were > > actively maintaining it myself, I know I'd keep it as it's own > > separate interface and not pile more stuff on top of Win32SystemSupport. > > I experimented with making Registry.Win32API a subclass of > Win32SystemSupport (which certainly isn't a nice design), but this has > drawbacks. E.g., some methods of Win32SystemSupport assume that the hKey > parameter is a pointer, while others want it to be an Integer, making it a > bit difficult to use them consistently. If Win32SystemSupport is changed, > the Registry package would have to implement backward compatibility code to > support as many VW versions as possible. So, I'll follow your advice. > > >> Before changing the package, I would like to know how important > >> backward > >> compatibility is in this case. Would anybody have a problem if a new > >> version > >> of the Registry package were not 100% backward compatible? Does > >> anybody use > >> the file based registry at all? Would it be okay to replace the > >> current > >> implementation for file based registries, which is based on a > >> directory > >> hierarchy, by an implementation which stores the whole registry > >> contents in > >> a single XML file? > > > > At the time I did the file based one, the software it was primarily > > written for was Windows. And the multi file approach was simply the > > simplest thing that could work. XML wasn't a major byword yet either. > > But one or two people there were dabbling with Linux. So it gave a > > cheesy way to not have to change all of that, but do development work > > off of Windows. > > > > I would share your suspicion that it's not all that used, and doesn't > > really matter what the storage mechanism is there. In fact, you could > > probably just drop it all together. When someone really needs to > > simulate the abomination known as the registry on other platforms, let > > them add it in an extension package, in the way that suits them best. > > I have not yet made up my mind about this, and I am not saying that I'll > change anything concerning the file based registry. I just wanted to know if > anybody really needs it. In fact, an XML based registry emulation would make > the package dependent on XML packages, which would certainly be a move away > from simplicity. > > Thanks for your answer! > Joachim > > > _______________________________________________ > vwnc mailing list > [hidden email] > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc Terry =========================================================== Terry Raymond Crafted Smalltalk 80 Lazywood Ln. Tiverton, RI 02878 (401) 624-4517 [hidden email] <http://www.craftedsmalltalk.com> =========================================================== _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Niall Ross
Just a small thought:
Win32Registry was valid for along period of time, but now I'm working
on a 64 bit Windows that still has the same registry.
So I think WindowsRegistry or WinRegistry as a new name would be safer for the next future. (How does this apply to the newly accumulated Win32SystemSupport on 64bit Windows?) Just my 2c Thomas Mit freundlichen Grüssen Thomas Brodt PORaBo Consulting Tel. +41 71 677 20 50 Fax. +41 71 677 20 59 http://www.porabo.ch Am 08.02.2010 18:44, schrieb Niall Ross: Dear Travis, I provide a comment below after one of yours.I wrote the original versions of Registry. I don't mind, in fact am all too glad, to see someone step forward and take an active maintenance role with it. Some intermingled thoughts. On Feb 2, 2010, at 11:00 PM, Joachim Geidel wrote:Dear all, There is a naming conflict between Store.Registry and the Registry namespace of the Registry package (an unsupported contribution to VisualWorks). Niall Ross made me aware of this potential conflict last October, but it didn't seem likely that there would be a real issue. However, I ran into an Exception where somehow Store.ComparePackages>>packageIsInImage resolved the variable name "Registry" as the Registry namespace instead of Store.Registry. I don't know yet why this happened. It may depend on the order in which I loaded Registry and other packages/parcels.This seems unfortunate. I think if I were doing it over gain, I'd just rename it. To something like WinRegistry. Or MSRegistry. Win32Registry. There are all kinds of Registries out there now days. Make it crystal clear that this is specififcally the Microsoft Windows Registry. Not something that is longer, but still vague (e.g. RegistryInterface, RegistrySystem, etc).So this will have to be fixed. Now that Win32SystemSupport has enhanced registry access methods using the wide string API, this would also be a good time to redirect Registry's system calls to Win32SystemSupport instead of having a completely separate external interface class. I'll see what I can do about it.At the time, there was a very good reason for this. It became a practice that I follow today. I found, that extended existing external interfaces was problematic and introduced undesired coupling. By doing it separate, I got rid of a whole bunch of parcel extension method problems with DLLCC that I could never hunt and chase down. And I got out of the problem of what happened when other people extended the same class, with possibly conflicting extensions. Basically, by keeping it small and isolated and simple, I was guaranteed a black box that just worked well for a long time. I've followed this same practice with any library I've written that has more than a trivial (i.e. one or two simple functions) interface with the OS. Cairo, OSTimeZone, etc. You'll have to do as you see fit... if I were actively maintaining it myself, I know I'd keep it as it's own separate interface and not pile more stuff on top of Win32SystemSupport.While progressing 52471 and related ARs last year, Martin and I noticed issues to do with extension methods on ExternalInterface classes that we _believed_ were an effect of trying to make our build process invoke #fillDefineCachesWithValues in a class-oriented instead of package/extension oriented manner. Full generic resolution was deferred till 7.8. These extend-ExternalInterface-class problems may also relate to AR 58099, which discusses cases in which complex chains of typedefs need more #recompileMethods calls than Store provides by default (new Store that is - old Store even more assumed a single pass would suffice which was not always the case). DB2EXDI shows a postLoad action that solves a problem in a specific case. Meanwhile, the general solution is being worked on. Relevance to this: I think if Joachim wanted to extend an ExternalInterface class instead of having a separate one, he'd be able to make it work, but he might want to check DB2EXDI and read the relevant bits of those AR texts.Before changing the package, I would like to know how important backward compatibility is in this case. Would anybody have a problem if a new version of the Registry package were not 100% backward compatible? Does anybody use the file based registry at all? Would it be okay to replace the current implementation for file based registries, which is based on a directory hierarchy, by an implementation which stores the whole registry contents in a single XML file?At the time I did the file based one, the software it was primarily written for was Windows. And the multi file approach was simply the simplest thing that could work. XML wasn't a major byword yet either. But one or two people there were dabbling with Linux. So it gave a cheesy way to not have to change all of that, but do development work off of Windows. I would share your suspicion that it's not all that used, and doesn't really matter what the storage mechanism is there. In fact, you could probably just drop it all together. When someone really needs to simulate the abomination known as the registry on other platforms, let them add it in an extension package, in the way that suits them best. -- Travis Griggs Objologist 10 2 letter words: "If it is to be, it is up to me" _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |