Lazarus

Announcements => Free Pascal => Topic started by: marcov on August 18, 2018, 05:49:18 pm

Title: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on August 18, 2018, 05:49:18 pm
l.s.

A branch was made for a future series of 3.2.x FPC releases. A first release
of this branch is still months away, but the moment to test the compatibility
of your codebases with the future FPC is _NOW_!, while there is still time
to do something about it.

The svn designation of this fixes branch is branches/fixes_3_2

As a consequence, trunk will be updated to version 3.3.1, some people might have to update their scripts.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on August 18, 2018, 11:07:22 pm
Ok. Tnx.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Blaazen on August 19, 2018, 12:21:23 am
Quote
the moment to test the compatibility of your codebases with the future FPC is _NOW_!
This code
Code: Pascal  [Select]
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var a: array of Integer;
  3.     i: Integer;
  4. begin
  5.   SetLength(a, 10);  //HERE
  6.   for i:=0 to length(a)-1 do
  7.     a[i]:=i;
  8. end;
gives no warning at 3.0.4 but with the latest trunk it gives
"unit1.pas(36,14) Warning: Local variable "a" of a managed type does not seem to be initialized" at line with SetLength, which is silly since SetLength itself is initialization. SetLength passes parameter by refrence (var) but it is same in 3.0.4 and 3.1.1.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on August 19, 2018, 01:36:59 am
For Windows users: https://sourceforge.net/projects/lazarus-snapshots/files/

Those installers contain Lazarus trunk + fpc 3.2 fixes branch.

Ensure to set the checkbox "secondary installation", then they do not interfere with your stable install.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on September 17, 2018, 07:27:17 am
l.s.

A branch was made for a future series of 3.2.x FPC releases. A first release
of this branch is still months away, but the moment to test the compatibility
of your codebases with the future FPC is _NOW_!, while there is still time
to do something about it.

The svn designation of this fixes branch is branches/fixes_3_2

As a consequence, trunk will be updated to version 3.3.1, some people might have to update their scripts.


2.0 RC1
ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2032%20bits/Lazarus%202.0RC1/
ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2064%20bits/Lazarus%202.0RC1/
I am confused.
Which one is most probably to be released: Lazarus 2.0.0 with FPC 3.0.4 or FPC 3.2.0?

https://sourceforge.net/projects/lazarus-snapshots/files/Window%2032/lazarus-1.9.0-58738-fpc-3.2.0-beta-39634-win32.exe/download
https://sourceforge.net/projects/lazarus-snapshots/files/Window%2064/lazarus-1.9.0-58738-fpc-3.2.0-beta-39634-win64.exe/download

ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2032%20bits/Lazarus%202.0RC1/lazarus-2.0RC1-fpc-3.0.4-win32.exe
ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2064%20bits/Lazarus%202.0RC1/lazarus-2.0RC1-fpc-3.0.4-win64.exe

https://sourceforge.net/projects/lazarus-snapshots/files/Window%2032/
https://sourceforge.net/projects/lazarus-snapshots/files/Window%2064/

ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2032%20bits/Lazarus%202.0RC1/
ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2064%20bits/Lazarus%202.0RC1/
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JuhaManninen on September 17, 2018, 11:23:40 am
I am confused.
Which one is most probably to be released: Lazarus 2.0.0 with FPC 3.0.4 or FPC 3.2.0?
You asked the same question in another thread. I don't know why you are confused.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on September 18, 2018, 03:52:17 pm
I am confused.
Which one is most probably to be released: Lazarus 2.0.0 with FPC 3.0.4 or FPC 3.2.0?
With FPC 3.0.4 obviously. FPC 3.2.0 will not be released for a long time. There is even no RC1 yet.

That said, testing with 3.2 branch is still recommended too, since once 3.2 is out the next minor (Lazarus 2.0.x) will probably use it.

I am confused.
Which one is most probably to be released: Lazarus 2.0.0 with FPC 3.0.4 or FPC 3.2.0?
You asked the same question in another thread. I don't know why you are confused.
Sorry for duplicating my post.
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: zamtmn on September 23, 2018, 10:35:15 am
Blaazen
Quote
gives no warning at 3.0.4 but with the latest trunk it gives
"unit1.pas(36,14) Warning: Local variable "a" of a managed type does not seem to be initialized" at line with SetLength, which is silly since SetLength itself is initialization. SetLength passes
Yes I am also interested, will it be fixed?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on September 30, 2018, 11:56:56 am
No. If you followed the bug report on Mantis.
Case in point is that setlength() does NOT guarantee its values are initialized to a default. It just reserves space for a given number of elements. Even if the compiler MAY internally do something more.
As explained in the bug report and the follow ups it is trivial to actually initialize. (different syntax for objfpc and delphi mode, beware)
And as far as I can see there is no need for a fix.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: mse on September 30, 2018, 02:46:05 pm
Quote
the moment to test the compatibility of your codebases with the future FPC is _NOW_!
This code
Code: Pascal  [Select]
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var a: array of Integer;
  3.     i: Integer;
  4. begin
  5.   SetLength(a, 10);  //HERE
  6.   for i:=0 to length(a)-1 do
  7.     a[i]:=i;
  8. end;
gives no warning at 3.0.4 but with the latest trunk it gives
"unit1.pas(36,14) Warning: Local variable "a" of a managed type does not seem to be initialized" at line with SetLength, which is silly since SetLength itself is initialization. SetLength passes parameter by refrence (var) but it is same in 3.0.4 and 3.1.1.
In MSEgui I use
Code: Pascal  [Select]
  1. {$ifndef mse_allwarnings}
  2.  {$if fpc_fullversion >= 030100}
  3.   {$warn 5089 off}
  4.   {$warn 5090 off}
  5.   {$warn 5093 off}
  6.   {$warn 6058 off}
  7.  {$endif}
  8. {$endif}
  9.  
in oder to suppress the unwanted warnings. Problem is that it does not work with -B, see
https://bugs.freepascal.org/view.php?id=34349
I agree that the warnings are wrong or at least sub optimal. Initializing the managed variables in code produces quite heavy redundant instructions:
Code: Pascal  [Select]
  1. procedure test();
  2. var
  3.  s1: string;
  4.  ar1: integerarty; //=array of integer
  5. begin
  6.  setlength(s1,10);
  7.  setlength(ar1,11);
  8. end;
  9.  
  10. MAIN_$$_TEST:
  11. .Lc1:
  12. .Ll1:
  13.         leaq    -120(%rsp),%rsp
  14. .Lc3:
  15. .Ll2:
  16.         movq    $0,(%rsp)
  17.         movq    $0,8(%rsp)
  18.         leaq    16(%rsp),%rdx
  19.         leaq    40(%rsp),%rsi
  20.         movl    $1,%edi
  21.         call    fpc_pushexceptaddr
  22.         movq    %rax,%rdi
  23.         call    fpc_setjmp
  24.         movslq  %eax,%rdx
  25.         movq    %rdx,104(%rsp)
  26.         testl   %eax,%eax
  27.         jne     .Lj6
  28. .Ll3:
  29.         movq    %rsp,%rdi
  30.         xorl    %edx,%edx
  31.         movl    $10,%esi
  32.         call    fpc_ansistr_setlength
  33. .Ll4:
  34.         movq    $11,112(%rsp)
  35.         movq    $RTTI_$MSETYPES_$$_INTEGERARTY,%rsi
  36.         leaq    112(%rsp),%rcx
  37.         leaq    8(%rsp),%rdi
  38.         movl    $1,%edx
  39.         call    fpc_dynarray_setlength
  40.  
Code: Pascal  [Select]
  1. procedure test();
  2. var
  3.  s1: string = '';
  4.  ar1: integerarty = nil; //=array of integer
  5. begin
  6.  setlength(s1,10);
  7.  setlength(ar1,11);
  8. end;
  9.  
  10. MAIN_$$_TEST:
  11. .Lc1:
  12. .Ll1:
  13.         leaq    -120(%rsp),%rsp
  14. .Lc3:
  15. .Ll2:
  16.         movq    $0,(%rsp)
  17.         movq    $0,8(%rsp)
  18.         leaq    16(%rsp),%rdx
  19.         leaq    40(%rsp),%rsi
  20.         movl    $1,%edi
  21.         call    fpc_pushexceptaddr
  22.         movq    %rax,%rdi
  23.         call    fpc_setjmp
  24.         movslq  %eax,%rdx
  25.         movq    %rdx,104(%rsp)
  26.         testl   %eax,%eax
  27.         jne     .Lj6
  28. .Ll3:
  29.         movq    $RTTI_$MSETYPES_$$_INTEGERARTY,%rdx ----redundant
  30.         movq    TC_$MAIN$_$TEST_$$_defaultar1,%rsi
  31.         leaq    8(%rsp),%rdi
  32.         call    fpc_dynarray_assign
  33.         movq    TC_$MAIN$_$TEST_$$_defaults1,%rsi
  34.         movq    %rsp,%rdi
  35.         call    fpc_ansistr_assign                  ----redundant
  36. .Ll4:
  37.         movq    %rsp,%rdi
  38.         xorl    %edx,%edx
  39.         movl    $10,%esi
  40.         call    fpc_ansistr_setlength
  41. .Ll5:
  42.         movq    $11,112(%rsp)
  43.         movq    $RTTI_$MSETYPES_$$_INTEGERARTY,%rsi
  44.         leaq    112(%rsp),%rcx
  45.         leaq    8(%rsp),%rdi
  46.         movl    $1,%edx
  47.         call    fpc_dynarray_setlength
  48.  
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on October 22, 2018, 12:52:45 am
For Windows users: https://sourceforge.net/projects/lazarus-snapshots/files/

Ensure to set the checkbox "secondary installation", then they do not interfere with your stable install.
I uploaded up to date 3.2.0-beta installers for windows, bundled with Lazarus 2.0RC1

Note: Lazarus 2.0RC1 will be released with 3.0.4, but some Lazarus 2.0.x will probably switch to 3.2. So better test both combinations.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Soner on November 09, 2018, 05:38:55 pm
It seems that something with the IsMultiThread variable changed.

Look my comments in the example from lazarus/examples/multithreading (you must add this lines and one Tlabel).

Code: Pascal  [Select]
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.  
  4.   // IsMultiThread is here with  with fpc 3.0.4 true and with fpc 3.2.0 false
  5.   if IsMultiThread then  Label1.Caption:=' Yes _ IsMultiThread='+Ord(IsMultiThread).ToString
  6.   else  Label1.Caption:=' No _ IsMultiThread='+Ord(IsMultiThread).ToString;
  7.  
  8.   // ...
  9. end;    
  10.  
  11.  
  12. procedure TMyThread.Execute;
  13. begin
  14.     // HERE IsMultiThread for both true
  15.     newStatus:='TMyThread Time: '+FormatDateTime('YYYY-MM-DD HH:NN:SS',Now)+' _ IsMultiThread='+Ord(IsMultiThread).ToString;
  16.    
  17. end;
  18.  

This is only information for fpc-developer.  I don't know if is it bug or new feature.
I never used multithreading on fpc, I detected it as I look some examples here:
http://forum.lazarus-ide.org/index.php/topic,43005.msg301598 (http://forum.lazarus-ide.org/index.php/topic,43005.msg301598)
Maybe you should put this on your changed list, so the developer can change their code.

This is my lazaurs and fpc version
Lazarus Svn 2.1.0 r59470 (from 6.11.2018)
Fpc 3.2.0  r40279 (from today https://svn.freepascal.org/svn/fpc/branches/fixes_3_2/)
All 32Bit on Windows 10 64Bit.

I compile fpc 3.2.0.r59470 with fpc 3.2.0.r39795 from 2018/9/23
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on November 09, 2018, 07:05:37 pm
It seems that something with the IsMultiThread variable changed.

You mean different from the documented (https://www.freepascal.org/docs-html/rtl/system/ismultithread.html) behaviour?


Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Soner on November 09, 2018, 07:47:57 pm
@marco
I don't know anything about multithreading and IsMultiThread variable in fpc.
I wanted only inform the developers and users of fpc.
In example from above and in ibx-examples with fpc 3.0.2 IsMultiThread is in OnFormCreate true but with fpc 3.2.0. it is false.

When this normal is then it is okay.
According to documentation the behavior in version 3.2.0 is more correct.
Maybe you should write in fpc 3.2.0 release notes something like "IsMultiThreads value is more accurate now", to inform the developers.

Edit 1:
Maybe Toni (author of ibx) and others need a variable like IsMultiThreadSupported.
After reading the documentation and thinking about, I must say the behavior in 3.0.2 is wrong.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on November 09, 2018, 08:29:12 pm
Note the behavior on different platforms is slightly different (has always been the case).
- On unixes (Posix), IsMultiThread is set when you include cthreads in the uses clause, assuming that if you include a threadmanager it is your intention to have a multithreaded application..
- On Windows, IsMultiThread is set when a thread is actually used (except from the bare Windows API functions, you need to set IsMultiThread by hand). For Windows there is a minimal Threadmanager included in the system unit.
- On other platforms it may vary
These differences are wholly caused by the differences in the underlying OS.
The specific behavior is mainly documented in the sources but the above is also documented in the official documentation.
See https://www.freepascal.org/docs-html/current/prog/progch10.html#progse43.html

Note that currently some work is going on in trunk related to thread local storage and as always implementation details need not be documented if there are no side effects.

In general don't assume anything about threading internals and don't assume the behavior is equivalent to e.g. Delphi.
And more broadly speaking I am one of those people that believe that a programmer that uses threading requires a license. Relatively few people qualify.....in any language...
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on November 09, 2018, 11:09:52 pm
@marco
I don't know anything about multithreading and IsMultiThread variable in fpc.
I wanted only inform the developers and users of fpc.
In example from above and in ibx-examples with fpc 3.0.2 IsMultiThread is in OnFormCreate true but with fpc 3.2.0. it is false.

Yes. And that means according to the documentation that threading is now initialized later, probably a result of preparation for packages.

Which is entirely legal as long as you don't use the variable for anything else than it is meant for.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: ASerge on November 10, 2018, 02:24:59 am
It seems that something with the IsMultiThread variable changed.
Yes, there was a bug (https://bugs.freepascal.org/view.php?id=30535) in the previous version that fixed.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Soner on November 10, 2018, 02:22:12 pm
Thank you all for the explanition.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 02, 2018, 03:09:23 am
I compile fpc 3.2.0.r59470 with fpc 3.2.0.r39795 from 2018/9/23
I am on Windows 7 Pro 64bit using Lazarus 2.0 RC1 32bit SVN Revision 59712M and FPC 3.2.0 beta 32bit '2018-09-18 rev 39766' trying to reach SVN Revision 40301.

Should "C:\lazarus\tools\install\win\build-fpc.bat" be an easy way to recompile FPC 3.2.0 beta updated via SVN fixes_3_2?
I am trying to rebuild FPC 3.2.0 beta, but it's not working.

-----------------------------------------------------------------------
Microsoft Windows [versão 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Todos os direitos reservados.

C:\Users\valdir>cd \lazarus\tools\install\win

C:\lazarus\tools\install\win>build-fpc.bat

C:\lazarus\tools\install\win>SET OLDCURDIR=C:\lazarus\tools\install\win

C:\lazarus\tools\install\win>SET OLDCURDRIVE=C:

C:\lazarus\tools\install\win>SET FPCSRC_DIR=\fpcsrc

C:\lazarus\tools\install\win>SET SOURCE_DIR=\fpc-source

C:\lazarus\tools\install\win>export -q \fpcsrc \fpc-source
'export' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\lazarus\tools\install\win>\f
'\f' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\lazarus\tools\install\win>cd \fpc-source
O sistema não pode encontrar o caminho especificado.

C:\lazarus\tools\install\win>if [] == [] GOTO NO_PATCH

C:\lazarus\tools\install\win>gmkdir -p \fpc\source
'gmkdir' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.
A sintaxe do comando está incorreta.

C:\lazarus\tools\install\win>cp -pr \fpc-source\rtl \fpc\source\rtl >>

C:\lazarus\tools\install\win>
-----------------------------------------------------------------------



Could FPC have SVN Revision Number similar to Lazarus About Form?
Or could Lazarus About Form also shows FPC SVN Revision Number?

Revision number in IDE main window caption
http://forum.lazarus.freepascal.org/index.php/topic,42342.0.html
-----------------------------------------------------------------------
C:\Users\valdir>C:\lazarus\fpc\3.2.0\bin\i386-win32\fpc.exe -iV
3.2.0


C:\Users\valdir>C:\lazarus\fpc\3.2.0\bin\i386-win32\fpc.exe -iW
3.2.0-beta


C:\lazarus\fpc\3.2.0\bin\i386-win32>fpc.exe
Free Pascal Compiler version 3.2.0-beta [2018/10/21] for i386
Copyright (c) 1993-2018 by Florian Klaempfl and others
C:\lazarus\fpc\3.2.0\bin\i386-win32\fpc.exe [options] <inputfile> [options]
 Only options valid for the default or selected platform are listed.


C:\type C:\lazarus\fpc\3.2.0\utils\fpcm\revision.inc
'2018-09-18 rev 39766'
-----------------------------------------------------------------------
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Cyrax on December 02, 2018, 03:14:16 am
I compile fpc 3.2.0.r59470 with fpc 3.2.0.r39795 from 2018/9/23
I am on Windows 7 Pro 64bit using Lazarus 2.0 RC1 32bit SVN Revision 59712M and FPC 3.2.0 beta 32bit '2018-09-18 rev 39766' trying to reach SVN Revision 40301.

Should "C:\lazarus\tools\install\win\build-fpc.bat" be an easy way to recompile FPC 3.2.0 beta updated via SVN fixes_3_2?
I am trying to rebuild FPC 3.2.0 beta, but it's not working.

-----------------------------------------------------------------------
Microsoft Windows [versão 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Todos os direitos reservados.

C:\Users\valdir>cd \lazarus\tools\install\win

C:\lazarus\tools\install\win>build-fpc.bat

C:\lazarus\tools\install\win>SET OLDCURDIR=C:\lazarus\tools\install\win

C:\lazarus\tools\install\win>SET OLDCURDRIVE=C:

C:\lazarus\tools\install\win>SET FPCSRC_DIR=\fpcsrc

C:\lazarus\tools\install\win>SET SOURCE_DIR=\fpc-source

C:\lazarus\tools\install\win>export -q \fpcsrc \fpc-source
'export' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\lazarus\tools\install\win>\f
'\f' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\lazarus\tools\install\win>cd \fpc-source
O sistema não pode encontrar o caminho especificado.

C:\lazarus\tools\install\win>if [] == [] GOTO NO_PATCH

C:\lazarus\tools\install\win>gmkdir -p \fpc\source
'gmkdir' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.
A sintaxe do comando está incorreta.

C:\lazarus\tools\install\win>cp -pr \fpc-source\rtl \fpc\source\rtl >>

C:\lazarus\tools\install\win>
-----------------------------------------------------------------------



Could FPC have SVN Revision Number similar to Lazarus About Form?
Or could Lazarus About Form also shows FPC SVN Revision Number?

Revision number in IDE main window caption
http://forum.lazarus.freepascal.org/index.php/topic,42342.0.html
-----------------------------------------------------------------------
C:\Users\valdir>C:\lazarus\fpc\3.2.0\bin\i386-win32\fpc.exe -iV
3.2.0


C:\Users\valdir>C:\lazarus\fpc\3.2.0\bin\i386-win32\fpc.exe -iW
3.2.0-beta


C:\lazarus\fpc\3.2.0\bin\i386-win32>fpc.exe
Free Pascal Compiler version 3.2.0-beta [2018/10/21] for i386
Copyright (c) 1993-2018 by Florian Klaempfl and others
C:\lazarus\fpc\3.2.0\bin\i386-win32\fpc.exe [options] <inputfile> [options]
 Only options valid for the default or selected platform are listed.


C:\type C:\lazarus\fpc\3.2.0\utils\fpcm\revision.inc
'2018-09-18 rev 39766'
-----------------------------------------------------------------------

You probably need to install subversion client tools into your computer.

I recommend TortoiseSVN : https://tortoisesvn.net/
Get the 64-bit version and remember to select 32-bit version and the command line tools at the setup screen.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 02, 2018, 06:29:35 pm
I am on Windows 7 Pro 64bit using Lazarus 2.0 RC1 32bit SVN Revision 59712M and FPC 3.2.0 beta 32bit '2018-09-18 rev 39766' trying to reach SVN Revision 40301.

Should "C:\lazarus\tools\install\win\build-fpc.bat" be an easy way to recompile FPC 3.2.0 beta updated via SVN fixes_3_2?
I am trying to rebuild FPC 3.2.0 beta, but it's not working.


Could FPC have SVN Revision Number similar to Lazarus About Form?
Or could Lazarus About Form also shows FPC SVN Revision Number?

Revision number in IDE main window caption
http://forum.lazarus.freepascal.org/index.php/topic,42342.0.html
You probably need to install subversion client tools into your computer.

I recommend TortoiseSVN : https://tortoisesvn.net/
Get the 64-bit version and remember to select 32-bit version and the command line tools at the setup screen.
I apologise for not expressing myself entirely clearly.
I have already done all that you suggest, but my problem still lies on how to build/compile FPC 3.2.0 beta after SVN fixes_3_2 updates for testing it with Lazarus 2.0 RC (also updated via SVN fixes_2_0)?
Can you help me on that?

Besides Lazarus 2.0 RC having "menu Tools > Build Lazarus" to build itself, it would be of great help another option for building FPC from inside Lazarus.   
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Cyrax on December 02, 2018, 09:14:09 pm
I am on Windows 7 Pro 64bit using Lazarus 2.0 RC1 32bit SVN Revision 59712M and FPC 3.2.0 beta 32bit '2018-09-18 rev 39766' trying to reach SVN Revision 40301.

Should "C:\lazarus\tools\install\win\build-fpc.bat" be an easy way to recompile FPC 3.2.0 beta updated via SVN fixes_3_2?
I am trying to rebuild FPC 3.2.0 beta, but it's not working.


Could FPC have SVN Revision Number similar to Lazarus About Form?
Or could Lazarus About Form also shows FPC SVN Revision Number?

Revision number in IDE main window caption
http://forum.lazarus.freepascal.org/index.php/topic,42342.0.html
You probably need to install subversion client tools into your computer.

I recommend TortoiseSVN : https://tortoisesvn.net/
Get the 64-bit version and remember to select 32-bit version and the command line tools at the setup screen.
I apologise for not expressing myself entirely clearly.
I have already done all that you suggest, but my problem still lies on how to build/compile FPC 3.2.0 beta after SVN fixes_3_2 updates for testing it with Lazarus 2.0 RC (also updated via SVN fixes_2_0)?
Can you help me on that?

Besides Lazarus 2.0 RC having "menu Tools > Build Lazarus" to build itself, it would be of great help another option for building FPC from inside Lazarus.

Do you have previous release version of FPC (3.0.4) installed and in your path environment variable when executing your commands?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 03, 2018, 05:24:23 am
Do you have previous release version of FPC (3.0.4) installed and in your path environment variable when executing your commands?
Not exactly.

I have installed to "c:\Lazarus":
lazarus-2.0.0RC1-59029-fpc-3.2.0-beta-20181021-win32.exe
lazarus-2.0.0RC1-59029-fpc-3.2.0-beta-20181021-cross-x86_64-win64-win32.exe

Then, I have installed "fpc-3.0.4.i386-win32.exe" to "C:\lazarus\fpc\3.0.4".

What should I do next?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 12, 2018, 12:31:25 am
Do you have previous release version of FPC (3.0.4) installed and in your path environment variable when executing your commands?
Not exactly.

I have installed to "c:\Lazarus":
lazarus-2.0.0RC1-59029-fpc-3.2.0-beta-20181021-win32.exe
lazarus-2.0.0RC1-59029-fpc-3.2.0-beta-20181021-cross-x86_64-win64-win32.exe

Then, I have installed "fpc-3.0.4.i386-win32.exe" to "C:\lazarus\fpc\3.0.4".

What should I do next?
After deleting all *.ppu and *.o, I am trying to compile FPC 3.2.0 beta with fixes_3_2 using FPC 3.0.4 and I got stuck at:
--------------------------
The installer encountered the following error:
External command "C:/lazarus/fpc/3.2.0/compiler/ppc386.exe -Twin32 -FEbin\i386-w
in32 -FUunits\i386-win32\ -FuC:\lazarus\fpc\3.2.0\rtl\units\i386-win32\ -FuC:\la
zarus\fpc\3.2.0\units\i386-win32\fcl-base\ -FuC:\lazarus\fpc\3.2.0\units\i386-wi
n32\fcl-res\ -FuC:\lazarus\fpc\3.2.0\units\i386-win32\rtl-objpas\ -FuC:\lazarus\
fpc\3.2.0\units\i386-win32\paszlib\ -FuC:\lazarus\fpc\3.2.0\units\i386-win32\has
h\ -FuC:\lazarus\fpc\3.2.0\units\i386-win32\fcl-json\ -FuC:\lazarus\fpc\3.2.0\un
its\i386-win32\rtl-extra\ -Ur -Xs -O2 -n -di386 -dRELEASE -viq ptop.pp" failed w
ith exit code 1. Console output:
Target OS: Win32 for i386
Compiling ptop.pp
Fatal: Can't find unit singleinstance used by CustApp
Fatal: Compilation aborted

make[2]: *** [all] Error 1
make[2]: Leaving directory `C:/lazarus/fpc/3.2.0/utils'
make[1]: *** [utils_all] Error 2
make[1]: Leaving directory `C:/lazarus/fpc/3.2.0'
make: *** [build-stamp.i386-win32] Error 2
--------------------------
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on December 12, 2018, 08:55:24 pm
1) Do you need to rebuild:
- the compiler
- the rtl
- package(s)
?

packages can often be copied to a new location and recompiled. But only if you do not use other packages that depend on the one you rebuild.

the compiler...
the official answer is buildfaq.pdf

Here is how I do it (hope I make no copy and paste error)

checkout (fully recursive)
https://svn.freepascal.org/svn/fpc/trunk
https://svn.freepascal.org/svn/fpcbuild/trunk

Have ready an install (eg lazarus) of the latest released fpc.

Include in your PATH
- the installed released fpc directory
- build_trunk\install\binw32 or binw64 (and if needed crosstools)
  build_trunk is svn/fpcbuild/trunk

Make sure you do not have Delphi's make in the path.

  cd path/in/svndir/fpc/trunk
  make clean distclean
  make.exe all   OPT="-gw" 

you may want to add (at your option)
  make.exe all   OPT="-gw"  COPYTREE=echo UPXPROG=echo

then
  make.exe install  INSTALL_PREFIX=yourinstdir  COPYTREE=echo UPXPROG=echo

generate your fpc.cfg
   fpcmkcfg.exe  -d "basepath=__yourinstdir__" -o "__yourinstdir__\bin\%FPCFULLTARGET%\fpc.cfg"
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on December 12, 2018, 09:31:44 pm
I did some work on my snapshot script, it is online here (http://www.stack.nl/~marcov/files/buildscript.zip):

It is a windows .cmd file with a small, optional FPC compiled utility that is a substitute for the *nix "time" command.

The script allows building for win32 and win64, and has several
parameterizable options, configurable  by editing batch variables in the
script, and warns if a step (build or install) went wrong.

I use two copies of this, one for win32 and one for win64. (one line
difference). Please read over the first half to check variables.

It assumes a FPC directory (with tools like make etc) in the %PATH%, but
allows to use the starting compiler to be specified explicitely.  This
is so that it works when I have a development snapshot in the path, but
still want to start the build using the release compiler.

On current multicore machines, using a script can significantly decrease FPC snapshot building times.

Times for install+ build on machines with SSD:

i7-3770:  2mins 8s
i5-6500T (?) laptop about the same.

Ryzen 2600:  1min 35s
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 12, 2018, 10:56:21 pm
1) Do you need to rebuild:
- the compiler
- the rtl
- package(s)
?
I would like to compile the whole thing.
I was trying something as simple as:
-----------------------------------
C:\Users\xxx>cd \lazarus\fpc\3.2.0\

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe distclean

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe clean

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe all

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe documentation

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe examples

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe tests

C:\lazarus\fpc\3.2.0>c:\lazarus\fpc\3.0.4\bin\i386-win32\make.exe install
-----------------------------------
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 12, 2018, 11:38:40 pm
the compiler...
the official answer is buildfaq.pdf
I've already read it before:
http://wiki.freepascal.org/buildfaq
http://www.stack.nl/~marcov/buildfaq.pdf
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 12, 2018, 11:41:18 pm
Here is how I do it (hope I make no copy and paste error)

checkout (fully recursive)
https://svn.freepascal.org/svn/fpc/trunk
https://svn.freepascal.org/svn/fpcbuild/trunk

Have ready an install (eg lazarus) of the latest released fpc.

Include in your PATH
- the installed released fpc directory
- build_trunk\install\binw32 or binw64 (and if needed crosstools)
  build_trunk is svn/fpcbuild/trunk

Make sure you do not have Delphi's make in the path.

  cd path/in/svndir/fpc/trunk
  make clean distclean
  make.exe all   OPT="-gw" 

you may want to add (at your option)
  make.exe all   OPT="-gw"  COPYTREE=echo UPXPROG=echo

then
  make.exe install  INSTALL_PREFIX=yourinstdir  COPYTREE=echo UPXPROG=echo

generate your fpc.cfg
   fpcmkcfg.exe  -d "basepath=__yourinstdir__" -o "__yourinstdir__\bin\%FPCFULLTARGET%\fpc.cfg"
I'll try it.
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 12, 2018, 11:43:51 pm
I did some work on my snapshot script, it is online here (http://www.stack.nl/~marcov/files/buildscript.zip):

It is a windows .cmd file with a small, optional FPC compiled utility that is a substitute for the *nix "time" command.

The script allows building for win32 and win64, and has several parameterizable options, configurable  by editing batch variables in the script, and warns if a step (build or install) went wrong.

I use two copies of this, one for win32 and one for win64. (one line difference). Please read over the first half to check variables.

It assumes a FPC directory (with tools like make etc) in the %PATH%, but allows to use the starting compiler to be specified explicitely.  This is so that it works when I have a development snapshot in the path, but still want to start the build using the release compiler.

On current multicore machines, using a script can significantly decrease FPC snapshot building times.

Times for install+ build on machines with SSD:

i7-3770:  2mins 8s
i5-6500T (?) laptop about the same.

Ryzen 2600:  1min 35s
I'll try it.
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 13, 2018, 12:18:48 am
It worked 'til 99%, then it broke compiling the utils package:
---------------------------------------------------------------------
       Compiling ide\fptemplt.pas
       Linking ide\bin\i386-win32\fp.exe
[ 99%] Compiled package ide
make[2]: Leaving directory `C:/lazarus/fpc/3.2.0/packages'
make[1]: Leaving directory `C:/lazarus/fpc/3.2.0'
c:/lazarus/fpc/3.0.4/bin/i386-win32/make utils_all FPC=C:/lazarus/fpc/3.2.0/comp
iler/ppc386.exe FPCFPMAKE=C:/lazarus/fpc/3.2.0/compiler/ppc386.exe RELEASE=1 'OP
T='
make[1]: Entering directory `C:/lazarus/fpc/3.2.0'
c:/lazarus/fpc/3.0.4/bin/i386-win32/make -C utils all
make[2]: Entering directory `C:/lazarus/fpc/3.2.0/utils'
C:/lazarus/fpc/3.2.0/compiler/ppc386.exe fpmake.pp  -FuC:/lazarus/fpc/3.2.0/rtl/
units/i386-win32 -FuC:/lazarus/fpc/3.2.0/packages/paszlib/units/i386-win32 -FuC:
/lazarus/fpc/3.2.0/packages/fcl-process/units/i386-win32 -FuC:/lazarus/fpc/3.2.0
/packages/hash/units/i386-win32 -FuC:/lazarus/fpc/3.2.0/packages/libtar/units/i3
86-win32 -FuC:/lazarus/fpc/3.2.0/packages/fpmkunit/units/i386-win32 -FuC:/lazaru
s/fpc/3.2.0/packages/fcl-json/units/i386-win32
./fpmake.exe compile --localunitdir=.. --globalunitdir=../packages --os=win32 --
cpu=i386 -o -Ur -o -Xs -o -O2 -o -n -o -di386 -o -dRELEASE --compiler=C:/lazarus
/fpc/3.2.0/compiler/ppc386.exe -bu
Start compiling package utils for target i386-win32.
       Compiling BuildUnit_utils.pp
       Compiling usubst.pp
       Compiling ptopu.pp
       Compiling ptop.pp
The installer encountered the following error:
External command "C:/lazarus/fpc/3.2.0/compiler/ppc386.exe -Twin32 -FEbin\i386-w
in32 -FUunits\i386-win32\ -FuC:\lazarus\fpc\3.2.0\rtl\units\i386-win32\ -FuC:\la
zarus\fpc\3.2.0\units\i386-win32\fcl-base\ -FuC:\lazarus\fpc\3.2.0\units\i386-wi
n32\fcl-res\ -FuC:\lazarus\fpc\3.2.0\units\i386-win32\rtl-objpas\ -FuC:\lazarus\
fpc\3.2.0\units\i386-win32\paszlib\ -FuC:\lazarus\fpc\3.2.0\units\i386-win32\has
h\ -FuC:\lazarus\fpc\3.2.0\units\i386-win32\fcl-json\ -FuC:\lazarus\fpc\3.2.0\un
its\i386-win32\rtl-extra\ -Ur -Xs -O2 -n -di386 -dRELEASE -viq ptop.pp" failed w
ith exit code 1. Console output:
Target OS: Win32 for i386
Compiling ptop.pp
ptop.pp(21,29) Fatal: Can't find unit CustApp used by PtoP
Fatal: Compilation aborted


make[2]: *** [all] Error 1
make[2]: Leaving directory `C:/lazarus/fpc/3.2.0/utils'
make[1]: *** [utils_all] Error 2
make[1]: Leaving directory `C:/lazarus/fpc/3.2.0'
make: *** [build-stamp.i386-win32] Error 2

C:\lazarus\fpc\3.2.0>
---------------------------------------------------------------------
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on December 13, 2018, 12:56:51 am
Odd...
Which way? Mine or Marcov?

This is an unmodified copy of fixes 3.2?  (first get the unmodified to build, then see what happens when you make changes...)

I just did a build of fixes3.2 rev 40528. So it the build is not broken. Sometimes it just is a bad commit.

Also sometimes it will fail if build with certain options (I several times noticed that it was unable to build with -CR / but there may be other options). So try building with no extra opts at all.

CustApp is in fcl-base (filesystem search) and that is listed in the include path on your output.
Restart your build (without cleaning) but in OPT add -va
Hopefully that gives you some extra output about what it is looking for.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on December 13, 2018, 05:29:20 am
Odd...
Which way? Mine or Marcov?
Mine. I was still trying to adapt my "make distclean clean all install".
Tomorrow, I'll try yours.
Ant then, Marcov's.

Quote
This is an unmodified copy of fixes 3.2?  (first get the unmodified to build, then see what happens when you make changes...)

I just did a build of fixes3.2 rev 40528. So it the build is not broken. Sometimes it just is a bad commit.

Also sometimes it will fail if build with certain options (I several times noticed that it was unable to build with -CR / but there may be other options). So try building with no extra opts at all.

CustApp is in fcl-base (filesystem search) and that is listed in the include path on your output.
Restart your build (without cleaning) but in OPT add -va
Hopefully that gives you some extra output about what it is looking for.
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on December 13, 2018, 10:25:08 am
The unit paths that refer to a top level  FPC dir are dodgy somehow:

 -FuC:\lazarus\fpc\3.2.0\units\i386-win32\fcl-base\

just compiled fcl-base units come from:

 -FuC:\lazarus\fpc\3.2.0\packages\fcl-base\uniits\i386-win32

You either are not building (this part) using the toplevel file, or are passing random unit paths.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on December 25, 2018, 12:53:20 pm
For Windows users: FPC 3.2.0 beta revision 40627 (bundled with Lazarus 2.0RC3) is available for testing the FPC branch.
https://sourceforge.net/projects/lazarus-snapshots/files/
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on December 26, 2018, 07:39:35 pm
Hello !!
I Wonder which version of FPC will be shiped with lazarus 2.
I'm confused.
I want really to use mORMot with the next release of FPC.
thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: zeljko on December 26, 2018, 07:42:39 pm
3.0.4, 3.2 won't be released soon.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on December 26, 2018, 08:24:57 pm
Yes Lazarus 2.0 will be shipped with 3.0.4. Same as the official release candidates.

The installers including the 3.2-beta are for testing of the FPC branch only.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: antispam88 on December 30, 2018, 10:53:24 am
Hi,

we are using the pascalio package (https://github.com/SAmeis/pascalio (https://github.com/SAmeis/pascalio)).
The package uses following construct with inheritance:
Code: Pascal  [Select]
  1.   TADConverter = class(TObject)
  2.   protected
  3.     class function GetMaxValue: Longint; static; virtual; abstract;
  4.     ...
  5.   public
  6.     class property MaxValue: Longint read GetMaxValue;
  7.     ...
  8.   end;
  9.  

With Lazarus 1.8.4 / FPC 3.0.4 it is compiling without an error but with 2.0.0 RC3 / 3.2.0 (rev. 59877) I'm getting following error:
fpadc.pas(60,50) Error: Procedure directive "VIRTUAL" cannot be used with "STATIC".

So for me there are two questions:
1) Is it an error that this is possible in 1.8.4/3.0.4? See https://www.freepascal.org/docs-html/3.0.0/ref/refse39.html (https://www.freepascal.org/docs-html/3.0.0/ref/refse39.html).
2) And how is the correct solution for that problem?

Best regards,
antispam88
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Cyrax on December 30, 2018, 11:06:42 am
Hi,

we are using the pascalio package (https://github.com/SAmeis/pascalio (https://github.com/SAmeis/pascalio)).
The package uses following construct with inheritance:
Code: Pascal  [Select]
  1.   TADConverter = class(TObject)
  2.   protected
  3.     class function GetMaxValue: Longint; static; virtual; abstract;
  4.     ...
  5.   public
  6.     class property MaxValue: Longint read GetMaxValue;
  7.     ...
  8.   end;
  9.  

With Lazarus 1.8.4 / FPC 3.0.4 it is compiling without an error but with 2.0.0 RC3 / 3.2.0 (rev. 59877) I'm getting following error:
fpadc.pas(60,50) Error: Procedure directive "VIRTUAL" cannot be used with "STATIC".

So for me there are two questions:
1) Is it an error that this is possible in 1.8.4/3.0.4? See https://www.freepascal.org/docs-html/3.0.0/ref/refse39.html (https://www.freepascal.org/docs-html/3.0.0/ref/refse39.html).
2) And how is the correct solution for that problem?

Best regards,
antispam88

Remove the virtual and abstract modifiers?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: antispam88 on December 30, 2018, 11:13:14 am
As I remarked it is used with inheritance:
Code: Pascal  [Select]
  1.   TMCP3X0X = class(TADConverter)
  2.   ...
  3.   end;
  4.  
  5.   TMCP300X = class(TMCP3X0X)
  6.   protected                
  7.     class function GetMaxValue: Longint; static; override;
  8.   end;
  9.  
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Cyrax on December 30, 2018, 11:55:34 am
Quote
The reason for the requirement is that a class property is associated to the particular class in which it is defined, but not to descendent classes. Since class methods can be virtual, this would allow descendent classes to override the method, making them unsuitable for class property access.

As the documentation say, you can't use class property getters/setters that way. If 3.0.4 version of FPC allows it, then it is a bug and it is fixed 3.2.x series.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: hnb on December 30, 2018, 01:05:08 pm
Quote
The reason for the requirement is that a class property is associated to the particular class in which it is defined, but not to descendent classes. Since class methods can be virtual, this would allow descendent classes to override the method, making them unsuitable for class property access.

As the documentation say, you can't use class property getters/setters that way. If 3.0.4 version of FPC allows it, then it is a bug and it is fixed 3.2.x series.
I can confirm, this was bug, fixed in 3.2.x (see my rev. 35724)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BrunoK on January 02, 2019, 09:47:26 am
Re : NEW FPC TRUNK VERSION, has still issue 0033963: Wrong result when a currency variable is multiplied by a constant.
NOT YET FIXED !
Code: Pascal  [Select]
  1. program prjTestCurrency;
  2.  
  3. { Fails with Free Pascal Compiler version 3.3.1 [2019/01/02] for i386 }
  4.  
  5. {$mode objfpc}{$H+}
  6.  
  7. var
  8.   C: currency;
  9. begin
  10.   c := 1000;
  11.   c := c * 1.05;
  12.   // at this point C=1000 instead of 1050
  13.   WriteLn(c);
  14.   ReadLn;
  15. end.
  16.  
  17.  
Output :  1.000000000000000000E+03   1000

This issue is super dangerous for database software using monetary values, because one could execute a SQL batch update and not be conscious it ends with wrong values in the updated fields.                                                                                                                                                                             
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: hnb on January 02, 2019, 10:28:02 am
Currency usage in FPC is risky. Currency can fails in other hard to debug cases. Small example : https://github.com/LongDirtyAnimAlf/fpcupdeluxe/issues/75#issuecomment-431494080

AFAIK not reported yet on bugtracker  :-[
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on January 02, 2019, 10:30:07 am
You have morons, idiots and people who fail to verify:
Code: Pascal  [Select]
  1. program prjTestCurrency;
  2.  
  3. { succeeds with Free Pascal Compiler version 3.3.1 r40744}
  4.  
  5. {$mode objfpc}{$H+}
  6.  
  7. var
  8.   C: currency;
  9. begin
  10.   c := 1000;
  11.   c := c * 1.05;
  12.   // at this point C=1050 as expected
  13.   WriteLn(c:2:5);
  14.   ReadLn;
  15. end.

Don't spread rumors if you do not test....
BTW this is even back-ported < Grumpy indeed  >:D >:D >:D >:D >
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BrunoK on January 02, 2019, 10:50:03 am
You have morons, idiots and people who fail to verify:

Don't spread rumors if you do not test....
BTW this is even back-ported < Grumpy indeed  >:D >:D >:D >:D >
As usual you insult people without looking at the context. This is i386 and not arm. The handling of calculations is assembly dependant and is implemented per processor type.

Can't you behave ? When will you write your article on the ills of FreAndNil ? Still waiting, and think we will be waiting for eternity.

Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on January 02, 2019, 10:56:39 am
i386 works too, as does x64. >You'd better test. You clearly haven't....
About my articles: you have a point. I am trying to catch up, but I have a slight handicap (as some of you know). Brain works, fingers can not always follow.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BrunoK on January 02, 2019, 12:43:38 pm
No it doesn't.

console output :
WriteLn(c:2:5)=1000.00000

Trunk Fresh At revision: 40744

Compilation with -va
[0.000] (3103) Macro FPC_FULLVERSION set to 30301
[0.000] (3101) Macro defined: FPC_HAS_INDIRECT_ENTRY_INFORMATION
[0.000] (3101) Macro defined: FPC_HAS_INDIRECT_VAR_ACCESS
[0.000] (1000) Compiler: D:\fpc-laz-asus\FPC\3_3_+\bin\i386-win32\ppc386.exe
[0.000] (1001) Compiler OS: Win32 for i386
[0.000] (1002) Target OS: Win32 for i386
[0.000] (1003) Using executable path: D:\fpc-laz-asus\FPC\3_3_+\bin\i386-win32\

And properties for D:\fpc-laz-asus\FPC\3_3_+\bin\i386-win32\ppc386.exe
Modifié le ‎Aujourd’hui, ‎2 ‎janvier ‎2019, ‏‎il y a 12 minutes


Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on January 02, 2019, 01:54:09 pm
That is strange:
It is supposed to be fixed very recently.
I can only test on 64 bit Windows system, but compiled to 32 bit. (Not a true 32 bit Windows)
That works for the code given.

That means you can re- open the bug report if you want (And can prove it is still there, or again there with a simple example).
I can not reproduce it, though (Windows 10, 64 to 32 cross-compiler from today)

It may also depend on optimization settings, I have no room to test that. I suspect another screw up in recent i386 assembler optimizations, which are good but very risky.

I will try to reproduce the issue.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Bart on January 02, 2019, 03:59:25 pm
That is strange:
...
That means you can re- open the bug report if you want (And can prove it is still there, or again there with a simple example).
I can not reproduce it, though (Windows 10, 64 to 32 cross-compiler from today)

That report (https://bugs.freepascal.org/view.php?id=33963) hasn't been set to resolved, let alone closed.

fpc r40745, 32-bit on win10-64.

Code: [Select]
C:\Users\Bart\LazarusProjecten\ConsoleProjecten>fpc test.pas
Free Pascal Compiler version 3.3.1 [2019/01/02] for i386
Copyright (c) 1993-2018 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling test.pas
Linking test.exe
21 lines compiled, 0.3 sec, 67712 bytes code, 4180 bytes data
3 warning(s) issued

C:\Users\Bart\LazarusProjecten\ConsoleProjecten>test
1000.00000

Bart
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: segfault on January 09, 2019, 01:10:17 pm
Just wondering what the next "stable" version of FPC will be and when it's due for release?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: lucamar on January 09, 2019, 01:28:20 pm
Just wondering what the next "stable" version of FPC will be and when it's due for release?

The next stable will be 3.2.0 (hence this thread) and it's expected some time this year.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on January 09, 2019, 01:55:44 pm
Just wondering what the next "stable" version of FPC will be and when it's due for release?

The next stable will be 3.2.0 (hence this thread) and it's expected some time this year.

Correct. During the christmas period, lots of revs were merged back from trunk to the 3.2 branch.

Current holdup is enabling SEH by default for 32-bit windows, so that it is COM compatible
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JernejL on January 13, 2019, 04:32:20 pm
Im eager to help with next fpc release, i'm wondering if there is anything i can do with a feature i'm very eager to use: anonymous functions:
 
https://foundation.freepascal.org/projects/project-2 & http://lists.freepascal.org/pipermail/fpc-devel/2017-July/038101.html
 
Is there any work for me that i can do, helping get anonymous functions merged in?
 
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on January 13, 2019, 05:17:41 pm
Im eager to help with next fpc release, i'm wondering if there is anything i can do with a feature i'm very eager to use: anonymous functions:
 
https://foundation.freepascal.org/projects/project-2 & http://lists.freepascal.org/pipermail/fpc-devel/2017-July/038101.html
 
Is there any work for me that i can do, helping get anonymous functions merged in?

This work is not yet in trunk, so out of the question for 3.2.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JernejL on January 13, 2019, 05:39:27 pm
Im eager to help with next fpc release, i'm wondering if there is anything i can do with a feature i'm very eager to use: anonymous functions:
 
https://foundation.freepascal.org/projects/project-2 & http://lists.freepascal.org/pipermail/fpc-devel/2017-July/038101.html
 
Is there any work for me that i can do, helping get anonymous functions merged in?

This work is not yet in trunk, so out of the question for 3.2.

Ok, so how can i help get it into trunk?
 
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on January 13, 2019, 05:49:53 pm

Ok, so how can i help get it into trunk?

Work on it/ finish it? Afaik it isn't, or at least not for all architectures. I don't know the details, ask on fcl-devel maillist if you are interested in helping out.

Or try a separate post in one of the freepascal development subforums on this forum.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JernejL on January 13, 2019, 06:02:41 pm

Ok, so how can i help get it into trunk?

Work on it/ finish it? Afaik it isn't, or at least not for all architectures. I don't know the details, ask on fcl-devel maillist if you are interested in helping out.

Or try a separate post in one of the freepascal development subforums on this forum.

 
Mailing lists are archaic & slightly inaccesible, i will attempt to post in the freepascal forum section.
 
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: lucamar on January 13, 2019, 06:05:41 pm
Mailing lists are archaic & slightly inaccesible, i will attempt to post in the freepascal forum section.

You must be very, very young ... email is inaccesible? :o :)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: jacmoe on January 14, 2019, 03:19:42 am
You must be very, very young ... email is inaccesible? :o :)
I am not exactly young (50), and I think that mailing lists are incredibly awkward to walk through in order to get information about a subject.
Yes, I get it: developers find it convenient for having conversations, and it is slightly better than IRC, because you can walk back and forth, but for people who wants to find information, mailing lists are horrific.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JernejL on January 14, 2019, 09:10:52 am
I think jacmoe summed it up perfectly. I just think there's better ways to handle a conversation than a mailing list email spamming - a forum thread with posts serves same purpose much better, imo.
 
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 15, 2019, 03:39:28 pm
I have installed Lazarus fixes_2.0 and FPC fixes_3.2 through FPCUPDeluxe.
http://forum.lazarus.freepascal.org/index.php/topic,34645.msg308113.html#msg308113

Now, I can't install OPM:

---------------------------------------------------
fpcupdeluxe: Getting opm sources ... please wait, could take some time.
fpcupdeluxe: Start of compile error summary.
C:\fpcupdeluxe\lazarus\components\virtualtreeview\VirtualTrees.pas(772,19) Error: (5042) No matching implementation for interface method "SetData(const tagFORMATETC;var TagSTGMEDIUM;LongBool):LongInt; StdCall;" found
fpcupdeluxe: Start of compile error summary.
C:\fpcupdeluxe\lazarus\components\virtualtreeview\VirtualTrees.pas(4022,1) Fatal: (10026) There were 1 errors compiling module, stopping
C:\fpcupdeluxe\lazarus\components\virtualtreeview\VirtualTrees.pas(772,19) Error: (5042) No matching implementation for interface method "SetData(const tagFORMATETC;var TagSTGMEDIUM;LongBool):LongInt; StdCall;" found
fpcupdeluxe: Start of compile error summary.
Fatal: (1018) Compilation aborted
C:\fpcupdeluxe\lazarus\components\virtualtreeview\VirtualTrees.pas(4022,1) Fatal: (10026) There were 1 errors compiling module, stopping
fpcupdeluxe: Start of compile error summary.
Error: C:\fpcupdeluxe\fpc\bin\i386-win32\ppc386.exe returned an error exitcode
fpcupdeluxe: Start of compile error summary.
Error: (lazarus) Compile package virtualtreeview_package 5.5.3.1: stopped with exit code 1
fpcupdeluxe: Start of compile error summary.
Error: (lazarus) Compile package jcfidelazarus 2.0: terminated
fpcupdeluxe: Start of compile error summary.
Error: (lazarus) [TLazPackageGraph.CompileRequiredPackages] "Exit code 1"
fpcupdeluxe: Start of compile error summary.
Error: (lazarus) Building IDE: Compile AutoInstall Packages failed.
fpcupdeluxe: Start of compile error summary.
fpcupdeluxe: ERROR: UniversalInstaller (ConfigModule: opm): Failure trying to rebuild Lazarus.
fpcupdeluxe: Done !!
---------------------------------------------------
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 15, 2019, 03:52:22 pm
This is a (actual) known feature comming from a change in a interface of fpc. See https://bugs.freepascal.org/view.php?id=34804 and http://forum.lazarus.freepascal.org/index.php?topic=43828.0
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 15, 2019, 04:07:53 pm
This is a (actual) known feature comming from a change in a interface of fpc. See https://bugs.freepascal.org/view.php?id=34804 and http://forum.lazarus.freepascal.org/index.php?topic=43828.0
Thanks.

Now, even after I remove OPM, my Lazarus is broken and I can't build it any more.
Is there a simple solution?
Or should I remove fpcupdeluxe folder and start all over from zero?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: DonAlfredo on January 15, 2019, 04:15:12 pm
I guess no need to remove all.

Just delete the "config_lazarus"-folder and use fpcupdeluxe to rebuild/update Lazarus.
No new downloads needed.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 15, 2019, 05:33:41 pm
I guess no need to remove all.

Just delete the "config_lazarus"-folder and use fpcupdeluxe to rebuild/update Lazarus.
No new downloads needed.
It worked perfectly.
Thanks.

Some modules, such as opm and tvplaneit, break Lazarus build process. Even uninstalling them keeps Lazarus broken.
1. Where should I report these problems?
2. Should I individualize each report by broken module?
3. Is it possible FPCUPDeluxe to have some kind of state control to recover Lazarus after installing a broken module since this doesn't seem to be a simple uninstall procedure?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: DonAlfredo on January 15, 2019, 06:51:55 pm
In theory, uninstall module should do the job.
If not, the config removal is the only thing that fpcupdeluxe can do in these cases.

Before reporting problems, always search the bugtracker of FPC and Lazarus.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: wp on January 15, 2019, 07:04:46 pm
Some modules, such as [...] tvplaneit, break Lazarus build process. Even uninstalling them keeps Lazarus broken.
1. Where should I report these problems?
2. Should I individualize each report by broken module?
Normally report in bugtracker. Yes, write an individual report for each component because there are different maintainers.

As for tvplanit (which is maintained by myself - so, no need to report anything here), I just build laz trunk / fpc trunk with having tvplanit installed, and I did not experience any problems. But when using the OPM version I saw a compilation error. I'll make an updated version available for OPM as soon as possible.

As for OPM: The issue is not in OPM but in VirtualTreeView which is affected by a change in the parameter list of an ActiveX-related procedure introduced by fpc trunk and backported already to fpc-fixes. The related correction in VTV has been applied to Laz- trunk but had not yet been merged back to  Laz-fixes. But now I merged the patch to Laz-fixes manually, and the combination Laz-2.0fixes + fpc 3.2-fixes can be installed with fpcupdeluxe again.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 15, 2019, 09:27:36 pm
Thx to wp for this hotfix.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 15, 2019, 10:07:07 pm
In theory, uninstall module should do the job.
If not, the config removal is the only thing that fpcupdeluxe can do in these cases.
You are right, some modules were uninstalled in my first try.
But others modules needed two or three tentatives before the uninstall to be reported as "success".
The OPM was the only module that I had to delete the "config_lazarus"-folder and rebuild lazarus.
I skipped the modules virtualtreeview and virtualtreeviewonline.

Quote
Before reporting problems, always search the bugtracker of FPC and Lazarus.
Ok.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 15, 2019, 10:10:32 pm
Some modules, such as [...] tvplaneit, break Lazarus build process. Even uninstalling them keeps Lazarus broken.
1. Where should I report these problems?
2. Should I individualize each report by broken module?
Normally report in bugtracker. Yes, write an individual report for each component because there are different maintainers.
Ok.

Quote
As for tvplanit (which is maintained by myself - so, no need to report anything here), I just build laz trunk / fpc trunk with having tvplanit installed, and I did not experience any problems. But when using the OPM version I saw a compilation error. I'll make an updated version available for OPM as soon as possible.
Thanks.

Quote
As for OPM: The issue is not in OPM but in VirtualTreeView which is affected by a change in the parameter list of an ActiveX-related procedure introduced by fpc trunk and backported already to fpc-fixes. The related correction in VTV has been applied to Laz- trunk but had not yet been merged back to Laz-fixes. But now I merged the patch to Laz-fixes manually, and the combination Laz-2.0fixes + fpc 3.2-fixes can be installed with fpcupdeluxe again.
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 15, 2019, 10:29:03 pm
I have just tried to install all available modules in "FPCUPdeluxe V1.6.2h for i386-win32-win32".

Before I open so many supporting tickets, I'd like to hear your opinion about modules that do not deserve a bug report because the fault is mine.

Maybe some packages didn't install because I didn't know the correct order of dependencies.

I have attached a log file with information for all broken modules.

Here is the complete list of modules that I could not install:
* bgragames (the modules bgrabitmap, bgracontrols and bgracontrolsfx were previously properly installed)
callite
castle_game_engine
cef3
codebot
colorpalette
dcpcrypt
ECControls
editormacroscript
epiktimer
evssimplegraph
fblib
fpcusblib
fpgui
fpowm
fpvectorialpkg
glscene
graphics32
graphics32-rbc
industrial
indy
indy9
internettools
james
lamw
lazbarcodes
lazgoogleapis
lazmer
lazopenglcontext
lazpackager
lazpaint
lazprofiler
* ljgridutils (freezes)
lnet
macosext
mbColorLib
metal
mtprocs
* opm (solved)
pascal-futures
pascalio
pascalscada
pascalscript
pasettimino
python4laz
rest-dw
* rutils (freezes)
rx
simplegraph
spktoolbar
suggestedpackages
suggestedpackagesadd
synapse
tiopf
tlazserial
treelistview
turbobird
* tvplaneit (solved)
uecontrols
usercontrol
vampyre
* virtualtreeview       (skipped)
* virtualtreeviewonline (skipped)
wst
zeos
zmsql
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: wp on January 15, 2019, 11:04:19 pm
I think I confused these fpcupdeluxe modules with OPM, sorry.

Where do these modules come from? How are they updated? Why does fpcupdeluxe distribute its own packages when there is now OPM which is even integrated in the IDE?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: lainz on January 15, 2019, 11:26:15 pm
I think I confused these fpcupdeluxe modules with OPM, sorry.

Where do these modules come from? How are they updated? Why does fpcupdeluxe distribute its own packages when there is now OPM which is even integrated in the IDE?

I think this is older than OPM. AFAIK it downloads the repository from the official source then installs it.

Code: Pascal  [Select]
  1. * bgragames (the modules bgrabitmap, bgracontrols and bgracontrolsfx were previously properly installed)

About BGRAGames not compiling, is an outdated package, I should check if I can fix it, but for making a game better use Castle Game Engine that is cross platform and works for mobile devices.

Edit: I see LazPaint in the list, is not a package that can be installed, is a regular lazarus project. In the past that repo included bgrabitmap, but now they are in 2 separate repos.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: wp on January 15, 2019, 11:56:17 pm
Something must be badly wrong with this list. I quickly tested some of the packages that I know, CalLite,  Industrial, ColorPalette, LazBarCode, mbColorLib - and they all compile fine. Which IDE and which FPC are used? I used Laz trunk / fpc 3.0.4 / 32 bit on Win10 / 64 bit.

Why are fpvectorial and lazopenglcontext in the list? They is contained in the standard Lazarus distribution.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 12:44:12 am
I think I confused these fpcupdeluxe modules with OPM, sorry.
You're welcome.

Quote
Where do these modules come from?
Please, see the attached image.

Quote
How are they updated?
I don't know.

Quote
Why does fpcupdeluxe distribute its own packages when there is now OPM which is even integrated in the IDE?
I don't know.

As a matter of fact, I had never used FPCUPdeluxe before this week.
I got to it because of the difficult to build fpc on command line.
I am testing all its features to learn how it works.
It's an excellent tool.
As OPM was not compiling in the last days, FPCUPdeluxe proved to be a great alternative.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 12:49:52 am
Code: Pascal  [Select]
  1. * bgragames (the modules bgrabitmap, bgracontrols and bgracontrolsfx were previously properly installed)
About BGRAGames not compiling, is an outdated package, I should check if I can fix it, but for making a game better use Castle Game Engine that is cross platform and works for mobile devices.
I don't intend to build games. I was just trying to install all available modules for testing purposes.

Quote
Edit: I see LazPaint in the list, is not a package that can be installed, is a regular lazarus project. In the past that repo included bgrabitmap, but now they are in 2 separate repos.
I didn't know.
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 12:57:03 am
Something must be badly wrong with this list. I quickly tested some of the packages that I know, CalLite,  Industrial, ColorPalette, LazBarCode, mbColorLib - and they all compile fine.
Which IDE and which FPC are used? I used Laz trunk / fpc 3.0.4 / 32 bit on Win10 / 64 bit.
I am using FPCUPdeluxe to test Lazarus 2.0 RC 3 + fixes_2_0 and FPC 3.2 beta + fixes_3_2.

Quote
Why are fpvectorial and lazopenglcontext in the list? They is contained in the standard Lazarus distribution.
I don't know.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 01:06:52 am
I think I confused these fpcupdeluxe modules with OPM, sorry.
Why does fpcupdeluxe distribute its own packages when there is now OPM which is even integrated in the IDE?
As soon as OPM got back compiling, I will test on Lazarus 2.0 RC 3 + fixes_2_0 and FPC 3.2 beta + fixes_3_2 the packages I should really use.
My problem is that building, testing and debuging FPC is not as easy as Lazarus and I need that to better help the community.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: wp on January 16, 2019, 01:27:25 am
I am using FPCUPdeluxe to test Lazarus 2.0 RC 3 + fixes_2_0 and FPC 3.2 beta + fixes_3_2.
You are not mentioning the bitness of your OS, but further up I get the impression that it is 32 bit. In this case, the number of packages that you want to install are way too much and you will run out of memory - there are some threads about this here in the forum. I don't know what fpcupdeluxe will tell you in this case.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 01:48:02 am
I am using FPCUPdeluxe to test Lazarus 2.0 RC 3 + fixes_2_0 and FPC 3.2 beta + fixes_3_2.
You are not mentioning the bitness of your OS, but further up I get the impression that it is 32 bit.
Correct, I am testing Lazarus 32bit.

Quote
In this case, the number of packages that you want to install are way too much and you will run out of memory - there are some threads about this here in the forum.
I didn't know that, yet.

Quote
I don't know what fpcupdeluxe will tell you in this case.
Neither do I.  :)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: DonAlfredo on January 16, 2019, 04:38:00 am
Fpcupdeluxe gets all of its modules/packages from the original online sources. So, for the success of installing them, its fully dependent on the maintainers of these sources.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 06:22:12 am
FPC Fixes 3.2 include the patch on win32 with setpeflag $20. So you can build a bigger IDE.FPC 3.0x have the issue IMHO. I think people with the next stable 3.0.4 and 2.0 will complain more and more  8-)

Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 07:01:08 am
I am using FPCUPdeluxe to test Lazarus 2.0 RC 3 + fixes_2_0 and FPC 3.2 beta + fixes_3_2. Everything is 32bit.

When I install any or all of the packages lclfpreport.lpk, lazfpreportdesign.lpk, lazidefpreport.lpk from "C:\fpcupdeluxe\lazarus\components\fpreport\" and "C:\fpcupdeluxe\lazarus\components\fpreport\design\",  Lazarus gets broken during rebuild and doesn't work anymore.

Should I open a bug report?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 07:29:33 am
Should I open a bug report?
Do you know, is it comming from FPC 3.2 or a Lazarus 2.0 Problem ?! Look if this is eventually fixed on trunk. So you can make a request for backporting.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 07:36:38 am
Should I open a bug report?
Do you know, is it comming from FPC 3.2 or a Lazarus 2.0 Problem ?! Look if this is eventually fixed on trunk. So you can make a request for backporting.
fpReport is a new package for future FPC 3.2.0. I am trying to test it.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 08:22:12 am
No Problem to compile and install fpreport. BUT Lazarus wont start. On commandline no message, but if i activate --debug-log=log.txt on the commandline i see

Quote
using config file D:\data\lazdev\work\lazarus\lazarus.cfg
[FORMS.PP] ExceptionOccurred
  Sender=EInOutError
  Exception=Can not load Freetype library "freetype-6.dll". Check your installation.
  Stack trace:
  $00E70209
  $00E7028D
  $00E7030A
There is a dll missing.

Edit: You have to install freetype-6.dll AND zlib1.dll !!! for your bitness eg. 32bit for a 32Bit Lazarus.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JD on January 16, 2019, 08:59:04 am
Should I open a bug report?
Do you know, is it comming from FPC 3.2 or a Lazarus 2.0 Problem ?! Look if this is eventually fixed on trunk. So you can make a request for backporting.
fpReport is a new package for future FPC 3.2.0. I am trying to test it.

I have the same problem with ftpReport. I've been unable to install the GUI component because it breaks the Lazarus IDE.

JD
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 10:18:36 am
By me, nothing is broken. Actual (2 hours ago) fpc fixes 3.2 and actual lazarus fixes 2.0 compiles on win10/64 plattform win32. With fpcupdeluxe.only dll was missing.

What is your trouble. Everybody says it is broken, but i see no log or any message.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: DonAlfredo on January 16, 2019, 11:56:23 am
The next release of fpcupdeluxe will get the freetype-6.dll automagically when Lazarus is going to be installed/updated !
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 04:28:18 pm
I have also the zlib1.dll to install, eventually needed by freetype-6.dll.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: DonAlfredo on January 16, 2019, 04:46:46 pm
Do you have a very trust-worthy source for the zlib dll ?
With trust I mean safe !
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 05:02:08 pm
No, my only safe place is my PC. I think i have loaded this from the sites as found on https://www.zlib.net/ 

Edit:
freetype-6 : http://gnuwin32.sourceforge.net/packages/freetype.htm
zlib1         : http://gnuwin32.sourceforge.net/packages/zlib.htm

But naming of the freetype6.dll to freetype-6.dll is needed.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: wp on January 16, 2019, 06:34:01 pm
No Problem to compile and install fpreport. BUT Lazarus wont start. On commandline no message, but if i activate --debug-log=log.txt on the commandline i see

Quote
using config file D:\data\lazdev\work\lazarus\lazarus.cfg
[FORMS.PP] ExceptionOccurred
  Sender=EInOutError
  Exception=Can not load Freetype library "freetype-6.dll". Check your installation.
  Stack trace:
  $00E70209
  $00E7028D
  $00E7030A
There is a dll missing.

Edit: You have to install freetype-6.dll AND zlib1.dll !!! for your bitness eg. 32bit for a 32Bit Lazarus.
I never used fpreport, but Andreas, I think you did: Since fpreport was written by the fpc or Lazarus team (I did not follow these activities) a bug report has some chance to be read. I think fpreport should be modified such that it does not link these dlls statically into the Lazarus exe. SQLDB does not do the same with sqlite3 and firebird and other dlls. Only at runtime, the dll should be loaded and maybe terminate the program if not found. A component which can crash the IDE because something is missing is always a bad choice.

So, my point is: Could somebody with experience in fpreport write a bug report that this component crashes the installation of Lazarus when these dlls are missing?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: af0815 on January 16, 2019, 09:14:17 pm
From my point of view:

fpc uses in fpreport no statically dll - this is good :-) But Lazarus use this and compile the packages into itself. Now Lazarus need the libs at startup.

the second issue is, freetype dll itself need zlib1 - you can see it with eg. the CFF-Explorer - for proper working. So in conclusio you see nothing and have a dead Lazarus. You can nonly see more if you know the caveeats.

This is by design and IMHO not (direct) a bug. And it shows the possible design problems (?) between Lazarus and fpc. fpreport is a fpc product with _wrappers_ for Lazarus. Only the designer is more Lazarus-spezific.

And the installation of the component dint crash Lazarus. ONLY the missing dlls are Lazarus stopping for proper working. The ONLY goal for me is -> SHOW the user what is missing <- But who can show this ? Actual with the changes in LazLogger, you see default nothing on a terminal window, you have to use the --debug-log explizit to see the issue.





Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 16, 2019, 10:10:44 pm
No Problem to compile and install fpreport. BUT Lazarus wont start. On commandline no message, but if i activate --debug-log=log.txt on the commandline i see

Quote
using config file D:\data\lazdev\work\lazarus\lazarus.cfg
[FORMS.PP] ExceptionOccurred
  Sender=EInOutError
  Exception=Can not load Freetype library "freetype-6.dll". Check your installation.
  Stack trace:
  $00E70209
  $00E7028D
  $00E7030A
There is a dll missing.

Edit: You have to install freetype-6.dll AND zlib1.dll !!! for your bitness eg. 32bit for a 32Bit Lazarus.
I never used fpreport, but Andreas, I think you did: Since fpreport was written by the fpc or Lazarus team (I did not follow these activities) a bug report has some chance to be read. I think fpreport should be modified such that it does not link these dlls statically into the Lazarus exe. SQLDB does not do the same with sqlite3 and firebird and other dlls. Only at runtime, the dll should be loaded and maybe terminate the program if not found. A component which can crash the IDE because something is missing is always a bad choice.

So, my point is: Could somebody with experience in fpreport write a bug report that this component crashes the installation of Lazarus when these dlls are missing?
I am not the best person for the job, but I did it:
0034887: Lazarus 2 RC 3 + FPC 3.2.0 beta - after fpReport package install Lazarus stops working missing libraries
https://bugs.freepascal.org/view.php?id=34887
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on January 17, 2019, 02:03:54 am
I am using FPCUPdeluxe to test Lazarus 2.0 RC 3 + fixes_2_0 and FPC 3.2 beta + fixes_3_2. Everything is 32bit.

When I install any or all of the packages lclfpreport.lpk, lazfpreportdesign.lpk, lazidefpreport.lpk from "C:\fpcupdeluxe\lazarus\components\fpreport\" and "C:\fpcupdeluxe\lazarus\components\fpreport\design\",  Lazarus gets broken during rebuild and doesn't work anymore.
Workaround complete. Lazarus is back starting.

No, my only safe place is my PC. I think i have loaded this from the sites as found on https://www.zlib.net/ 

Edit:
freetype-6 : http://gnuwin32.sourceforge.net/packages/freetype.htm
zlib1         : http://gnuwin32.sourceforge.net/packages/zlib.htm

But naming of the freetype6.dll to freetype-6.dll is needed.
Thanks.

Do you have a very trust-worthy source for the zlib dll ?
With trust I mean safe !
Thanks for sharing:
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases/tag/zlib
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on February 06, 2019, 08:42:26 pm
For windows user, the actual Laz2.0 with updated fpc fixes 3.2: https://sourceforge.net/projects/lazarus-snapshots/files/
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on February 06, 2019, 09:55:25 pm
For windows user, the actual Laz2.0 with updated fpc fixes 3.2: https://sourceforge.net/projects/lazarus-snapshots/files/
Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on February 06, 2019, 09:59:44 pm
This change will be available in the upcoming FPC 3.2.0
Off topic but wondering, is there a reasonably solid estimate of when FPC 3.2.0 will be released ?
No, other than "probably in the second half of this year".
Can we expect FPC 3.2.0 to be released in the second semester of 2019?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: ASBzone on February 06, 2019, 10:11:14 pm
Can we expect FPC 3.2.0 to be released in the second semester of 2019?


Which months are you thinking of for second semester?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on February 07, 2019, 11:02:11 pm
Can we expect FPC 3.2.0 to be released in the second semester of 2019?
Which months are you thinking of for second semester?
From July through December...  :)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: ASBzone on February 08, 2019, 02:40:22 am
From July through December...  :)


I only ask because the earlier response said, "in the second half of year,"  so I was surprised by your question which covers the same timeframe.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on April 16, 2019, 07:11:45 pm
I can't download Window 64 folder's files.

When I click on files on folder:
https://sourceforge.net/projects/lazarus-snapshots/files/Window%2064/lazarus-2.0.2-60960-fpc-3.2.0-beta-41793/

I am redirected back to:
https://sourceforge.net/projects/lazarus-snapshots/files/
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on April 16, 2019, 07:50:11 pm
Can you try again?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on April 16, 2019, 08:53:49 pm
I can't download Window 64 folder's files.

When I click on files on folder:
https://sourceforge.net/projects/lazarus-snapshots/files/Window%2064/lazarus-2.0.2-60960-fpc-3.2.0-beta-41793/

I am redirected back to:
https://sourceforge.net/projects/lazarus-snapshots/files/

Can you try again?
It worked. Thanks.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Xor-el on June 21, 2019, 04:39:38 pm
Hi all, does anyone have the slightest idea when FPC 3.2.0 will be released as stable?
Currently working on a project and unfortunately there is a compiler bug in FPC versions less than 3.2.0 that causes it to fail. This bug has been fixed in fixes 3.2.0 but unfortunately policies prevents me from using non stable versions in the project.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Alextp on June 21, 2019, 11:29:40 pm
AFAIR in 2019 autumn.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Xor-el on June 22, 2019, 12:12:00 am
AFAIR in 2019 autumn.

thanks.  :)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: jamie on June 22, 2019, 06:58:40 pm
I would be curious as to what bug is being referred to?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Xor-el on June 22, 2019, 07:07:35 pm
I would be curious as to what bug is being referred to?
the bug is related to finalization of some specific types of interface variables at the end of certain methods.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: avra on June 22, 2019, 07:21:10 pm
Currently working on a project and unfortunately there is a compiler bug in FPC versions less than 3.2.0 that causes it to fail. This bug has been fixed in fixes 3.2.0 but unfortunately policies prevents me from using non stable versions in the project.
Maybe it is not a complex fix so you can apply just the patch related to this bug? Or use whole unit file from 3.2.0 with some/none adaptation? That will not work in most cases since changes from 3.0 to 3.2 can be massive but maybe you are lucky...
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Xor-el on June 22, 2019, 07:27:34 pm
Maybe it is not a complex fix so you can apply just the patch related to this bug? Or use whole unit file from 3.2.0 with some/none adaptation? That will not work in most cases since changes from 3.0 to 3.2 can be massive but maybe you are lucky...
unfortunately this is not some RTL based issue rather some bug related to compiler codegen and I can't dissect which commit fixes this issue.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on August 28, 2019, 12:51:20 pm
The changes in 3.2 are quite big in some area's but don't compare them to trunk plz. That's a whole different ball-game.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: valdir.marcos on September 02, 2019, 10:23:55 am
AFAIR in 2019 autumn.
https://www.miniwebtool.com/first-day-of-autumn/?year=2019&location=1
First Day of Autumn 2019
Monday, September 23, 2019

https://www.miniwebtool.com/first-day-of-winter/?year=2019&location=1
First Day of Winter 2019
Sunday, December 22, 2019

Now that we have passed the first third of the second semester of 2019, is there any news on when we can expect FPC 3.2.0 to be released?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on September 02, 2019, 12:50:21 pm
When it is done.... Silly question....
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on October 07, 2019, 09:04:48 pm
When will be the release of 3.2 of FPC  ;D
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on October 08, 2019, 08:53:20 am
When it is done.... Silly question....
;D
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: segfault on November 12, 2019, 04:31:32 pm
When it is done.... Silly question....

Will it be done this year? The year is fast running out and I assume there have to be at least 2 release candidates...
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on November 12, 2019, 08:11:02 pm
There is no fixed date yet. 
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Alextp on November 14, 2019, 12:59:38 pm
Seems 2 required (for CudaText app) fixes not done:
- FreeBSD DirectoryExists not working (reported at maillist)
- Solaris bad code https://bugs.freepascal.org/view.php?id=35450
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on November 14, 2019, 01:37:06 pm
Seems 2 required (for CudaText app) fixes not done:
- FreeBSD DirectoryExists not working (reported at maillist)
- Solaris bad code https://bugs.freepascal.org/view.php?id=35450

Do you use a stock kernel? People are reporting problems with own build compilers that leave out legacy features.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Alextp on November 14, 2019, 02:19:45 pm
FreeBSD: 12.0-release, generic amd64, furybsd.
Solaris: 11.4 release.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: segfault on December 17, 2019, 12:15:21 pm
On the FPC site :

Quote
The next FPC release, version 3.2, is planned for later this year.

I guess that ain't gonna happen. Any update on progress?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on December 17, 2019, 12:23:18 pm
On the FPC site :

Quote
The next FPC release, version 3.2, is planned for later this year.

I guess that ain't gonna happen. Any update on progress?

Not really. Still a few blocker issues.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: zeljko on December 17, 2019, 01:04:14 pm
Two remaining issues for target 3.2.0
https://bugs.freepascal.org/view.php?id=36176
https://bugs.freepascal.org/view.php?id=34270
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: soerensen3 on December 17, 2019, 01:26:59 pm
Nice!

If it is not the same as trunk, will FPC 3.2 ship with generic.collections by default?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Xor-el on December 17, 2019, 01:30:10 pm
Nice!

If it is not the same as trunk, will FPC 3.2 ship with generic.collections by default?

Yes.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: soerensen3 on December 18, 2019, 03:55:38 pm
That's good to hear!  :)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: trev on December 18, 2019, 11:41:45 pm
Seems 2 required (for CudaText app) fixes not done:
- FreeBSD DirectoryExists not working (reported at maillist)
- Solaris bad code https://bugs.freepascal.org/view.php?id=35450

Do you use a stock kernel? People are reporting problems with own build compilers that leave out legacy features.

I suspect something changed in relation to DirectoryExists from FreeBSD 12.0-REL (GENEERIC kernel) onwards because one of my unrelated projects is compiling Great Cow BASIC (written in FreeBASIC) for FreeBSD which succeeds on FreeBSD 12.0, but experiences segment violation crashes on
Code: [Select]
IF Dir(MessagesFile) = ""  THEN statements.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Alextp on December 22, 2019, 10:32:01 pm
FreeBSD 12 just uses different os_stat (if i write OK) structure than FreeBSD 11.
Solution in Java code
https://www.mail-archive.com/fpc-pascal@lists.freepascal.org/msg52007.html
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on January 02, 2020, 03:29:09 pm
Hi freinds,
We are in 2020 ( happy new year to all  :) )
But  >:( Where is the new release version of fpc planed to the end of 2019 ?!
 >:D

Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on January 02, 2020, 03:32:02 pm
Hi freinds,
We are in 2020 ( happy new year to all  :) )
But  >:( Where is the new release version of fpc planed to the end of 2019 ?!
 >:D

Well, the next holiday after christmas/new year is Easter >:D
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on January 02, 2020, 03:49:57 pm
Hi freinds,
We are in 2020 ( happy new year to all  :) )
But  >:( Where is the new release version of fpc planed to the end of 2019 ?!
 >:D

Well, the next holiday after christmas/new year is Easter >:D

Hhhh, I'm just joking .. I know the hard work you are doing.
wish you the best for this year
 :D
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on January 02, 2020, 04:18:53 pm
You can choose between different calendars if you like. O:-)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: lucamar on January 02, 2020, 04:42:21 pm
You can choose between different calendars if you like. O:-)

Well, by the Islamic calendar we are still in the 1440s so there is still a "little" time for a 2019 release :D 8-)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on January 02, 2020, 05:39:29 pm
You can choose between different calendars if you like. O:-)

Well, by the Islamic calendar we are still in the 1440s so there is still a "little" time for a 2019 release :D 8-)

It is not so much the date, but the associated holidays that do the trick.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: TCH on January 17, 2020, 03:24:01 pm
Any news on FPC 3.2?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on January 17, 2020, 03:29:34 pm
Any news on FPC 3.2?

Some progress with the major blockers in the last weeks. No news about schedule.