Monday, November 21, 2005
Work on Templates
Delphi 2006/BDS 2006
Work on the new version of GenHelpPro has been held up for a few months due to work on new templates. Every time a new version of Delphi comes out, a new template needs creating to support it and Delphi 2006 is no exception. In fact Delphi 2006 gave me more work as it supports 3 languages, something that the old version didn't. The new template supports all three languages conditional on the output specified on Options dialog.
This means that you can use the same template to create HtmlHelp for Delphi, C#, C++ OR all three in one file. I also took the opportunity to add a MS SDK look-alike template that fits into Delphi for those people who prefer that.
Templates enables this to be done without any code changes and so makes my life easier. When Delphi 2007 comes out (or Borland Developer Studio 2007) it should only take a few minutes to change it - assuming that Borland don't change the format again.
PasDoc
PasDoc is a tool on SourceForge that allows you to document your code and very nice it looks too. It doesn't however seem to plug into Delphi/BDS very easily and someone asked me to look into supporting it's commenting style in GenHelp. As GenHelpPro already supports JavaDoc which is siimilar I though this should be relatively simple to do and it was (to some extent). Import support should be appearing in the next release of GenHelp for those who require it. There should also be a new output format for creating Web Pages that look similar to it.
The future
Hopefully, once this release has got out, I should be able to get back to all the new features I am adding to GenHelpPro and get back to "Making Documentation Fun".
Work on the new version of GenHelpPro has been held up for a few months due to work on new templates. Every time a new version of Delphi comes out, a new template needs creating to support it and Delphi 2006 is no exception. In fact Delphi 2006 gave me more work as it supports 3 languages, something that the old version didn't. The new template supports all three languages conditional on the output specified on Options dialog.
This means that you can use the same template to create HtmlHelp for Delphi, C#, C++ OR all three in one file. I also took the opportunity to add a MS SDK look-alike template that fits into Delphi for those people who prefer that.
Templates enables this to be done without any code changes and so makes my life easier. When Delphi 2007 comes out (or Borland Developer Studio 2007) it should only take a few minutes to change it - assuming that Borland don't change the format again.
PasDoc
PasDoc is a tool on SourceForge that allows you to document your code and very nice it looks too. It doesn't however seem to plug into Delphi/BDS very easily and someone asked me to look into supporting it's commenting style in GenHelp. As GenHelpPro already supports JavaDoc which is siimilar I though this should be relatively simple to do and it was (to some extent). Import support should be appearing in the next release of GenHelp for those who require it. There should also be a new output format for creating Web Pages that look similar to it.
The future
Hopefully, once this release has got out, I should be able to get back to all the new features I am adding to GenHelpPro and get back to "Making Documentation Fun".
Wednesday, June 15, 2005
Genhelp on Steroids!
After more porting work, there are some major improvements to GenHelp's speed.
Generating a large WinHelp file, which used to take 3 minutes, now takes 6 seconds!
(The output hasn't been fully regression tested but it's still pretty impressive!)
Creating files using the template system (such as HtmlHelp files for Delphi 2005) has gone down from 6 minutes to 1.5 minutes which is pretty good also, considering what is going on under the hood.
There is still more porting work to be done as well as new features to be added but I'm quite pleased with the work so far.
Generating a large WinHelp file, which used to take 3 minutes, now takes 6 seconds!
(The output hasn't been fully regression tested but it's still pretty impressive!)
Creating files using the template system (such as HtmlHelp files for Delphi 2005) has gone down from 6 minutes to 1.5 minutes which is pretty good also, considering what is going on under the hood.
There is still more porting work to be done as well as new features to be added but I'm quite pleased with the work so far.
Saturday, May 28, 2005
Virtual Trees
Part of what I'm doing to GenHelpPro is to speed up lots of actions such as Import and Generate.
At present GenHelp uses the built-in TreeView but when this was profiled (using AQTime) I found that a large proportion of time was spent in TreeView actions such as GetNextXXXX()
I therefore made a major decision to use VirtualStringTree
When I tested this for simple tasks, it seemed to speed up operations by several orders of magnitude and now that I've ported GenHelp to use it, I'm getting quite good speed-ups.
Obviously I won't get the same order of magnitude improvements as my code also takes some time to run, but some tasks are much faster already.
It's been quite a task to port to the new tree as it works in a completely different way and it's taken quite a long time to change the code. For instance, when going up the tree node hierarchy, with the old tree, when you got to the top of the tree, the node's parent was NULL. With the new tree you have to check against equality with the tree's RootNode property so huge amounts of code have had to change to check for this.
Once I've ported to the new tree I shall be running regression testing on the new version to check that nothing's broken. Hopefully we will get a new version out before the next version of Delphi/C++Builder/Whatever it's called is released.
At present GenHelp uses the built-in TreeView but when this was profiled (using AQTime) I found that a large proportion of time was spent in TreeView actions such as GetNextXXXX()
I therefore made a major decision to use VirtualStringTree
When I tested this for simple tasks, it seemed to speed up operations by several orders of magnitude and now that I've ported GenHelp to use it, I'm getting quite good speed-ups.
Obviously I won't get the same order of magnitude improvements as my code also takes some time to run, but some tasks are much faster already.
It's been quite a task to port to the new tree as it works in a completely different way and it's taken quite a long time to change the code. For instance, when going up the tree node hierarchy, with the old tree, when you got to the top of the tree, the node's parent was NULL. With the new tree you have to check against equality with the tree's RootNode property so huge amounts of code have had to change to check for this.
Once I've ported to the new tree I shall be running regression testing on the new version to check that nothing's broken. Hopefully we will get a new version out before the next version of Delphi/C++Builder/Whatever it's called is released.
Thursday, December 02, 2004
Blog created
I thought that I would start a FraserSoft blog to show what I'm up to and what's coming soon.
GenHelpPro is currently being enhanced to save more settings in topic files so that you don't have to reset options between topics. There are also a few import bug fixes that are being worked on with regards to importing comments from source files.
GenHelpPro is currently being enhanced to save more settings in topic files so that you don't have to reset options between topics. There are also a few import bug fixes that are being worked on with regards to importing comments from source files.