Dave Dodge | 1 Jun 08:05 2006
Picon

Re: Morirz First Releas on sourceforge.net

On Wed, May 31, 2006 at 06:25:05PM +0200, Eckard.Klotz <at> t-online.de 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
(Continue reading)

Eckard.Klotz | 2 Jun 10:14 2006
Picon

Re: Morirz First Releas on sourceforge.net

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.

<div>
Hello Mr. Dodge.<br><br>
Thank you for your effort to make further tests.<br><br>
Since I'm not a very good c++ programmer too, I've learned a lot from
your mail.<br><br>
1. I followed your proposal to use the standard definition&nbsp;
EXIT_FAILURE
instead of -1 and hope that the compiler knows the right translation
for the target-system.<br>
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.<br><br>
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.<br><br>
3. You proposed to deactivate the pause-commands. I thought about this
too. But I think I have to recognize two scenarios. <br><ul>
<li>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.</li>
  <li>B. But while changing the configuration of Moritz it may be a
good opportunity to stop the whole generation-process&nbsp; 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.</li>
</ul>
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. <br>
What do you think?<br><br>
And now lets talk about the crash <br><br>
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. <br><br>
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.<br>
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.<br>
Now I started to reduce the files to find out which file causes the
crash:<br><ul>
<li>a. If you take only the files I've listed as necessary&nbsp; for
Moritz you will get what you want without a crash or an error-message.<br>
</li>
  <li>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. </li>
  <li>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&nbsp; in the sub-directory xmlblock/h. I think this
causes&nbsp; inconsistent&nbsp; information which Moritz can not solve. On the
one hand there is a bug in Moritz because mistakes like these&nbsp; 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? </li>
</ul>
What do you think?<br><br>
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.<br><br>
At the end I have a favour to ask you.<br>
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. <br><br>
Regards,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Eckard Klotz.<br><br>
</div>
_______________________________________________
Doxygen-develop mailing list
Doxygen-develop <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-develop
B.S. | 6 Jun 20:27 2006
Picon

Building libdoxygen dylib?

Has anyone tried building libdoxygen as a dylib rather than as a  
static library? I'm on Mac OS X and would like to experiment with  
embedding doxygen in an application.

Thanks in advance,
Brent
Eckard Klotz | 18 Jun 20:36 2006
Picon

Moritz new release , new project-path, first linux-trial

Hello Everybody.

There is a new release of Moritz the nassi-shneiderman generator for 
Doxygen.
The sourceforge-team has changed the project path so you can find Moritz 
under "www.sourceforge.net/projects/moritz" now.
I tried to create a linux-version also. But I'm a linux newbe and I 
don't really know if it works on all linux-distributions. I have an old 
Suse 9.0 distribution.

I know there is still a lot to do and sometimes it's a little bit 
difficult to decide what's the most important thing to do next. If you 
are missing important things like the documentation of special things or 
additional features don't hesitate to ask for. If you have questions or 
proposals or if you want to criticize something you can also use the 
forum of Moritz provided by sourceforge.
But since I'm on a business-trip next week I'm not able to answer before 
next weekend, sorry.

Regards,
               Eckard Klotz.