Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2020-03

FPC 3.2.0RC1 released!

17 messages · 11 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Marco van de Voort

Hello,

We have placed the first release candidate of the Free Pascal Compiler version 3.2.0 on our ftp servers.

You can help improve the upcoming 3.2.0 release by downloading and testing this release. If you want you can report what you have done here: http://wiki.freepascal.org/Testers_3.2.0 or in the maillist.

Changes that may break backwards compatibility will be documented at: http://wiki.freepascal.org/User_Changes_3.2.0

Downloads are available at the main FTP server,

ftp://ftp.freepascal.org/pub/fpc/beta/3.2.0-rc1/

Enjoy!

The Free Pascal Compiler Team

For an overview of what is new see

https://wiki.freepascal.org/FPC_New_Features_3.2

Reply by email

Mattias Gaertner
to Marco van de Voort
[...] You can help improve the upcoming 3.2.0 release by downloading and testing this release. If you want you can report what you have done here: http://wiki.freepascal.org/Testers_3.2.0 or in the maillist.

It seems libpas2jslib.so needs some adjustments under debian:

From lintian:

Errors:
unstripped-binary-or-object usr/lib/libpas2jslib.so library-not-linked-against-libc usr/lib/libpas2jslib.so shlib-with-executable-bit usr/lib/libpas2jslib.so 0755 package-must-activate-ldconfig-trigger usr/lib/libpas2jslib.so

Warnings:

shlib-without-versioned-soname usr/lib/libpas2jslib.so libpas2jslib.so

privacy-breach-generic
usr/share/doc/fpc-3.2.0/libxml2/examples/test1.xml [<link href="http://www.garmin.com">] (http://www.garmin.com)

Mattias

Reply by email

Michael Van Canneyt
to Mattias Gaertner
Mattias Gaertner wrote 15 lines
On Sun, 29 Mar 2020 20:18:19 +0200 Marco van de Voort wrote: > [...] > You can help improve the upcoming 3.2.0 release by downloading and > testing this release. If you want you can report what you have done > here: http://wiki.freepascal.org/Testers_3.2.0 or in the maillist. It seems libpas2jslib.so needs some adjustments under debian: From lintian: Errors: unstripped-binary-or-object usr/lib/libpas2jslib.so library-not-linked-against-libc usr/lib/libpas2jslib.so

This one is not really fixable, that's simply a bug in debian.

Michael.

Reply by email

Pierre Muller
to Mattias Gaertner: On Sun, 29 Mar 2020 20:18:19 +0200 It seems libpas2jslib.so needs some adjustments under…

Le 30/03/2020 à 15:33, Mattias Gaertner via fpc-devel a écrit :

Show quoted text 21 lines
On Sun, 29 Mar 2020 20:18:19 +0200 Marco van de Voort wrote: > [...] > You can help improve the upcoming 3.2.0 release by downloading and > testing this release. If you want you can report what you have done > here: http://wiki.freepascal.org/Testers_3.2.0 or in the maillist. It seems libpas2jslib.so needs some adjustments under debian: From lintian: Errors: unstripped-binary-or-object usr/lib/libpas2jslib.so library-not-linked-against-libc usr/lib/libpas2jslib.so shlib-with-executable-bit usr/lib/libpas2jslib.so 0755 package-must-activate-ldconfig-trigger usr/lib/libpas2jslib.so Warnings: shlib-without-versioned-soname usr/lib/libpas2jslib.so libpas2jslib.so

Michael,

I remember that I was also asking why you did not put the shared lib into the lib/fpc/3.2.0/lib subdirectory, but I forgot your explanation...

Pierre

Reply by email

J. Gareth Moreton
to Joao Schuler

That's pretty good!  I guess our individual work on the compiler. while maybe giving marginal gains, really accumulate.

Gareth aka. Kit

Joao Schuler wrote 16 lines
Just tested with my own neural networks API and I can confirm that it works! Environment: WIN10 64bits AVX Tested with: https://github.com/joaopauloschuler/neural-api/blob/master/examples/SimpleImageClassifier/SimpleImageClassifier.lpr In this test, there is a performance gain (speed) against 3.0.4 at about 9%. Congrats! _______________________________________________ fpc-devel maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus

Reply by email

J. Gareth Moreton
to J. Gareth Moreton

Just a random thing, especially with the quarantines going on... if anyone wants to assign me one of the new bugs to fix that have been raised since the RC was released, I'll be happy to take a look.

Gareth aka. Kit

J. Gareth Moreton wrote 34 lines
That's pretty good!  I guess our individual work on the compiler. while maybe giving marginal gains, really accumulate. Gareth aka. Kit On 31/03/2020 04:55, Joao Schuler wrote: > Just tested with my own neural networks API and I can confirm that it > works! > Environment: WIN10 64bits AVX > > Tested with: > https://github.com/joaopauloschuler/neural-api/blob/master/examples/SimpleImageClassifier/SimpleImageClassifier.lpr > > > In this test, there is a performance gain (speed) against 3.0.4 at > about 9%. > > Congrats! > > _______________________________________________ > fpc-devel maillist > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> Virus-free. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> _______________________________________________ fpc-devel maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus

Reply by email

Florian Klämpfl
to Joao Schuler: Just tested with my own neural networks API and I can confirm that it works! Environment:…
Joao Schuler wrote 8 lines
Just tested with my own neural networks API and I can confirm that it works! Environment: WIN10 64bits AVX Tested with: https://github.com/joaopauloschuler/neural-api/blob/master/examples/SimpleImageClassifier/SimpleImageClassifier.lpr In this test, there is a performance gain (speed) against 3.0.4 at about 9%.

Do you have numbers in comparison with trunk?

Reply by email

Kostas Michalopoulos
to Florian Klämpfl

Hm, for me the new compiler produces slightly slower results. The difference is tiny, but consistent. I use my raytracing benchmark from here:

http://runtimeterror.com/tools/raybench/

The results on my AMD Ryzen 3700X are:

FPC 3.0.4: 3.984 seconds
FPC 3.2.0RC1: 4.047 seconds

As i wrote, the difference is tiny, but over several runs it is pretty much consistent.

Note that these are for 32bit Windows executables. Also i'm using the Lazarus-bundled build mentioned by Martin Frb above.

PM Florian Klämpfl wrote 19 lines
Am 31.03.20 um 05:55 schrieb Joao Schuler: > Just tested with my own neural networks API and I can confirm that it works! > Environment: WIN10 64bits AVX > > Tested with: > https://github.com/joaopauloschuler/neural-api/blob/master/examples/SimpleImageClassifier/SimpleImageClassifier.lpr > > > In this test, there is a performance gain (speed) against 3.0.4 at about 9%. Do you have numbers in comparison with trunk? _______________________________________________ fpc-devel maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply by email

J. Gareth Moreton
to Kostas Michalopoulos

With your permission I'd like to use this project as part of my work to improve the peephole optimiser, among other things.  Any improvements probably won't happen until the version after 3.2.0, but I like a challenge!

J. Gareth Moreton, aka. Kit

P.S. One of the things I introduced into FPC 3.2.0 is the "vectorcall" calling convention for x86_64-win64.  It's currently mostly there for pure assembler routines and for interfacing with third-party libraries, since automatic vectorisation of Pascal code is still rather limited.  It might be something to experiment with though.

Kostas Michalopoulos wrote 46 lines
Hm, for me the new compiler produces slightly slower results. The difference is tiny, but consistent. I use my raytracing benchmark from here: http://runtimeterror.com/tools/raybench/ The results on my AMD Ryzen 3700X are: FPC 3.0.4: 3.984 seconds FPC 3.2.0RC1: 4.047 seconds As i wrote, the difference is tiny, but over several runs it is pretty much consistent. Note that these are for 32bit Windows executables. Also i'm using the Lazarus-bundled build mentioned by Martin Frb above. On Tue, Mar 31, 2020 at 11:59 PM Florian Klämpfl < > wrote: Am 31.03.20 um 05:55 schrieb Joao Schuler: > Just tested with my own neural networks API and I can confirm that it works! > Environment: WIN10 64bits AVX > > Tested with: > https://github.com/joaopauloschuler/neural-api/blob/master/examples/SimpleImageClassifier/SimpleImageClassifier.lpr > > > In this test, there is a performance gain (speed) against 3.0.4 at about 9%. Do you have numbers in comparison with trunk? _______________________________________________ fpc-devel maillist  - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel _______________________________________________ fpc-devel maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus

Reply by email

Joao Schuler
to J. Gareth Moreton

I regret to say that I can't reproduce my initial result showing 9% improvement on 3.2.0rc1 against 3.0.4. Both versions show the same speed now.

I also compared 3.0.4 against trunk in another environment: Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1014-gcp x86_64) cpu model name: Intel(R) Xeon(R) CPU @ 2.00GHz

This is the raw result from 3.0.4:
640 Examples seen. Accuracy:0.1006 Error: 1.79914 Loss:2.31176 Threads: 4 Forward time: 0.99s Backward time: 0.77s Step time: 1.51s 1280 Examples seen. Accuracy:0.1025 Error: 1.78724 Loss:2.26048 Threads: 4 Forward time: 0.99s Backward time: 0.75s Step time: 1.49s 1920 Examples seen. Accuracy:0.1087 Error: 1.78000 Loss:2.26476 Threads: 4 Forward time: 0.99s Backward time: 0.77s Step time: 1.49s

This is the raw result from trunk:
640 Examples seen. Accuracy:0.1175 Error: 1.79696 Loss:2.30112 Threads: 4 Forward time: 0.94s Backward time: 0.72s Step time: 1.46s 1280 Examples seen. Accuracy:0.1203 Error: 1.79009 Loss:2.27688 Threads: 4 Forward time: 0.94s Backward time: 0.73s Step time: 1.44s 1920 Examples seen. Accuracy:0.1226 Error: 1.76832 Loss:2.20816 Threads: 4 Forward time: 0.93s Backward time: 0.74s Step time: 1.44s

I usually look at the "Step time" for comparisons.

Tested with:
https://github.com/joaopauloschuler/neural-api/blob/master/examples/SimpleImageClassifier/SimpleImageClassifier.lpr

Reply by email

J. Gareth Moreton
to Marco van de Voort: We have placed the first release candidate of the Free Pascal Compiler version 3.2.0 on…

I'm having problems connecting to the FTP server to download the release candidate - it keeps timing out.

Gareth aka. Kit

Marco van de Voort wrote 28 lines
Hello, We have placed the first release candidate of the Free Pascal Compiler version 3.2.0 on our ftp servers. You can help improve the upcoming 3.2.0 release by downloading and testing this release. If you want you can report what you have done here: http://wiki.freepascal.org/Testers_3.2.0 or in the maillist. Changes that may break backwards compatibility will be documented at: http://wiki.freepascal.org/User_Changes_3.2.0 Downloads are available at the main FTP server, ftp://ftp.freepascal.org/pub/fpc/beta/3.2.0-rc1/ Enjoy! The Free Pascal Compiler Team For an overview of what is new see https://wiki.freepascal.org/FPC_New_Features_3.2 _______________________________________________ fpc-devel maillist  -  https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus

Reply by email

NetSpirit
to J. Gareth Moreton: Just a random thing, especially with the quarantines going on... if anyone wants to…
if anyone wants to assign me one of the new bugs to fix that have been raised since the RC was released, I'll be happy to take a look. > Gareth aka. Kit

Not special for this RC but some bugs:

===
1) packages\winunits-base\src\wininet.pp

Compilation error in -Mdelphiunicode: bad declaration of overloaded functions FindFirstUrlCacheEntry()
FindNextUrlCacheEntry()
with 'W' versions of arguments

Must be equivalent to such with 'A' arguments.

Line 2593:
function FindFirstUrlCacheEntry(lpszUrlSearchPattern:LPCWSTR; lpFirstCacheEntryInfo:LPINTERNET_CACHE_ENTRY_INFOW; var lpcbCacheEntryInfo:LongWord):HANDLE;stdcall;external WININETLIBNAME name 'FindFirstUrlCacheEntryW';

Line 2636:
function FindFirstUrlCacheEntry(lpszUrlSearchPattern:LPCWSTR; lpFirstCacheEntryInfo:LPINTERNET_CACHE_ENTRY_INFOW; var lpcbCacheEntryInfo:DWORD):HANDLE;stdcall;external WININETLIBNAME name 'FindFirstUrlCacheEntryW';

Line 2637:
function FindNextUrlCacheEntry(hEnumHandle:HANDLE; lpNextCacheEntryInfo:LPINTERNET_CACHE_ENTRY_INFOW; var lpcbCacheEntryInfo:DWORD):BOOL;stdcall;external WININETLIBNAME name 'FindNextUrlCacheEntryW';

Line 2656:
function FindFirstUrlCacheEntry(lpszUrlSearchPattern:LPCWSTR; var
lpFirstCacheEntryInfo:INTERNET_CACHE_ENTRY_INFOW;
lpcbCacheEntryInfo:LPDWORD):HANDLE;stdcall;external WININETLIBNAME name
'FindFirstUrlCacheEntryW';
Line 2657:
function FindNextUrlCacheEntry(hEnumHandle:HANDLE; var
lpNextCacheEntryInfo:INTERNET_CACHE_ENTRY_INFOW;
lpcbCacheEntryInfo:LPDWORD):BOOL;stdcall;external WININETLIBNAME name
'FindNextUrlCacheEntryW';

===

2) rtl\win\wininc\struct.inc

Members 'lData' of NEWCPLINFOA/NEWCPLINFOW have different types. I think both must be LONG_PTR.

Member 'code' of NMHDR must have 'Integer' type, becouse constants, used here, are signed. This cause wrong comparison results or require explicit cast everywhere in user code.

===

3) This bug still exists:

https://lists.freepascal.org/pipermail/fpc-devel/2016-November/037539.html

===
4) packages\pasjpeg\src\jconfig.inc

There is explicit declaration of {$MODE DELPHI}, so 'pasjpeg' is incompatible with -Mdelphiunicode.
Can be '{$ifndef UNICODE}{$MODE DELPHI}{$endif}'

===
Just question. Why NativeInt / NativeUInt declaration changed to strong aliases? To be new Delphi compatible? But this inconvenient in Delphi, and so in FPC. Old code become broken.

Reply by email

Sven Barth
to NetSpirit

NetSpirit via fpc-devel schrieb am Di.,
19. Mai 2020, 10:05:

Show quoted text 16 lines
> if anyone wants to assign me one of the new bugs to fix that have been > raised since the RC was released, I'll be happy to take a look. > > Gareth aka. Kit Not special for this RC but some bugs: === 1) packages\winunits-base\src\wininet.pp Compilation error in -Mdelphiunicode: bad declaration of overloaded functions FindFirstUrlCacheEntry() FindNextUrlCacheEntry() with 'W' versions of arguments

Please note that compiling the RTL or packages with different modes than the default is not considered supported.

Show quoted text 32 lines
Must be equivalent to such with 'A' arguments. Line 2593: function FindFirstUrlCacheEntry(lpszUrlSearchPattern:LPCWSTR; lpFirstCacheEntryInfo:LPINTERNET_CACHE_ENTRY_INFOW; var lpcbCacheEntryInfo:LongWord):HANDLE;stdcall;external WININETLIBNAME name 'FindFirstUrlCacheEntryW'; Line 2636: function FindFirstUrlCacheEntry(lpszUrlSearchPattern:LPCWSTR; lpFirstCacheEntryInfo:LPINTERNET_CACHE_ENTRY_INFOW; var lpcbCacheEntryInfo:DWORD):HANDLE;stdcall;external WININETLIBNAME name 'FindFirstUrlCacheEntryW'; Line 2637: function FindNextUrlCacheEntry(hEnumHandle:HANDLE; lpNextCacheEntryInfo:LPINTERNET_CACHE_ENTRY_INFOW; var lpcbCacheEntryInfo:DWORD):BOOL;stdcall;external WININETLIBNAME name 'FindNextUrlCacheEntryW'; Line 2656: function FindFirstUrlCacheEntry(lpszUrlSearchPattern:LPCWSTR; var lpFirstCacheEntryInfo:INTERNET_CACHE_ENTRY_INFOW; lpcbCacheEntryInfo:LPDWORD):HANDLE;stdcall;external WININETLIBNAME name 'FindFirstUrlCacheEntryW'; Line 2657: function FindNextUrlCacheEntry(hEnumHandle:HANDLE; var lpNextCacheEntryInfo:INTERNET_CACHE_ENTRY_INFOW; lpcbCacheEntryInfo:LPDWORD):BOOL;stdcall;external WININETLIBNAME name 'FindNextUrlCacheEntryW';

Please report as a bug.

Show quoted text 9 lines
2) rtl\win\wininc\struct.inc Members 'lData' of NEWCPLINFOA/NEWCPLINFOW have different types. I think both must be LONG_PTR. Member 'code' of NMHDR must have 'Integer' type, becouse constants, used here, are signed. This cause wrong comparison results or require explicit cast everywhere in user code.

Please report as a bug.

Show quoted text 5 lines

Did you report this as a bug back then? If not, please do so.

4) packages\pasjpeg\src\jconfig.inc

Show quoted text 5 lines
There is explicit declaration of {$MODE DELPHI}, so 'pasjpeg' is incompatible with -Mdelphiunicode. Can be '{$ifndef UNICODE}{$MODE DELPHI}{$endif}'

Again we don't support compiling the RTL and packages with anything than the default mode.

Just question. Why NativeInt / NativeUInt declaration changed to strong aliases? To be new Delphi compatible? But this inconvenient in Delphi, and so in FPC. Old code become broken.

This is compatible with Delphi and is required to allow overloads as noticed by this bug report that triggered this change: https://bugs.freepascal.org/view.php?id=29444

If it is inconvenient for you, then use PtrInt/PtrUInt.

Regards,
Sven

Reply by email

NetSpirit
to Sven Barth
Show quoted text 6 lines
Please report as a bug. Regards, Sven

I don't have an account in bug tracker. I post here to get confirmation and opinion from other members.
In hope that one, who can create bug reports, will do this.

Reply by email

Sven Barth
to NetSpirit

NetSpirit via fpc-devel schrieb am Di.,
19. Mai 2020, 11:44:

Show quoted text 11 lines
> Please report as a bug. > > > Regards, > Sven > I don't have an account in bug tracker. I post here to get confirmation and opinion from other members. In hope that one, who can create bug reports, will do this.

Then it will be forgotten like the resource file bug was.

Regards,
Sven

Reply by email