Recent

Author Topic: Lazarus Release Candidate 1 of 1.8  (Read 73366 times)

wp

  • Hero Member
  • *****
  • Posts: 11830
Re: Lazarus Release Canditate 1 of 1.8
« Reply #15 on: May 19, 2017, 10:08:57 am »
Lamenting and complaining about broken things without saying what is broken is not helpful at all. To me, the 1.8RC1 is working perfectly.

Zoran

  • Hero Member
  • *****
  • Posts: 1824
    • http://wiki.lazarus.freepascal.org/User:Zoran
Re: Lazarus Release Canditate 1 of 1.8
« Reply #16 on: May 19, 2017, 10:31:33 am »
It's a beta. I think that usually a RC is almost usable so that people can actually use it much and find problems that are not so obvious. Here for me it's very obvious: things are broken and not working. At the beginning it even did not compile.

Maybe it's just bad luck. This happens sometimes, everyone thinks it's okay while a single person have many problems.

Okay, we feel sorry for you. And now what? Should we start guessing here what these are?
You just don't tell us what things are broken. What is the point?

Did you report these regressions on bugtracker?

Thaddy

  • Hero Member
  • *****
  • Posts: 14162
  • Probably until I exterminate Putin.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #17 on: May 19, 2017, 10:52:45 am »
It would be helpful is BBasile simply lists his problems in more detail instead of simply stating "problems".
Specialize a type, not a var.

knuckles

  • Full Member
  • ***
  • Posts: 122
Re: Lazarus Release Canditate 1 of 1.8
« Reply #18 on: May 19, 2017, 01:04:38 pm »
I have a suggestion, well actually it was this post http://forum.lazarus.freepascal.org/index.php/topic,35821.msg237572.html#msg237572 by Akira1364 that gave the idea.

The default margin of 80 in the code editor is too narrow, I actually think something like 110 would be more better. I know this can come down to personal choice and I don't even know if this breaks any coding style guidelines but I think Delphi and Lazarus should rethink the default size of the margins to something more suiting to modern times.

guest58172

  • Guest
Re: Lazarus Release Canditate 1 of 1.8
« Reply #19 on: May 19, 2017, 01:17:55 pm »
It would be helpful is BBasile simply lists his problems in more detail instead of simply stating "problems".

Done at the right place.

guest58172

  • Guest
Re: Lazarus Release Canditate 1 of 1.8
« Reply #20 on: May 19, 2017, 01:32:39 pm »
Example of something stupid that breaks code is this commit

https://github.com/alrieckert/lazarus/commit/2e1e616eec8f9becc24fe547546cdafaf5f1c7d7

changes the signature of an event. The parameter added is not useful at all, it's just an helper. For things like this the procedure to follow is to deprecate the old event and add another one, not to change it like this, without transition.

This is not the worst. The worst is when a fix is merged to fix an example but breaks a real application.

Thaddy

  • Hero Member
  • *****
  • Posts: 14162
  • Probably until I exterminate Putin.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #21 on: May 19, 2017, 01:55:21 pm »
It's not the signature. But it is annoying that the default value is somehow lost or forgotten (or the method was not simply overloaded, but that won't work there). I can agree with you: that's a change for the worse in so far as that it needs fixing by inserting a default value. Somebody was not thinking at that moment when he wrote that.

Leaves some more issues plz: 2 to be precise?
« Last Edit: May 19, 2017, 01:57:45 pm by Thaddy »
Specialize a type, not a var.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #22 on: May 19, 2017, 02:47:27 pm »
Example of something stupid that breaks code is this commit

https://github.com/alrieckert/lazarus/commit/2e1e616eec8f9becc24fe547546cdafaf5f1c7d7

changes the signature of an event. The parameter added is not useful at all, it's just an helper. For things like this the procedure to follow is to deprecate the old event and add another one, not to change it like this, without transition.
True, it is a breaking change from me. The change in code is very easy though, just add an empty string as property name. Also the PropName parameter is kind of logical because the event is about properties.
Is another event needed? Nobody complained during over a year, I thought it is not used much outside Lazarus IDE.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Thaddy

  • Hero Member
  • *****
  • Posts: 14162
  • Probably until I exterminate Putin.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #23 on: May 19, 2017, 04:39:34 pm »
just add an empty string as property name.
Should be done by the maintainer. NOT by users of that particular code.
If that can not be done that code should be reversed, because it handles something in the mind of the programmer, not an issue at hand.

That's bad coding. Because it is bad design. And break things where it should not break things. Fix it or reverse it. <Hmm.. usual, and hey it's Friday... still >:D >:D >:Db mode on>
Specialize a type, not a var.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #24 on: May 19, 2017, 05:04:40 pm »
I will look at the event issue later today and try to make it backwards compatible.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Thaddy

  • Hero Member
  • *****
  • Posts: 14162
  • Probably until I exterminate Putin.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #25 on: May 19, 2017, 06:32:44 pm »
Juha, it is a hell of a good release candidate. It will be a good release... ;)
Specialize a type, not a var.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus Release Canditate 1 of 1.8
« Reply #26 on: May 19, 2017, 08:14:30 pm »
Juha, it is a hell of a good release candidate. It will be a good release... ;)
Wow, thanks! :)

I fixed the event issue in r55015. Now the signature of event TPropHookModified is restored. A new event TPropHookModifiedWithName is added.
It will be backported to 1.8 soon.

There are some nasty regressions, like this one:
  https://bugs.freepascal.org/view.php?id=31547
"You can't paste text copied from other Lazarus instance"
It was caused by removing an extra null from GTK2 clipboard buffer. Apparently it is not the right place to do it but I don't know how to fix it properly.

There is also a GTK2 related freezing but it is now solved using a workaround.
  https://bugs.freepascal.org/view.php?id=31138

What other regressions are there?
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

guest58172

  • Guest
Re: Lazarus Release Canditate 1 of 1.8
« Reply #27 on: May 19, 2017, 08:33:50 pm »
The revision that "fixed" reloading of layouts in AnchorDocking miniIDE example is a huge PITA for Coedit, this is my biggest concern actually. You should see the issue in the recently modified.

guest58172

  • Guest

jc99

  • Hero Member
  • *****
  • Posts: 553
    • My private Site
Re: Lazarus Release Canditate 1 of 1.8
« Reply #29 on: May 20, 2017, 01:52:02 pm »
Hi, i don't know it this is a new one, I just tested 1.8rc1 on a bunch of my projects and i stumbled across:
Code: Text  [Select][+][-]
  1. Projekt kompilieren, Modus: Debug, Ziel: C:\projekte\Delphi\bin\x86_64-win64\prj_CompileErr.exe: Exit code 1, Fehler: 2
  2. unt_childclass.pas(23,28) Error: function header doesn't match any method of this class "class Something:{Dynamic} Array Of AnsiString;"
  3. unt_childclass.pas(15,20) Error: Found declaration: class Something:{Dynamic} Array Of AnsiString;
  4.  

BTW it compiles in Delphi (i just tested)

Compiler stops at:
Code: Pascal  [Select][+][-]
  1. class function TChildClass.Something: TStringArray; //<--- Here
  2. begin
  3.   setlength(Result, 2);
  4.   Result[0] := 'Hello';
  5.   Result[1] := Format('%s%s',['Wor','ld']);
  6. end;        
  7.  

Declaration of TChildClass:
Code: Pascal  [Select][+][-]
  1. { TChildClass }
  2.    // see §1
  3.   TChildClass = class(TBaseClass)
  4.     class function Something: TStringArray; override;
  5.   end;  
  6.  

Declaration of TBaseClass:
Code: Pascal  [Select][+][-]
  1. type
  2.   {$ifndef SUPPORTS_GENERICS}
  3.   TStringArray = array of string;
  4.   {$endif}
  5.   // see §1
  6.  
  7.   TBaseClass = class
  8.     class function Something:{$ifdef SUPPORTS_GENERICS}Tarray<String>{$else}TStringArray{$endif}; virtual; abstract;
  9.   end;
  10.  

It used to compile in older versions ...
Hint & spoiler:
See hint.txt
OS: Win XP x64, Win 7, Win 7 x64, Win 10, Win 10 x64, Suse Linux 13.2
Laz: 1.4 - 1.8.4, 2.0
https://github.com/joecare99/public
'~|    /''
,_|oe \_,are
If you want to do something for the environment: Twitter: #reduceCO2 or
https://www.betterplace.me/klimawandel-stoppen-co-ueber-preis-reduzieren

 

TinyPortal © 2005-2018