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.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BeniBela on February 02, 2020, 12:48:44 am
Now it is already February

I hope fpc3.2 comes soon.

I spend today replacing arrays of strings with arrays of arrays in my project, and it became much faster, but now I notice, it does not compile with fpc 3.0 anymore :/
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on February 02, 2020, 10:24:15 am
Now it is already February

I hope fpc3.2 comes soon.

I spend today replacing arrays of strings with arrays of arrays in my project, and it became much faster, but now I notice, it does not compile with fpc 3.0 anymore :/
Can you post a small example?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BeniBela on February 02, 2020, 10:45:44 am
Can you post a small example?

It was kind of like this:

Code: Pascal  [Select][+][-]
  1.  
  2. program p;
  3. type TObjectArray = array of TObject;
  4. procedure testOld(a: array of string);
  5. begin
  6.   //... for s in a do s.split(',') ...
  7. end;
  8. procedure testNew(a: array of TObjectArray);
  9. begin
  10.   //...
  11. end;
  12. var x, y, a, b: tobject;
  13. begin
  14.   testOld(['x,y','a,b']);
  15.   testNew([[x,y],[a,b]])
  16. end.
  17. ~
  18.  
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on February 02, 2020, 11:56:43 am
Well, in trunk this compiles, note array initialization in mode delphi and mode objectfpc are different:
Code: Pascal  [Select][+][-]
  1. program p;
  2. {$mode delphi}
  3. type TObjectArray = array of TObject;
  4. procedure testOld(a: array of string);
  5. begin
  6.   //... for s in a do s.split(',') ...
  7. end;
  8. procedure testNew(a: array of TObjectArray);
  9. begin
  10.   //...
  11. end;
  12. var x, y, a, b: tobject;
  13. begin
  14.   testOld(['x,y','a,b']);
  15.   testNew([[x,y],[a,b]])
  16. end.

Of course I assume your trunk is reasonably up-to-date...

Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on February 02, 2020, 04:03:05 pm
Can you post a small example?

It was kind of like this:

Code: Pascal  [Select][+][-]
  1.  
  2. program p;
  3. type TObjectArray = array of TObject;
  4. procedure testOld(a: array of string);
  5. begin
  6.   //... for s in a do s.split(',') ...
  7. end;
  8. procedure testNew(a: array of TObjectArray);
  9. begin
  10.   //...
  11. end;
  12. var x, y, a, b: tobject;
  13. begin
  14.   testOld(['x,y','a,b']);
  15.   testNew([[x,y],[a,b]])
  16. end.
  17. ~
  18.  

You're relying on dynamic array constructors here with your testNew (the function take an open array of dynamic arrays). These are only supported in 3.2 and newer (https://wiki.freepascal.org/FPC_New_Features_3.2#Dynamic_Arrays_constructors).

As a workaround you can use the Create constructor which is only available for named dynamic arrays (which your TObjectArray is):

Code: Pascal  [Select][+][-]
  1. testNew([TObjectArray.Create(x, y), TObjectArray.Create(a, b)]);
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BeniBela on February 02, 2020, 11:30:32 pm
Well, in trunk this compiles, note array initialization in mode delphi and mode objectfpc are different:
Code: Pascal  [Select][+][-]
  1. program p;
  2. {$mode delphi}
  3. type TObjectArray = array of TObject;
  4. procedure testOld(a: array of string);
  5. begin
  6.   //... for s in a do s.split(',') ...
  7. end;
  8. procedure testNew(a: array of TObjectArray);
  9. begin
  10.   //...
  11. end;
  12. var x, y, a, b: tobject;
  13. begin
  14.   testOld(['x,y','a,b']);
  15.   testNew([[x,y],[a,b]])
  16. end.

Of course I assume your trunk is reasonably up-to-date...

I know, that is why I wrote it in the new way.

But I cannot share the code, as long as most people still use 3.0.x


As a workaround you can use the Create constructor which is only available for named dynamic arrays (which your TObjectArray is):

I did not know about that, but I rewrote it with a custom function





Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: mm7 on March 28, 2020, 11:35:01 am
Any news on FPC 3.2?

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

Any approximate ETA?

It is not a curiosity question, 3.0.4 does not support libssl1.1 in Linux.
I need to know ETA to figure out what to do now, to wait for FPC 3.2 or to switch to unreleased FPC SVN with risks that something there has untested bugs.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 28, 2020, 12:46:49 pm
A rc1 will be released very shortly.   Final Release date is to be determined, but probably not that soon.

The difference between the unreleased FIXES_3_2 branch and real releases is mostly just packaging. I would simply use a FIXES3_2  snapshot if I were you.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Bart on March 28, 2020, 01:44:15 pm
The difference between the unreleased FIXES_3_2 branch and real releases is mostly just packaging. I would simply use a FIXES3_2  snapshot if I were you.

Well, there is at least one patch in the bugtracker that IMO needs to go into 3.2 (it's an ugly regression).

Bart
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: soerensen3 on March 28, 2020, 03:58:28 pm
It's a bit intransparent. The roadmap shows 100% of issues have been resolved since some time now. Why does it still take so much time for a the release. Sorry I'm a bit impatient   :P But IMO more frequent releases with less changes would be better for new features to get adopted. Also for newcomers it is probably a bit complicated to compile from trunk. Don't get me wrong, I appreciate the work you all do! It's just my opinion.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JuhaManninen on March 28, 2020, 09:15:20 pm
IMO more frequent releases with less changes would be better for new features to get adopted.
+1
Something must be done to improve the situation in future. There are bug fixes made over 3.5 years ago which are still not in a release version.
I understand the building process itself requires effort because there are so many platforms, OSs and CPUs to support. In that case the release should be built for the most popular platforms only. Users of rare and exotic platforms must continue to build from sources themselves.
Now the situation is that everybody must build from sources. Not good.
Note, developers workload with backporting bugfixes will decrease. Just push a release out, no need for a dreadful 2 year backporting exercise with merge conflicts and all.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Otto on March 28, 2020, 09:38:22 pm
Right.
The Lazarus/FPC community could create a  Linux distribution that is the "reference" platform for lazarus/FPC development.
Otto.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: lucamar on March 28, 2020, 09:58:36 pm
The Lazarus/FPC community could create a  Linux distribution that is the "reference" platform for lazarus/FPC development.

The closest you'll ever get to a "reference" Linux is a bare Linux Base, Debian (using deb packaging) or RedHat/Fedora (using rpm packaging). Making a Linux distro is not too difficult ... if you derive from any of those (like, say, Ubuntu does); but then you might as well go for the parent distro as your reference and avoid all the pitfalls of "BYO Linux" ;)

What we are talking here, rather, is the release frequency of FPC itself; it should be at least one release/year, even if it meant making just a "fixes" release; for example, there should have been a 3.0.6 release in 2018, and so on. Instead, we have been patiently waiting for the 3.2.0 and it seems we have quite some more waiting to do until it's "production ready".
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Otto on March 28, 2020, 10:33:59 pm
Hello lucamar.

I know we're talking about the FPC release frequency.

I was hooking up to JuhaManninen's speech:
[...]I understand the building process itself requires effort because there are so many platforms, OSs and CPUs to support. In that case the release should be built for the most popular platforms only. [...]
I proposed this suggestion because having a reference platform managed by the same community would accelerate the release of the "stable" version of FPC for that platform. All of us developers could then verify the operation on the same common platform.

Otto.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: lucamar on March 28, 2020, 10:54:24 pm
I proposed this suggestion because having a reference platform managed by the same community would accelerate the release of the "stable" version of FPC for that platform. All of us developers could then verify the operation on the same common platform.

Yeah, I guessed :)

But then you'd also have the update and maintenace of the reference platform beside the update and maintenace of FPC. And believe me, maintaining a Linux distro is no picnic; far better is to pick one of the long existing ones (like Debian) and pick that one as your "reference". As it's practically done in Lazarus where the default widgetset is GTK, which means GNOME, which (historically) means Debian.

One thing that might make it simpler for FPC is that it can get by with a base Linux, so something like Core Linux (+dev tools) would probably be enough. Of course, that's like saying that FreeDOS and a 386 box w/ 16 MiB RAM are enough for the GO32v2 target: they are, but it's a somewhat limited environment :D

Besides, FPC itself doesn't depend as much of the specific (as opposed to "generic") platform as does Lazarus so the advantage, if any, would be much less. Think again about what I said abovee: FPC can do rather well with a "standard" base Linux (+dev tools), which means it'll (or can) do well with almost any current distro.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JuhaManninen on March 28, 2020, 11:24:49 pm
I proposed this suggestion because having a reference platform managed by the same community would accelerate the release of the "stable" version of FPC for that platform. All of us developers could then verify the operation on the same common platform.
Otto, you misunderstood the issue badly. Different Linux distributions are not the issue here. Most Linux users have a x86-64 CPU. One single FPC release build covers them all. Remember, FPC is a compiler with only few external dependencies.
Copied from Overview in https://freepascal.org/  :
"Free Pascal is a 32, 64 and 16 bit professional Pascal compiler. It can target many processor architectures: Intel x86 (including 8086), AMD64/x86-64, PowerPC, PowerPC64, SPARC, ARM, AArch64, MIPS and the JVM. Supported operating systems include Linux, FreeBSD, Haiku, Mac OS X/iOS/iPhoneSimulator/Darwin, DOS (16 and 32 bit), Win32, Win64, WinCE, OS/2, MorphOS, Nintendo GBA, Nintendo DS, Nintendo Wii, Android, AIX and AROS. Additionally, support for the Motorola 68k architecture is available in the development versions."

Maybe you confuse FPC with Lazarus / LCL which must deal with GUI libraries.
Creating a reference platform for FPC, maintained by FPC developers? Uhhh, C'mon!
What CPU would it support? What OS? Would FPC developers create a new OS? Should support for all other CPU / OS combinations be dropped?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 28, 2020, 11:28:20 pm
I understand the building process itself requires effort because there are so many platforms, OSs and CPUs to support. In that case the release should be built for the most popular platforms only.

Usually it is targets like Debian and OS X that hold up. So that will never work.

It is also not entirely static, e.g. Joost built many linux targets using docker containers this time around. He is also building RPMs for a long time, and those are usually on time. My FreeBSD was usually also on time, but with the recent LLVM transitions I have massive problems (and only FreeBSD11 will be released)

One of the big problems of FPC release engineering is that it mostly stops (aside from my merging on mostly packages/) between releases.   And people don't start when a branch is made, but only when it is getting close to release time. Gearing up, figuring out the situation and fixing problems is what causes the delay, not routine work, combined with long delays to get feedback about the state. Keep in mind that a defective compiler is next to useless.

The more parts of the project are covered by continuous maintainers that also check and use the fixes branch continuously, then something might change. Something like Lacak does with fcl-db.

Just thinking up unachievable targets won't change anything, you must also come up with a manageable path to it.

Actually release building has become better (as in less risky) over the years, but the complexity of the project has gone up and the members time has gotten less, so I understand that users sometimes get the wrong impression.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: ASBzone on March 29, 2020, 04:54:47 am
The more parts of the project are covered by continuous maintainers that also check and use the fixes branch continuously, then something might change. Something like Lacak does with fcl-db.

Just thinking up unachievable targets won't change anything, you must also come up with a manageable path to it.

Actually release building has become better (as in less risky) over the years, but the complexity of the project has gone up and the members time has gotten less, so I understand that users sometimes get the wrong impression.

As a user of FPC and Lazarus, I would love to see somewhat more frequent releases.

As someone who has had to manage production environments for SaaS application developers, I am familiar with the complexity of the development lifecycle even in environments that are for-profit and reasonably staffed.    And this is a volunteer project.

So, I sympathize with both parties (users and developers) and try not to be dismissive of either sets of concerns.

As a user -- especially as I am largely a hobbyiest user, with basic development needs -- I maintain patience.   And I thank the devs for their work and dedication, and wish there were a way I could afford to fund this project.

And I feel for the community as well, which is eagerly waiting for releases (especially as some folks can only use official releases).

I'm thankful for FPCupDeluxe and the ability to use the Fixes branch more easily, which I started doing last year (or late 2018), and that has been helpful for me.

Good work team, and thanks also for a vibrant community.    Hopefully more time, people, processes or tools can be brought to bear on this issue in a helpful way.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: mm7 on March 29, 2020, 05:02:06 am
A rc1 will be released very shortly.   Final Release date is to be determined, but probably not that soon.

The difference between the unreleased FIXES_3_2 branch and real releases is mostly just packaging. I would simply use a FIXES3_2  snapshot if I were you.

Great! I think I'll try.

THANKS!

PS/ I read the thread... I think one of the problem is that the compiler, RTL and packages are all packaged together. May be if they were separated, at least packages, that may allow to make updates and maintenance of each part more agile?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: dbannon on March 29, 2020, 08:15:57 am
mm7, just in case its helpful, two things -

Firstly, my notes for installing 3.2 on Linux (if you don't use Linux, sorry, please ignore), This was how I installed FPC 3.2.0 on a beta U20.04 VM.

Download the source zip  and the system dependent binary tar.
wget ftp://ftp.freepascal.org/pub/fpc/snapshot/fixes/x86_64-linux/fpc-3.2.0-beta.x86_64-linux.tar.gz
//Has prebuilt binaries.
wget ftp://ftp.freepascal.org/pub/fpc/snapshot/fixes/source/fpc.zip
//Has the matching fpc source.
sudo -i
mkdir -p /usr/share/fpcsrc/3.2.0
cd /usr/share/fpcsrc/
unzip /home/dbannon/Downloads/fpc.zip
mv fpc 3.2.0
ln -s 3.2.0 default
apt install binutils make gcc subversion
cd /usr
tar xzf /home/dbannon/Downloads/fpc-3.2.0-beta.x86_64-linux.tar.gz
ln -s /usr/lib/fpc/3.2.0/ppcx64 /usr/bin/ppcx64
fpcmkcfg -d basepath=/usr/lib/fpc/3.2.0 > /etc/fpc.cfg


Secondly, are you sure you cannot use libssh ? In many cases is a a problem relating to Lazarus apps looking for an older version's name, libssh.so.1.0.0 and you have, probably, libssh.so.1.1.  Easy solution is to install the development package, that will make a symlink from libssh.so.1.1 to libssh.so and Lazarus apps do look for that.  Once found, it all works.

Davo
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: zamtmn on March 29, 2020, 08:26:12 am
To remove all questions fpc team need to keep the roadmap up to date, not as it is always he only misleading. Оr don't do it at all
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 29, 2020, 09:06:54 am

PS/ I read the thread... I think one of the problem is that the compiler, RTL and packages are all packaged together. May be if they were separated, at least packages, that may allow to make updates and maintenance of each part more agile?

Not really, as I said, the packages/ directory and the easier parts of the RTL are the main parts that *are* merged regularly, and is less complex.

The deeper RTL and the compiler are fairly closely linked.

Mostly the problem is stabilization of RTL and new compiler features on all targets and validating that together with adapting to changes in targets and their packaging that.

But most of that work has been done only this year, when the 3.2 branch was already 1.5 years old. As said this is not a continous process.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 29, 2020, 09:12:47 am
To remove all questions fpc team need to keep the roadmap up to date, not as it is always he only misleading. Оr don't do it at all

You can't update what you don't know
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: JuhaManninen on March 29, 2020, 11:13:19 am
Usually it is targets like Debian and OS X that hold up. So that will never work.

It is also not entirely static, e.g. Joost built many linux targets using docker containers this time around. He is also building RPMs for a long time, and those are usually on time. My FreeBSD was usually also on time, but with the recent LLVM transitions I have massive problems (and only FreeBSD11 will be released)
Is LLVM now a requirement? That complicates things surely.
About Unix / Linux release: I used to install FPC release using the FPC's provided install script when my distro didn't provide the latest version. It worked very well. It is more reliable than using external .deb or .rpm packages. They tend to break the package system, judging by my experience and by the number of related forum threads.
I guess the script can easily be ported to any Unix related system, regardless of CPU.
Distributions build their own packages after some SW is officially released. Arch and Manjaro do it quickly, most other distros have a longer delay, but the release announcement is the trigger always.
It means the release announcement is important even if FPC project does not provide installation packages!
It also affects Lazarus development. Lazarus trunk promises to compile with 2 most recent FPC releases. Now it means we must support ancient versions.

Stabilizing the compiler and RTL on every platform is a challenge, I understand.
I think the rules must be loosened, all platforms cannot be finished at the same time with the limited resources.

If you announced FPC 3.2 release today, Arch and Manjaro would build and provide packages within a week or so. Other distros would provide it in their next release. Many people would be happy and FPC maintainers would not need to build anything.
For Windows an installer is needed as Windows has no sophisticated installation package system.
Is an installer needed for MacOS necessarily? I don't know, I don't have a Mac.
For other platforms a simple install script suffices. Just one wish: add an uninstall option to it.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Otto on March 29, 2020, 11:18:54 am
Hello JuhaManninen.

I proposed this suggestion because having a reference platform managed by the same community would accelerate the release of the "stable" version of FPC for that platform. All of us developers could then verify the operation on the same common platform.
Otto, you misunderstood the issue badly. Different Linux distributions are not the issue here. Most Linux users have a x86-64 CPU. One single FPC release build covers them all. Remember, FPC is a compiler with only few external dependencies.
Copied from Overview in https://freepascal.org/  :
"Free Pascal is a 32, 64 and 16 bit professional Pascal compiler. It can target many processor architectures: Intel x86 (including 8086), AMD64/x86-64, PowerPC, PowerPC64, SPARC, ARM, AArch64, MIPS and the JVM. Supported operating systems include Linux, FreeBSD, Haiku, Mac OS X/iOS/iPhoneSimulator/Darwin, DOS (16 and 32 bit), Win32, Win64, WinCE, OS/2, MorphOS, Nintendo GBA, Nintendo DS, Nintendo Wii, Android, AIX and AROS. Additionally, support for the Motorola 68k architecture is available in the development versions."
[...]
A mutual misunderstanding is always possible.
It is also possible that what I have said is wrong: I certainly do not claim to be right.
I do not think I have misunderstood the thread argument, that I do not know the basic differences between the various OSs, that I do not know the differences between FPC and Lazarus/LCL; It is, however, possible that I did not express my thoughts correctly on this subject.
I will try to rephrase what was said earlier.

If many developers, especially inexperienced, had the ability to easily verify the operation of FPC using a common OS with similar configurations, it would be easier to spot bugs in the FPC. This, mainly, because there would be fewer variables to check.

Microsoft has released a virtualized development environment (https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/) where both newbies and experienced programmers could have a common development environment, with the main purpose of detecting bugs. Unfortunately, I have no data to indicate whether this choice was effective or not.

Quote
[...]
Maybe you confuse FPC with Lazarus / LCL which must deal with GUI libraries.
Creating a reference platform for FPC, maintained by FPC developers? Uhhh, C'mon!
What CPU would it support? What OS? Would FPC developers create a new OS? Should support for all other CPU / OS combinations be dropped?
I have never said that support for other platforms should be removed, the purpose would be to have a test environment ready to use and already configured to be used just for this purpose.
Some Linux distributions have already provided tools that can be used to achieve what I have proposed.

As I said before mine is just a suggestion.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on March 29, 2020, 12:51:56 pm
If you announced FPC 3.2 release today, Arch and Manjaro would build and provide packages within a week or so. Other distros would provide it in their next release. Many people would be happy and FPC maintainers would not need to build anything.

I for one don't rely on my distro and always use the releases we provide on the homepage.

Is an installer needed for MacOS necessarily? I don't know, I don't have a Mac.

Yes, it is, because that is what macOS users expect. Also the macOS release needs to be prepared especially, because the binaries need to be converted to fat binaries. And no, saying that i386 or PowerPC are deprecated and no longer required is no reason not to provide users a good installation experience. Only because Lazarus dropped powerpc-darwin from their official releases does not mean that FPC will as well.

And to come back to release management: preparing 3.2 has taken an unusal amount of time as there was a time where the branch has essentially been barren for quite some time without any real reason. So if we avoid that in the future all should be good again. And more frequent major releases than once every two years is unrealistic. Trunk may appear rather stable and many people might use it on a daily bases, but it's not stable enough for a release. Just as an example in current trunk TLS on Linux as well as Posix Exception Handling are not fully stable yet and I am not yet happy with the RTTI changes I did for the attributes. Releasing that - especially the RTTI changes - would more or less cement them in stone due to our backwards compatibility policy. That is why we branch rather early (relative to the release happening) and curate that branch to be release worthy while more risky development can continue in trunk.
TL;DR: releasing trunk more often will result in more work for us, both regarding release management and handling backwards compatibility.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 29, 2020, 02:20:03 pm
And to come back to release management: preparing 3.2 has taken an unusal amount of time as there was a time where the branch has essentially been barren for quite some time without any real reason. So if we avoid that in the future all should be good again. And more frequent major releases than once every two years is unrealistic.

Note that 3.0 the fixes branch was also quite old on release. But yes, the problem is not the plan, but the fact that there are delays in executing it. Changing the plan won't fix that.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: soerensen3 on March 29, 2020, 03:19:42 pm
But if no one knows the plan than everyone makes their own plan which is fine but then no one can jump in to help.

Personally I like a fixed released cylce like twice a year. Then every fixes that are ready can be included even if it is just a few. Who cares, version numbers don't cost anything.

I have to admit I don't know what involves publishing a release but I'm sure a lot can be automated for most platforms. I don''t know if docker is suitable here because it is only available for a few platforms and you can not make a Windows container from linux. Maybe a VM makes more sense here, because qemu already supports a lot of platforms. Vagrant could be used here which works a lot like docker but uses VM's. There is already a tests folder in the fpcsrc directory. I don't know if it is done for every syntax feature but if that is the case every change could be tested on multiple platforms automatically on a build system. Some of this might already be the case?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 29, 2020, 04:03:10 pm
But if no one knows the plan than everyone makes their own plan which is fine but then no one can jump in to help.

I assume you know the release engineering related wiki pages by heart and have done several attempts at building releases? All stuff to make docs and releases for windows and Linux is open, you can just start.

But that is fairly pointless since it is not the plan points that cause the delays but the feedback loops

Code: Pascal  [Select][+][-]
  1. while (issuesremaining+issuesnew)>0 do
  2.    begin
  3.       put_new_issues_in_queue ;
  4.       mark_fixed_issues;
  5.    end;
  6.  

Such moments are for all major points, the initial fixes release branch, the branch of a RC, the building of the releases. It's these that cause the holdups.

Personally I like a fixed released cylce like twice a year. Then every fixes that are ready can be included even if it is just a few. Who cares, version numbers don't cost anything.

I also like 50 more core committers and a multi-million dollar sponsorship. That is not likely to happen either.

And it is not just getting releases out of the door. Release quality and uniformity is important for support and triaging bugs.

You can't just tag any random point as a release, and go with it, that is pointless.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: soerensen3 on March 29, 2020, 08:12:54 pm
But if no one knows the plan than everyone makes their own plan which is fine but then no one can jump in to help.

I assume you know the release engineering related wiki pages by heart and have done several attempts at building releases? All stuff to make docs and releases for windows and Linux is open, you can just start.
No, like I said I'm not yet into it that much. I'm trying to understand it though. To be honest, I didn't even know the page existed. Thanks for pointing it out. I put a suggestion in the discussion page to add a link on the main page under community participation.
This is also looks interesting: https://wiki.lazarus.freepascal.org/Release_Template
Quote
But that is fairly pointless since it is not the plan points that cause the delays but the feedback loops

Code: Pascal  [Select][+][-]
  1. while (issuesremaining+issuesnew)>0 do
  2.    begin
  3.       put_new_issues_in_queue ;
  4.       mark_fixed_issues;
  5.    end;
  6.  

Such moments are for all major points, the initial fixes release branch, the branch of a RC, the building of the releases. It's these that cause the holdups.

What do you mean by feedback loop? The several testing phases mentioned here? (https://wiki.lazarus.freepascal.org/Release_Template)
Where are the problems exactly? Is there anything someone new could help? Also there will always be new issues but not all of them are targeted for fpc 3.2, right? So right now we are at the last line of your pseudo code since some time now? What is going on now? Are we in the testing phase (https://wiki.lazarus.freepascal.org/Testers_3.2.0)?

What I meant with transparent in my other post is for example a page like this. https://qgis.org/en/site/getinvolved/development/roadmap.html?highlight=release#release-schedule
I know there are more developers for QGIS and they have a lot more releases per year but that it is not the point.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 29, 2020, 08:35:37 pm
No, like I said I'm not yet into it that much. I'm trying to understand it though. To be honest, I didn't even know the page existed. Thanks for pointing it out. I put a suggestion in the discussion page to add a link on the main page under community participation.

This is also looks interesting: https://wiki.lazarus.freepascal.org/Release_Template

Also look on related pages for older releases for the links in the RC1 announcement.


Quote
Quote
Such moments are for all major points, the initial fixes release branch, the branch of a RC, the building of the releases. It's these that cause the holdups.

What do you mean by feedback loop? The several testing phases mentioned here?

To make the decision to start executing the various routine options, like the "release template".  Points 3,5,10 etc are all consensus points.

Quote
Where are the problems exactly? Is there anything someone new could help?

Yes and no. You can't really speed this up, since most issues are limited by knowledge that only a few people have.

BUT one of the big problems is that these people ALSO have to dive into the current status of many issues etc when they go into "release mode".

Having trusted lieutenants that keep an eye on certain subdomains of the project helps tremendously here. And not just there. As said Lacak (and before him Joost) have proven this for e.g. the database libraries.

Such lieutenants simply follow every development across all branches related to their subject and are aware of issues, bugs in previous releases etc. The project has grown immensely and it is sometimes hard for one person to keep overview.   It is a much lighter workload than become (hard)core developers, but it is still a very valuable role.

The gap between users and (core) developers is simply too large, and to change anything, that needs to be bridged with inbetween people.

Quote
What I meant with transparent in my other post is for example a page like this. https://qgis.org/en/site/getinvolved/development/roadmap.html?highlight=release#release-schedule
I know there are more developers for QGIS and they have a lot more releases per year but that it is not the point.

Do they do binary releases and support them? Or do they leave that to 3rd party builders?

And compilers are particularly painful because a small bug can make a release worthless. To give you a perspective on that, FPC 3.0.0 was the FIRST .0 release in history that Lazarus adopted, until then they chose to stay with the stable old, and all FPC release managers felt they had done a lot of work in vain.

Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: mm7 on March 30, 2020, 02:57:17 pm
If all tests (for a given platform) run successfully is it not enough to say that it is ready (for the given platform)? 
There are may be bugs for some unusual situations not included into tests. Should they stop the release? Or should new test cases be created and added to tests?
I think if all tests are fine, RC1 can be issued for some period. If new errors reported, their test cases possibly should be included into test suite.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 30, 2020, 03:02:07 pm
If all tests (for a given platform) run successfully is it not enough to say that it is ready (for the given platform)? 

No. testing and bugreporting on trunk is simply not enough for that to be watertight. 

Quote
There are may be bugs for some unusual situations not included into tests. Should they stop the release? Or should new test cases be created and added to tests?

The things are already deemed critical, so this doesn't apply.   It mostly comes from the various devels memory, like reports for critical issues on their todo lists, or reported on the mail.

Quote
I think if all tests are fine, RC1 can be issued for some period. If new errors reported, their test cases possibly should be included into test suite.

That would be pointless. Anybody can make random releases, since most stuff is online. Lazarus even provides builds based on snapshot. If the release isn't solid, why do this?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: mm7 on March 30, 2020, 07:22:38 pm
I see RC1 is available! Excellent news!

What I mean, if you got an issue (email or report) from someone, to fix it you need to test it.
At that time a test case can be created and added to tests suite.
And if developers runs all tests after their changes added, it will show if there was an impact in other places.

What currently is a criteria for "solid / not solid"?
I thought that successful run of the test suit is for that, but you are saying it is not "watertight" so what is a purpose of it?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on March 31, 2020, 09:42:01 am
What I mean, if you got an issue (email or report) from someone, to fix it you need to test it.
At that time a test case can be created and added to tests suite.
And if developers runs all tests after their changes added, it will show if there was an impact in other places.

That is already done this way.

Quote
What currently is a criteria for "solid / not solid"?
I thought that successful run of the test suit is for that, but you are saying it is not "watertight" so what is a purpose of it?

The purpose of the testsuite is to detect regressions and check that features that were implemented work correctly. However users might have more complex code and not everything can be caught in the testsuite (e.g. some obscure edgecase that only occurs in big applications like Lazarus). Then there is also the point that when a release branch is done it is some time until it is released (normally it's between half a year and a year, 3.2 was a bit of an outlier here), because that gives people time to report further bugs against that release branch. These fixes are first fixed in trunk and then merged back. Not everything is merged back however (e.g. new features are not), so it needs to be curated and tested again. Then there is also the release infrastructure (building the installers etc.) which is only exercised when building a release so more often than not fixes are necessary there as well.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: marcov on March 31, 2020, 10:15:27 am
I see RC1 is available! Excellent news!

What I mean, if you got an issue (email or report) from someone, to fix it you need to test it.

For that you don't need releases, just more users paying some attention to development and stable branches (fpcdeluxe is great for that btw)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 16, 2020, 08:16:25 pm
Извиняюсь что на русском, но постараюсь более-менее понятно для всех объяснить.

Linux

CodeTyphon or GetLazarus + fpc 3.3.1 + ZenGL
Error: RunError(211)

fpc 3.3.1 -> fpc 3.0.4 not Error!!!!

где-то намудрили! Хотели исправить, но видимо что-то другое сделали вместо исправлений. Я надеюсь исправят и мне не придётся на LInux пользоваться разными версиями fpc.

на  Windows ошибок нет (not error).

Благодарю за внимание.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 17, 2020, 01:04:21 pm
English, please.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on May 19, 2020, 12:27:18 am
Извиняюсь что на русском, но постараюсь более-менее понятно для всех объяснить.

Linux

CodeTyphon or GetLazarus + fpc 3.3.1 + ZenGL
Error: RunError(211)

fpc 3.3.1 -> fpc 3.0.4 not Error!!!!

где-то намудрили! Хотели исправить, но видимо что-то другое сделали вместо исправлений. Я надеюсь исправят и мне не придётся на LInux пользоваться разными версиями fpc.

на  Windows ошибок нет (not error).

Благодарю за внимание.

Postaraysa ispolzovat fpcupdeluxe dla proezvedinya portativni versiyi FPC i Lazarus.
Zabud pro CodeTyphon et GetLazarus.
Ispolzuy fpcupdeluxe : https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases (https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases).

Udatchi.

Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 19, 2020, 09:00:16 am
Postaraysa ispolzovat fpcupdeluxe dla proezvedinya portativni versiyi FPC i Lazarus.
Zabud pro CodeTyphon et GetLazarus.
Ispolzuy fpcupdeluxe : https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases (https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases).

Udatchi.

English, please.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 19, 2020, 02:38:56 pm
BSaidus, благодарю, но это не решает проблемы. Проблема видимо из-за разных сборок как FPC, так и Lazarus.
больше помогает полная очистка и заново переустановка Lazarus и FPC.

PascalDragon, та часть которая показывает ошибку, на английском.
Linux, при использовании FPC 3.3.1 + CodeTyphon (или GetLazarus) + ZenGL выдаётся ошибка
Error: RunError(211)

При таких же данных, только используя FPC 3.0.4 ошибок не выдаётся.

На Windows, оказывается, тоже есть эта ошибка, только там создаётся файл рабочий, а вот из Lazarus не даёт его запустить и невозможно запустить процесс отладки.

Честно говоря, мне уже надоели эти танцы с бубном вокруг Lazarus и FPC, хоть самому занимайся разработкой.

Google translate (english):
BSaidus, thank you, but this does not solve the problem. The problem is probably due to different builds of both FPC and Lazarus.
The full cleaning and reinstallation of Lazarus and FPC helps more.

PascalDragon, the part that shows the error is in English.
Linux, using FPC 3.3.1 + CodeTyphon (or GetLazarus) + ZenGL error
Error: RunError (211)

With the same data, only using FPC 3.0.4 errors are not thrown.

On Windows, it turns out that there is also this error, only a working file is created there, but from Lazarus it does not start it and it is impossible to start the debugging process.

Honestly, I’m already tired of these dances with a tambourine around Lazarus and FPC, at least do the development yourself.

Извиняюсь, даже не подгонял перевод, надеюсь понятно.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on May 19, 2020, 03:48:27 pm
BSaidus, благодарю, но это не решает проблемы. Проблема видимо из-за разных сборок как FPC, так и Lazarus.
больше помогает полная очистка и заново переустановка Lazarus и FPC.

PascalDragon, та часть которая показывает ошибку, на английском.
Linux, при использовании FPC 3.3.1 + CodeTyphon (или GetLazarus) + ZenGL выдаётся ошибка
Error: RunError(211)

При таких же данных, только используя FPC 3.0.4 ошибок не выдаётся.

На Windows, оказывается, тоже есть эта ошибка, только там создаётся файл рабочий, а вот из Lazarus не даёт его запустить и невозможно запустить процесс отладки.

Честно говоря, мне уже надоели эти танцы с бубном вокруг Lazarus и FPC, хоть самому занимайся разработкой.

Google translate (english):
BSaidus, thank you, but this does not solve the problem. The problem is probably due to different builds of both FPC and Lazarus.
The full cleaning and reinstallation of Lazarus and FPC helps more.

PascalDragon, the part that shows the error is in English.
Linux, using FPC 3.3.1 + CodeTyphon (or GetLazarus) + ZenGL error
Error: RunError (211)

With the same data, only using FPC 3.0.4 errors are not thrown.

On Windows, it turns out that there is also this error, only a working file is created there, but from Lazarus it does not start it and it is impossible to start the debugging process.

Honestly, I’m already tired of these dances with a tambourine around Lazarus and FPC, at least do the development yourself.

Извиняюсь, даже не подгонял перевод, надеюсь понятно.

Поэтому я приложил использовать fpcupdeluxe .
Тогда сможешь использовать разные версии fpc и Lazarus в портативному состояние.
О packages можешь копировать из codetyphon .

Доверь меня, fpcupdeluxe это лучше способ работает спокоен
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 19, 2020, 04:40:17 pm
Google translate (english):
BSaidus, thank you, but this does not solve the problem. The problem is probably due to different builds of both FPC and Lazarus.
The full cleaning and reinstallation of Lazarus and FPC helps more.

PascalDragon, the part that shows the error is in English.
Linux, using FPC 3.3.1 + CodeTyphon (or GetLazarus) + ZenGL error
Error: RunError (211)

With the same data, only using FPC 3.0.4 errors are not thrown.

On Windows, it turns out that there is also this error, only a working file is created there, but from Lazarus it does not start it and it is impossible to start the debugging process.

Honestly, I’m already tired of these dances with a tambourine around Lazarus and FPC, at least do the development yourself.

You did not provide any information about what exactly you're doing. Just saying "RunError (211)" is like saying "My car is broken".

Поэтому я приложил использовать fpcupdeluxe .
Тогда сможешь использовать разные версии fpc и Lazarus в портативному состояние.
О packages можешь копировать из codetyphon .

Доверь меня, fpcupdeluxe это лучше способ работает спокоен

This is the general part of the forum, so replies only in English or at least with English translation included. Otherwise use the Russian forum, please.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: BSaidus on May 19, 2020, 05:04:25 pm
This is the general part of the forum, so replies only in English or at least with English translation included. Otherwise use the Russian forum, please.

OK  :P!!
I've just recommande for it to use fpcupdeluxe to create a portable installation of fpc/lazarus in different versions flavour.
 ::)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 06:20:23 am

You did not provide any information about what exactly you're doing. Just saying "RunError (211)" is like saying "My car is broken".

Если бы Lazarus выдал больше информации при попытке запустить программу на Linux, я бы предоставил информации больше. Но ни какой информации Lazarus не предоставил, лишь: "Error: RunError(211)".
Какую ещё информацию я могу приложить?

Google translate:
If Lazarus would provide more information when trying to run a program on Linux, I would provide more information. But Lazarus did not provide any information, only: "Error: RunError (211)".
What other information can I attach?

Мне лично приходится разбираться для того чтоб запустить то или иное приложение сделанное на паскале, это далеко не первый раз! Я переустанавливал Lazarus несколько раз, не пробовал ещё просто из под FP работать, надо будет попробовать и уже более точно смогу сказать, виноваты здесь Lazarus или FPC.

Google translate:
I personally have to understand in order to run a particular application made in Pascal, this is not the first time! I reinstalled Lazarus several times, haven’t tried just to work from under FP, I’ll have to try and can more accurately say whether Lazarus or FPC are to blame.

Я разбираюсь с библиотекой ZenGL и дорабатываю её, но мало того что сама библиотека не доработана, так ещё приходиться разбираться по какой причине не запускаются те или иные приложения!!! >:(

FPCUPDELUXE - не решение проблемы!!!! Проверено!!!

Google translate:
I understand sort it out the ZenGL library and modify it, but not only the library itself is not finalized, I also have to understand for what reason these or those applications do not start !!! >:(

FPCUPDELUXE - not a solution to the problem !!!! Checked !!!
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 20, 2020, 09:21:29 am
Google translate:
If Lazarus would provide more information when trying to run a program on Linux, I would provide more information. But Lazarus did not provide any information, only: "Error: RunError (211)".
What other information can I attach?

You did not provide any information on what you are doing. Did you create a GUI application project and run that? Did you create a simple application project and run that? Is it an older project you have? Details, please. Without that the problem space is huge.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 09:39:44 am
Изначально вся информация была предоставлена!!! Кроме как создано приложение без LCL.

Система - Linux (но видимо это есть и в Windows, не обращал изначально внимания)
FPC = 3.3.1 (в Windows при FPC = 3.2 те же проблемы)
IDE = CodeTyphon или GetLazarus, любой другой Lazarus!!! Проверено на многих версиях.
разработка в Linux - Linux, в Windows - Windows (без разницы 32 или 64)
используемая библиотека - ZenGL (можно проверить так же версию 3.12 от Andru) текущая версия 3.20

результат компиляции = ошибка (приложение не создаётся)

если использовать FPC = 3.0.4
то результат компиляции = нет ошибки, приложение создано, можно запускать, можно отлаживать!

попробую исключить включаемые модули, отпишусь, если будет результат.

Google translate:
Initially, all information was provided !!! Except how the application was created without LCL.

The system is Linux (but apparently this is also on Windows, it did not initially pay attention)
FPC = 3.3.1 (on Windows with FPC = 3.2 the same problems)
IDE = CodeTyphon or GetLazarus, any other Lazarus !!! Tested on many versions.
development on Linux - Linux, on Windows - Windows (no difference 32 or 64)
the library used is ZenGL (you can also check version 3.12 from Andru) current version 3.20

compilation result = error (application is not created)

if to use FPC = 3.0.4
then the compilation result = no error, the application is created, you can run, you can debug!

I'll try to exclude plug-ins, unsubscribe if there is a result.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 20, 2020, 09:44:53 am
Google translate:
Initially, all information was provided !!! Except how the application was created without LCL.

The system is Linux (but apparently this is also on Windows, it did not initially pay attention)
FPC = 3.3.1 (on Windows with FPC = 3.2 the same problems)
IDE = CodeTyphon or GetLazarus, any other Lazarus !!! Tested on many versions.
development on Linux - Linux, on Windows - Windows (no difference 32 or 64)
the library used is ZenGL (you can also check version 3.12 from Andru) current version 3.20

compilation result = error (application is not created)

if to use FPC = 3.0.4
then the compilation result = no error, the application is created, you can run, you can debug!

I'll try to exclude plug-ins, unsubscribe if there is a result.

Now that there is new information: that the application is not created. Previously you only wrote that there is a run error. Do you get a compile error? Does the IDE say that it was successful and it's simply the binary that is missing? Can you compile an empty project?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 09:58:35 am
Я извиняюсь, но давайте расставим всё по местам!
Не надо держать меня за новичка. У меня уже и так нервов на всё не хватает.

при FPC=3.3.1 не компилируется в Linux! (RunError(211));
при FPC=3.3.1 компилируется в Windows! Не запускается! Без всяких сообщений со стороны Lazarus!

При FPC=3.0.4 компилируется и запускается и на Linux  и на Windows!!!
-----------------------------------

translate:
I'm sorry, but let's put everything in its place!
No need to keep me new to me. I already have enough nerves for everything.

with FPC = 3.3.1 it does not compile on Linux! (RunError (211));
with FPC = 3.3.1 compiles on Windows! Does not start! Without any message from Lazarus!

With FPC = 3.0.4, it compiles and runs on both Linux and Windows !!!
----------------------------------

Большая просьба подождать до тестов без включаемых в ZenGL библиотек, возможно смогу дать более точные данные.
------------------------------------

translate:
The big request is to wait until the tests without the libraries included in ZenGL, maybe I can give more accurate data.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 10:03:01 am
ZenGL-приложение нельзя сделать "пустым" - это изначально библиотека разработки. В обратном случае, я бы и написал, что не создаются приложения вообще. Все приложения!

translate:
A ZenGL application cannot be made "empty" - it is initially a development library. Otherwise, I would write that applications are not created at all. All applications!
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on May 20, 2020, 10:13:04 am
So the issue is with ZenGL? and only ZenGL?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 10:35:13 am
Да, вы можете считать, что проблема только в ZenGL. Но я вам так же хочу напомнить! Что ZenGL использует прямые (нативные) библиотечные функции для работы с операционной системой. И те проблемы, что сейчас выползают в ZenGL вылезут позже в ещё более худшем варианте.

И если это не проблема включаемых, уже скомпилированных, библиотек, то процентов на 70 вы не раз с этой проблемой столкнётесь, но будете её игнорировать, а людям проще будет уйти на другой язык программирования, чем пытаться до кого-то достучаться.

Хотя... это ваше дело, можете не рассматривать данную проблему.

Ещё раз повторюсь, если будет проблема с включаемыми библиотеками - я отпишусь. И если будет проблема не в них - так же отпишусь!

Я просто надеялся, что вы уже сталкивались с подобной проблемой.

translate:
Yes, you can assume that the problem is only in ZenGL. But I also want to remind you! That ZenGL uses direct (native) library functions to work with the operating system. And those problems that are now creeping out in ZenGL will come out later in an even worse version.

And if this is not a problem of included libraries that have already been compiled, then 70 percent more than once you will encounter this problem, but you will ignore it, and it will be easier for people to leave for a different programming language than to try to reach out to someone.

Although ... this is your business, you can not consider this problem.

Once again, if there is a problem with included libraries, I will unsubscribe. And if there is a problem not in them - I will also unsubscribe!

I was just hoping that you were already facing a similar problem.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Thaddy on May 20, 2020, 10:46:50 am
I was just hoping that you were already facing a similar problem.
No, because I do not use ZenGL, but I am always prepared to run tests for it.
Note some of the finer details get lost in translation, as my wife (Lithuanian, fluent in Russian) explained.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 12:01:10 pm
Thaddy, я был бы благодарен! Потому что я даже не знаю с какой стороны браться за всё это. Лезть куда-то в глубину компилятора, не зная изначальных кодов... это ещё полгода изучения...

ZenGL с демками есть на сайте ZenGL версия 3.12, или на русскоязычном форуме версия 3.20.

Google translate:
I would be thankful! Because I don’t even know which side to take on all this. Climbing somewhere deep into the compiler without knowing the source codes ... this is another six months of study ...

ZenGL with demos is on the ZenGL website version 3.12, or on the Russian-language forum version 3.20.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 20, 2020, 01:23:49 pm
I was just hoping that you were already facing a similar problem.
No, because I do not use ZenGL, but I am always prepared to run tests for it.
Note some of the finer details get lost in translation, as my wife (Lithuanian, fluent in Russian) explained.

Then I'll let you try to find out what is going wrong.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Martin_fr on May 20, 2020, 01:54:24 pm
If Lazarus would provide more information when trying to run a program on Linux, I would provide more information. But Lazarus did not provide any information, only: "Error: RunError (211)".
What other information can I attach?
https://www.freepascal.org/docs-html/user/userap4.html
 "Call to abstract method"

Something calls none existing code.

What does the stack window show?

Quote
it does not compile on Linux
Not compile? or not run? or even it fails when run?
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 20, 2020, 07:17:22 pm
Не компилируется и не создаёт файл.
Not compile and not create.


Я не могу даже отладку запустить, чтоб узнать в чём дело.
translate:
I can’t even start debugging to find out what’s the matter.

https://www.freepascal.org/docs-html/user/userap4.html
 "Call to abstract method"

благодарю, но к сожалению это не приближает к ответу. Всё равно в "угадайку" надо играть, чтоб понять в чём причина.

translate:
Thank you, but unfortunately this does not bring us closer to the answer. All the same, you must play the "guessing game" in order to understand the reason.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on May 21, 2020, 02:39:05 pm
I've tried to reproduce your problem on both x86_64-linux as well as x86_64-win64 with both FPC 3.0.4 and FPC 3.3.1 as well as Lazarus 2.0.6 and 2.1 however the ZenGL demos work without any problem for me. Can you try whether the demos work for you as well? (you'll need to copy the ZenGL library to the output directory of the demos to use it)
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on May 22, 2020, 10:27:01 am
У меня демонстрационные примеры так же не запускаются. Проблемы я не нашёл.
Запускаются при Lazarus 2.0.0 + FPC 3.0.4.
Используя FPC 3.3.1 появляются ошибки, проект может скомпилироваться но не запускается, в Lazarus выдаёт ошибку.

Благодарю за то что проверили работоспособность! Извиняюсь за ваше потраченное время!

Буду искать проблемы у себя. Если выясню в чём дело отпишусь.

translate:
My demos also do not start. I did not find a problem.
Run with Lazarus 2.0.0 + FPC 3.0.4.
Using FPC 3.3.1 errors appear, the project may compile but does not start, it generates an error in Lazarus.

Thank you for checking the performance! I apologize for your time!

I will look for problems at home. If I find out what's the matter, unsubscribe.

forgot, Linux.
on Windows, this problem is solved
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on July 14, 2020, 09:31:36 pm
sorry for the long answer.

В общем проблема не совсем понятна. Если я использую Typhon или GetLazarus то проблема есть (но раньше не было), я видимо что-то установил, и после этого появились проблемы.
После установки стандартной версии Lazarus из Synaptic всё запустилось нормально.

Так же я не знаю, проблема это или нет, но очень не удобно держать несколько разных версий Lazarus для компилирование под разные среды. Под Windows (как и под Линукс)  я просто меняю компилятор, но если в Windows это не вызывает проблем, то под Linux это может вызвать разнообразные ошибки при смене компилятора.

Если это так и должно быть, тогда вопрос снимается.

Google translate: In general, the problem is not entirely clear. If I use Typhon or GetLazarus, then there is a problem (but it didn’t exist before), I apparently installed something, and then problems appeared.
After installing the standard version of Lazarus from Synaptic, everything started fine.

I also don’t know if this is a problem or not, but it’s very inconvenient to keep several different versions of Lazarus for compiling under different environments. Under Windows (as well as under Linux), I just change the compiler, but if it does not cause problems on Windows, then under Linux it can cause a variety of errors when changing the compiler.

If this is as it should be, then the question is removed.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on August 11, 2020, 06:13:33 am
When using native methods and critical sections, "cthreads" should be set at the very beginning (very first) module. Otherwise, a conflict arises, accompanied by (RunError 211).

in FPC 3.0.4 - it was not necessary.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on August 11, 2020, 09:22:07 am
When using native methods and critical sections, "cthreads" should be set at the very beginning (very first) module. Otherwise, a conflict arises, accompanied by (RunError 211).

in FPC 3.0.4 - it was not necessary.

What platform? Only on Windows it isn't necessary, but on *nix platforms it has always been necessary.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: Seenkao on August 11, 2020, 05:08:27 pm
What platform?

All unix.

but on *nix platforms it has always been necessary.

No, in FPC <= 3.0.4, there was no need to use it at the beginning (in the launched module), it was enough to indicate in the module which one it is using.

(Нет, в FPC <= 3.0.4 не было необходимости использовать в начале (в запускаемом модуле), достаточно было указать в модуле его используещего.)

my fault,
I'm sorry.
Title: Re: FPC 3.2.x series branched, trunk update to 3.3.1
Post by: PascalDragon on August 12, 2020, 09:26:12 am
but on *nix platforms it has always been necessary.

No, in FPC <= 3.0.4, there was no need to use it at the beginning (in the launched module), it was enough to indicate in the module which one it is using.

That might have worked by accident, but it was always assumed that the cthreads unit is only used in the main project file and as "left-most" as possible, that is because the unit sets up a global thread manager. If you now use a different unit before that which creates a thread or critical section or event or whatever then this will fail. Maybe you had a unit that didn't create such a construct in 3.0.4, but it does now in 3.2.0.

It is documented here (https://www.freepascal.org/docs-html/current/prog/progse43.html#x232-24600010.1) (and that has been there at least since it was imported into SVN 15 years ago):

Quote
For linux (and other Unixes), the C thread manager can be enabled by inserting the cthreads unit in the program’s unit clause. Without this, threading programs will give an error when started. It is imperative that the unit be inserted as early in the uses clause as possible.
TinyPortal © 2005-2018