Synopsis - News
May 20, 2003: Version 0.5 Released

Synopsis has reached another milestone with the release of version 0.5. This release is still missing many desired features, but seems to be stable and has a number of new features (and redesigns) since the last version. A quick list:

  • Improved C++ support (automatic compiler emulation, better standards compliance - parses Boost Python sources, generates Syntax highlighting and Cross Reference information)
  • Improved Linker support (refactored many processes, better comment handling and many bug fixes)
  • HTML formatter greatly improved to be more flexible and support different output configurations (eg: cross-reference centric, cvsweb or javadoc style layouts).
  • User manual included and available on website.
  • Support for Cygwin on win32.

You can download it here.

(Note: I reuploaded a new version today which has the correct version number in "synopsis --version", but that is the only change.)

--Stephen Davies

March 16, 2003: Updated website and added User Manual

I was hoping to have the release out before I started work, but unfortunately things didn't work out that way. It should be coming soon however - there is just some cleaning up to do.

In the meantime, I have just updated the website to give it a new look. I have also uploaded the User Manual that I have been working on recently. Hopefully Synopsis will be much easier to use now that it is actually documented more extensively than the README file!

--Stephen Davies

October 28, 2002: Boost.Python

Well working over last summer turned out to be more exhausting than I thought, and was quickly followed by two gruelling semesters which left me little time for working on Synopsis. But rejoice! I have now finished all the classes for my degree, and apart from the minor matter of final exams I am free to spend much more time on it. There has also been *some* progress during the year, I just never got around to updating this website :(

First and foremost, I am currently working with David Abrahams to whip Synopsis into shape for generating both user and developer documents for the Boost Python library. Anybody who has seen the sources for this thing will understand that it has been quite a stress test for both the preprocessor and the C++ parser! Template support has improved immensely, with many fixes to the rest of the parser, including the ability to emulate an arbitrary version of gcc (being the only compiler I have access to!)

The build system I alluded to is also working, allowing a single config file to control the whole parsing, linking and formatting sequence without using any Makefiles (a simple "synopsis -P boost.synopsis" does the trick!) It of course supports the old features that Makefiles allowed, such as using timestamps to rebuild things, and caching intermediate AST's to disk. This process is also well integrated in the GUI, as seen in the screenshot below.

There will probably be another release once Synopsis has proper support for making the Boost docs. In the meantime, you can grab the latest CVS to see what's up (look in Synopsis/demo/Boost).

Here is a screenshot (75KB) of the project GUI

--Stephen Davies

November 9, 2001: Ping

Having almost completed a horrible semester, I've dived back into the GUI. The graphical configuration I mentioned is still coming along, and has been better integrated into a restructuring of the rest of the GUI. I will be working fulltime this summer starting in a week, but during the evenings I hope to work on: Finishing the GUI, adding better cross-referencing, improved template support, a smarter build system which will replace using Makefiles, code-navigation features in the GUI and generated web pages, and finally a GUI for Berlin to make it self-documenting. Except for the Berlin GUI, all of these have already been started. Due to the nature of my work, explicit win32/COM support may be forthcoming as well, but we will see if I can stand more of that crap than I have to.

Here is a screenshot (26KB) of the new layout.

--Stephen Davies

August 3, 2001: GUI update

The gui has been developed a bit, and now includes a simple inheritance graph for classes. I have also been working on a graphical configuration interface to automate and ease the use of Synopsis, but that still has a long way to go.

Here is a screenshot (20KB) of the graph.

--Stephen Davies

July 27, 2001: GUI version

Last night I hacked together a little python script that uses the PyQt bindings to create a simple GUI for synopsis. All it does so far is browse an existing .syn file loaded from disk, in the familiar three-pane format. I borrowed the ASCIIFormatter as the easist way of getting some output, but in future I will have to refactor the HTML formatter some more and use that!

Here is a screenshot (27KB) for your perusal.

--Stephen Davies

July 11, 2001: Version 0.4 Released

Updates have been scarce here lately, but work has still been progressing as time permitted. Today 0.4 was released including numerous updates such as the beginnings of the source cross-referencer, more output formatters (.pdf, .info) and a new modular configuration file format.

The web pages have also been updated -- a new logo, rewrote old text, and updated docs to include more obvious pointers to the different demos etc, and different formats for the RefManual (pdf, info) for download.

--Stephen Davies

January 10, 2001: Home page update

I rewrote the home pages, mostly to include some more detailed information such as synopsis' own reference manual. The site is now css based.

--Stefan Seefeld

January 8, 2001: Python parser and Dia formatter

On the day of the 0.2 release I started work on a parser for Python. It turned out to be surprisingly easy and I finished it in just a few hours, based on the parser example in the Python distribution. With that I started reformatting the docstrings in the python source so that a manual can be automatically generated for Synopsis itself. Also at the request of a user I added a formatter that generates a Dia file as output. It only handles classes, attributes, operations and generalizations (inheritance) and you need to manually position everything, but it works. This also only took a couple of hours.

--Stephen Davies

January 6, 2001: Version 0.2 Released

We decided to release a new version since so much has changed recently. The C++ parser is done, it parses everything including comments. The HTML formatter produces indices by namespace and filename, and an inheritance hierarchy tree. Everything is styled using CSS/2. There are still missing features, but this version is already being implemented for document generation by the Berlin Project.

--Stephen Davies

December 20, 2000: Rewrote HTML formatter, C++ parser updates

The HTML formatter has been completely rewritten. It now generates multiple pages, a class hierarchy tree, indexes, summary/details, etc. I also extended the C++ parser to recognise classes and methods. It's a bit hazy on the types sometimes, and the OpenC++ parser we are using doesn't seem to pass comments through the parse-tree so they don't work. For some examples see Warsaw and Prague Manuals.

--Stephen Davies

March 7, 2000: persistent storage

synopsis now works in stages like a compiler. If you don't specify a formatter, it dumps the AST to the output file. If you don't specify a parser, it assumes the input file contains a parsed AST. Try running:

	    synopsis -p IDL -o CosNaming.syn CosNaming.idl
	    synopsis -f HTML -o CosNaming.html CosNaming.syn
    

--Stefan Seefeld

March 6, 2000: hooked up omniidl as IDL parser

as a proof of concept and to get started with IDL files we now can create an AST with the omniidl tool which ships with OmniORB.

--Stefan Seefeld


Hosted by
Last modified: March 16, 2003
by Stephen Davies