You are not logged in.
Pages: 1
>fossil
do not understand where the current version is downloading
2020-03-05 15:27 Fatal https://github.com/synopse/mORMot/commi … 0dedbaa840
2020-03-05 15:35 Success https://github.com/synopse/mORMot/commi … e00adc3ea2
TDynArrayHasher =
function HashOne(Elem: pointer): cardinal; {$ifdef FPC_OR_UNICODE}inline;{$endif} // Delphi 2007 -> C1632
Fix for latest version:
TDynArrayHasher =
...
function HashOne(Elem: pointer): cardinal;
{$ifdef FPC}inline;{$else}
{$ifdef ISDELPHIXE4}inline;{$endif}
{$endif} // Delphi 2007=C1632, 2010=C1872, XE3=C2130
Two consecutive commites:
Last XE3 Success: 2020-03-05 14:57
https://github.com/synopse/mORMot/commi … 974a9f9cab
Fiirst XE3 Fatal: 2020-02-15 14:32 (see diff)
https://github.com/synopse/mORMot/commi … 04a6e68dcf
SynCommons.pas(52090) Fatal: F2084 Internal Error: C2130
XE3:
SynCommons.pas(51075) Fatal: F2084 Internal Error: C2130
XE3 x86:
SynCommons.pas - Fatal: F2084 Internal Error: C2130
mORMot version '1.18.5765' at 2020-04-04: https://github.com/synopse/mORMot/commi … c0c5fee675
Failed compilation when defined NOSETTHREADNAME :
SynCommons.pas ... Error: E2023 Function needs result type
what is sqlite4
http://sqlite.org/src4/doc/trunk/www/design.wiki
thanks!!!
fixes for Abort/ReturnAddress
procedure Abort;
{$IFDEF MSWINDOWS}{$IFNDEF UNICODE}
function ReturnAddress: Pointer; // "ReturnAddress" built into the new language
asm
mov eax, [ebp+8]
end;
{$ENDIF}{$ENDIF}
begin
raise EAbort.Create('Operation Aborted') {$IFDEF FPC} {at todo: ?<i do not remember> }{$ELSE}at ReturnAddress{$ENDIF};
end;
- I will wait for fixes for unicode
LVCL\Demo\Project3.dpr
D2007: 62'464 bytes
XE3: 81'408 bytes
To reduce the size of the examples (*.dpr):
{$IF CompilerVersion >= 22.00}
{.$IFNDEF DEBUG}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{.$ENDIF}
{$ENDIF}
I tried to translate for D2007, XE3.
In the "D2007" examples work. And in "XE3" black background in forms (still need to fix).
LVCL my changes:
LVCL_CHANGES_D2007,XE3_[2014.02.11_1919].zip
1) "SynCrtSock.pas, CPort.pas" requires inclusion "Synopse.inc" for processing "{$IFDEF LVCL}"
2) "SynCommons.pas" reqired change "function FileAgeToDateTime" for option "{$IFDEF LVCL}" or need overloded version FileAge in "LVCL\SysUtils.pas"
3) "SynCommons.pas" required declaration TBytes for "{$IFDEF LVCL}" (easier to add to LVCL\SysUtils.pas)
4) "SynCommons.pas" duplicate definitions PUREPASCAL:
{$ifndef PUREPASCAL} { these functions are implemented in asm }
{$ifndef LVCL} { don't define these functions twice }
{$ifndef PUREPASCAL}
procedure FillChar(var Dest; Count: Integer; Value: Byte);
5) "SynCommons.pas" required "function Trim(RawUTF8): RawUTF8" for option "{$IFDEF LVCL}"
SynCommons.pas(...) Error: E2065 Unsatisfied forward or external declaration: 'RecordClear'
fix:
{$ifdef USEPACKAGES}
procedure RecordCopy(var Dest; const Source; TypeInfo: pointer);
asm // same params than _CopyRecord{ dest, source, typeInfo: Pointer }
{$ifdef CPUX64}
.NOFRAME
{$endif}
jmp System.@CopyRecord
end;
// +++++++++++++++++++++++:
procedure RecordClear(var Dest; TypeInfo: pointer);
asm
{$ifdef CPUX64}
.NOFRAME
{$endif}
jmp System.@FinalizeRecord
end;
// +++++++++++++++++++++++.
{$else USEPACKAGES}
{$ifdef DELPHI5OROLDER}
procedure RecordCopy(var Dest; const Source; TypeInfo: pointer);
asm // same params than _CopyRecord{ dest, source, typeInfo: Pointer }
jmp System.@CopyRecord
end;
How to disable system proxy for TWinHTTP ?
I use this method:
Client := TSQLHttpClient.Create(sHost, sPort, Model,
{https:}False,
{proxyname:}#32, // proxy #32 for disable over proxy access
{proxybypas:}'');
But it looks not very logical.
1) SynZipFiles.pas cannot compile for Win64:
Fatal: F1026 File not found: 'Libc.dcu'
2) SynZipFiles.pas warnings:
SynZipFiles.pas(613) Warning: W1035 Return value of function 'TZipReader.GetData' might be undefined
SynZipFiles.pas(869) Warning: W1057 Implicit string cast from 'RawUTF8' to 'string'
3) SynCommons.pas hint for compiler option "accertion off" {$C-} for code "function VariantSave":
Hint: H2077 Value assigned to 'P' never used
Please modify code to:
function VariantSave(const Value: variant): RawByteString;
{$ifopt C+}
var P: PAnsiChar;
{$endif}
begin
SetString(result,nil,VariantSaveLength(Value));
{$ifopt C+}P := {$endif}VariantSave(Value,pointer(result));
{$ifopt C+}
assert(P-pointer(result)=length(result));
{$endif}
end;
fixing:
function StringToGUID(const text: string): TGUID;
{$ifdef UNICODE}
var tmp: array[0..{+}36{+.}] of byte;// ******** +1 ***********
i: integer;
{$endif}
begin
if (length(text)=38) and (text[1]='{') and (text[38]='}') then begin
{$ifdef UNICODE}
for i := 0 to 35 do
tmp[i] := PWordArray(text)[i+1];
{+}tmp[36] := 0;{+.} // ******** +2 ***********
if TextToGUID(@tmp,@result)<>nil then
{$else}
if TextToGUID(@text[2],@result)<>nil then
{$endif}
exit; // conversion OK
end;
fillchar(result,sizeof(result),0);
end;
Nightly - Yes
USEPACKAGES - Thanks - this solved the problem
If you try to create a package for the library mORMot:
Error: E2201 Need imported data reference ($G) to access 'VarCopyProc' from unit 'SynCommons'
temporary fix:
...
{$ifdef PUREPASCAL}
...
{$else}
procedure RecordCopyInvoke;
asm
call System.@CopyRecord
end;
{+} // begin changes:
{.$IFDEF USESYNTABLEVARIANT}
procedure _VarCopyProc(var Dest: TVarData; const Source: TVarData);
begin
System.VarCopyProc(Dest, Source); // AV when System.VarCopyProc = nil
end;
var
VarCopyProc: procedure (var Dest: TVarData; const Source: TVarData) = _VarCopyProc;
{.$ENDIF USESYNTABLEVARIANT}
{+.} // end changes.
procedure RecordCopy(var Dest; const Source; TypeInfo: pointer);
...
Pages: 1