Hi. The names of the CMMakeVMMaker configurations is a MESS. The configurations from one OS do not match the ones from another OS, and what is more, they do not even match for the same OS. So...I will try to come up with a possible organization. I propose the following pattern: GogType-OS-(special)-(Debug)-Config CogType can be: CogFamliy (for those abstract classes for all type of CogVMs), StackVM, CogVM and CogMTVM OS can be: Unix, Windows (no need the Ms prefix), MacOS and CocoaIOS Special is optional and can be: NoGL, FixedVerSI, etc. Debug is optional and only for debug vms. So...example of how it should be replaced for Unix: CogUnixConfig -> CogVMUnixConfig CogDebugUnixConfig -> CogVMUnixDebugConfig CogUnixNoGLConfig -> CogVMUnixNoGLConfig MTCogUnixConfig -> CogMTVMUnixConfig StackInterpreterUnixConfig -> StackVMUnixConfig StackInterpreterDebugUnixConfig -> StackVMUnixDebugConfig FixedVerSIDebugUnixConfig -> StackVMUnixFixedVerSIDebugConfig That was the example for Unix. And the same for the rest of the OS. If you agree, I don't have the problem to do all the necessary changes in the CMakeVMMaker package. Someone will need to update Hudson confs, thought. Maybe the 'Config' should be before the 'Debug', like CogVMUnixConfigDebug what do you think? Best regards, -- Mariano http://marianopeck.wordpress.com |
Do you need to put "VM" into ALL of the config strings? How about ... <Machine>-<OS>-[Debug-]<SpecialOptions?> With examples like the following... Cog-Windows Cog-Windows-Debug CogMT-Windows CogMT-Windows-Debug CogMT-Unix CogMT-Unix-NoGL CogMT-Unix-Debug-NoGL Stack-Windows Stack-Windows-Debug Stack-Windows-Debug-FixedVerSI Stack-Unix Stack-Unix-Debug Stack-Unix-Debug-FixedVerSI Are these usable and readable by everyone? |
On Thu, Apr 28, 2011 at 8:34 PM, Jeremy Kajikawa <[hidden email]> wrote: --
Good point. I don't know. Maybe we don't need it. How about ... I like it :) With examples like the following... I like this last change. For the prefix without the "VM" I am not sure. I don't have a strong position. I would go with this one. Igor ? Esteban? (since you are the guys that mostly maintain them) Cheers Mariano http://marianopeck.wordpress.com |
On 22 April 2011 21:38, Mariano Martinez Peck <[hidden email]> wrote: > > > > On Thu, Apr 28, 2011 at 8:34 PM, Jeremy Kajikawa <[hidden email]> wrote: >> >> Do you need to put "VM" into ALL of the config strings? >> > > Good point. I don't know. Maybe we don't need it. > >> >> How about ... >> <Machine>-<OS>-[Debug-]<SpecialOptions?> >> > > I like it :) > >> >> With examples like the following... >> >> Cog-Windows >> Cog-Windows-Debug >> CogMT-Windows >> CogMT-Windows-Debug >> CogMT-Unix >> CogMT-Unix-NoGL >> CogMT-Unix-Debug-NoGL >> Stack-Windows >> Stack-Windows-Debug >> Stack-Windows-Debug-FixedVerSI >> Stack-Unix >> Stack-Unix-Debug >> Stack-Unix-Debug-FixedVerSI >> However we can use underline. CogMT_Unix_Debug_NoGL but then i think CogMTUnixDebugNoGL will be better. >> Are these usable and readable by everyone? >> >> > > > I like this last change. For the prefix without the "VM" I am not sure. I don't have a strong position. > I would go with this one. Yeah. VM can be omitted. > > Igor ? Esteban? (since you are the guys that mostly maintain them) > I am fine with it. As to me, as long as things work i don't care much about naming. This stuff is not used too often and by many.. But i agree that consistent naming is good to have, so if you have a time to spend on polishing this, do it :) -- Best regards, Igor Stasenko AKA sig. |
I agree El 22/04/2011, a las 5:41p.m., Igor Stasenko escribió: > > On 22 April 2011 21:38, Mariano Martinez Peck <[hidden email]> wrote: >> >> >> >> On Thu, Apr 28, 2011 at 8:34 PM, Jeremy Kajikawa <[hidden email]> wrote: >>> >>> Do you need to put "VM" into ALL of the config strings? >>> >> >> Good point. I don't know. Maybe we don't need it. >> >>> >>> How about ... >>> <Machine>-<OS>-[Debug-]<SpecialOptions?> >>> >> >> I like it :) >> >>> >>> With examples like the following... >>> >>> Cog-Windows >>> Cog-Windows-Debug >>> CogMT-Windows >>> CogMT-Windows-Debug >>> CogMT-Unix >>> CogMT-Unix-NoGL >>> CogMT-Unix-Debug-NoGL >>> Stack-Windows >>> Stack-Windows-Debug >>> Stack-Windows-Debug-FixedVerSI >>> Stack-Unix >>> Stack-Unix-Debug >>> Stack-Unix-Debug-FixedVerSI >>> > You cannot use '-' in class name. > However we can use underline. > > > CogMT_Unix_Debug_NoGL > > but then i think > > CogMTUnixDebugNoGL > > will be better. > >>> Are these usable and readable by everyone? >>> >>> >> >> >> I like this last change. For the prefix without the "VM" I am not sure. I don't have a strong position. >> I would go with this one. > > Yeah. VM can be omitted. > >> >> Igor ? Esteban? (since you are the guys that mostly maintain them) >> > > I am fine with it. > As to me, as long as things work i don't care much about naming. This > stuff is not used too often and by many.. > But i agree that consistent naming is good to have, so if you have a > time to spend on polishing this, do it :) > > > -- > Best regards, > Igor Stasenko AKA sig. |
In reply to this post by Igor Stasenko
On Fri, Apr 22, 2011 at 10:41 PM, Igor Stasenko <[hidden email]> wrote:
Sorry, I didn't plant to use '-' it was just to make it clear for the email.
Exaclty, like that.
Excellent.
But it will !!! As long as we start to document and improve the infrastructure new people will arrive to the VM world. At least that's what I am trying to do since the last months. But i agree that consistent naming is good to have, so if you have a Ok, I will...we have long weekend ;) Then you update the Hudson confs hehehe
-- Mariano http://marianopeck.wordpress.com |
Now...you suggested to remove the prefix VM....and what about the suffix Config ? should we keep them or remove it ? On Fri, Apr 22, 2011 at 10:43 PM, Mariano Martinez Peck <[hidden email]> wrote:
-- Mariano http://marianopeck.wordpress.com |
There are some confs that look a little ugly without the VM prefix. For example, StackUnixConfig it sounds like a conf for a unix stack hehehehe I am not convinced about removing the VM prefix...but ok, you all agree so.. ;) On Fri, Apr 22, 2011 at 11:08 PM, Mariano Martinez Peck <[hidden email]> wrote: Now...you suggested to remove the prefix VM....and what about the suffix Config ? should we keep them or remove it ? -- Mariano http://marianopeck.wordpress.com |
In reply to this post by Mariano Martinez Peck
Sorry if this is beyond the scope of the current topic, but having recently ran into issues trying to create a CMakeVMMake config for FreeBSD, I wanted to ask if anyone has considered moving from deep hierarchies to containers for platform targets? As I mentioned in a previous email, half of the FreeBSD config methods exist only to remove flags and features added in the unix superclasses. Even the base Unix class (CUnixConfig) has flags specific to Linux using ALSA and a recent Gnu toolchain. The easy answer would be to move the flags further up into the hierarchy, but considering the overlap of code for platforms (esp. OSX and Unix) and the potential diversity of future platforms (Ubuntu with Wayland and no X11, OSX/BSDs compiled with clang, or even Google's NaCl) left me wondering if working towards a flatter and more flexible model would be worthwhile? |
On 23 April 2011 03:12, David Graham <[hidden email]> wrote: > > Sorry if this is beyond the scope of the current topic, but having recently ran into issues trying to create a CMakeVMMake config for FreeBSD, I wanted to ask if anyone has considered moving from deep hierarchies to containers for platform targets? > > As I mentioned in a previous email, half of the FreeBSD config methods exist only to remove flags and features added in the unix superclasses. Even the base Unix class (CUnixConfig) has flags specific to Linux using ALSA and a recent Gnu toolchain. The easy answer would be to move the flags further up into the hierarchy, but considering the overlap of code for platforms (esp. OSX and Unix) and the potential diversity of future platforms (Ubuntu with Wayland and no X11, OSX/BSDs compiled with clang, or even Google's NaCl) left me wondering if working towards a flatter and more flexible model would be worthwhile? I am not sure i understood well your suggestion. Are you suggesting to not use inheritance model for configs? The thing is that it depends on diversity. For instance making debug variant of existing config is easy job, because it requires to put few overrides in few methods. But of course when we talking about two different platforms, the number of common code in configs are much less. I think the rule of thumb here is simple: produce _working_ configs first improve them later :) It is good when code reused, but i don't see a big disaster in duplicating the code in two different configs. Because , as you pointed out, they are subject to change anyways, once you refine settings to be more and more appropriate for specific platform or target. -- Best regards, Igor Stasenko AKA sig. |
On Apr 22, 2011, at 7:36 PM, Igor Stasenko wrote: > > On 23 April 2011 03:12, David Graham <[hidden email]> wrote: >> >> Sorry if this is beyond the scope of the current topic, but having recently ran into issues trying to create a CMakeVMMake config for FreeBSD, I wanted to ask if anyone has considered moving from deep hierarchies to containers for platform targets? >> >> As I mentioned in a previous email, half of the FreeBSD config methods exist only to remove flags and features added in the unix superclasses. Even the base Unix class (CUnixConfig) has flags specific to Linux using ALSA and a recent Gnu toolchain. The easy answer would be to move the flags further up into the hierarchy, but considering the overlap of code for platforms (esp. OSX and Unix) and the potential diversity of future platforms (Ubuntu with Wayland and no X11, OSX/BSDs compiled with clang, or even Google's NaCl) left me wondering if working towards a flatter and more flexible model would be worthwhile? > > I am not sure i understood well your suggestion. > Are you suggesting to not use inheritance model for configs? > Hi Igor, No, I like the inheritance model. I was just wondering if doing things like moving compiler or plugin definitions out of platform class methods and into their own objects would give more flexibility and be a good long term investment. A platform target could still have a hierarchy, but be defined as a container of objects instead of a class of method overrides. When I need a config for a linux/arm tablet or headless x86_64 server, it's a matter of defining what objects to include instead of trying to figure out where to hook into an existing class hierarchy and what methods to override. > The thing is that it depends on diversity. For instance making debug > variant of existing config is easy job, because it requires to put few > overrides in few methods. > But of course when we talking about two different platforms, the > number of common code in configs are much less. > > I think the rule of thumb here is simple: produce _working_ configs > first improve them later :) > It is good when code reused, but i don't see a big disaster in > duplicating the code in two different configs. Because , as you > pointed out, they are subject to change anyways, > once you refine settings to be more and more appropriate for specific > platform or target. > > -- > Best regards, > Igor Stasenko AKA sig. |
In reply to this post by Mariano Martinez Peck
Hi guys. I've just commited. I didn't update yet the class comments because maybe they change again...so I will wait. For me what was more important is to be uniform with the pattern, and that is done now and it is nice. Regarding the prefix VM and the suffix Config, I don't have a strong thought. For me, the most information the better. First, because we have OCompletion ;) and second because you almost never type these classes. THe maximum you do is MyConf generateWithSources. Anyway, I would appreciate if you can take a look and tell me. For the moment I let the suffix Config and I removed the "VM". For Cog and CogMT they look ok. With Stack they look awkward, but ok, I can live with that. Thanks Mariano Name: CMakeVMMaker-MarianoMartinezPeck.96 Author: MarianoMartinezPeck Time: 23 April 2011, 1:36:10 pm UUID: 86ebc45f-3439-4be2-9ac3-5c975eab2b05 Ancestors: CMakeVMMaker-MarianoMartinezPeck.94 IMPORTANT: this commit renames ALL configurations. So, Hudson confs must be updated. - All confs classes were renamed with the following pattern: <VM>-<OS>-[Debug-]<SpecialOptions?> (without the '-') - Unix confs were moved to 'CMakeVMMaker-Unix' instead of 'CMakeVMMaker-Unix-Cog'. - FreeBSD was moved to 'CMakeVMMaker-FreeBSD' instead of 'CMakeVMMaker-FreeBSD-Cog' - Integrated with CMakeVMMaker-EstebanLorenzano.96 On Sat, Apr 23, 2011 at 9:16 AM, stephane ducasse <[hidden email]> wrote: keep config this is important in the name. -- Mariano http://marianopeck.wordpress.com |
Free forum by Nabble | Edit this page |