Sign in Join

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

Mailing lists / lazarus / 2013-06

FPC source index

9 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

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

Henry Vermaak

Hi list

Is there a way to force the "Rescan FPC Source Directory" to not run in OnIdle?

I've got an ARM computer with slow storage and I thought I'd leave the IDE for a while to wait for this operation to finish, only to realise that nothing happens when I'm not moving the mouse around/typing. The IDE is a bit useless without the ability to Ctrl-click my way around, but I got tired waving the mouse around after 5 minutes.

Henry

Reply by email

Mattias Gaertner
to Henry Vermaak
Show quoted text 10 lines
Hi list Is there a way to force the "Rescan FPC Source Directory" to not run in OnIdle? I've got an ARM computer with slow storage and I thought I'd leave the IDE for a while to wait for this operation to finish, only to realise that nothing happens when I'm not moving the mouse around/typing. The IDE is a bit useless without the ability to Ctrl-click my way around, but I got tired waving the mouse around after 5 minutes.

Many IDE tasks run on idle. The idle event is crucial for the LCL itself.

What widgetset?

Mattias

Reply by email

Henry Vermaak
to Mattias Gaertner
Mattias Gaertner wrote 16 lines
On Wed, 19 Jun 2013 15:16:33 +0100 Henry Vermaak wrote: > Hi list > > Is there a way to force the "Rescan FPC Source Directory" to not run in > OnIdle? > > I've got an ARM computer with slow storage and I thought I'd leave the > IDE for a while to wait for this operation to finish, only to realise > that nothing happens when I'm not moving the mouse around/typing. The > IDE is a bit useless without the ability to Ctrl-click my way around, > but I got tired waving the mouse around after 5 minutes. Many IDE tasks run on idle. The idle event is crucial for the LCL itself.

How does the IDE make sure these things keep running when there's no activity? Do you use OnIdleEnd? Or do you set Done := False in the OnIdle handler?

What widgetset?

It's gtk2, on some recent flavour of Ubuntu. Without the source index, it seems like I can't even double click on events in the object inspector to create handlers, since it tells me that Classes can't be found. It's happy building existing projects, though.

Henry

Reply by email

Graeme Geldenhuys
to Henry Vermaak
Henry Vermaak wrote 5 lines
Without the source index, it seems like I can't even double click on events in the object inspector to create handlers, since it tells me that Classes can't be found.

I have experienced similar problems. It seems the IDE can't work correctly any more without the full FPC sources. This is a shame though, because I have some systems where I really don't need the full FPC sources.

Regards,
- Graeme -

Reply by email

Vincent Snijders
to Graeme Geldenhuys

2013/6/20 Graeme Geldenhuys

Show quoted text 14 lines
On 20/06/13 10:17, Henry Vermaak wrote: > > Without the source index, > it seems like I can't even double click on events in the object > inspector to create handlers, since it tells me that Classes can't be > found. I have experienced similar problems. It seems the IDE can't work correctly any more without the full FPC sources. This is a shame though, because I have some systems where I really don't need the full FPC sources. But this is not a break with the past, is it? FPC sources, in particular

TComponent sources, were needed always to generate events.

Vincent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20130620/6aa38d4d/attachment.html>

Reply by email

Graeme Geldenhuys
to Vincent Snijders
Vincent Snijders wrote
But this is not a break with the past, is it? FPC sources, in particular TComponent sources, were needed always to generate events.

I can't remember that. I just know Lazarus IDE complains a lot now if the FPC sources are not available - sometimes disabling features, or other features simply not working any more (broken).

If there is such a close and unnecessary tie to FPC sources, then Lazarus IDE must simply state that as minimum requirements and not allow the IDE to start up if the sources are missing.

I say unnecessary because MSEide doesn't require FPC sources, yet its integrated Form Designer, Object Inspector, code generation (eg: like event handlers) etc still works.

Regards,
- Graeme -

Reply by email

Henry Vermaak
to Henry Vermaak: How does the IDE make sure these things keep running when there's no activity? Do you…
Henry Vermaak wrote
It's gtk2, on some recent flavour of Ubuntu. Without the source index, it seems like I can't even double click on events in the object inspector to create handlers, since it tells me that Classes can't be found. It's happy building existing projects, though.

OK, the idle stuff may be a red herring. If I rebuild lazarus with VerboseFPCSrcScan defined, rescanning the FPC source takes a couple of seconds and everything works fine.

I can't see anything obvious that would cause this, but I don't know about the side effects of calling some of the functions inside those define blocks. There may also be threading/memory bugs, of course.

Please let me know what I can do to provide more useful information.

Henry

Reply by email

Mattias Gaertner
to Henry Vermaak: How does the IDE make sure these things keep running when there's no activity? Do you…
Show quoted text 12 lines
Henry Vermaak hat am 20. Juni 2013 um 11:17 geschrieben: [...] On Wed, Jun 19, 2013 at 07:49:27PM +0200, Mattias Gaertner wrote: > On Wed, 19 Jun 2013 15:16:33 +0100 > Henry Vermaak wrote: > > > Hi list > > > > Is there a way to force the "Rescan FPC Source Directory" to not run in > > OnIdle?

Note: The FPC source directory is scanned in a thread not in idle. Unless you compiled with -dDisableMultiThreading.
Compile with -dVerboseFPCSrcScan to see in the terminal what is happening.

Show quoted text 12 lines
> > I've got an ARM computer with slow storage and I thought I'd leave the > > IDE for a while to wait for this operation to finish, only to realise > > that nothing happens when I'm not moving the mouse around/typing. The > > IDE is a bit useless without the ability to Ctrl-click my way around, > > but I got tired waving the mouse around after 5 minutes. > > Many IDE tasks run on idle. The idle event is crucial for the LCL > itself. How does the IDE make sure these things keep running when there's no activity? Do you use OnIdleEnd? Or do you set Done := False in the OnIdle handler?
Most have only one task.
Those that update in several steps use Done:=false.
Show quoted text 6 lines
> What widgetset? It's gtk2, on some recent flavour of Ubuntu. Without the source index, it seems like I can't even double click on events in the object inspector to create handlers, since it tells me that Classes can't be found.

Yes. Many events use 'Sender: TObject' which is defined in classes.

It's happy building existing projects, though.

Mattias

Reply by email

Mattias Gaertner
to Graeme Geldenhuys: I have experienced similar problems. It seems the IDE can't work correctly any more…
Show quoted text 15 lines
Graeme Geldenhuys hat am 20. Juni 2013 um 12:03 geschrieben: On 20/06/13 10:17, Henry Vermaak wrote: > > Without the source index, > it seems like I can't even double click on events in the object > inspector to create handlers, since it tells me that Classes can't be > found. I have experienced similar problems. It seems the IDE can't work correctly any more without the full FPC sources. This is a shame though, because I have some systems where I really don't need the full FPC sources.

Nothing has changed in this field for many years.
Some codetools require the classes.pp, some don't.

Mattias

Reply by email