Subject | Re: [IBO] New Beta Release: IBO 4.9.2 |
---|---|
Author | m. Th. |
Post date | 2009-05-12T08:05:06Z |
m. Th. wrote:
- since they're heading for a 64bit cross-compiler, perhaps that:
1. Try to separate the UI part from the data access part. Most probably
that the UI will be way harder to port (if possible) to the new versions
since cross-platform is involved.
2. Try to avoid asm. They do it already. See for ex. in Variants.Pas,
which I have in front of my eyes right now, a bunch of cases like:
<quote>
procedure _VarAdd(var Left: TVarData; const Right: TVarData);
{$IF Defined(PIC) or Defined(PUREPASCAL)}
begin
_VarOp(Left, Right, opAdd);
{$ELSE}
asm
MOV ECX,opAdd
JMP _VarOp
{$IFEND}
end;
procedure _VarSub(var Left: TVarData; const Right: TVarData);
{$IF Defined(PIC) or Defined(PUREPASCAL)}
begin
_VarOp(Left, Right, opSubtract);
{$ELSE}
asm
MOV ECX,opSubtract
JMP _VarOp
{$IFEND}
end;
...etc.
</quote>
HTH,
m. Th.
> Jason Wharton wrote:Also, for 5.x some things to note:
>
>> I'm open to comments and suggestions.
>>
>> Regards,
>> Jason Wharton
>>
>>
> I agree with the two versions variant.
- since they're heading for a 64bit cross-compiler, perhaps that:
1. Try to separate the UI part from the data access part. Most probably
that the UI will be way harder to port (if possible) to the new versions
since cross-platform is involved.
2. Try to avoid asm. They do it already. See for ex. in Variants.Pas,
which I have in front of my eyes right now, a bunch of cases like:
<quote>
procedure _VarAdd(var Left: TVarData; const Right: TVarData);
{$IF Defined(PIC) or Defined(PUREPASCAL)}
begin
_VarOp(Left, Right, opAdd);
{$ELSE}
asm
MOV ECX,opAdd
JMP _VarOp
{$IFEND}
end;
procedure _VarSub(var Left: TVarData; const Right: TVarData);
{$IF Defined(PIC) or Defined(PUREPASCAL)}
begin
_VarOp(Left, Right, opSubtract);
{$ELSE}
asm
MOV ECX,opSubtract
JMP _VarOp
{$IFEND}
end;
...etc.
</quote>
HTH,
m. Th.