Software Ported to Windows
This page contains links for downloading some useful software ported
from Unix to Windows to facilitate my work. The availble software includes
CUDD, BuDDy, ESPRESSO, BDS, etc. The ports are available as MS Visual C++
6.0 project workspaces, which can be installed and compiled on any Windows
computer which runs Visual Studio 6.0. You can download and use these Windows
ports without any restriction.
Please notice that I do not distribute the original versions of this
software but only the project workspaces, which I created for myself using
Visual C++ 6.0. The ported software worked and continues to work for me
very well. It may also work for you if you are skilful enough to use it
properly. Please notice also that, except for brief questions and answers,
I do not support the ported versions, nor am I responsible for any problems
or bugs that you may find while using them.
So much for disclaiming. Here is a typical story of a port. I find a software
package or a library, which I would like to use in my work but it is for
UNIX only, while I do most of my work on Windows and try to make the resulting
implementations cross-platform. I unzip the tarred gzip and study Makefile
and dependencies of the code. Next, I create an empty project workspace
in Visual C++ and add the UNIX code to the project. The project may be
either a "static library" or a "console application" type, depending on
the goal of the port. If it is a BDD package or a library to be used in
my own programs, the project becomes a static library. If it is a stand-alone
application to be run on the command line, the project become a console
application.
After adding files to the project and before finally pressing the button
"Rebuild All", the most magical part of the port takes place, which may
last from several minutes to several days (as it was in the case of SIS).
Unfortunately, this part cannot be presented systematically, because each
port has some peculiar details, hacks and tricks used in order to compile
it and make it work the way it was designed to work on UNIX.
A good porting style requires documenting all the changes to the original
source code done along the way to the fully functional ported version.
I am up to the challenge when I am at my best, and you can find a list
of changes, for example, in the Windows version of CUDD (see below) or
in the Windows version of SIS. However, many of these tricks are quite
dirty (programmers know what I mean) and sometimes I am shy of telling
that I had to do this or that mean-spirited hack in order to fix a stupid
complier or linker problem. In such cases, I apologize in advance, you
won't find any documentation, but only a more or less functional project.
The links below are organized as follows. The package-name link takes you
to the original webpage with the UNIX release of the code. The link at
the end of the line allows you to download the Windows port. Enjoy!
Alan Mishchenko's Home Page
This page has been last modified on May 21, 2002.