Polyglot1.4.30b
Posted: 02 Aug 2009, 20:05
This a new release of my polyglot tree.
The main change is that the difference between I/O handling in
WIN32 and POSIX has been completely abstracted.
Most of the polyglot source is now #if(n)def _WIN32 free. The
only files that still contain platform dependent code are
utils.h utils.c (small utilities)
pipex.h pipex_posix.c pipex_win32.c (the I/O abstraction layer)
io.h io.c (Fabien Letouzey's I/O code for posix)
The PG source has been ported to C. This was suggested by Eric Mullins
(who did it first in fact). This makes it somewhat easier to use PG on
embedded systems (E.M.'s hobby). Since PG doesn't use virtual
functions or any other high level C++ stuff the C port consists mostly
of trivial mechanical changes.
Other changes
I have added a lot more error checking. So PG will give meaningful error
messages instead of simply quitting. I have also added some more checks
for buffer overflows. More needs to be done here.
I have also tried to make PG robust against various bad things such as
the engine or the GUI crashing. PG and the engine should now exit
cleanly on such an event. I have also tried to eliminate all
situations where PG would end up in a busy wait state comsuming 100%
CPU time doing nothing.
E.M. has made various portability fixes to make this version of PG compile
cleanly on MSVC++ and on WIN9X. He has also suggested some new
options. The makefile for MSVC++ in the source is out of date
as E.M. is currently out of town. The makefile for mingw works fine.
On linux you would of course do simply
./configure
make
make install
Sources and binaries (.exe .deb and .rpm) are at the usual place.
http://alpha.uhasselt.be/Research/Algeb ... ot-release
The main change is that the difference between I/O handling in
WIN32 and POSIX has been completely abstracted.
Most of the polyglot source is now #if(n)def _WIN32 free. The
only files that still contain platform dependent code are
utils.h utils.c (small utilities)
pipex.h pipex_posix.c pipex_win32.c (the I/O abstraction layer)
io.h io.c (Fabien Letouzey's I/O code for posix)
The PG source has been ported to C. This was suggested by Eric Mullins
(who did it first in fact). This makes it somewhat easier to use PG on
embedded systems (E.M.'s hobby). Since PG doesn't use virtual
functions or any other high level C++ stuff the C port consists mostly
of trivial mechanical changes.
Other changes
I have added a lot more error checking. So PG will give meaningful error
messages instead of simply quitting. I have also added some more checks
for buffer overflows. More needs to be done here.
I have also tried to make PG robust against various bad things such as
the engine or the GUI crashing. PG and the engine should now exit
cleanly on such an event. I have also tried to eliminate all
situations where PG would end up in a busy wait state comsuming 100%
CPU time doing nothing.
E.M. has made various portability fixes to make this version of PG compile
cleanly on MSVC++ and on WIN9X. He has also suggested some new
options. The makefile for MSVC++ in the source is out of date
as E.M. is currently out of town. The makefile for mingw works fine.
On linux you would of course do simply
./configure
make
make install
Sources and binaries (.exe .deb and .rpm) are at the usual place.
http://alpha.uhasselt.be/Research/Algeb ... ot-release