## Forwarded by  : [EMAIL PROTECTED] (Joachim Merkel)
## Sender        : [EMAIL PROTECTED] (Robert AH Prins)
## Sent at       : 27.10.04, 17:21
## Sent to       : /COMP/LANG/PASCAL/BORLAND

"Timo Salmi" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Mon 18-Oct-2004: Got from the update author
>
> 459244 Oct 10 2004 ftp://garbo.uwasa.fi/pc/turbopa7/bpl70v20.zip
> bpl70v20.zip Borland-Pascal 7.01 RT-Libary Update Rel2.0, R.Prins

FWIW, this was the original message that accompanied the Garbo upload:

Subject: BPL70V20.ZIP Partial 32-bit replacement libraries for BP7

File name: BPL70V20.ZIP
One line description: Optimized BP7 runtime libraries
Replaces: NONE - THIS IS AN ALTERNATIVE TO BPL70N16.ZIP!
Suggested Garbo directory: TURBOPA7
Uploader name & email: Robert AH Prins <prino at onetel dot com>
Author or company: Robert AH Prins
Email address: <prino at onetel dot com>
Surface address: 52 Lummis Vale, Kesgrave, IPSWICH, SUFFOLK, IP5 2FJ, UK
Special requirements: 80386+ required
Shareware payment required from private users: N
Shareware payment required from corporates: N
Distribution limitations: None
Garbo CD-ROM distribution allowed without preconditions: Yes
Demo: No
Nagware: No
Self-documenting: Yes
External documentation included: Yes
Source included: Yes
Size: 449 K / 1415 K
10 lines description:
BPL70V20.ZIP contains optimized Run Time Libraries for Borland Pascal 7.
The code is based on Norbert Juffa's BPL70N16, but incorporates changes
Borland made in BP 7.01. Unlike the libraries in Norbert's BPL70N16, the
ones include here only run on 386+ CPU's due to the extensive use of
32-bit instructions. Many of the original RTL routines have also been
split up further to increase the smart-link granularity.

In addtion to the System unit, the RTLs also include optimized Dos, CRT
(removal of RTE 200) and Overlay units.
Long description:
The most notable "flaws" in the replacement libraries written by Norbert
Juffa in BPL70N16.ZIP are:

1) they are based on the original BP 7.00 RTL code
2) they do not use any 32-bit code

To quote Norbert:

"Those users already familiar with my previous project, the fast
 replacement library for Turbo Pascal 6.0 (distributed as TPL60N19.ZIP),
 may be disappointed that not all the features of that program have been
 included in BPL70N16.ZIP yet. I don't have much time at the moment but
 still wanted to provide a BP 7.0 version of my library as soon as
 possible. So I decided to port the performance relevant stuff first and
 work on the other aspects later."

Now, better (10 years...) late than never, BPL70V20.ZIP contains some of
these "other aspects" Norbert never got around to.

The most significant differences between BPL70N16 & BPL70V20 are

1) the new RTLs are based on the BP 7.01 RTL
2) they _require_ a 32-bit CPU
3) much of the code is Pentium+ friendly by replacing most slow CISC
   instructions with their RISC equivalents, which can be executed
   in parallel on Pentium/PII/PIII/P4/Atlon CPUs
4) they are more smartlink-friendly
5) in the default configuration, they no longer support the software
   FPU emulator (but two additional System units incorporating the
   SW emulator) are provided
6) they include a copy of my non-RTE200 smartlink friendly CRT unit
7) they include more smartlink-friendly DOS & Overlay units

As far as performance is concerned, the greatest gains, compared to
Norbert's libs, can be found in the Longint arithmetic. Norbert removed
all traces of it, I removed all traces of 16-bit code, essentially
reverting back to the original Borland unit, but without the Test8087
tests. The output from LONGTEST indicates that my code is about 35%
faster than that of Norbert and some 5% faster than the original BP 7
RTL.

Another noticable improvement is in the Set handling code. My code is
about 10% faster than the code in BPL70N16, which is due to the fact
that I use 32-bit code RISCified code that.

The results of WHETST87, where my code is some 10 to 14% faster than
Norbert's should be taken with a pinch of salt. Yes, it IS faster, but
this might mostly be due to the much faster conversion INT 34-3D to
real FPU instructions.

The two most notable other improvements that are not shown in the
results of any of the supplied testing programs are:

1) the Move() routine auto-aligns the destination of the move and moves
   4 bytes at a time, making it, for longer moves, close to four times
   as fast as the original Borland RTL and up to twice as fast as
   Norbert's code.

2) The 'internal' move also moves 4 bytes at a time, but doesn't perform
   auto-alignment of the destination. This move is, among others, used
   during assignments of records and arrays.

Other routines also use some 32-bit instructions, but the quality of
Norbert's original code was so high to start with, that improvements
are marginal. On my AMD64 all benchmarks execute faster, on the old
Cyrix some are slower. At this moment (October 2004) I do not have
access to any Intel hardware to generate more performance data.

As for the sources included in the various archives in the main file,
ARISOURC.ZIP & STRSOURC.ZIP contain Norbert's arithmetic and string
handing sources, with my tweaks. RAHPSRCE.ZIP contains all source that
no longer contains any Borland copyrightable code and the full sources
for the hardware and software emulators used in the libraries. Be aware
that this code has been significantly changed from the code extracted
from the original EM86/7 .OBJ files supplied by Borland.

RAHPSRCE.ZIP also contains, in \RTL\BIN\TPU & \RTL\BIN\TPP versions of
all units compiled with full debugging information and versions of
System.TPU/TPP that support the software emulator.

The units included are:

- nnnnD.TPU/TPP   : Unit nnnn compiled with full debugging support
- SystemE.TPU/TPP : System units compiled with SW emulator support
- SystemED.TPU/TPP: System units compiled with SW emulator and full
                    debugging support

To use any of these alternative units, rename them and use TPUMOVER to
add them to the appropriate TPL.

Last but not least, RAHPSRCE also contains the two makefiles I use
to generate the whole mess...

Robert AH Prins
October 2004




------------------------------------------------------------------------
FreeXP Entwickler-Mailingliste
[EMAIL PROTECTED]
http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list

Antwort per Email an