You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(33) |
Nov
(51) |
Dec
(134) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(18) |
Feb
(11) |
Mar
(1) |
Apr
(55) |
May
(29) |
Jun
(1) |
Jul
(2) |
Aug
(5) |
Sep
(4) |
Oct
|
Nov
|
Dec
(6) |
2004 |
Jan
(1) |
Feb
(11) |
Mar
(4) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
(27) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Andre B. <and...@gm...> - 2002-12-17 16:41:03
|
Is there any possibilty to debug a test ? And how this can be done ? -- Andre |
From: Andre B. <and...@gm...> - 2002-12-17 16:38:04
|
the things are now compilable. However no parser tests are written, and the "IdentifierResolverTest::testForScope" "IdentifierVisitorTest::testForIdentifiers" do fail. -- Andre |
From: Andre B. <and...@gm...> - 2002-12-17 16:22:47
|
I'm just wondering if the "declarationOrExpression" nodetype is some kind of an "unparsedExpressionOrDeclaration" isn't it ? -- Andre |
From: Baptiste L. <gai...@fr...> - 2002-12-17 15:53:06
|
Quoting Andre Baresel <and...@gm...>: > Hello Baptiste, > > don't bother about the "stdafx.h" problem, I think I was only stumbling > > accross this since > I never used CVS and WinCVS before. But now I just got my own CVS-Server > > working > at home. Just to synchronize the files of my own projects with my laptop I do also have a conflict for stdafx.h whenever I update. [...] > the the actions are named in CVS/WinCVS but after all I found nearly all > needed for > adding/ checking /updating files and directories. Btw) Is there any > possibility to move files > that are allready in the repository from one directory to another and > this ofcourse together with > all versions that are in the repository ? Did I miss this action in the > CVS or isn't there such > an operation ? I found this very usefull for restructuring the code some > time Unfortunately, there is no such operation in CVS. File moving or renaming is not supported. Just add the new file and remove the old one from the repository. This is fairly easy to do using WinCVS filters (show unknown files and show missing files). [...] > I wonder if you know about a good book or websides in the area of > programming patterns, > I ordered some at my company but well, they weren't very useful. > >For now, I'll go back to working on the VC6 add-ins (mainly need to add > a > >generique fixture to test TextDocument interface). Well, I don't know of any good book about pattern. Though concerning pattern, http://c2.com is the web site of reference. On the other hand, there is some good website concerning OO design: - Design Principle articles from Robert Martin ( http://www.objectmentor.com/resources/listArticles?key=topic&topic=Design%20Principles) - Design up (french), which give a good synthesis of those articles and relate them to patterns) http://www.design-up.com/ Baptiste. [...] > -- Andre --- Baptiste Lepilleur <gai...@fr...> http://gaiacrtn.free.fr/index.html Language: English, French |
From: Sven R. <rei...@ma...> - 2002-12-17 15:44:05
|
On Mon, 16 Dec 2002, Andre Baresel wrote: > I'm wondering if anybody has some kind of c++ syntax document maybe the= =20 > original definition > from ansi ? >=20 > until later, > Andr=E9 >=20 I just have Stroustrup, 3rd ed (in German). I consider this as DM 99 well= =20 spent:) Have a look at it (e.g., at you public library). It's been=20 published by Addison-Wesley. Sven. --=20 Sven Reichard Dept. of Math. Sci. University of Delaware rei...@ma... |
From: Sven R. <rei...@ma...> - 2002-12-17 15:39:26
|
Baptiste avait ecrit: I got the same issues. I though it was my local copy that got corrupted (I did not notice the change in case). This is caused by a bug in cvs client on Windows. My guess is that it happen when Sven renamed (correctly) StdAfx.h to stdafx.h, and I later submitted my local copy of StdAfx.h. [Sven] Well, actually it is my fault, I copied StdAfx.h to stdafx.h, since both were included by some of our source files. If WinCVS gives problems with cases, I will change all references to the uncapitalized form, and then delete StdAfx.h (no such problems under Unix). Sven. |
From: Sven R. <rei...@ma...> - 2002-12-17 15:31:33
|
On Mon, 16 Dec 2002, Baptiste Lepilleur wrote: > ----- Original Message ----- > From: "Andre Baresel" <and...@gm...> > > What about adding me to the developer list and assign the first todo > > item to me ? > > Your welcome Andre, though you'll have to wait for Sven to do it as I don't > have admin right. I should have done that before, and I'm trying to do it now. However, the SF server appears to have some problems right now (see message about ML archives). I'll let you know when I succeed. Sven. -- Sven Reichard Dept. of Math. Sci. University of Delaware rei...@ma... |
From: Andre B. <and...@gm...> - 2002-12-17 15:26:17
|
I'm currently implementing that item "adding parsing for 'for'-statement condition declaration" and didn't find it to complicated however I have a general question about the parsing. Should we directly call the parser for the for-iteration-expression within the for-statment-parser or does this lazy parsing continue also in here. For a lazy parsing of for-iteration-expressions I would add a 'unparsedForIterationExpression' node and write the mutator for this. Within the for-iteration-expression-parser I would do the same - adding unparsed elements for the three properties ( unparsedDeclarationOrExpression , unparsedExpressionStatement, unparsedExpressionStatement ) Well "unparsedDeclarationOrExpression" doesn't exist at the moment... For checking the code I'm currently using direct parsing. But it will be no problem to transform this, since the code only needs to be move than into the mutator. Implementation will still need some time since I also want to go through the tests ... -- Andre |
From: Andre B. <and...@gm...> - 2002-12-17 11:51:53
|
If you look at the webpage of the mailing list you will see: ====================================== Choose a list to browse or search. To post to this list, send mail to lis...@li..., replacing listname with the name of the list, shown below. We apologize, mailing lists are temporarily offline cpptool-develop (not yet archived) (go to Subscribe/Unsubscribe/Preferences <https://lists.sourceforge.net/mailman/listinfo/cpptool-develop>) CppRefactory Developer Mailing List ====================================== this temporarily is more than 12 hours now ! and what does this "not yet archieved" mean ? -- André |
From: Andre B. <and...@gm...> - 2002-12-17 11:49:20
|
I just change the state of the to do list item "Add parsing for 'for' statement condition declaration" I will try to implement this. I also need to figure out more about writing the tests, but that's my profession - let's see if I understand what cppunit does ;-) until later, --- Andre |
From: Andre B. <and...@gm...> - 2002-12-17 11:34:56
|
Hello Baptiste, don't bother about the "stdafx.h" problem, I think I was only stumbling accross this since I never used CVS and WinCVS before. But now I just got my own CVS-Server working at home. Just to synchronize the files of my own projects with my laptop --- works fine after I solved the authorization problems. Since we heavily use another CVS system at work which is a little bit more comfortable to install and run (but to expensive for private use), it was somehow difficult to find out how the the actions are named in CVS/WinCVS but after all I found nearly all needed for adding/ checking /updating files and directories. Btw) Is there any possibility to move files that are allready in the repository from one directory to another and this ofcourse together with all versions that are in the repository ? Did I miss this action in the CVS or isn't there such an operation ? I found this very usefull for restructuring the code some time >IdentifierResolver and IdentifierResolverStrategy are probably a for of the >Director/Builder pattern. >IdentifierResolver does the analysis (entry/exit scope, local variable >declaration...), while IdentifierResolverStrategy process those 'event'. >IdentifierResolverContext is a specialization of IdentifierResolverStrategy. > > I wonder if you know about a good book or websides in the area of programming patterns, I ordered some at my company but well, they weren't very useful. >For now, I'll go back to working on the VC6 add-ins (mainly need to add a >generique fixture to test TextDocument interface). > > Nice ! As sven allready wrote - nothing is as good as test with the real world environment 8-) see you than. -- Andre |
From: Baptiste L. <gai...@fr...> - 2002-12-16 23:01:26
|
Hmm, if I understood well, this is a basic search and replace. That would mean that at no point the user would have a overview of all the occurrences, right ? I think this could be useful as it allow the user to have an idea of how much work will be needed, or to estimate the overall confidence rfta as in the refactoring, or to do multiple exclusion at once. Baptiste. ----- Original Message ----- From: "Sven Reichard" <rei...@ma...> To: "CppTool Mailing List" <Cpp...@li...> Sent: Sunday, December 15, 2002 10:54 PM Subject: Re: [Cpptool-develop] XEmacs integration > On Sun, 15 Dec 2002, Baptiste Lepilleur wrote: > > > One question though. How are complex user interactions handled ? > > > > For instance, the RenameClass refactoring while provide the user with a list > > of found occurrences, tagging each occurrences with some sort of probability > > tag reflecting how confident the parser is that it is a reference to the > > same class (we now we'll never be perfect). The user would be able to > > validate which occurrences should be replaced. > > > > How would this be handled in emacs ? Creating a buffer with the list of > > occurrences (like the 'window manager' of emacs) ? > > > > I would rather think of something along the line of emacs' "query > replace". Thus, we go through the list of possible occurrences, display > the corresponding file with the expression in question highlighted, and > ask the user something like > "Replace class name (rfta confidence: 80%)?" > Optionally, we can skip this step for occurrences where our confidence is > 100% (might happen every once in a while). > The user would have the possibility to replace this occurrence, skip it, > or (maybe) abort the whole refactoring. In emacs, this can be done in the > minibuffer. > > Sven. > > -- > Sven Reichard > Dept. of Math. Sci. > University of Delaware > rei...@ma... > > > > ------------------------------------------------------- > This sf.net email is sponsored by: > With Great Power, Comes Great Responsibility > Learn to use your power at OSDN's High Performance Computing Channel > http://hpc.devchannel.org/ > _______________________________________________ > Cpptool-develop mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cpptool-develop > > |
From: Baptiste L. <gai...@fr...> - 2002-12-16 22:56:56
|
I don't know of any free reference. Though, the bug contains in the standard and correction can be found on the ANSI comitee page (John Maddock provide some quick links at : http://ourworld.compuserve.com/homepages/john_maddock/proposals/index.htm) Also, notes that the standard is a ideal. Reality is very different. Take for instance the scope of a declaration in a for statement: for ( int index =0; ...; ... ) - On VC++, index is visible outside of the for statement (the old way before the standard changed). - The standard said that it should be visible only inside the for statement. - gcc use the standard by default, but switch to VC++ behavior if index is used outside of the for statement (though it emits a warning). Also, it is fairly important to notice that since we don't have a preprocessing step and our parser is context-less (it does know if an identifier is a type or a variable), the parsed language does not matches the C++ language specification. Macros for example are often used to extend the language in some way (for example, providing type information for a serialization layer), or to emulate reflection (cppunit). They will be part of our extended language. Baptiste. ----- Original Message ----- From: "Andre Baresel" <and...@gm...> To: <Cpp...@li...> Sent: Monday, December 16, 2002 9:46 PM Subject: [Cpptool-develop] C++ Syntax Reference > I'm wondering if anybody has some kind of c++ syntax document maybe the > original definition > from ansi ? > > until later, > André |
From: Baptiste L. <gai...@fr...> - 2002-12-16 22:36:01
|
----- Original Message ----- From: "Baptiste Lepilleur" <gai...@fr...> To: "CppTool Mailing List" <Cpp...@li...> Sent: Sunday, December 15, 2002 9:19 PM Subject: [Cpptool-develop] Added declaration parsing in condition of if, while, and switch statement. > Well, the subject said it all. Please, notes that I removed > ScopeGeneratorTest and ScopesHolderTest from the Makefile. > [...] > The ScopeGenerator and ScopesHolder test will be removed soon. I'm done > with testing the new IdentifierResolver. I'm tackling the unit tests for > IdentifierResolverContext (which manages local variables visibility). Well, I'm finally did it. All the Scope* classes were removed and the code now use the new IdentifierResolver and IdentifierResolverContext. Once again the classes are miss-named :-(. IdentifierResolverContext should be named IdentifierResolver. I would have go ahead and renamed them, but I can't find a name for the current IdentifierResolver class. Suggestion are welcome. IdentifierResolver and IdentifierResolverStrategy are probably a for of the Director/Builder pattern. IdentifierResolver does the analysis (entry/exit scope, local variable declaration...), while IdentifierResolverStrategy process those 'event'. IdentifierResolverContext is a specialization of IdentifierResolverStrategy. I expect a few change to come up when we add a specialization of IdentifierResolverStrategy to detect if it is valid to declare a new locale variable at a given location (e.g. the identifier is not used in the scope), and when ReduceTemporary scope is implemented. Also, it should be fairly easy to extend IdentifierResolverContext to handle class attributes and methods. For now, I'll go back to working on the VC6 add-ins (mainly need to add a generique fixture to test TextDocument interface). Baptiste. > Baptiste. |
From: Baptiste L. <gai...@fr...> - 2002-12-16 22:22:11
|
I got the same issues. I though it was my local copy that got corrupted (I did not notice the change in case). This is caused by a bug in cvs client on Windows. My guess is that it happen when Sven renamed (correctly) StdAfx.h to stdafx.h, and I later submitted my local copy of StdAfx.h. This can be solved by removing the bad StdAfx.h using a case sensitive client (SF shell account would do). But I'll rather wait 48h so that we have a clean tarball backup (on the admin page) before doing that. The last time I tried to change the case of a file from WinCVS I ended up corrupted the CVS repository. The SF guys fixed that, but I heard that they sometime mess up, so I'll rather be safe and have a nice backup. Beyond that, this does not cause any issues during compilation and change commit. Baptiste. ----- Original Message ----- From: "Andre Baresel" <and...@gm...> To: <Cpp...@li...> Sent: Monday, December 16, 2002 10:16 PM Subject: [Cpptool-develop] A minor problem with checkout > I just saw that in the directory ... there are two different "StdAfx.h" > files, one with lower and > one with some uppercase. This leads to an error on my windows cvs: > > ------------------------------ > cvs server: Updating rfta/src/rftaparser > U rfta/src/rftaparser/StdAfx.h > cvs checkout: move away rfta/src/rftaparser/stdafx.h; it is in the way > C rfta/src/rftaparser/stdafx.h > ----------------------------- > > ... well, we know about this ;-) > > any comments on this ? > > -- Andre |
From: Baptiste L. <gai...@fr...> - 2002-12-16 22:14:39
|
----- Original Message ----- From: "Andre Baresel" <and...@gm...> To: "CppTool Mailing List" <Cpp...@li...> Sent: Monday, December 16, 2002 9:26 PM Subject: [Cpptool-develop] what about another developer ? > What about adding me to the developer list and assign the first todo > item to me ? Your welcome Andre, though you'll have to wait for Sven to do it as I don't have admin right. Task are self-assigned. Just edit the wiki Todo page and change the status to 'In Progress' and put your name beside it. Also, send a mail to the ML so people are notified. > Well, i hope this item "Add parsing for 'for' statement condition > declaration, The resulting AST structure should look like ...." > could be solvable for me. If you managed to do the 'if condition', it should not be to difficult. Let us know if you have any issues. Baptiste. [...] > > See, ya > André Baresel |
From: Andre B. <and...@gm...> - 2002-12-16 21:19:35
|
I just saw that in the directory ... there are two different "StdAfx.h" files, one with lower and one with some uppercase. This leads to an error on my windows cvs: ------------------------------ cvs server: Updating rfta/src/rftaparser U rfta/src/rftaparser/StdAfx.h cvs checkout: move away rfta/src/rftaparser/stdafx.h; it is in the way C rfta/src/rftaparser/stdafx.h ----------------------------- ... well, we know about this ;-) any comments on this ? -- Andre |
From: Andre B. <and...@gm...> - 2002-12-16 20:49:22
|
I'm wondering if anybody has some kind of c++ syntax document maybe the original definition from ansi ? until later, André |
From: Andre B. <and...@gm...> - 2002-12-16 20:29:11
|
What about adding me to the developer list and assign the first todo item to me ? Well, i hope this item "Add parsing for 'for' statement condition declaration, The resulting AST structure should look like ...." could be solvable for me. Just send me a message - I will start. Anyway I still continue looking at the sources and trying to understand the data flow ... :-) Baptiste Lepilleur wrote: > Well, the subject said it all. Please, notes that I removed >ScopeGeneratorTest and ScopesHolderTest from the Makefile. > > Andre, you can see the file related to the 'if' condition by looking for >'* added declaration in condition parsing' in the log (I recommend using >sourceforge cvs web interface for this). > I will. However I got now work my WinCVS together with WinMerge. See, ya André Baresel |
From: Sven R. <rei...@ma...> - 2002-12-15 21:54:19
|
On Sun, 15 Dec 2002, Baptiste Lepilleur wrote: > One question though. How are complex user interactions handled ? > > For instance, the RenameClass refactoring while provide the user with a list > of found occurrences, tagging each occurrences with some sort of probability > tag reflecting how confident the parser is that it is a reference to the > same class (we now we'll never be perfect). The user would be able to > validate which occurrences should be replaced. > > How would this be handled in emacs ? Creating a buffer with the list of > occurrences (like the 'window manager' of emacs) ? > I would rather think of something along the line of emacs' "query replace". Thus, we go through the list of possible occurrences, display the corresponding file with the expression in question highlighted, and ask the user something like "Replace class name (rfta confidence: 80%)?" Optionally, we can skip this step for occurrences where our confidence is 100% (might happen every once in a while). The user would have the possibility to replace this occurrence, skip it, or (maybe) abort the whole refactoring. In emacs, this can be done in the minibuffer. Sven. -- Sven Reichard Dept. of Math. Sci. University of Delaware rei...@ma... |
From: Baptiste L. <gai...@fr...> - 2002-12-15 20:32:26
|
Well, I more or less expected something like this. Concerning the undo, while it is not yet an issue for VC6, this will become one when we will move to refactoring that change more than one file (though I understand that VC7 can handle that). I also expect this to be an issue for some other IDE. So, there will probably be a common solution. One question though. How are complex user interactions handled ? For instance, the RenameClass refactoring while provide the user with a list of found occurrences, tagging each occurrences with some sort of probability tag reflecting how confident the parser is that it is a reference to the same class (we now we'll never be perfect). The user would be able to validate which occurrences should be replaced. How would this be handled in emacs ? Creating a buffer with the list of occurrences (like the 'window manager' of emacs) ? Baptiste. ----- Original Message ----- From: "Sven Reichard" <rei...@ma...> To: "CppTool Mailing List" <Cpp...@li...> Sent: Saturday, December 14, 2002 6:39 PM Subject: Re: [Cpptool-develop] XEmacs integration > For emacs, I came up with the following solution: > > - Create a text-based application which understands an easy to parse set > of commands, and which allows to interactively refactor source files on > disk. > - Create a mode for emacs which communicates with that application. > > Both parts shouldn't be too complicated to implement. The application > (let's call it "refactor") would still be platform independent, and hence > perhaps generally useful. Since it operates directly on the files it will > have to implement its own undo mechanism. > > I'll think about the interface for refactor, and I'll put something on the > Wiki. Basically, a run would look as follows: > > > addAll src/rfta > added 25 files > > apply RenameTemp ToolsBox.cpp 245 15 newVariableName > replaced 14 occurrences > > saveAll > saved 1 file(s) > > quit > > where the variable occurs in line 245, column 15. > > Sven. > > -- > Sven Reichard > Dept. of Math. Sci. > University of Delaware > rei...@ma... |
From: Baptiste L. <gai...@fr...> - 2002-12-15 20:24:08
|
Well, the subject said it all. Please, notes that I removed ScopeGeneratorTest and ScopesHolderTest from the Makefile. Andre, you can see the file related to the 'if' condition by looking for '* added declaration in condition parsing' in the log (I recommend using sourceforge cvs web interface for this). The ScopeGenerator and ScopesHolder test will be removed soon. I'm done with testing the new IdentifierResolver. I'm tackling the unit tests for IdentifierResolverContext (which manages local variables visibility). Baptiste. |
From: Baptiste L. <gai...@fr...> - 2002-12-15 20:09:01
|
I added two todo to the wiki (http://cpptool.sourceforge.net/cgi-bin/wiki.pl?ToDo): - Add parsing for 'for' statement condition declaration - Add getBlankedContent?() and getOriginalContent?() methods to ASTNode A quick cut'n'paste below (not sure how this will look like in brut text). a.. [High] Add parsing for 'for' statement condition declaration a.. The resulting AST structure should look like: [for-statement] iteration-statement-property => [{statement}] iteration-property => [for-iteration-expression] [for-iteration-expression] ? declaration-property => [declaration-or-expression-statement] ? condition-property => [expression-statement] ? next-step-property => [expression-statement] a.. Status: to do a.. [High] Add getBlankedContent?() and getOriginalContent?() methods to ASTNode a.. How: a.. add a SourceASTNode? parameter to ASTNode constructor. b.. add a createASTNode() method to Parser, which retrieve the SourceASTNode? from the context_. c.. have all parser use the new createASTNode() method instead of calling ASTNode::create(). b.. Comments: see http://sourceforge.net/mailarchive/forum.php?thread_id=1364546&forum_id=1271 0 c.. Status: to do Baptiste. |
From: Baptiste L. <gai...@fr...> - 2002-12-15 09:32:01
|
----- Original Message ----- From: "Andre Baresel" <and...@gm...> To: <Cpp...@li...> Sent: Friday, December 13, 2002 11:10 PM Subject: [Cpptool-develop] I'm still there - working through all these sources > I started getting into the sources, but I'm still not usefull for the > project :-( > > i think it will take some time to get all the ideas. However I started > to play arround with > this Mutator concept and tried to implement this ToDo Item "Adding a > variable declaration in > if/while statement" ... not to make this for the public, but this is > something I can check against > later on, when you Baptiste have checked your sources in. With luck, I will be able to commit this evening... > I got something working, but well, I'm not sure if this is ok and > there's a question: > The introduction of a new nodetype for the conditions makes some of the > tests failing, so how is this situation > handled ? Is it ok than to change the tests, too - since the assertion > only reports the new ast-node-type not > beeing expected. Some unit tests of the If parser should failed because they expect a different node type for the condition. Changing the node type in the check methods should fix the If parser tests. You also get a few tests failing in ScopeGeneratorTest because of the new declaration that was introduced. > Another thing is the MaxLODMutator ... In the beginning I stumbled > accross two things: > - the methods "mutate" and "doMutate" sound like the same action and > take the same parameters but they > do completely different things ... I would suggest some better naming > here ... maybe doMutate is just "doMultipleMutate" ? > - this MaxLODMutatorVisitor, what about that class, is this really needed ? > As I understand this class is only used to be instanciated in each > recursion of the mutation operation. > Is there anything I can't see ? The use of this class confused me > a little bit. With this class the recursion comes > Invisible for a person reading the source.... Just my opinion. The current mutator stuff are a 'hack' to get the stuff working. It is not very clear to me what it should be exactly. I expect things to become clearer when we'll have a more complete parser and some form a AST rewriting (the current mutation scheme prevent the use of polymorphism in ASTNode). Sven already covered the other points I believe. > I'll next go into these Scope things - Don't bother with the current implementation. It's have been completly rewritten (IdentifierResolver stuffs). It's a lot more simple and easier to extend, to resolve unqualified identifier as attribute or member function for example. I'm in the process of adding test for this. Baptiste. > and in parallel i'm still collecting the useful infos from the forum and > the mailing list. > > See you later, > Andre |
From: Baptiste L. <gai...@fr...> - 2002-12-14 22:58:46
|
I've just added IdentifierResolver and IdentifierResolverContext. Those two classes will replace respectively ScopeGenerator and ScopeHolder. IdentifierResolver basically visit the AST and IdentifierResolverContext manages variable visibility and identifier resolution during the visitation. I expect IdentifierResolverContext to become a Strategy over time. I initially started changing ScopeGenerator to handle the new if ( int x = 3 ) case, but the code was getting too complicated for my taste. Also, the ReduceLocalVariableScope refactoring need to know what is the statement that generated the scope: a variable declaration can only be moved into a compound statement, and if a compound statement does not exist, it may need to be created. int x =3; if ( true ) ++x; => if ( true ) { int x = 3; ++x; } This would not have been possible with the previous scheme. The visitor/strategy based identifier is a lot more flexible and extensible. Also, the implementation is much more simple. Both classes still need testing (should be able to reuse some of ScopeGenerator tests). I'll try to do that tomorrow. It's time for me to call it a day (I'll answer the other mails tomorrow). Baptiste. |