Hi GPC folks!
This is to announce the release of BPCOMPAT v 1.0, which has now been uploaded to agnes (in the "contrib" directory). If you are looking for greater Borland Pascal compatibility and/or you are looking for a big function library for GPC, you please download this package.
You can get a copy from; ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/contrib/bpcompat.zip
This package serves a number of functions;
1. To provide UNITS for GPC in order to improve is compatibility with Borland Pascal.
This package provides the following units for Borland Pascal ("BP") and Delphi compatibility; SYSTEM.PAS - BP compatible "SYSTEM" unit CRT.PAS - BP compatible CRT unit DOS.PAS - BP compatible DOS unit OBJECTS.PAS - BP compatible OBJECTS unit STRINGS.PAS - BP compatible STRINGS unit SYSUTILS.PAS - DELPHI compatible SYSUTILS unit GPCTYPES.PAS - various type definitions XSYSTEM.PAS - extra vital system stuff - not in BP GPCUTIL.PAS - Chief's Utilites unit - needed by some units
NOTE: some of the BP and Delphi compatible units contain missing features, some things are quite different from the BP equivalents, and some of the routines do not work well. Differences are clearly marked in the source code, and those routines that do not work well are also clearly marked.
2. To provide a library of useful routines for GPC - some of them take the form of UNITs which import various routines from the C library - i.e., they are import units for various ".H" files in the C library. The routines which are not imported C functions are contained in GPCUTIL.PAS. Some of them provide compatibility with TurboPower Software's "Turbo Professional" library.
Some of the functions in the converted C headers will not work properly - if you can make them work, fine. If not, please don't mail me - I can't make them work either.
3. To provide a shell program ("GPCC") for the GPC compiler. GPCC will accept parameters from the command line, and will also read parameters from an ascii file GPCC.CFG. All these will be passed on to the GPC compiler. GPCC also will detect whether the source file is a UNIT or a PROGRAM, and will pass extra parameters to the GPC compiler as required. GPCC is tailored to work a bit similarly to the Borland command line compiler (TPC or BPC). These are the import UNITs for various C header files; BIOS.PAS CONIO.PAS CTYPE.PAS DIR.PAS DOSH.PAS DPMI.PAS ERRORNO.PAS FCNTL.PAS IO.PAS PC.PAS PROCESS.PAS STATS.PAS STDIO.PAS STDLIB.PAS STRINGH.PAS SYS.PAS TIME.PAS UNISTD.PAS VALUES.PAS
IMPROVEMENTS ------------ It is my hope that someone (or some people) will take this on from here, and improve on this package. Some of the functions could be written more efficiently. My main concern has been to provide working and reliable implementations of various parts of the BP runtime library - not to implement the functions in the most efficient way.
It is also my hope that the package will be ported to other platforms. The current one has only been tested under DOS (DJGPP - but it should also be okay for EMX). However, I made sure that the SYSTEM.PAS unit uses only portable functions from the C library - so that should be easy to port to Linux and other Unix platforms. The DOS and CRT units are not portable to unix as they are. It would be nice if someone could port them to unix.
If you can improve on the efficiency, and/or if you can implement some of the missing (or unreliable) routines, and/or if you can port these UNITs to other platforms, please feel free to do so!!!
All I ask is this. Please, let this work be done in a coordinated fashion;
a. If anyone is working on anything, please let me know *exactly* what you are doing or proposing to do, so that there will be no duplication of efforts; b. Please follow the conventions in the existing code, for comments, spacing, and so on; c. Please mark clearly any changes that you have made to my code, or to Peter's code; d. If you are working on the SYSTEM unit, please ensure that what you are doing it portable (e.g., by using only C functions that are portable across DOS, OS/2, Unix, etc.); e. When uploading your work, please upload everything in one package (.zip file), and put a version number on it. f. Please inform Peter and me when you are ready to upload a new version.
BUGS ---- If you find bugs, please try to fix them - but please report them to me as well. If you fix them, please let me have a copy of the fix.
Happy coding!
Warmest regards, The Chief --------- Dr. Abimbola A. Olowofoyeku (The African Chief and The Great Elephant) Keele University, England (Email: laa12@cc.keele.ac.uk) Author of: Chief's Installer Pro v3.50 for Win16 and Win32 Homepage: http://ourworld.compuserve.com/homepages/African_Chief/