Recent

Author Topic: Lazarus 1.6.2 - Released  (Read 92239 times)

Lulu

  • Full Member
  • ***
  • Posts: 226
Re: Lazarus 1.6.2 - Released
« Reply #30 on: November 18, 2016, 07:54:44 am »
Thanks You very much for all your great work since many years !  :)
wishing you a nice life

tr_escape

  • Sr. Member
  • ****
  • Posts: 432
  • sector name toys | respect to spectre
    • Github:
Re: Lazarus 1.6.2 - Released
« Reply #31 on: November 18, 2016, 08:48:16 am »
It looks as if for some reason the .lpr of your project omits the Interfaces unit.
Lazarus 1.6.0 gives the same warning in that situation. I don't know how the update can affect it.
Maybe there are mixed .ppu and .o files from the old revision. Just rebuild Lazarus and its packages clean. Usually it solves all problems.

Unfortunately I couldn't pass this warning.

So I tried on a new installation of a debian linux 32bit in the virtualbox.

I installed the 3 of files of .deb of lazarus.

My install order is:

fpc_3.0.0-151205_i386.deb,

fpc-src_3.0.0-151205_i386.deb

lazarus_1.6.2-0_i386.deb

and related packages.

After installation I attempt to run lazarus and lazarus said me debugger is missing. (Attach 1)

I said OK there is no problem for now debugger and I continued but this warning is still giving.

Also last evening I tried on my real computer with Linux Mint is results are same.

And I couldn't rollback to 1.6.0 :(

Edit reason: debugger picture warning and English correction
« Last Edit: November 18, 2016, 08:56:46 am by tr_escape »

dogriz

  • Full Member
  • ***
  • Posts: 126
Re: Lazarus 1.6.2 - Released
« Reply #32 on: November 18, 2016, 11:36:13 am »
@tr_escape

Install debugger on Debian/mint/ubuntu:
Code: [Select]
sudo apt-get install gdb
If gdb is installed, but you get the same message for some reason, try adding it manually:
first, find out where is gdb installed:
Code: [Select]
whereis gdbYou should get something like this:
Code: [Select]
gdb: /usr/bin/gdband add it manually (or browse to it).
« Last Edit: November 18, 2016, 11:41:16 am by dogriz »
FPC 3.2.2
Lazarus 2.2.4
Debian x86_64, arm

tr_escape

  • Sr. Member
  • ****
  • Posts: 432
  • sector name toys | respect to spectre
    • Github:
Re: Lazarus 1.6.2 - Released
« Reply #33 on: November 18, 2016, 11:59:07 am »
@tr_escape

Install debugger on Debian/mint/ubuntu:
Code: [Select]
sudo apt-get install gdb
If gdb is installed, but you get the same message for some reason, try adding it manually:
first, find out where is gdb installed:
Code: [Select]
whereis gdbYou should get something like this:
Code: [Select]
gdb: /usr/bin/gdband add it manually (or browse to it).

@dogriz,

Thank you so much gdb issue is solved.

But I had to remove lazarus 1.6.2 and I reinstalled the 1.6.0 for now.

I'll try later.

SymbolicFrank

  • Hero Member
  • *****
  • Posts: 1313
Re: Lazarus 1.6.2 - Released
« Reply #34 on: November 18, 2016, 12:22:49 pm »
I would like it very much if Lazarus and the controls finally started to recognize it when you have your Windows taskbar in another location then at the bottom.

IIRC. the previous version at least recognized it when you maximized the main Lazarus window, but now it pops behind the taskbar.

It also tends to restore the windows at the wrong location.

knuckles

  • Full Member
  • ***
  • Posts: 122
Re: Lazarus 1.6.2 - Released
« Reply #35 on: November 18, 2016, 04:47:19 pm »
I would like it very much if Lazarus and the controls finally started to recognize it when you have your Windows taskbar in another location then at the bottom.

IIRC. the previous version at least recognized it when you maximized the main Lazarus window, but now it pops behind the taskbar.

It also tends to restore the windows at the wrong location.

Try unchecking this option maybe:

Tools > Options... > Environment > Window > Automatically adjust IDE main window height

Thaddy

  • Hero Member
  • *****
  • Posts: 14158
  • Probably until I exterminate Putin.
Re: Lazarus 1.6.2 - Released
« Reply #36 on: November 18, 2016, 09:23:31 pm »
That is a work-around. Not an explanation and solution why Lazarus uses the screen size instead of the working area. It is a bug.
Specialize a type, not a var.

Ondrej Pokorny

  • Full Member
  • ***
  • Posts: 220
Re: Lazarus 1.6.2 - Released
« Reply #37 on: November 19, 2016, 08:04:25 am »
Please file a bug report in mantis.

Thaddy

  • Hero Member
  • *****
  • Posts: 14158
  • Probably until I exterminate Putin.
Re: Lazarus 1.6.2 - Released
« Reply #38 on: November 19, 2016, 08:23:48 am »
And add this info:
For GTK+:
Code: [Select]
gdk_monitor_get_workarea ()
void
gdk_monitor_get_workarea (GdkMonitor *monitor,
                          GdkRectangle *workarea);
Retrieves the size and position of the “work area” on a monitor within the display coordinate space. The returned geometry is in ”application pixels”, not in ”device pixels” (see gdk_monitor_get_scale_factor()).
The work area should be considered when positioning menus and similar popups, to avoid placing them below panels, docks or other desktop components.
Note that not all backends may have a concept of workarea. This function will return the monitor geometry if a workarea is not available, or does not apply.
Parameters
monitor
a GdkMonitor
 
workarea
a GdkRectangle to be filled with the monitor workarea.

And for windows the equivalent is:
Code: [Select]
SystemParametersInfo function with the SPI_GETWORKAREA value.

Other widgetsets I don't know enough about. The issue may or may not be easily solvable for all widgetsets.
Specialize a type, not a var.

Ondrej Pokorny

  • Full Member
  • ***
  • Posts: 220
Re: Lazarus 1.6.2 - Released
« Reply #39 on: November 19, 2016, 12:08:44 pm »
It was implemented long long time ago: TScreen.WorkAreaRect, TMonitor.WorkAreaRect

Lazarus IDE probably doesn't take care about it.

tr_escape

  • Sr. Member
  • ****
  • Posts: 432
  • sector name toys | respect to spectre
    • Github:
Re: Lazarus 1.6.2 - Released
« Reply #40 on: November 19, 2016, 08:22:25 pm »
@dogriz,

Thank you so much gdb issue is solved.

But I had to remove lazarus 1.6.2 and I reinstalled the 1.6.0 for now.

I'll try later.

Hello Lazarus team,

So I tried some experimental changes about Lazarus's source codes in linux.

In "SourceFileManager" unit of lazarus there is a checking for "interfaces" unit of project's main.pas.

But in linux it is not working for

line 1648
Code: Pascal  [Select][+][-]
  1.     // project uses lcl unit Forms
  2.     if (UTF8SearchInStringList(MainUsesSection,'interfaces')>=0)
  3.     or (UTF8SearchInStringList(ImplementationUsesSection,'interfaces')>=0) then
  4.  

and I changed to this lines:

line 1648
Code: Pascal  [Select][+][-]
  1.     // project uses lcl unit Forms
  2.     if (UTF8SearchInStringList(MainUsesSection,'Interfaces')>=0)
  3.     or (UTF8SearchInStringList(ImplementationUsesSection,'Interfaces')>=0) then
  4.  

after this changes my new lazarus is worked as well as good.

Actually I looked up for difference of my lazarus 1.6.0's sources and 1.6.2' sources there is no difference about for this lines.

Also I checked for file names of interfaces.pp , they are same in my linux lowercase.

I think there is a issue inside of UTF8SearchInStringList function.

Best regards

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus 1.6.2 - Released
« Reply #41 on: November 19, 2016, 11:26:31 pm »
I think there is a issue inside of UTF8SearchInStringList function.
Indeed it calls UTF8CompareText which was changed in trunk / r51977 by Bart and then merged to 1.6.1 fixes branch.
Please report. It can be marked as related to this issue:
  http://bugs.freepascal.org/view.php?id=29889
Why such error happens only in some computers? I have no idea.
It looks like an impossible error. The unit name is in lower ASCII area, how can a comparison go wrong then?

I guess the IDE finds your project's "interfaces" unit when you Ctrl-Click it.
« Last Edit: November 19, 2016, 11:53:51 pm by JuhaManninen »
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Bart

  • Hero Member
  • *****
  • Posts: 5265
    • Bart en Mariska's Webstek
Re: Lazarus 1.6.2 - Released
« Reply #42 on: November 20, 2016, 01:30:40 am »
line 1648
Code: Pascal  [Select][+][-]
  1.     // project uses lcl unit Forms
  2.     if (UTF8SearchInStringList(MainUsesSection,'interfaces')>=0)
  3.     or (UTF8SearchInStringList(ImplementationUsesSection,'interfaces')>=0) then
  4.  

and I changed to this lines:

line 1648
Code: Pascal  [Select][+][-]
  1.     // project uses lcl unit Forms
  2.     if (UTF8SearchInStringList(MainUsesSection,'Interfaces')>=0)
  3.     or (UTF8SearchInStringList(ImplementationUsesSection,'Interfaces')>=0) then
  4.  

Can you undo the changes above an try this?

If you go to the ($Lazarus)/ide/ideprocs unit, line 1286

Code: [Select]
function UTF8SearchInStringList(List: TStrings; const s: string): integer;
begin
  if List=nil then exit(-1);
  Result:=List.Count-1;
  while (Result>=0) and (UTF8CompareText(List[Result],s)<>0) do dec(Result);
end;

and change UTF8CompareText to CompareText, does it also fix your problem?

(All unitnames are in ASCII, so there currently is no need to use Utf8 functions in that code).

If this also solves your problem, this indicates that there is an issue with Utf8CompareText or WideCompareText.
Also, if this fixes it, what is your locale?

Bart

tr_escape

  • Sr. Member
  • ****
  • Posts: 432
  • sector name toys | respect to spectre
    • Github:
Re: Lazarus 1.6.2 - Released
« Reply #43 on: November 20, 2016, 11:19:19 am »
Can you undo the changes above an try this?

If you go to the ($Lazarus)/ide/ideprocs unit, line 1286

Code: [Select]
function UTF8SearchInStringList(List: TStrings; const s: string): integer;
begin
  if List=nil then exit(-1);
  Result:=List.Count-1;
  while (Result>=0) and (UTF8CompareText(List[Result],s)<>0) do dec(Result);
end;

and change UTF8CompareText to CompareText, does it also fix your problem?

(All unitnames are in ASCII, so there currently is no need to use Utf8 functions in that code).

If this also solves your problem, this indicates that there is an issue with Utf8CompareText or WideCompareText.
Also, if this fixes it, what is your locale?

Bart

In ideprocs.pp:
Code: Pascal  [Select][+][-]
  1. function UTF8SearchInStringList(List: TStrings; const s: string): integer;
  2. begin
  3.   if List=nil then exit(-1);
  4.   Result:=List.Count-1;
  5.   while (Result>=0) and (CompareText(List[Result],s)<>0) do dec(Result);
  6. end;
  7.  

In sourcefilemanager.pas:

Code: Pascal  [Select][+][-]
  1.     // project uses lcl unit Forms
  2.     if (UTF8SearchInStringList(MainUsesSection,'interfaces')>=0)
  3.     or (UTF8SearchInStringList(ImplementationUsesSection,'interfaces')>=0) then
  4.       exit;
  5.  

I recompiled lazarus and it is working without pupop warning about 'interfaces'.

My local is Turkey but if there is no difference between 1.6.0 and 1.6.2 this (idepros.pp and sourcefilemanager.pas) functions there is another problem.


Bart

  • Hero Member
  • *****
  • Posts: 5265
    • Bart en Mariska's Webstek
Re: Lazarus 1.6.2 - Released
« Reply #44 on: November 20, 2016, 02:40:04 pm »
Please file a bugreport:

Describe the steps you have done to IDEProcs unit.
Mention your local.

Add a reference to this thread (preferrably pointing to your message where you described this).

In your locale: what is the result of WideUpperCase('interfaces') and what is the result of WideLowerCase('INTERFACES') ?

The same for WideUpperCase(Utf8ToUtf16('interfaces')) and WideLowerCase(Utf8ToUtf16('INTERFACES'))

And to make sure: what is teh result of WideCompareText('interfaces','INTERFACES')?

From wikipedia:
The letters Q, W, and X of the ISO basic Latin alphabet do not occur in the Turkish alphabet (replacements for these letters are K, V and KS), while dotted and dotless I are distinct letters in Turkish so that "i" does not become "I" when capitalized.


This may very well be the root cause of your problem.
Bart
« Last Edit: November 20, 2016, 02:54:36 pm by Bart »

 

TinyPortal © 2005-2018