 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
John O'Harrow Guest
|
Posted: Thu Oct 13, 2005 4:58 pm Post subject: New Fastcode library deisgn |
|
|
Fellow FastCoders,
I have taken the liberty of implementing the new library design, as recently
discussed in his group. and have posted the source in the attachments group.
I have done this by updating the library provided by Charalabos Michael (is
Charalabos your first or second name?)
This does not make it an official Fastcode library yet (the voting is still
continuing), but it does give programmers an opportunity to access it.
Feedback (both Good and Bad) will be appreciated.
regards,
John
|
|
| Back to top |
|
 |
Eric W. Carman Guest
|
Posted: Thu Oct 13, 2005 8:30 pm Post subject: Re: New Fastcode library deisgn |
|
|
I really like the new design. Haven't used it yet, so just based on a
review of the code. (Also, you should include the fastcode.inc file in the
attachments at least as an example of what options you have.)
Best Regards,
Eric
"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote
| Quote: | Fellow FastCoders,
I have taken the liberty of implementing the new library design, as
recently discussed in his group. and have posted the source in the
attachments group. I have done this by updating the library provided by
Charalabos Michael (is Charalabos your first or second name?)
This does not make it an official Fastcode library yet (the voting is
still continuing), but it does give programmers an opportunity to access
it.
Feedback (both Good and Bad) will be appreciated.
regards,
John
|
|
|
| Back to top |
|
 |
Charalabos Michael Guest
|
Posted: Thu Oct 13, 2005 9:37 pm Post subject: Re: New Fastcode library deisgn |
|
|
Hello John,
| Quote: | I have taken the liberty of implementing the new library design, as recently
discussed in his group. and have posted the source in the attachments group.
I have done this by updating the library provided by Charalabos Michael (is
Charalabos your first or second name?)
This does not make it an official Fastcode library yet (the voting is still
continuing), but it does give programmers an opportunity to access it.
Feedback (both Good and Bad) will be appreciated.
|
Excellent and more and cleaner!
A couple comments:
1) The fastcode.inc is missing (i'm sending you my latest
one according to your modifications)
2) In a couple units, in the contributors names you have
placed you name twice.
And i'm also sending you via mail the latest test project and
the FastMove unit. (I've included your "10th" versions
from your latest fastmove unit)
--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr
|
|
| Back to top |
|
 |
Charalabos Michael Guest
|
Posted: Thu Oct 13, 2005 9:42 pm Post subject: Re: New Fastcode library deisgn |
|
|
Hello John,
| Quote: | And i'm also sending you via mail the latest test project and
the FastMove unit. (I've included your "10th" versions
from your latest fastmove unit)
|
btw, should i start to prepare more challenges
or i should wait ? (From voting it seems that the
new design will go from now on ...)
--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr
|
|
| Back to top |
|
 |
John O'Harrow Guest
|
Posted: Thu Oct 13, 2005 11:30 pm Post subject: Re: New Fastcode library deisgn |
|
|
"Charalabos Michael" <chmichael (AT) _-_no_-_creationpower_-_spam_-_ (DOT) com> wrote
in message news:434ed42a (AT) newsgroups (DOT) borland.com...
| Quote: | Hello John,
And i'm also sending you via mail the latest test project and
the FastMove unit. (I've included your "10th" versions
from your latest fastmove unit)
|
I would hold fire with Move at the moment.
FastMove is unusual in that it doesn't simply replace the existing RTL
function with a call to the replacement function. It actually patches a
larger portion of the existing RTL code, such that much of the work
necessary is done before the appropriate move function is called.
(experimentation has shown that over 95% of all moves in a typical
application are of less than 32 bytes). Patching Move in the same way as
other function will be slower than using FastMove.
|
|
| Back to top |
|
 |
Charalabos Michael Guest
|
Posted: Fri Oct 14, 2005 12:36 am Post subject: Re: New Fastcode library deisgn |
|
|
Hello John,
| Quote: | I would hold fire with Move at the moment.
FastMove is unusual in that it doesn't simply replace the existing RTL
function with a call to the replacement function. It actually patches a
larger portion of the existing RTL code, such that much of the work
necessary is done before the appropriate move function is called.
(experimentation has shown that over 95% of all moves in a typical
application are of less than 32 bytes). Patching Move in the same way as
other function will be slower than using FastMove.
|
Ok!
--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr
|
|
| Back to top |
|
 |
Pierre le Riche Guest
|
Posted: Sat Oct 15, 2005 11:48 am Post subject: Re: New Fastcode library deisgn |
|
|
Hi John,
I noticed there was a discussion earlier about duplicating functions and the
maintenance issues it involves. I didn't follow the whole discussion, but
have you considered that perhaps we could use include files that only
contains the implementation part of each function?We could then include the
same file four times into a single .pas for the 4 different alignments,
saving a lot of time.
Example:
unit CompareStrPLR;
interface
function CompareStrPLR1a(x, y: string): Integer;
function CompareStrPLR1b(x, y: string): Integer;
function CompareStrPLR1c(x, y: string): Integer;
function CompareStrPLR1d(x, y: string): Integer;
implementation
function CompareStrPLR1a(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
procedure Pad1;
asm
nop;
end;
function CompareStrPLR1b(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
procedure Pad2;
asm
nop;
end;
function CompareStrPLR1c(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
procedure Pad3;
asm
nop;
end;
function CompareStrPLR1d(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
end.
And then CompareStrPLR1.Inc could contain everything from "asm" to "end;"
for that function.
We could perhaps keep every entrant's submissions in a subfolder, so it
doesn't become too cluttered.
Could this work?
Regards,
Pierre
|
|
| Back to top |
|
 |
John O'Harrow Guest
|
Posted: Sun Oct 16, 2005 9:32 am Post subject: Re: New Fastcode library deisgn |
|
|
I like this idea.
It removes any possibility of there being any difference between the
different aligned version. (I Quite often change one of these 4 to test an
idea, and then either fail to put it back or overwrite it with the next B&V
release and lose an improvement). With the new type B&V tool layout (as
used in IntToStr), it is so quick and easy to add/remove functions, that I
no longer need to do this.
regards,
John
I have always considered have 4 differently aligned versions of each
function a bit of a superficial exercise, since we have no control over how
the function will be aligned outside the B&V.
"Pierre le Riche" <pleriche (AT) hotmail (DOT) com> wrote
| Quote: | Hi John,
I noticed there was a discussion earlier about duplicating functions and
the maintenance issues it involves. I didn't follow the whole discussion,
but have you considered that perhaps we could use include files that only
contains the implementation part of each function?We could then include
the same file four times into a single .pas for the 4 different
alignments, saving a lot of time.
Example:
unit CompareStrPLR;
interface
function CompareStrPLR1a(x, y: string): Integer;
function CompareStrPLR1b(x, y: string): Integer;
function CompareStrPLR1c(x, y: string): Integer;
function CompareStrPLR1d(x, y: string): Integer;
implementation
function CompareStrPLR1a(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
procedure Pad1;
asm
nop;
end;
function CompareStrPLR1b(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
procedure Pad2;
asm
nop;
end;
function CompareStrPLR1c(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
procedure Pad3;
asm
nop;
end;
function CompareStrPLR1d(x, y: string): Integer;
{$I CompareStrPLR1.Inc}
end.
And then CompareStrPLR1.Inc could contain everything from "asm" to "end;"
for that function.
We could perhaps keep every entrant's submissions in a subfolder, so it
doesn't become too cluttered.
Could this work?
Regards,
Pierre
|
|
|
| Back to top |
|
 |
Philip von Melle Guest
|
Posted: Sun Oct 16, 2005 1:47 pm Post subject: Re: New Fastcode library deisgn |
|
|
"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote:
| Quote: | I would hold fire with Move at the moment.
FastMove is unusual in that it doesn't simply replace the existing RTL
function with a call to the replacement function. It actually patches
a larger portion of the existing RTL code, such that much of the work
necessary is done before the appropriate move function is called.
(experimentation has shown that over 95% of all moves in a typical
application are of less than 32 bytes). Patching Move in the same way
as other function will be slower than using FastMove.
|
Is this a recommendation against the unofficial FastMove unit available
from www.fastcode.dk ? The version there is v2.30 dated 12-FEB-2005.
I read some newsgroup posts about FastMove v3.02 - where can I get it from?
I am using FastMM4 and there it is recommended to use FastMove in
conjunction with FastMM4 (and some conditional defines) and in the new
FastCodeLib.zip the recommended uses clause order is FastMM4, FastMove,
FastCode.
Any recommendations regarding the use of FastMove are appreciated.
Regards, Philip
|
|
| Back to top |
|
 |
John O'Harrow Guest
|
Posted: Sun Oct 16, 2005 2:39 pm Post subject: Re: New Fastcode library deisgn |
|
|
"Philip von Melle" <philip.vonmelle (AT) globetrotter (DOT) de> wrote
| Quote: | "John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote:
Is this a recommendation against the unofficial FastMove unit available
from www.fastcode.dk ? The version there is v2.30 dated 12-FEB-2005.
|
The version of FastMove on the old Fastcode site is a fairly old version.
It does not include the SSE2 and SSE3 optimized code. It also has a bug in
the DEP (Data Execution Prevention) code
| Quote: | I read some newsgroup posts about FastMove v3.02 - where can I get it
from?
|
Version 3.02 is still the latest version of FastMove. You should be able to
find a copy in the attachments newsgroup. If not, let me know and I will
repost it.
| Quote: | I am using FastMM4 and there it is recommended to use FastMove in
conjunction with FastMM4 (and some conditional defines) and in the new
FastCodeLib.zip the recommended uses clause order is FastMM4, FastMove,
FastCode.
|
FastMM4 does not use FastMove itself (it has its own internal moves).
FastCodeLib is still as a very early stage in its development. The final
layout has not formally agreed yet and there are still many functions to be
added. If you are using it now, treat it as "beta" software.
| Quote: | Any recommendations regarding the use of FastMove are appreciated.
|
Simple. Just add FastMove to any uses clause.and that's it. It is a
totally independent unit.
Note - I may be removing SSE2 support from within FastMove since it offers
no speed improvement over SSE, and is therefore just unnecessary code bloat.
regards,
John
|
|
| Back to top |
|
 |
Pierre le Riche Guest
|
Posted: Sun Oct 16, 2005 2:50 pm Post subject: Re: New Fastcode library deisgn |
|
|
Hi John,
| Quote: | FastMM4 does not use FastMove itself (it has its own internal moves).
|
FastMM's custom move procedures can be switched on and off through
conditional defines. I haven't done much testing, but I am quite sure
FastMove will be faster with largish blocks. For smaller blocks FastMM uses
fixed-size move procedures, so they may be hard to beat. Fortunately the
various move procedures can be disabled or enabled separately.
I usually recommend using the fixed size move procedures of FastMM, but the
variable size move procedure of FastMove.
Regards,
Pierre
|
|
| Back to top |
|
 |
Philip von Melle Guest
|
Posted: Mon Oct 17, 2005 6:34 am Post subject: Re: New Fastcode library deisgn |
|
|
"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote:
| Quote: | I read some newsgroup posts about FastMove v3.02 - where can I get it
from?
Version 3.02 is still the latest version of FastMove. You should be
able to find a copy in the attachments newsgroup. If not, let me know
and I will repost it.
|
It's not there anymore. I'd appreciate if you repost it there, please.
Best Regards and thanks for the answers,
Philip
|
|
| Back to top |
|
 |
John O'Harrow Guest
|
Posted: Mon Oct 17, 2005 8:04 am Post subject: Re: New Fastcode library deisgn |
|
|
| Quote: |
It's not there anymore. I'd appreciate if you repost it there, please.
|
Done
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|