Thread: [Doxygen-develop] Morirz First Releas on sourceforge.net
Brought to you by:
dimitri
From: <Eck...@t-...> - 2006-05-30 20:06:15
|
Hello Everyone. I did it now. Moritz my nassi-shneiderman generator for doxygen is uploaded as first test-release. You can download it under : "www.sourceforge.net/projects/moritz-unix" You will find 5 files: 1. distribution-zip (contains a file-system with an test-project) 2. user-documentation 3. developer-documentation (user-doc + source-doc) 4. source-zip 5. readme.txt I hope my English was good enough for writing a useful documentation. If not don't hesitate to ask me. Please find some time to test the tool. Kind regards, Eckard Klotz. |
From: Dave D. <do...@do...> - 2006-05-30 21:58:17
|
On Tue, May 30, 2006 at 10:05:55PM +0200, Eck...@t-... wrote: > You can download it under : "www.sourceforge.net/projects/moritz-unix" Is this supposed to be usable on Unix systems yet? It's a little confusing because the project name is "moritz-unix" but all of the released files are listed as "win32". For example I took a quick look at the source files and didn't see any Makefiles or build instructions anywhere. -Dave Dodge |
From: <Eck...@t-...> - 2006-05-31 16:25:50
|
Dear Mr Dodge. Sorry but I'm a newbe in opensource and sourcefaorge. The moritz-unix doesn't mean that this is a unix-project. Sourceforge asked for an unique unix-name for the project. I didn't really understand what they want and I took the prefix unix because I don't use this in any other keyword of the project. Today I know it was a big failure of mine and I will ask if this can be changed. To build Moritz just the following files has to be used: src\ diverse\ c\ KeyListSet.cpp MoritzHelp.cpp String_imp.cpp h\ KeyListSet.h MoritzHelp.h String_imp.h Moritz\ c\ main.cpp xmlblock\ c\ xmlBlock.cpp h\ xmlBlock.h xmlvisitor\ c\ tool_gennsd.cpp tool_nsdanl.cpp xmlVisitor.cpp xmlvst_fileanl.cpp xmlvst_fncbdy.cpp xmlvst_fnchd.cpp xmlvst_gennsd.cpp h\ tool_gennsd.cpp tool_nsdanl.cpp xmlVisitor.cpp xmlvst_fileanl.cpp xmlvst_fncbdy.cpp xmlvst_fnchd.cpp xmlvst_gennsd.cpp Don't use the other sources especially those in the wx-directories. This files are necessary for the wizard I want to write in the next time. (Sorry for the confusion they corse) This are the standard include-files of c/c++ used by Moritz: map.h set.h vector.h list.h fstream.h string.h sstream.h sys/stat.h Since Moritz is a common console-application no special libraries are necessary. I'm not very familiar with make-files and use an ide (DevC++, Code-Blocks, MinGW Developer-Studio, ...) to manage the project and the compile-process. I don't use special compiler-options to optimize the program. For me the only steps to compile the sources is to add them into the ide-project, add the 3 h-paths and start the compilation. I hope this will help you. Dave Dodge schrieb: > On Tue, May 30, 2006 at 10:05:55PM +0200, Eck...@t-... wrote: > >> You can download it under : "www.sourceforge.net/projects/moritz-unix" >> > > Is this supposed to be usable on Unix systems yet? It's a little > confusing because the project name is "moritz-unix" but all of the > released files are listed as "win32". For example I took a quick look > at the source files and didn't see any Makefiles or build instructions > anywhere. > > -Dave Dodge > > > |
From: Dave D. <do...@do...> - 2006-06-01 06:32:47
|
On Wed, May 31, 2006 at 06:25:05PM +0200, Eck...@t-... wrote: > To build Moritz just the following files has to be used: [...] Thanks for the information. I was able to create a simple Makefile and get it compiled on a Linux machine. I also made some small changes to the code, such as changing the failure code in main() to return EXIT_FAILURE instead of -1, and to not run the PAUSE command. g++ still shows one warning, but I'm not really a C++ programmer so I don't know if anything needs to be done about it: src/xmlvisitor/cpp/xmlvst_gennsd.cpp: In copy constructor `XmlVisitor_GeneratorFuncNSD::XmlVisitor_GeneratorFuncNSD(const XmlVisitor_GeneratorFuncNSD&)': src/xmlvisitor/cpp/xmlvst_gennsd.cpp:79: warning: base class `class XmlVisitor' should be explicitly initialized in the copy constructor It sort of works on Linux, but not completely: By converting the .bat file to a bash script and using forward slashes in the config file paths, I was able to process the files in MoritzDistribution_2006_05_29 to produce HTML output. That seemed to be okay. Then I changed Doxyfile_xml to point to the sourcecode for Moritz itself, but it crashes while trying to process the XML that doxygen created. What's happening is that in the XmlVisitor_FunctionBodyAnalyse::analyse function, in the section marked "collect_BodyLines", it's entering the loop with this data: Function->id=class_xml_block___d___config_1048b2c620927a4b2e3841b2100cd28fa Function->location->bodystart=22 Function->location->bodyend=24 Codeline->lineno=25 Since Codeline is not in the function body, the loop never ends. Codeline just keeps increasing until it gets to 54 and hits a null pointer somewhere. I tried changing the logic to test that CodeLine < bodyend, which got it to run further, but eventually it gets to this point: function 68 of 395: getCommentText of compound ToolGenNDS_AnlsStrct function 69 of 395: ToolGenNDS_AnlsStrct_CmdBf of compound ToolGenNDS_AnlsStrct_CmdBf function 70 of 395: ~ToolGenNDS_AnlsStrct_CmdBf of compound ToolGenNDS_AnlsStrct_CmdBf and then gets stuck. I let it run for a few minutes but it's just using 99% of the CPU to do memory mapping and unmapping operations over and over again for some reason. I also see some more Pause commands over in xmlvst_gennsd.cpp that would need to be removed. -Dave Dodge |
From: <Eck...@t-...> - 2006-06-02 08:23:32
|
Hello Mr. Dodge. Thank you for your effort to make further tests. Since I'm not a very good c++ programmer too, I've learned a lot from your mail. 1. I followed your proposal to use the standard definition EXIT_FAILURE instead of -1 and hope that the compiler knows the right translation for the target-system. 2. I never saw the warning-message before you found, so I checked the default compiler-options an found that some warning-classes were not active. After changing that If got a lot of additional warnings, more than you told me. My philosophy is to try to solve the problems behind all warnings. On one hand it standardises my style of coding and on the other side I hope that those who designed this messages know more about the possible results than I. I changed this thinks in the code and tested it. The compiler gives no warnings and the program works like before. But the binary is a little bit smaller because I set the methods of the abstract classes to 0. This means the compiler makes no object-code for them. 3. You proposed to deactivate the pause-commands. I thought about this too. But I think I have to recognize two scenarios. * A. Between normal operation it is not useful that the program needs an input of the user to continue its operation. In this situation it would be better to write information into a log-file. * B. But while changing the configuration of Moritz it may be a good opportunity to stop the whole generation-process if an error occurs. For example to make the whole doc of the Moritz-source takes several minutes. Imagine how long it takes if you make a new set-up with out a break after an error. I think I will implement an a special output-class that manages the communication with the user. The user can configure this outputs via config-file, so that errors, warnings or messages causes a brake or not, will written to a log or not and so on. Perhaps I will also add an possibility to configure the output-messages them self so that the user can translate them in his language. What do you think? And now lets talk about the crash I have also used Moritz to build the source-documentation you will find on sourceforge (by the way it is possible to open chm-files on Linux or should I add the html-version of the docs?) . I had no problems to generate the diagrams. So first I thought this is a special Linux-problem ore a change of the xml-format of the doxygen-output so that Moritz is not able to work with older versions. I used doxygen since version 1.4. But then I remember my big failure to upload to many sources. So I followed exactly your way and include all sources you have inclusive those witch are not used for Moritz it self . After that I saw what you mean. Moritz crashes with a typical windows-message that tells you a lot but nothing about the real problem. Now I started to reduce the files to find out which file causes the crash: * a. If you take only the files I've listed as necessary for Moritz you will get what you want without a crash or an error-message. * b. If you include the file HTML.cpp in the sub-directory tools_wx/cpp you will get an error-message of Moritz, but this is a "normal" operation of the program and after pressing ENTER the rest runs fine. But in this special case behind this behaviour I found a bug of Moritz. The analysed function has a legal c++ format that Moritz doesn't know yet. The problem is the const behind the parameter-block of the function head. This is a bug and I have to change it. * c. If you include the file cfgText.h in the sub-directory config/h Moritz crashes. This is caused by a conflict between 2 files with the same name and nearly the same content because there is also a file named cfgText.h in the sub-directory xmlblock/h. I think this causes inconsistent information which Moritz can not solve. On the one hand there is a bug in Moritz because mistakes like these should not lead in to a crash. Moritz has to recognize them and has to react with an error-message. On the other side this is a not usual operation because I think in a normal project for one target-binary you will not have 2 files with the same name and the same content which also means 2 classes with the same name, or not? What do you think? I hope this will help you. I have to make some other changes in the next days so it may take some days until the next release. At the end I have a favour to ask you. You wrote that you have changed the dos-batch in to a bash-script for Linux. I want to create a Linux-version too. But I'm an absolute new-be in Linux. I have an older Suse-distribution (version 9.0). I tested to compile Moritz on Linux sometimes between the development and it works. I bought a book about bash-scripts but didn't start to learn more about writing them yet. So if your script works it would be a good example for me. Regards, Eckard Klotz. |