You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(9) |
Oct
(16) |
Nov
(14) |
Dec
(24) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(14) |
Feb
(57) |
Mar
(72) |
Apr
(37) |
May
(21) |
Jun
(12) |
Jul
(16) |
Aug
(33) |
Sep
(24) |
Oct
|
Nov
(10) |
Dec
(8) |
2004 |
Jan
(6) |
Feb
(14) |
Mar
(47) |
Apr
(41) |
May
(16) |
Jun
(31) |
Jul
(78) |
Aug
(62) |
Sep
(99) |
Oct
(43) |
Nov
(35) |
Dec
(9) |
2005 |
Jan
(19) |
Feb
(22) |
Mar
(7) |
Apr
|
May
(5) |
Jun
(4) |
Jul
(2) |
Aug
(9) |
Sep
(15) |
Oct
(23) |
Nov
(2) |
Dec
(20) |
2006 |
Jan
|
Feb
(2) |
Mar
(7) |
Apr
|
May
|
Jun
(8) |
Jul
(15) |
Aug
(1) |
Sep
(4) |
Oct
|
Nov
(9) |
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
(9) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(11) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Grzegorz J. <ja...@he...> - 2004-03-22 02:35:20
|
Asen, First, thanks for your contribution! On Fri, 19 Mar 2004, Asen Kovachev wrote: > I have imported my changes to enable it running under MSVC 7.1. > These are only the changes done to the OpenC++. I made some minor changes to the GC library as well. What did you have to change in GC? What if instead of modifying GC you substitute the latest stable version? Will that work? > The tag name is <sandbox_asen_kovachev_msvc> > > Also I would like to discuss some features I want to add. > I made it so that you can call a function to retrieve the name of the file being processed. > As well as the folder. Why do we need two functions (filename and folder)? Client can separate filename from folder name on his/her own. The fewer functions we have in the API, the easier it is to maintain. I would suggest one function that returns the full path. Is it doable? > We are generating .cpp AND .h files from a meta > header .hxx and need to know the folder where we should do the extra > work. Do you think that is a feature you guys might appreciate added > to the code? Perhaps yes, but I would like to keep the APIs clean, so let me first see where you have added this code. Could you commit into your branch? > Since I intend to use OpenC++ not as a preprocessor step only but more > like a tool to transform the source code. I think it would be nice if it > collected the information about the include files, but kept the original > source structure (as opposed to placing #line, etc.) That's my dream, but it is not so straightforward. What if the translation process changes the included code? In such situation you *have* to expand included file. Moreover, if the same include file is included multiple times, you cannot create e.g. "./translated/stdlib.h" and have all includers reference this file instead of original, because there is no guarantee that all inclusions of the same header will be translated in the same way. It perhaps can be tackled with adding new syntax node representing "#include". OpenC++ already has a mechanism of keeping original syntax subtree if there are no changes within it. The same could be applied to includes, e.g. if the content does not change, OpenC++ would output original "#include" directive; if the content changes, OpenC++ would expand it (and use "#line"). This mechanism will not be able to handle all cases, e.g.: char* msgs[] = { # include "msgs.h" }; but should be enough for all reasonable headers. Is it what you have in mind? Thanks again Grzegorz PS: Adding new syntax node directly has an effect of breaking backward compatibility :-( but I think we can somehow find a way around it. PPS: I have seen you added a fix commented as "MSVC fix for 'throw(...)'" whatever that means. Could you send me the simplest possible input file that exercises this fix along with the correct output file? I will make them into a testcase to make sure that your fix will not get broken. ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: Grzegorz J. <ja...@he...> - 2004-03-22 02:22:56
|
On Sun, 21 Mar 2004, SF Markus Elfring wrote: > I try my next suggestions to see if they can be accepted for code improvements. We have already told you, that we do not want your reviews in this forum. You had an option to discuss them with me in private e-mails, I have substantially answered all your e-mails so far, but apparently you are not interested in any substantial discussion. Please be advised that you will be banned from this forum after your next posting. Please e-mail me directly if you have any questions. Best regards Grzegorz > > 1. I see the following in the file "mop.h". > // these must be consistent with ... in token.h > enum { Public = 298, ... , Undefined = 0 }; > I suggest to use C++ to enforce this constraint. The values should be taken from the enumeration in the other header by their symbolic names. > > 2. How do you think about to give the long enumeration in the file "token.h" a name like "OCC_token"? > > 3. Can it be moved to a new file "opencxx_token_id.h" so that it can be separately included? > > 4. Please replace all "ints" that are used for token identifiers in method signatures by this new name to enhance type safety. > - The method "What" seems a candidate for this change. > - Will the method "IsA(int ...)" need also an update then? > > 5. Can the work for this type identifiers be done by virtual methods that are derived from abstract base classes? > Would you like to get independence from this specific numbers? > Examples for use cases: > - http://industriallogic.com/xp/refactoring/conditionalWithStrategy.html > - http://industriallogic.com/xp/refactoring/typeCodeWithClass.html > - http://www.refactoring.com/catalog/replaceTypeCodeWithClass.html > - http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html > > > Sincerely, > Markus Elfring > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Opencxx-users mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opencxx-users > > On Sun, 21 Mar 2004, SF Markus Elfring wrote: > If you would like to achieve independence from token identifiers, I see that the C++ syntax and the metaobject protocol will be mapped to a detailed class hierarchy. The advice on maintainability in the section "12.2.5 Type identification" of the book "The C++ programming language" by Bjarne Stroustrup may be an indication for the suggested change. > > A pure object-oriented design would lead to a collection of interfaces in the form of abstract base classes. It will result in memory requirements that need to be examined in comparison to other factors like speed in an elegant design. > - Overhead of having virtual functions > http://groups.google.de/groups?threadm=7ebhg5%24jh0%241%40news.platinum.com > > - memory overhead required for inheritance > http://groups.google.de/groups?threadm=u3u2wazdkj.fsf%40isip22.isip.msstate.edu > > But it will perhaps provide an programming interface that has got a similar functionality like the management APIs for Java. > http://en.wikipedia.org/wiki/Java_Management_eXtensions > > Sincerely, > Markus Elfring > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Opencxx-users mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opencxx-users > > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: SF M. E. <el...@us...> - 2004-03-21 19:11:15
|
If you would like to achieve independence from token identifiers, I see that the C++ syntax and the metaobject protocol will be mapped to a detailed class hierarchy. The advice on maintainability in the section "12.2.5 Type identification" of the book "The C++ programming language" by Bjarne Stroustrup may be an indication for the suggested change. A pure object-oriented design would lead to a collection of interfaces in the form of abstract base classes. It will result in memory requirements that need to be examined in comparison to other factors like speed in an elegant design. - Overhead of having virtual functions http://groups.google.de/groups?threadm=7ebhg5%24jh0%241%40news.platinum.com - memory overhead required for inheritance http://groups.google.de/groups?threadm=u3u2wazdkj.fsf%40isip22.isip.msstate.edu But it will perhaps provide an programming interface that has got a similar functionality like the management APIs for Java. http://en.wikipedia.org/wiki/Java_Management_eXtensions Sincerely, Markus Elfring |
From: SF M. E. <el...@us...> - 2004-03-21 14:56:24
|
OpenC++ is used in application areas like object caches and databases or matrix calculation. Do extensions exist in the following areas? 1. Synchronization for safe concurrent access - http://en.wikipedia.org/wiki/Parallel_programming - Did anybody try to add the key word "synchronized" and corresponding methods to C++ like they are available for Java? 2. http://en.wikipedia.org/wiki/CORBA 3. http://en.wikipedia.org/wiki/Globus Sincerely, Markus Elfring |
From: SF M. E. <el...@us...> - 2004-03-21 00:41:30
|
I try my next suggestions to see if they can be accepted for code improvements. 1. I see the following in the file "mop.h". // these must be consistent with ... in token.h enum { Public = 298, ... , Undefined = 0 }; I suggest to use C++ to enforce this constraint. The values should be taken from the enumeration in the other header by their symbolic names. 2. How do you think about to give the long enumeration in the file "token.h" a name like "OCC_token"? 3. Can it be moved to a new file "opencxx_token_id.h" so that it can be separately included? 4. Please replace all "ints" that are used for token identifiers in method signatures by this new name to enhance type safety. - The method "What" seems a candidate for this change. - Will the method "IsA(int ...)" need also an update then? 5. Can the work for this type identifiers be done by virtual methods that are derived from abstract base classes? Would you like to get independence from this specific numbers? Examples for use cases: - http://industriallogic.com/xp/refactoring/conditionalWithStrategy.html - http://industriallogic.com/xp/refactoring/typeCodeWithClass.html - http://www.refactoring.com/catalog/replaceTypeCodeWithClass.html - http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html Sincerely, Markus Elfring |
From: Asen K. <kov...@tr...> - 2004-03-20 04:27:02
|
I have imported my changes to enable it running under MSVC 7.1. These are only the changes done to the OpenC++. I made some minor = changes to the GC library as well. The tag name is <sandbox_asen_kovachev_msvc> Also I would like to discuss some features I want to add. I made it so that you can call a function to retrieve the name of the = file being processed. As well as the folder. We are generating .cpp AND .h files from a meta = header .hxx and need to know the folder where we should do the extra = work. Do you think that is a feature you guys might appreciate added to = the code? Since I intend to use OpenC++ not as a preprocessor step only but more = like a tool to transform the source code. I think it would be nice if it collected the information about the = include files, but kept the original source structure (as opposed to placing #line, etc.) -A.K. |
From: Grzegorz J. <ja...@he...> - 2004-03-19 03:37:14
|
On Thu, 18 Mar 2004, Asen Kovachev wrote: > Trying the examples I was getting an .EXE that was behaving as an OpenC++ plus statically linked libraries. > That might have been the desired behaviour though. Indeed :-) Grzegorz > ----- Original Message ----- > From: Grzegorz Jakacki > To: Asen Kovachev > Cc: OpenC++ List > Sent: Thursday, March 18, 2004 7:17 PM > Subject: Re: [Opencxx-users] Is it possible to create Visual Studio Project > > > On Wed, 17 Mar 2004, Asen Kovachev wrote: > > > Has anyone tried it? > > I also noticed that instead of .so files under cygwin I am getting a new .exe instead. > > I am sorry, I don't understand. What .exe files are you getting? > > BR > Grzegorz > > > > > I'm trying to use the ANSI #line definition instead of the bogus # <num> "file" <many numbers>... > > However when I defined _PARSE_VCC the .mc metaclass files stopped compiling properly because > > it's passing them to the g++. > > > > -A.K. > > > > ################################################################## > # Grzegorz Jakacki Huada Electronic Design # > # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # > # tel. +86-10-64365577 x2074 Beijing 100015, China # > # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # > ################################################################## > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Opencxx-users mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opencxx-users ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: Asen K. <kov...@tr...> - 2004-03-19 03:31:43
|
Trying the examples I was getting an .EXE that was behaving as an = OpenC++ plus statically linked libraries. That might have been the desired behaviour though. ----- Original Message -----=20 From: Grzegorz Jakacki=20 To: Asen Kovachev=20 Cc: OpenC++ List=20 Sent: Thursday, March 18, 2004 7:17 PM Subject: Re: [Opencxx-users] Is it possible to create Visual Studio = Project On Wed, 17 Mar 2004, Asen Kovachev wrote: > Has anyone tried it? > I also noticed that instead of .so files under cygwin I am getting a = new .exe instead. I am sorry, I don't understand. What .exe files are you getting? BR Grzegorz > > I'm trying to use the ANSI #line definition instead of the bogus # = <num> "file" <many numbers>... > However when I defined _PARSE_VCC the .mc metaclass files stopped = compiling properly because > it's passing them to the g++. > > -A.K. > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system = administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck _______________________________________________ Opencxx-users mailing list Ope...@li... https://lists.sourceforge.net/lists/listinfo/opencxx-users |
From: Grzegorz J. <ja...@he...> - 2004-03-19 03:14:36
|
On Wed, 17 Mar 2004, Asen Kovachev wrote: > Has anyone tried it? > I also noticed that instead of .so files under cygwin I am getting a new .exe instead. I am sorry, I don't understand. What .exe files are you getting? BR Grzegorz > > I'm trying to use the ANSI #line definition instead of the bogus # <num> "file" <many numbers>... > However when I defined _PARSE_VCC the .mc metaclass files stopped compiling properly because > it's passing them to the g++. > > -A.K. > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: Grzegorz J. <ja...@he...> - 2004-03-19 03:07:16
|
On Thu, 18 Mar 2004, Asen Kovachev wrote: > Also mind you that typeinfo.h is a header file included in .NET 2003 > so at some point <typeinfo> is being included which includes <typeinfo.h> > but if you have the includes set to the occ folder it will include the wrong one. > > I renamed typeinfo.h to type_info.h on mine. I think it might be worth > changing it altogether in the repository. Good point. It is fixed in 'sandbox_jakacki_frontend1' branch, which will be merged to MAIN soon. Thanks! Grzegorz ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: Grzegorz J. <ja...@he...> - 2004-03-19 02:59:07
|
Hi Asen, Could you make a diff of your fixed version against current CVS HEAD and send it to me? Thanks Grzegorz On Wed, 17 Mar 2004, Asen Kovachev wrote: > I have gotten OpenC++ to work in a Visual Studio .NET 2003 solution. > However I am still trying to figure out problems compiling the .mc metaclasses. > > How do I submit changes that fix new MSVC specific things? > For example the new operator is defined as throw(...) and I have a fix for this. > (I don't know if that's new ANSI or just another Microsoft Specific stuff) > > Also there is a new type __w64 which has to be added as a keyword. > > Best Regards, > > Asen Kovachev > Treyarch Corp. > Senior Software Engineer > (310) 664-5974 > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: Asen K. <kov...@tr...> - 2004-03-18 19:40:43
|
Also mind you that typeinfo.h is a header file included in .NET 2003 so at some point <typeinfo> is being included which includes = <typeinfo.h> but if you have the includes set to the occ folder it will include the = wrong one. I renamed typeinfo.h to type_info.h on mine. I think it might be worth = changing it altogether in the repository. Asen Kovachev Treyarch Corp. Senior Software Engineer (310) 664-5974 |
From: Asen K. <kov...@tr...> - 2004-03-18 04:03:00
|
I have gotten OpenC++ to work in a Visual Studio .NET 2003 solution. However I am still trying to figure out problems compiling the .mc = metaclasses. How do I submit changes that fix new MSVC specific things? For example the new operator is defined as throw(...) and I have a fix = for this. (I don't know if that's new ANSI or just another Microsoft Specific = stuff) Also there is a new type __w64 which has to be added as a keyword. Best Regards, Asen Kovachev Treyarch Corp. Senior Software Engineer (310) 664-5974 |
From: Asen K. <as...@tr...> - 2004-03-17 18:45:51
|
Has anyone tried it? I also noticed that instead of .so files under cygwin I am getting a new = .exe instead. I'm trying to use the ANSI #line definition instead of the bogus # <num> = "file" <many numbers>... However when I defined _PARSE_VCC the .mc metaclass files stopped = compiling properly because it's passing them to the g++. -A.K. |
From: Asen K. <kov...@tr...> - 2004-03-17 18:29:34
|
Has anyone tried it? I also noticed that instead of .so files under cygwin I am getting a new = .exe instead. I'm trying to use the ANSI #line definition instead of the bogus # <num> = "file" <many numbers>... However when I defined _PARSE_VCC the .mc metaclass files stopped = compiling properly because it's passing them to the g++. -A.K. |
From: Grzegorz J. <ja...@he...> - 2004-03-17 03:27:21
|
Let's move it off the list to private discussion. BR Grzegorz On Tue, 16 Mar 2004, SF Markus Elfring wrote: > > > 3.2 There are several classes with the same methods "What" and > > > "Translate". Why were they not moved into another base class like > > > "Translatable" or "Typeof" that would be used for multiple inheritance > > > together with the class "NonLeaf"? > > > > These methods are not the same. Each of them has different implementation. > > How can you move them to a base class? > > > > Perhaps you mean moving the interface to separate base class, e.g.: > > > > class [whatever] > > { > > virtual int What() = 0; > > }; > > > > is this what you mean? > > Yes. Also: virtual int Translate() = 0; > Is this refacoring okay for you? Those classes can not be seen with "value semantics" after it. > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Opencxx-users mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opencxx-users > > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: SF M. E. <el...@us...> - 2004-03-16 17:23:48
|
> > 3.2 There are several classes with the same methods "What" and > > "Translate". Why were they not moved into another base class like > > "Translatable" or "Typeof" that would be used for multiple inheritance > > together with the class "NonLeaf"? > > These methods are not the same. Each of them has different implementation. > How can you move them to a base class? > > Perhaps you mean moving the interface to separate base class, e.g.: > > class [whatever] > { > virtual int What() = 0; > }; > > is this what you mean? Yes. Also: virtual int Translate() = 0; Is this refacoring okay for you? Those classes can not be seen with "value semantics" after it. |
From: Grzegorz J. <ja...@he...> - 2004-03-16 00:52:40
|
On Mon, 15 Mar 2004, Shigeru Chiba wrote: > > Dear all, > > > My service can be code review at the moment. > > That's a pity. Your input is very valuable, but we need people to do the > real job. I am looking forward to see you contributing the code. > > I would like to suggest stopping this discussion. I think the review > by Markus is quite right but unfortunately it is not valuable to the > project unless we have human resources for implementing his ideas. I suggest moving this discussion off the list. I will discuss with Marcus the issues he brought and post a wrap-up here once we reach conclusions that are substantial to the project. [...] > I think any experienced C++ programmer will be unhappy > if (s)he is treated as a C++ beginner and forced to hear basic C++ > programming lessons. True. Best regards Grzegorz > > Markus, I really thank you for your contributions to the project. > However, it might be just a time waste for you to further review the > code. I think it is much better for the open-source community that your > talent is used for other projects that have implementors but no > consultant. > > Best regards, > > Chiba > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Opencxx-users mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opencxx-users > > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: SF M. E. <el...@us...> - 2004-03-15 22:08:19
|
> > Please derive such classes from an interface class like > > "http://boost.org/libs/utility/utility.htm#Class_noncopyable". > > That's a good idea, however somebody needs to do it. I think that it would be easy to add this kind of derivation into header files. Is there an agreement which classes are good candidates and which class should be left untouched? |
From: SF M. E. <el...@us...> - 2004-03-15 20:49:52
|
> > > My service can be code review at the moment. > > That's a pity. Your input is very valuable, but we need people to do the > > real job. I am looking forward to see you contributing the code. > [...] > However, it might be just a time waste for you to further review the > code. I think it is much better for the open-source community that your > talent is used for other projects that have implementors but no > consultant. I find slowly places where I would move from conceptional to practical contributions. I just ask several questions before I dig into an existing infrastructure. I hope that our discussion can help others to spot possibilities for participation, too. |
From: Shigeru C. <ch...@is...> - 2004-03-15 07:52:14
|
Dear all, > My service can be code review at the moment. That's a pity. Your input is very valuable, but we need people to do the real job. I am looking forward to see you contributing the code. I would like to suggest stopping this discussion. I think the review by Markus is quite right but unfortunately it is not valuable to the project unless we have human resources for implementing his ideas. Without the human resources for implementation, I am afraid that the review by Markus will only make other project members feel uncomfortable. I think any experienced C++ programmer will be unhappy if (s)he is treated as a C++ beginner and forced to hear basic C++ programming lessons. Markus, I really thank you for your contributions to the project. However, it might be just a time waste for you to further review the code. I think it is much better for the open-source community that your talent is used for other projects that have implementors but no consultant. Best regards, Chiba |
From: Grzegorz J. <ja...@he...> - 2004-03-15 03:10:27
|
On Sat, 13 Mar 2004, SF Markus Elfring wrote: > > I am under impression that each 'Ptree...::What()' returns something else > > (discriminator), similarily each 'Ptree...::Translate()' calls different > > method from Walker iface. Can you point out what classes have the same > > Will abstract base classes be available for them like it was discussed for "AbstractWalker"? Yes, if somebody finds time to implement it. > > Again, this very much depends on the class semantics. Sometimes compiler > > generated implementations are OK. Please note, that due to GC even when > > class has value semantics and it contains (garbage collected) pointers, > > default copy ctor and assignment operator are ok. On the other hand, > > I suspect that in several places those functions should be blocked > > (by privation), but are not. > > Please derive such classes from an interface class like > "http://boost.org/libs/utility/utility.htm#Class_noncopyable". That's a good idea, however somebody needs to do it. > I have not got detailed knowledge about your class library so far to > decide where objects should not be copied. I hope that other > developers are in a better position to do that. IMO this is wrong approach to collaborative open-source development. If you see something can be done better, go and make it better. Don't count on other people implementing your vision. Pointing out problems is not enough. We need action, talking alone is not going to move this project any further. > > Some classes are designed to be derived from, some > > are "final". In particular classes that have value semantics (= define > > operator() and copy ctor and generally behaves as values) IMO almost ^^^^^^^^^^ should be 'operator=()' > > always should be "final". But there may also be omissions. Please bring > > the names of these classes and I will comment on each of them > > particularily. > > Value objects should not have any virtual methods. Agreed. > I suggest to look for missing virtual destructors in all classes that > contain virtual methods. I think this advice is not new to people on this list ("Effective C++" has it). If you want to help please post the exact locations. > > The way that I would strongly recommend is to redesign components one by one > > and go from the old design to the new design in evolutionary steps. The > > smaller the components you replace, the easier it is to manage. Sometimes it > > pays off to refactor the old code to insulate some part of it before > > rewritting them. That way you have the running thing all the time. > > Would you like to use the methodology > "http://en.wikipedia.org/wiki/Extreme_Programming" Some bits of it. In fact some bits we already use, e.g. automated regression testing. What I am trying to get working now is unit testing for parser. > that is supported > by the tool "http://www.xplanner.org/"? I don't know Xplanner (and I do not have time to learn it at the moment, sorry). > I suggest to use multiple inheritance in more cases. Where (I mean class names) and why? Thanks Grzegorz ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: Grzegorz J. <ja...@he...> - 2004-03-15 03:09:40
|
On Fri, 12 Mar 2004, SF Markus Elfring wrote: > > types.h is hell --- too much conditional compilation, lumps different > > things together (e.g. dynamic loading and gc). I recently broke it into > > several separate input files. Please review the code in > > 'sandbox_jakacki_frontend1' branch and let me know if this issue is still > > there. > > http://cvs.sourceforge.net/viewcvs.py/*checkout*/opencxx/opencxx/src/types.h?rev=1.7.4.1 > Yes - it contains this line: > #include <string.h> // For size_t This is not the latest revision. The whole 'opencxx/src' does not exist in this branch. The code was moved to 'opencxx/opencxx/gc-related-gc-{yes,no}/new.h', which now includes 'cstdlib' for size_t. > > If you see any places that 'const' may be injected in relatively painless > > way, let's inject it. > > Please look at the methods that start with "bool Is..." like in the files "member.h" and "token.h". This is still a lot of work. Take e.g. Member::IsConstructor(). When you qualify it with const, you also have to fix GetEncodedName(). After fixing it perhaps will return const char*, not char*. If so, then you have to fix Encoding::GetBaseName() and also Ptree::Eq(), because now they take non-const argument (AFAIK, sorry I do not have time to dig in it now). Moreover, you need to fix Class::GetEnvironment() also. I am not looking further now, so I don't know how many other functions you would have to fix. This is what I call snow-ball effect. If you want to do this --- please do, but be warned that the snow-ball may get huge. > > I am not aware of any such efforts. Before going into these areas I would > > however first try to determine if people really need it, because it looks > > like a huge work. > > Are there any code parts that use (blocking) input or output functions? All IO is blocking now. > Would your file operations benefit from multithreading? I don't see any benefits at the moment. IMO there are really two reasons to use MT: (a) when your processing needs a lot of power and you want to use multi-cpu architecture, (b) when you want lessen response time of interactive application. None of them applies. > Can any steps in the procecssing be separated into cooperating and > asynchronous tasks? The "huge" work can be split into smaller > exercises. I honestly don't think so. We have a lot of more rudimentary problems in OpenC++ (gcc-3.x STL headers for instance). Also I am afraid that synchronization of asynchronous tasks involves a lot of overhead in code and in execution time and this will not pay off in foreseable future. > > I was not satisfied with defines either, so I wrote simple script that > > generates all these declarations at configuration time. Please review it > > (it is in sandbox_jakacki_frontend1 branch) and let me know what you > > think about this solution. > > This script can generate objects or variable definitions that will use > templates if the support for this technique will be stable. Perhaps yes. > > I am under impression that each 'Ptree...::What()' returns something else > > (discriminator), similarily each 'Ptree...::Translate()' calls different > > method from Walker iface. Can you point out what classes have the same > > What() methods? > > There are so many. Can your class browser of the development environment show the occurences? Perhaps so, but I did not have time to look into it. Please point to them if you want to help, that will spare me duplicating the job you have already done. > > Is this one item or two? As far as I understand "fat interface" means that > > it handles lots of different functionalities. I don't see any connections > > of "obesity" to ordering of public, protected and private parts of iface, > > please correct me if I am wrong. > > 4.1.1 Which is the number of methods or attributes when you begin to > think about a "diet" for the classes? ;-) I don't think that number of methods tells much. Look at Walker or just any other implementation of Visitor pattern. If the visited hierarchy is numerous, then number of 'Visitor::visit()' (or Walker::Translate...()) member functions will be large, but that does not mean that the class is fat. On the other hand, the class class Driver { public: void RunCompilation(const string&); static Time GetCurrentTime(); ... }; already looks fatty, since GetCurrentTime most likely does not belong in it. > 4.1.2 The ordering can be perhaps performed by code beautifiers. Sure, but I found beautifiers not so usefull in practice. They confuse 'cvs annotate' and they usually loose some informal information present in code. It is like running ancient scriptures through OCR---you get the same text but certainly something is lost. > But the logic grouping might show dependencies that should be > expresses by a specific class. I guess we mean the same. > > OpenC++ is not perfect, but is fairly modular and unlike many other projects > > it seems fairly easy to improve it in small steps. Please let me know what > > you think about this strategy. > > It is fine. The evolution will be harder for the fat classes. Who does > dare to split the rocks into handy and manageable bricks? I don't see a problem if you do it one at a time. > > > inline std::ostream& operator << (std::ostream& s, const Ptree& p) > > > { > > > p.Write(s); > > > return s; > > > } > > Why do you think it is better? > > You do not need to care about null pointers. On all compilers I have seen, you will not get any problems calling 'os << (Ptree*)0'. See Ptree::Write() implementation for details (this trick is undefined behaviour according to the Standard, but it works; it can be made completely legal by moving the test into operator<<(); I guess nobody has done it so far, because nobody had problems). > > Perhaps they were not available when the code was created. I would not touch > > this are, unless we need to do some other work in token.h . It works as it > > is, it does not show any bugs, rewritting this part would have only > > educational purpose and this is not the aim of this project. Do you think it > > is reasonable? > > Are international character sets (UTF-8, Unicode) supported by the current interface? > How do you think about the limit for single byte characters? Is UTF-8 or Unicode legal as input encoding for C++ preprocessor per ISO C++ Standard? Even if it is, I do not think this is cruicial to OpenC++. > > Also I encourage you to get yourself your sandbox, since many of your > > proposals are worth implementing immediately. If you decide to contribute, > > please send me your SourceForge ID, so that I can add you to the project. > > My service can be code review at the moment. That's a pity. Your input is very valuable, but we need people to do the real job. I am looking forward to see you contributing the code. > I assume that the "coding" should be done after a common agreement or > a decision by the project leaders. Sure. There are two project admins, Chiba and myself. Chiba is busy with more serious things and currently opts out from involvement in coding, so if you have "OK" from me and no objections from Chiba, then it counts as "decision by the project leaders". We have some democracy here also, if you post implementation idea on the list and nobody objects withing several days (the more revolutionary your idea, the more days you should wait), then you are safe to assume "common agreement". Apart of that we work in sandboxes, so there is no fear of breaking anything if you don't merge to MAIN. > Would anybody like to publish which software uses the OpenC++ tools? It would be useful to compile a list. Could you do this? I would love to post it on the website. > Are any related links useful? You mean you have related links or you are looking for related links? If the former, please post. If the latter, see Chiba's webpage. Best regards Grzegorz ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |
From: SF M. E. <el...@us...> - 2004-03-13 18:15:40
|
> I am under impression that each 'Ptree...::What()' returns something else > (discriminator), similarily each 'Ptree...::Translate()' calls different > method from Walker iface. Can you point out what classes have the same Will abstract base classes be available for them like it was discussed for "AbstractWalker"? > Again, this very much depends on the class semantics. Sometimes compiler > generated implementations are OK. Please note, that due to GC even when > class has value semantics and it contains (garbage collected) pointers, > default copy ctor and assignment operator are ok. On the other hand, > I suspect that in several places those functions should be blocked > (by privation), but are not. Please derive such classes from an interface class like "http://boost.org/libs/utility/utility.htm#Class_noncopyable". I have not got detailed knowledge about your class library so far to decide where objects should not be copied. I hope that other developers are in a better position to do that. > Some classes are designed to be derived from, some > are "final". In particular classes that have value semantics (= define > operator() and copy ctor and generally behaves as values) IMO almost > always should be "final". But there may also be omissions. Please bring > the names of these classes and I will comment on each of them > particularily. Value objects should not have any virtual methods. I suggest to look for missing virtual destructors in all classes that contain virtual methods. > The way that I would strongly recommend is to redesign components one by one > and go from the old design to the new design in evolutionary steps. The > smaller the components you replace, the easier it is to manage. Sometimes it > pays off to refactor the old code to insulate some part of it before > rewritting them. That way you have the running thing all the time. Would you like to use the methodology "http://en.wikipedia.org/wiki/Extreme_Programming" that is supported by the tool "http://www.xplanner.org/"? I suggest to use multiple inheritance in more cases. |
From: Grzegorz J. <ja...@he...> - 2004-03-13 06:56:40
|
On 12 Mar 2004, =D6=A3=BD=A8=CF=C9 wrote: > Dear Sir, > > When I use opencxx 2.5.12 with Redhat Linux 7.2 which has a > > version 2.96 of gcc to compile opencxx downloaded example source, > > such as beforeClass.mc before-test.cc,I have encounted an error > > as following: > > [root@localhost src]# occ -m BeforeClass.mc > > [root@localhost src]# occ -- -o before-test before-test.cc > > lt_dlopen(BeforeClass.so) failed: /root/openc++2.5.12/src/BeforeClass.so: > undefined symbol: __ti5Class > > > > Should I use a lower version of opencxx or linux ?can you give > any suggestion? Please use the latest released version of OpenC++ (2.7) and write again if you still have this problem. Good luck Grzegorz ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |