Re: [Lazarus] Console app

2014-03-17 Thread Michael Schnell

On 03/15/2014 08:10 AM, Richard Mace wrote:

Hi All,
I have never written a console app and was wondering 2 things.
Firstly, if I was to write an app that doesn't require a GUI, that 
runs on both Windows and Linux (with no XServer) is that classed as a 
console app?
And secondly, is it fairly straight forward to write a console app 
that stores and retrieves data from a Firebird database, on the basis 
that I want to be able to use either the standard Lazarus components 
(or Zeos) to talk to the database?


A problem might be that there (right now) is no Widget Type in 
Lazarus, that has no GUI binding and allows for using stuff like TTimer, 
TThread.Synchronize, TThread.Queue and QueuAsyncCall().


In fact I am planning to do such a Widget Type, but unfortunately I 
currently am busy with unrelated things.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-17 Thread Bart
On 3/17/14, Michael Schnell mschn...@lumino.de wrote:

 A problem might be that there (right now) is no Widget Type in
 Lazarus, that has no GUI binding and allows for using stuff like TTimer,
 TThread.Synchronize, TThread.Queue and QueuAsyncCall().

The NoGUI WS doesn't allow this?

Bart

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-17 Thread Michael Schnell

On 03/17/2014 11:04 AM, Bart wrote:

The NoGUI WS doesn't allow this?


No. It does not provide an Event Queue for the main thread.

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-17 Thread Mattias Gaertner
On Mon, 17 Mar 2014 11:04:07 +0100
Bart bartjun...@gmail.com wrote:

 On 3/17/14, Michael Schnell mschn...@lumino.de wrote:
 
  A problem might be that there (right now) is no Widget Type in
  Lazarus, that has no GUI binding and allows for using stuff like TTimer,
  TThread.Synchronize, TThread.Queue and QueuAsyncCall().
 
 The NoGUI WS doesn't allow this?

The NoGUI has not implemented it.
Feel free to add it.

Mattias

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-17 Thread Michael Schnell

On 03/17/2014 11:14 AM, Mattias Gaertner wrote:

Feel free to add it.


It's not as impossible as I initially thought, as the fpc RTL already 
provides the basic Queue implantation that can be used (while all other 
active Widget Types use a queue provided by the GUI infrastructure 
they attach to).


Doing TTimer needs some afterthoughts: there are multiple ways, each 
with some pro's and cons: e.g.

 - simply using the timeout parameter of the RTL queue poll procedure,
 - doing one or several dedicated threads with sleep() for handling 
the timers, feeding timer events into the queue

 - ...

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-17 Thread Richard Mace
I have never written a console app and was wondering 2 things.

 Firstly, if I was to write an app that doesn't require a GUI, that runs on
 both Windows and Linux (with no XServer) is that classed as a console app?
 And secondly, is it fairly straight forward to write a console app that
 stores and retrieves data from a Firebird database, on the basis that I
 want to be able to use either the standard Lazarus components (or Zeos) to
 talk to the database?

  A problem might be that there (right now) is no Widget Type in
 Lazarus, that has no GUI binding and allows for using stuff like  TTimer,
 TThread.Synchronize, TThread.Queue and QueuAsyncCall().


Ah, yes. That would be ab issues as using a TTimer would be essential for
what I am planning :(

Richard
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Console app

2014-03-15 Thread Richard Mace
Hi All,
I have never written a console app and was wondering 2 things.
Firstly, if I was to write an app that doesn't require a GUI, that runs on
both Windows and Linux (with no XServer) is that classed as a console app?
And secondly, is it fairly straight forward to write a console app that
stores and retrieves data from a Firebird database, on the basis that I
want to be able to use either the standard Lazarus components (or Zeos) to
talk to the database?

Thanks in advance

Richard
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-15 Thread Reinier Olislagers
On 15/03/2014 08:10, Richard Mace wrote:
 I have never written a console app and was wondering 2 things.
 Firstly, if I was to write an app that doesn't require a GUI, that runs
 on both Windows and Linux (with no XServer) is that classed as a console
 app?
Yes, it would.

 And secondly, is it fairly straight forward to write a console app that
 stores and retrieves data from a Firebird database, on the basis that I
 want to be able to use either the standard Lazarus components (or Zeos)
 to talk to the database?

Well, they're standard FPC components[1] rather than Lazarus components
then... (So follow up questions probably belong on the FPC list rather
than the Lazarus one)

See
http://wiki.lazarus.freepascal.org/Database_bug_reporting#FreePascal
for a simple example, but you can work with queries etc just as you're
used to with Lazarus


[1] FPC's sqldb, which is also used by Lazarus GUI components

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console app

2014-03-15 Thread Mattias Gaertner
On Sat, 15 Mar 2014 07:10:27 +
Richard Mace richard.m...@gmail.com wrote:

 Hi All,
 I have never written a console app and was wondering 2 things.
 Firstly, if I was to write an app that doesn't require a GUI, that runs on
 both Windows and Linux (with no XServer) is that classed as a console app?

Yes.

 And secondly, is it fairly straight forward to write a console app that
 stores and retrieves data from a Firebird database, on the basis that I
 want to be able to use either the standard Lazarus components (or Zeos) to
 talk to the database?

Yes.

Mattias

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-14 Thread Sven Barth

On 14.08.2011 00:05, Graeme Geldenhuys wrote:

On 13 August 2011 23:25, Marco van de Voort  wrote:


How do you measure memory usage?


Two ways:

1) 'gnome-system-monitor', look in the Processes tab, there is a Memory column.

2) Use 'top -pprocessid. Subtract the SHR value from the RES value.


What is what I mean by memory usage.



Maybe you could create a small IDE package that provides an interface to 
the GetHeapStatus ( 
http://www.freepascal.org/docs-html/rtl/system/getheapstatus.html ) and 
GetFPCHeapStatus ( 
http://www.freepascal.org/docs-html/rtl/system/getfpcheapstatus.html ) 
functions by e.g. a menu entry to check whether it's just the heap 
manager that didn't release the memory chunks yet.


Regards,
Sven


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-14 Thread Marco van de Voort
On Sun, Aug 14, 2011 at 12:05:02AM +0200, Graeme Geldenhuys wrote:
  How do you measure memory usage?
 
 Two ways:
 
 1) 'gnome-system-monitor', look in the Processes tab, there is a Memory 
 column.
 
 2) Use 'top -p processid. Subtract the SHR value from the RES value.
 
 What is what I mean by memory usage.

If you use such crude tools, better do additional research before making
claims about a program. It might be the memory manager or heap
fragmentation, not the program.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-14 Thread Graeme Geldenhuys
On 14 August 2011 15:07, Marco van de Voort wrote:
 claims about a program. It might be the memory manager or heap
 fragmentation, not the program.


Then it's very strange that just Lazarus IDE is showing this behaviour
on my system. Other software and tools I have written can allocated
lots of memory, but when I free those objects, those crude memory
values I spoke of drop considerably.

Even MSEide shows this. Start the MSEide, memory usage is 8MB in Gnome
System Monitor. Load 400 units and memory jumps to 30MB. Switch
between a few tabs, compile the project, run the project. Then do File
- Close All files. Memory usage in 'gnome-system-monitor' drops back
down to 7MB. Go figure.

So again, Lazarus IDE is doing something wrong!


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-14 Thread Marco van de Voort
On Sun, Aug 14, 2011 at 03:24:10PM +0200, Graeme Geldenhuys wrote:
  claims about a program. It might be the memory manager or heap
  fragmentation, not the program.
 
 Then it's very strange that just Lazarus IDE is showing this behaviour
 on my system. Other software and tools I have written can allocated
 lots of memory, but when I free those objects, those crude memory
 values I spoke of drop considerably.

No memory manager is ever safe for all memory access patterns.
 

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-14 Thread waldo kitty

On 8/12/2011 23:14, Michael Thompson wrote:

  OMG. Then we really need to discover what the gtk2 glue is doing so wrong.



 It's not just LCL-GTK2, the same thing happens with Lazarus IDE compiled
 for LCL-Qt4 too. Just tested. Opening a blank project, Lazarus IDE
 (using LCL-Qt4) uses 69MB already. Open a 100 units and the memory usage
 jumps to 140MB.


Does the memory usage lower when you then close the 100 units?   Trying to
eliminate leak as a possibility.


would not a leak show up in the debug GUI compilation profile when everything is 
closed and exited? or does this maybe go deeper and require that FPC be compiled 
with debugger/heaptrace support?



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Henry Vermaak
On 12 August 2011 18:40, Martin laza...@mfriebe.de wrote:

 gvim does only open about 10 tabs  not one tab per file. At least my
 installation. I can not open more tabs, or access any other than the 10
 tabs. I can from the buffer menu change the content of each tab, but that's
 still only 10 tabs.

You have to set tabpagemax (i set mine to 500 for the test).

 gvim (i just installed) does not have horizontal scrollbar, and if it wraps
 line it does not update the vertical scrollbar (maybe by design, but that's
 a terrible design, though one that saves a lot of time, hence good for the
 benchmark.)

Of course there is a setting for this, too (wrap).

 the highlighting appears to be erroneous and far less complete
 public in a class is highlighted, protected is not
 deprecated is not hl.
 I was unable to find out, if ANY hl is context sensitive at all; but for
 example nested comments are not correctly highlighted.
 Overall it appears that it is a simple word based highlighting, versus a
 content sensitive highlighing in Lazarus (apples and bananas)

You have to make sure that you've set the highlighting for delphi or
fpc.  In either case, the highlighting is trivial.  If you're taking
ten times longer to open the file, then you're doing it wrong.

It's quite funny that you're trying to prove that lazarus is somehow
more powerful than vim.  It's the opposite way around.  But that's not
what I'm here to discuss.  My point was that a really powerful editor
is taking orders of a magnitude less time to open files than lazarus,
so there is much scope for improvement.

Henry

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Florian Klämpfl
Am 13.08.2011 12:05, schrieb Henry Vermaak:
 
 You have to make sure that you've set the highlighting for delphi or
 fpc.  In either case, the highlighting is trivial.  

At least considering nested comments etc., this is not true :) I never
used vim, but all fpc highlighting I saw so far in unix editors was far
from perfect, it was trivial, indeed, but wrong :)

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 11:05, Henry Vermaak wrote:
You have to make sure that you've set the highlighting for delphi or 
fpc. In either case, the highlighting is trivial. If you're taking ten 
times longer to open the file, then you're doing it wrong. It's quite 
funny that you're trying to prove that lazarus is somehow more 
powerful than vim. It's the opposite way around. But that's not what 
I'm here to discuss. My point was that a really powerful editor is 
taking orders of a magnitude less time to open files than lazarus, so 
there is much scope for improvement. Henry -- 
___ Lazarus mailing list 
Lazarus@lists.lazarus.freepascal.org 
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus 


I haven't looked at changing the highlighter. No time to find out how, 
or even how to install


but I added the max tab.

Now gvim takes 10 seconds
Lazarus 16 secs

That is not orders of magnitude ?

Even if you look at the 27 secs when using command line instead of 
project. This can be fixed in Lazarus, by applying 2 lines of code = 
once the proper code block has been found.


As for my comparison of the two.  I am not trying to compare the overall 
power of the two.
Most of the functionality only uses resources, if it is triggered. So 
gvim may have a lot of editor commands lazarus does not have, they do 
not affect loading.


Again, I do not know gvim well enough. and I haven't analysed where the 
time in Lazarus really goes.
It may be that Lazarus is slower due to some design flaw, without any 
benefit provided... But it is equally possible, that some functionality 
in Lazarus, that gvim does not have) uses this time for a very good 
cause. e.g code tools scanning the files, may take some time (if it 
isn't deferred, and assuming gvim doe s not have a codetool equivalent).


-
Anyway, back to my first statement.

the time lazarus requires to load a huge amount of files is as I said 
not bad. I never said excellent or top of the list. not bad of 
course means that you will be able to find individual editors that are 
faster. But if you look at a range of editors, you will equally find 
those that a slower. geanny took double (or even tripple) the time.


I did tests on windows half a year ago (don't remember the editors) But 
severla editors where slower or similar in speed than Lazarus. That 
would set Lazarus to be average, and to me average is not bad


-
As for room for improvment:
- I never said there wasn't
- I said, that speed improvement (for loading) would not have to be not 
top priority
I stand by that. It already is average. That means while it does not top 
benchmarks, it serves well enough for normal daily usage.



---
btw:

gvim  10 secs
Lazarus 16 or 27 secs
emacs: 20 secs
geany 57 secs
gedit 82 secs


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 12 August 2011 20:42, Vincent Snijders  wrote:

 Another reason to have as little releases as possible. ;-)

LOL. The funniest comment I have seen in a while. :)


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 12 August 2011 18:57, Henry Vermaak wrote:
 similar capability.  As Graeme showed, we've become slower, so if we don't
 watch it, this kind of attitude will end us up with a sluggish, bloated ide.

Thank you. Somebody gets what I'm trying to get across. The problem is
not not serious yet, but Lazarus is getting slower.


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
2011/8/13 Michael Thompson :
 Does the memory usage lower when you then close the 100 units?   Trying to
 eliminate leak as a possibility.

Closing all but one file, memory usage dropped by a whopping 2MB. I
left the system idle for about 10 minutes while having a coffee brake.
Memory usage was still the same, so there doesn't seem to be some
delayed garage collection.  :-/

Here again MSEide frees up resources nicely when I close files.

-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 15:25, Graeme Geldenhuys wrote:

On 12 August 2011 18:57, Henry Vermaak wrote:

similar capability.  As Graeme showed, we've become slower, so if we don't
watch it, this kind of attitude will end us up with a sluggish, bloated ide.

Thank you. Somebody gets what I'm trying to get across. The problem is
not not serious yet, but Lazarus is getting slower.


Are you sure?
Have you compared speed to 0.9.28? And which actions have you used for 
checking speed?


I know of several things that in 2010/2011 have had huge speed 
improvments. Some of them have been after 0.9,30. But some of them were 
between 0.9.28 and 0.9.30.
Things that speed up opening projects with many files have been improved 
before 0.9.30 and after.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Sven Barth

On 12.08.2011 18:47, Florian Klämpfl wrote:

Am 11.08.2011 22:13, schrieb Graeme Geldenhuys:

On 11 August 2011 21:38, Felipe Monteiro de Carvalho
felipemonteiro.carva...@gmail.com  wrote:

I find the choice of going for a console app quite curious.


+1

And this is not the first message (in recent days) where the developer
is considering console app over gui app. Weird, but I guess there must
be a niche market out there we don't know about. :)


Compiler development ;) I do almost all fpc development work with the
textmode ide :)


At least the textmode IDE is then tested on a regular base ^^ (I 
personally prefer Lazarus for almost everything except simple test 
projects: for that I use nano :P )


Regards,
Sven


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 13 August 2011 16:38, Martin wrote:

 Are you sure?
 Have you compared speed to 0.9.28? And which actions have you used for
 checking speed?

Yet, at least between a 0.9.29 binary I had lying around, and 0.9.30.1

In the days of 0.9.26 and 0.9.28 I used the GTK1 interface. At that
point LCL-GTK1 was considerably faster than the LCL-GTK2 - in the
editor, dialogs, and general screen updates.

I know LCL-GTK2 has come a long way since then.

When I say slower, in this test case I can not the following.

 - Loading time of all tabs (eg: when I tested with 100 or 200 units)
 - tab / editor screen update. The editor was blank for the duration
of loading
   those units. MSEide was instant with near zero screen flicker.

My other concern was memory consumption. I know I have no clue as to
what Lazarus IDE everything does, but I can say that for the generate
usage of loading a project with some 5-15 units open, code navigating
here and there etc.. the memory consumption of Lazarus is by
magnitudes more than MSEide. Regarding what I was test or using in the
editor, both IDE's had the same functionality.


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Flávio Etrusco
On Sat, Aug 13, 2011 at 1:49 PM, Graeme Geldenhuys
graemeg.li...@gmail.com wrote:
 On 13 August 2011 16:38, Martin wrote:

 Are you sure?
 Have you compared speed to 0.9.28? And which actions have you used for
 checking speed?

 Yet, at least between a 0.9.29 binary I had lying around, and 0.9.30.1

 In the days of 0.9.26 and 0.9.28 I used the GTK1 interface. At that
 point LCL-GTK1 was considerably faster than the LCL-GTK2 - in the
 editor, dialogs, and general screen updates.

 I know LCL-GTK2 has come a long way since then.

 When I say slower, in this test case I can not the following.

  - Loading time of all tabs (eg: when I tested with 100 or 200 units)
  - tab / editor screen update. The editor was blank for the duration
 of loading
   those units. MSEide was instant with near zero screen flicker.

 My other concern was memory consumption. I know I have no clue as to
 what Lazarus IDE everything does, but I can say that for the generate
 usage of loading a project with some 5-15 units open, code navigating
 here and there etc.. the memory consumption of Lazarus is by
 magnitudes more than MSEide. Regarding what I was test or using in the
 editor, both IDE's had the same functionality.


 --
 Regards,
   - Graeme -


Question: do you have Open designer on open unit preference enabled?

-Flávio

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 17:49, Graeme Geldenhuys wrote:

On 13 August 2011 16:38, Martin wrote:

Are you sure?
Have you compared speed to 0.9.28? And which actions have you used for
checking speed?

Yet, at least between a 0.9.29 binary I had lying around, and 0.9.30.1

Both GTK2 ? For the opeing of a project with *m any* files?

But well yes, if you had a 0.9.29, that already had the loading 
optimizations (and was faster than 0.9.28) then that could be.


Obviously the speed isn't constant. New features get added, the may take 
time while loading. The idea can not be, to keep the time always 
constant, or getting faster only. Then many features could never be 
added (your elastic tabs, if ever done, might mean a slow down... / 
though that falls under the deferred-to-idle scans).



In Laz trunk there where some speed improvements for project loading 
again (IIRC)





In the days of 0.9.26 and 0.9.28 I used the GTK1 interface. At that
point LCL-GTK1 was considerably faster than the LCL-GTK2 - in the
editor, dialogs, and general screen updates.
interesting. Gtk1 does not have support for propper scrolling. So 
scrolling in synedit under GTK1 is considerable slower.
Though the scroll support under gtk2 was only added quite late. So for a 
long time that may have been true.


Otherwhise I can not tell much about gtk2. But then one would need to 
have some fundamental info about the difference of speed of the 2 GTKs 
themself.




I know LCL-GTK2 has come a long way since then.

When I say slower, in this test case I can not the following.

  - Loading time of all tabs (eg: when I tested with 100 or 200 units)

You mean between gtk2 and gtk1? Well I can not speak about that.


  - tab / editor screen update. The editor was blank for the duration
of loading
The blank is partly intentional. Older lazarus did add tab by tab, 
updating tabs that wouldn't even be displayed. there was no point in 
that.  That change was made in the IDE, affecting all widgetsets.



those units. MSEide was instant with near zero screen flicker.
Very interesting.  I just added the 450 univint files to a project in 
mseide (though under windows, while all other tests where done under linux)


It takes 15 seconds to open (so yes it is a little faster than lazarus, 
but not such massively)



My version may be a few month old



My other concern was memory consumption. I know I have no clue as to
what Lazarus IDE everything does, but I can say that for the generate
usage of loading a project with some 5-15 units open, code navigating
here and there etc.. the memory consumption of Lazarus is by
magnitudes more than MSEide. Regarding what I was test or using in the
editor, both IDE's had the same functionality.


All I know is, when I open the ide project (mseide ide project / 
whatever the projectfile is called) itself, and then try to open file, 
it always prompts me for missing form files or similar...


Then again, maybe my config got screed along the way...

as for it codetools equivalent:  Some thinks don't jump, but may be my 
config. I found a link I just clicked, which took over 2 secs before the 
mse-ide actually jumped (at least it showed a busy mouse pointer)


Let me just stress out: I do not mean in any way to say, that this is in 
anyway something bad about mse-ide. I only observe that some of the 
statements made before are not reproducible n my system. MSEide does 
require time too (memory I have not analysed.)



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Samstag 13 August 2011, 19:45:09 schrieb Martin:
 
  those units. MSEide was instant with near zero screen flicker.
 
 Very interesting.  I just added the 450 univint files to a project in
 mseide (though under windows, while all other tests where done under linux)
 
 It takes 15 seconds to open (so yes it is a little faster than lazarus,
 but not such massively)
 
There was a missing beginupdate()/endupdate() so the load time was O(n²). 
Should be faster soon. ;-)

Martin

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 17:49, Graeme Geldenhuys wrote:
My other concern was memory consumption. I know I have no clue as to 
what Lazarus IDE everything does, but I can say that for the generate 
usage of loading a project with some 5-15 units open, code navigating 
here and there etc.. the memory consumption of Lazarus is by 
magnitudes more than MSEide. Regarding what I was test or using in the 
editor, both IDE's had the same functionality. 



Well one thing, I noted is that MSEide does not seem to deal with nested 
comments, that opens the question how much context the remaining 
highlighting takes into account.

The more context is needed, the more time and memory it will cost.

There were plenty of reports (some by you IIRC Graeme) like deprecated 
being highlighted in the wrong place. That was fixed. But of course it 
requires to analyse the source much more detailed. (yet it is still fast)




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 18:59, Martin Schreiber wrote:

Am Samstag 13 August 2011, 19:45:09 schrieb Martin:

 those units. MSEide was instant with near zero screen flicker.

Very interesting.  I just added the 450 univint files to a project in
mseide (though under windows, while all other tests where done under linux)

It takes 15 seconds to open (so yes it is a little faster than lazarus,
but not such massively)


There was a missing beginupdate()/endupdate() so the load time was O(n²).
Should be faster soon. ;-)

Since you are on it. Same issue, if you open the 450 files from the 
open-file dialog (with multi select)


Additional, if you do open them like that (into an otherwhise empty 
project) some files stay without highlighting. They will be, if you 
close and re-open the project


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Samstag 13 August 2011, 19:59:15 schrieb Martin:
 On 13/08/2011 17:49, Graeme Geldenhuys wrote:
  My other concern was memory consumption. I know I have no clue as to
  what Lazarus IDE everything does, but I can say that for the generate
  usage of loading a project with some 5-15 units open, code navigating
  here and there etc.. the memory consumption of Lazarus is by
  magnitudes more than MSEide. Regarding what I was test or using in the
  editor, both IDE's had the same functionality.
 
 Well one thing, I noted is that MSEide does not seem to deal with nested
 comments, that opens the question how much context the remaining
 highlighting takes into account.

The default pascal.sdef file is Delphi compatible. Please change in 
apps/ide/syntaxdefs/pascal.sdef

scope comment1 comment
 endtokens
  '}'

to

scope comment1 comment
 calltokens
  '{' comment1
 endtokens
  '}'

for nested comments.

 The more context is needed, the more time and memory it will cost.
 
MSEide does not store context for syntax highlighting after the source has 
been colored. The editor grid stores richstringty:

 richstringty = record
  text: msestring;
  format: formatinfoarty;
  flags: richflagsty;
 end;

format stores the color and font info of the string.
The parser for code navigation is independent from syntaxhighlighting.

Martin

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 18:59, Martin Schreiber wrote:

Am Samstag 13 August 2011, 19:45:09 schrieb Martin:


Very interesting.  I just added the 450 univint files to a project in
mseide (though under windows, while all other tests where done under linux)

It takes 15 seconds to open (so yes it is a little faster than lazarus,
but not such massively)


There was a missing beginupdate()/endupdate() so the load time was O(n²).
Should be faster soon. ;-)



Watching the process, it appears, that when opeing a project, MSE-ide 
does not load all the files for which it creates tabs? At least sysutils 
does not show any disk activity to that extend.
While if I open them via the file-open (into an empty project) then it 
appears they are loaded?


If the first assumption is true, then there is little point in comparing 
mse ide and Lazarus. Lazarus is designed to open them. (e.g It needs to 
know if the file refers to a form/lfm // I don't know what else may 
require an immediate load of the file).
However that is a fixed difference. That will not get worse with each 
lazarus version (which was the expressed concern, that started this 
discussion)



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 19:28, Martin Schreiber wrote:
The default pascal.sdef file is Delphi compatible. Please change in 
apps/ide/syntaxdefs/pascal.sdef  scope comment1 comment endtokens '}' 
 to  scope comment1 comment calltokens '{' comment1 endtokens '}'  
for nested comments. 

Thanks, that worked


The more context is needed, the more time and memory it will cost.


MSEide does not store context for syntax highlighting after the source has
been colored. The editor grid stores richstringty:

  richstringty = record
   text: msestring;
   format: formatinfoarty;
   flags: richflagsty;
  end;

format stores the color and font info of the string.
Well in a way that stores the info too. I assume you store the 
formatinfoarty  for the begin of each line?


In that case it is pretty similar to SynEdit


The parser for code navigation is independent from syntaxhighlighting.


Same in Lazarus


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Samstag 13 August 2011, 20:26:22 schrieb Martin:
 
 Watching the process, it appears, that when opeing a project, MSE-ide
 does not load all the files for which it creates tabs? At least sysutils
 does not show any disk activity to that extend.
 While if I open them via the file-open (into an empty project) then it
 appears they are loaded?
 
Correct.

 If the first assumption is true, then there is little point in comparing
 mse ide and Lazarus.

Correct. After the fix of the missing beginupdate()/endupdate() MSEide should 
open the project and create the 400 editor tabs in 2..3 seconds.

Martin

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 19:37, Martin Schreiber wrote:

Correct. After the fix of the missing beginupdate()/endupdate() MSEide should
open the project and create the 400 editor tabs in 2..3 seconds.


Yes, I have the update, less than 1 sec.




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Samstag 13 August 2011, 20:33:13 schrieb Martin:
  MSEide does not store context for syntax highlighting after the source
  has been colored. The editor grid stores richstringty:
  
  
richstringty = record

 text: msestring;
 format: formatinfoarty;
 flags: richflagsty;

end;
  
  
  format stores the color and font info of the string.
 
 Well in a way that stores the info too. I assume you store the
 formatinfoarty  for the begin of each line?
 
The source code is stored in a trichstringdatalist which is an array of 
richstringty, an array item is the text of a grid row.

 In that case it is pretty similar to SynEdit
 
Probably.

Martin

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
2011/8/13 Flávio Etrusco :

 Question: do you have Open designer on open unit preference enabled?

I have no idea. But it is most likely not relevant either. My projects
are all fpGUI based, and that's the projects I used to test Lazarus
with. Those projects don't use *.lfm files like LCL apps do. To
Lazarus, those units are just source code.


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 13 August 2011 19:45, Martin  wrote:

 Yet, at least between a 0.9.29 binary I had lying around, and 0.9.30.1

 Both GTK2 ? For the opeing of a project with *m any* files?

Yes, the old 0.9.29 and new 0.9.30.1 versions of Lazarus was both
compiled against GTK2 widgetset.


 Obviously the speed isn't constant. New features get added, the may take
 time while loading.

New features don't always need to mean slower and more memory hungry.
Just look at Mozilla Firefox project. The last few versions came with
new features, but also with speed improvements and less memory hungry.
So it is possible. :)


 or getting faster only. Then many features could never be added (your
 elastic tabs, if ever done, might mean a slow down... / though that falls
 under the deferred-to-idle scans).

I've seen implementations of Elastic Tabstops (ET) that are slow and
others that are fast. There are different algorithms and
implementations to implementing ET. jEdit is quit fast at everything
(especially for a Java desktop app). They are introducing ET support
in their next version. I am very curious to see how fast that will be.

 In Laz trunk there where some speed improvements for project loading again

Excellent. I haven't really tried Trunk much since the 0.9.30 release.


  - Loading time of all tabs (eg: when I tested with 100 or 200 units)

 You mean between gtk2 and gtk1?

No, between Lazarus IDE and MSEide - how long it takes to create 100
or 200 tabs.


  - tab / editor screen update. The editor was blank for the duration
 of loading

 The blank is partly intentional. Older lazarus did add tab by tab,
 updating tabs that wouldn't even be displayed. there was no point in that.
  That change was made in the IDE, affecting all widgetsets.

Can't you have one tab as active, and add more tabs without changing
the active tab? Does LCL always set focus (active tab) to the newly
created tab sheet? That's what it looks like to me (when I tested
Friday at work).


 Very interesting.  I just added the 450 univint files to a project in mseide
 (though under windows, while all other tests where done under linux)

I only tested under Linux, so can't comment on the Windows version.


 It takes 15 seconds to open (so yes it is a little faster than lazarus, but
 not such massively)

Mine was a huge difference. I use the latest revision of MSEide. But I
don't follow to closely what Martin adds or changes to MSEideMSEgui.
Just like with Lazarus IDE, I use MSEide as a stand-alone product
(editor) for my fpGUI based projects.


 All I know is, when I open the ide project (mseide ide project / whatever
 the projectfile is called) itself, and then try to open file, it always
 prompts me for missing form files or similar...

I remember I used to get those too, but don't any more. I think it was
related to search paths in the Project Options | Debugger tab. Not
100% sure.


 as for it codetools equivalent:  Some thinks don't jump, but may be my
 config.

This works differently to Lazarus IDE. Lazarus always adds all code (I
think), even from FPC src directories. With MSEide you can tell it
what code it should parse to allow navigation of code. I think this is
what speeds MSEide up as well - by default it has less work to do.
This is setup under Project Options | Debugger tab | Source
Directories tab. I have project templates that are already
pre-configured for what I want or need.

 anyway something bad about mse-ide. I only observe that some of the
 statements made before are not reproducible n my system.

That's understandable. MSEide has very different settings to Lazarus
IDE (just like any other IDE would have too). It took me a while to
find my way around MSEide. But now I am pretty efficient in using both
Lazarus IDE and MSEide. I often switch between the two at work -
sometimes even for the same project. At home I only run MSEide because
I have a aging Intel P4 laptop which is 8 years old, and MSEide is
just faster on it than Lazarus and uses much less memory. I don't even
run Gnome on my laptop any more. :)


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Marco van de Voort
On Sat, Aug 13, 2011 at 04:31:22PM +0200, Graeme Geldenhuys wrote:
 Closing all but one file, memory usage dropped by a whopping 2MB. I
 left the system idle for about 10 minutes while having a coffee brake.
 Memory usage was still the same, so there doesn't seem to be some
 delayed garage collection.  :-/

How do you measure memory usage? Maybe it is the heapmanager, not lazarus
that has a problem. (and then you are not that far off with the delayed
garbage collection)

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 13 August 2011 19:59, Martin wrote:

 Well one thing, I noted is that MSEide does not seem to deal with nested
 comments,

Florian also mentioned something like that. First, nested comments
give me compiler warnings, so I never do that. I listen to the FPC
compiler. :) And if I must, my outer comments then use (*  *)
style commenting, which works fine in both Lazarus IDE and MSEide.

So could you give a code example of what you mean?


 There were plenty of reports (some by you IIRC Graeme) like deprecated
 being highlighted in the wrong place.

That seems to work fine in my copy of MSEide, and my syntax
highlighting scheme. I don't use default syntax highlighting schemes
in Lazarus or MSEide.  Attached is two examples in MSEide where
deprecated is correctly highlighted.

I can't remember the example I reported in Lazarus - I'll search the
Mantis reports.

-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net
attachment: example1.pngattachment: example2.png--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Bart
On 8/13/11, Graeme Geldenhuys graemeg.li...@gmail.com wrote:
 I have a aging Intel P4 laptop which is 8 years old, and MSEide is
 just faster on it than Lazarus and uses much less memory. I don't even
 run Gnome on my laptop any more. :)

[Off Topic]
I run Lazarus on a 11 year old 700 Mhz Celeron with 512 Mb using both
Windows (WinME) and Linux (Suse 10.0)/GTK2.
It's definately not as fast as Delphi 3, but it has outgrown it.

Then again, I only program for my hobby, so I don't mind (although in
Linux GTK2 dragging components etc. in the formdesigner is way slower
than win32).
[/Off Topic]

Bart

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 22:34, Graeme Geldenhuys wrote:

There were plenty of reports (some by you IIRC Graeme) like deprecated
being highlighted in the wrong place.

That seems to work fine in my copy of MSEide, and my syntax
highlighting scheme. I don't use default syntax highlighting schemes
in Lazarus or MSEide.  Attached is two examples in MSEide where
deprecated is correctly highlighted.



Those are examples of it in the right place.
the reported trouble was for something like this

procedure Deprecated;
procedure Foo(deprecated: Boolean);

type
  deprecated = boolean;
var
  a: deprecated;


etc.

MSE-ide appears to highlight quite some of them.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 13 August 2011 23:25, Marco van de Voort  wrote:

 How do you measure memory usage?

Two ways:

1) 'gnome-system-monitor', look in the Processes tab, there is a Memory column.

2) Use 'top -p processid. Subtract the SHR value from the RES value.


What is what I mean by memory usage.





-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Graeme Geldenhuys
On 13 August 2011 23:56, Martin wrote:
 So as far as I can see speed is watched, where it has an impact on normal
 use cases.

OK, thanks.



 the active tab? Does LCL always set focus (active tab) to the newly
 created tab sheet? That's what it looks like to me (when I tested
 Friday at work).

 I don't know enough about that, and it may depend on the widgetset too.
 maybe windows, or gtk are forcing it?

Maybe all that is required is:  pagecontrol.beginupdate ...
pagecontrol.endupdate.  ;-)

Then the control should only need to redraw once, and not per tab.


 I don't know if anyone has such a number of files open in real life, you
 can't maintain them anyway, you never find a file through the tabs, and
 neither through any menu.

Martin does in MSEide, and I am starting to use it in a similar
fashion. Open those units in MSEide. Then press Ctrl+E. A form will
popup with a grid which is searchable by just starting to type, or
navigating quickly with the arrow keys.

I used to put all my units inside a project inspector like tree
structure. But having hundreds of units makes navigation no faster
even if they are sorted alphabetically.  You just can't see enough
items at a glance. Martin's idea in MSEide works quite well.

And yes, you are correct. Navigation in Lazarus with that amount of
units is totally useless. Even the popup menu when you right click on
the tab, or the Window menu is just to large, and scrolling that menu
takes forever (in GTK2).


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 22:56, Graeme Geldenhuys wrote:

On 13 August 2011 20:26, Martin  wrote:

ide and Lazarus. Lazarus is designed to open them. (e.g It needs to know if
the file refers to a form/lfm // I don't know what else may require an
immediate load of the file).


This might sound silly, but Why?  If the project opens lots of units,
those are just source code units. Forms should only come into play
when the developers presses F12 to show the Form for a specific unit.

Or am I not understanding Lazarus's form designer or codetools
correctly?  Are you saying that if Lazarus opens a project with 50
units that are actually the source code of form declarations, then
Lazarus will also display 50 forms when loading that project?


if the source was open, yes. (afaik), maybe there is an option...

I don't know for sure, if the project would remember, if the form was 
closed, but the source open.


But assuming that normally form and source are open together: If you had 
50 fomrs open when you closed the project, then you can have them open 
again, or not?


Otherwise, you probably wouldn't have had the units open either.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin

On 13/08/2011 23:21, Graeme Geldenhuys wrote:

the active tab? Does LCL always set focus (active tab) to the newly
created tab sheet? That's what it looks like to me (when I tested
Friday at work).

I don't know enough about that, and it may depend on the widgetset too.
maybe windows, or gtk are forcing it?

Maybe all that is required is:  pagecontrol.beginupdate ...
pagecontrol.endupdate.  ;-)

Then the control should only need to redraw once, and not per tab.

If you open a project , that is already done.
The page control draws only at the very end (on windows)
I don't know if gtk supports that...

If you load files by other means, the lock is not always applied. 
Obviously work that needs to be done




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Samstag 13 August 2011, 23:56:13 schrieb Martin:
 
 I don't know if loading the files can even be omitted. After all the IDE
 must know if they contain a {$R *.lfm}, in order  to decide if a form
 needs to be loaded in the designer.
 
In MSEide the *.pas and *.mfm (the MSEgui *.lfm equivalent) files are 
independent. A MSEgui form can be loaded by reading the *.mfm file alone. 
MSEide does not need to parse the library source for MSEgui form handling, all 
needed information is the RTTI compiled into MSEide .
This were MSEide+MSEgui design decisions at the start of the project in order 
to allow to build a fast, stable and versatile developmnent environment.

Martin

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Sonntag 14 August 2011, 00:02:27 schrieb Martin:
 
 procedure Deprecated;
 procedure Foo(deprecated: Boolean);
 
 type
deprecated = boolean;
 var
a: deprecated;
 
 
 etc.
 
 MSE-ide appears to highlight quite some of them.
 
Correct. MSEide uses a very simple syntax highlighing method and does not 
parse the code in deep.

Martin

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-13 Thread Martin Schreiber
Am Sonntag 14 August 2011, 00:21:49 schrieb Graeme Geldenhuys:
  I don't know if anyone has such a number of files open in real life, you
  can't maintain them anyway, you never find a file through the tabs, and
  neither through any menu.
 
 Martin does in MSEide, and I am starting to use it in a similar
 fashion. Open those units in MSEide. Then press Ctrl+E. A form will
 popup with a grid which is searchable by just starting to type, or
 navigating quickly with the arrow keys.
 
An additional method is to double click on the most used editor tabs in order 
to move them on the top of the tab list. Changed files are marked with a * 
and easily visible, see attachment. The limit is at about 100-200 open 
files. 400 are too much because the Ctrl+E grid needs scrolling.

Martin
attachment: editortabs.png--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 04:13 AM, waldo kitty wrote:
 
 i have numerous apps that are being upgraded from DOS console apps and 
 there's 
 really no reason for them to have to incorporate all of the fluff'n'stuff of 
 graphics...

OK, Alexsander raise a valid point. You have to cater for the
environment where your application will be used. This makes sense.


 i'm still rather appalled that lazarus takes 75Meg on one machine and 125Meg 
 on 
 another for a debug environment... i'm not sure about the size difference 
 since 


I also have a huge gripe against bloated software we see today. Today's
software (well most of them) are just not as efficient has they used to
be. Plus they make your hardware upgrade pretty useless in no time at
all. Years ago you might have waited for a app to load or process
something... with todays computers at a magnitude of 800x faster than
the 386 days, you still wait for apps to load or process something!
Nothing much (from a user experience) has changed.

On the flip side, there are some software that still perform very well
today. eg: One of my projects loaded in Lazarus takes up about 100-150MB
of memory. That same project loaded in MSEide takes up 9-15MB of
memory!!! In each case the project is loaded, a complete recompile of
the project is done, and a debug session (project run from inside the
ide to activate debugging) has been done. How do you account for that
difference in memory usage? MSEide is doing something right.

Lets just hope and pray that Lazarus doesn't one day get the
performance of Eclipse IDE. That is probably the slowest and most
memory hungry IDE I have every come across. :-/


 i just found out about freevision earlier today in this thread... never used 
 it 
 or any of the similar stuff in TP/BP back in the day...

I've used Borlands version back in my TP days, but I haven't played with
FreeVision either. I'm curious to find out how you design forms etc. I
can't even remember what I did in my TP days. :)  I think Free Vision is
covered in the FPC docs though.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Felipe Monteiro de Carvalho
On Fri, Aug 12, 2011 at 10:57 AM, Graeme Geldenhuys
graemeg.li...@gmail.com wrote:
 i'm still rather appalled that lazarus takes 75Meg on one machine and 125Meg 
 on
 another for a debug environment... i'm not sure about the size difference 
 since
 On the flip side, there are some software that still perform very well
 today. eg: One of my projects loaded in Lazarus takes up about 100-150MB
 of memory. That same project loaded in MSEide takes up 9-15MB of
 memory!!!

My HTC Wildfire (the cheapest HTC Android phone when I bought it) has 384 MB RAM

So I can only conclude that 150 MB of RAM is not nearly a big deal =D
It could even fit on my phone!

-- 
Felipe Monteiro de Carvalho

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 11:16 AM, Felipe Monteiro de Carvalho wrote:
 
 So I can only conclude that 150 MB of RAM is not nearly a big deal =D
 It could even fit on my phone!

The test project I used as an example is a new (and small project) we
started recently, and already Lazarus uses such a lot of memory. Loading
some of our much larger projects, the memory usage jumps considerably.

Irrespective of what device or hardware you have, it doesn't explain
away why Lazarus is such a memory hog compared to the same project
loaded in MSEide.

In both IDE's I used fpGUI based projects, so that cuts out a lot of the
IDE's built in GUI designer, Object Inspector etc... So I feel my
comparison is not unreasonable - I used the same features in both IDE's.
If Lazarus doesn't watch out, it will soon become yet another bloated
software product. Maybe it's time some new features get put on hold,
and some optimizations are implemented instead. This is a normal process
of any software development team. Maybe just the thing required for that
looming 1.0 release. Just a thought. If MSEide can be light on memory,
very fast and still have plenty of features, it should be possible with
Lazarus too.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Flávio Etrusco

 i'm still rather appalled that lazarus takes 75Meg on one machine and 125Meg 
 on
 another for a debug environment... i'm not sure about the size difference 
 since

 (...)

 On the flip side, there are some software that still perform very well
 today. eg: One of my projects loaded in Lazarus takes up about 100-150MB
 of memory. That same project loaded in MSEide takes up 9-15MB of
 memory!!! In each case the project is loaded, a complete recompile of
 the project is done, and a debug session (project run from inside the
 ide to activate debugging) has been done. How do you account for that
 difference in memory usage? MSEide is doing something right.

You're doing something wrong ;-)  (ok, I know it was an exaggeration)
While debugging another Lazarus instance, the host Lazarus has 62MB VM
(56MB RSS), with a dozen open files and some forms.
And I wouldn't be surprised if more than half of it is occupied by
CodeTools tree.
gdb unfortunately takes 136MB.


 Lets just hope and pray that Lazarus doesn't one day get the
 performance of Eclipse IDE. That is probably the slowest and most
 memory hungry IDE I have every come across. :-/

Netbeans and JBuilder don't fare much better...

Best regards,
Flávio

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread michael . vancanneyt



On Fri, 12 Aug 2011, Graeme Geldenhuys wrote:


On 08/12/2011 11:16 AM, Felipe Monteiro de Carvalho wrote:


So I can only conclude that 150 MB of RAM is not nearly a big deal =D
It could even fit on my phone!


The test project I used as an example is a new (and small project) we
started recently, and already Lazarus uses such a lot of memory. Loading
some of our much larger projects, the memory usage jumps considerably.

Irrespective of what device or hardware you have, it doesn't explain
away why Lazarus is such a memory hog compared to the same project
loaded in MSEide.


That depends. Does MSEIDE offer the same features ?

Are the MSEIDE Codetools on par with the Lazarus ones ?
(and not just the codetools you use, but the complete set of features)

Michael.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Marco van de Voort
On Thu, Aug 11, 2011 at 03:43:36PM -0300, Alexsander Rosa wrote:
 Should we use CRT or VIDEO unit? What's the state of Free Vision? We plan to
 port our WMS (Warehouse Management System) module from C to Pascal (to use
 our persistence framework). It has a few colors, a numbered menu and a few
 scrollable lists. The module usually is run thru Putty from mobile computers
 like MC-3090 (Windows CE + WiFi).

While Video is usable standalone, the KVM units ( keyboard - Video -  mouse)
are mainly meant as the Free Vision backend. 

Crt is pure legacy, and has many quirks and idiosyncracies.

Free Vision is the most complete solution, but its programming model is very
old, it uses TP object and shortstrings, but pchars here and there to work
around shortstrings and it in general doesn't take
advantage of any newer FPC/Delphi features (mostly the more automated
streaming system (RTTI, properties)  ansistrings, and in general cleaning
out design cobwebs from when apps still had to work on 20MHz 386s. 


For minor stuff you can take any of them, as long you test them for your
terminal types. I would use Video over Crt. (see the lister demo).

FV is also an option, but for the more complex (more than a few screens)
apps.

A few attempts have been made (by Florian and me) to update FV stepwise
(with at least ansistrings), but such projects quickly expanded in scope,
and still would deliver a patched old and limping framework.

For real serious work, one would have to redo TV on a more Delphi/VCL basis,
since then maintainability is king, and the limitations of TV get annoying
over time.

Personally I like (TUI) console apps for server maintenance and
configuration apps.  They work quick, and work over a SSH connection,
without much additional configuration. While this is a _better_ solution one
has to ask if it is worth maintaining experience with two frameworks
(GUI+TUI) for, specially if they are so different as LCL and TV.

Alexander seems to have a clear specialized reason though, where TUI
connects to the pecularities of a certain devices interface. No discussion
there.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 11:44 AM, michael.vancann...@wisa.be wrote:
 
 That depends. Does MSEIDE offer the same features ?

I'm not arguing feature vs feature. Each IDE has there own unique
features, and both have many features in common too. I simply tested the
features in common. eg: Loading and managing a project, debugging an
app, code navigation via Ctrl+Click, syntax highlighting enabled with
the same color scheme, Search, Search  Replace, various project option
changes etc. All features both IDE's support. But using those common
features, Lazarus uses 5-10 times more memory? That doesn't sound right
to me.

And as I said, that's with a small project. Using much larger projects,
Lazarus IDE memory usage jumps considerably by the end of a working day.
MSEide I on the other hand hardly changes its memory usage. In fact, I
don't think I have ever seen MSEide go over 25MB memory in normal usage
for a whole day.

I just tested this again. I have a Quad Core system with 4GB memory,
running Ubuntu 10.04 64-bit. Using Lazarus 0.9.30.1 (latest stable
version). Opening 208 units in one folder with Lazarus took around 15
seconds to complete. Opening that same 208 units in MSEide took around 1
second to complete. Then doing a complete recompile of all units.

memory usage after the above:
  Lazarus IDE (gtk2):  145MB
  MSEide:   31MB

The same task, but a huge difference in memory usage!

Yes, having 4GB of memory makes this hardly a concern. But keep on
thinking like that, and soon Lazarus will perform like Java's Eclipse
IDE, requiring a minimal of 1GB just to edit text. Any software project
needs to pay attention to performance on a regular basis. This weeds out
sloppy code. This is all I wanted to bring to light. Lazarus memory
usage seems to jump a lot with each new release. Maybe with the
preparation for a 1.0 release this trend can be reversed.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Sven Barth

Am 12.08.2011 10:57, schrieb Graeme Geldenhuys:

Lets just hope and pray that Lazarus doesn't one day get the
performance of Eclipse IDE. That is probably the slowest and most
memory hungry IDE I have every come across. :-/


I normally don't use such acronyms, but here it fits:

+1 (for both points ^^)

Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Michael Schnell

On 08/11/2011 10:03 PM, Alexsander Rosa wrote:
A standard GUI app would require the (dozens of) warehouse operators 
to use the stylus heavily.


??? A GUI application can easily react on keystrokes

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Michael Schnell

...
in fact I once did a GUI application (in Delphi) that the user (a person 
watching what goes on in a subway station) handles blind via the 
keyboard. No mouse attached to that PC.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Flávio Etrusco

 memory usage after the above:
  Lazarus IDE (gtk2):  145MB
  MSEide:               31MB


Where are you seeing these numbers? I guess you know you have to look
at RSS, right?
(In case anyone is interested, nn Linux event library mappings is
accounted in VM. GTK has huge mappings but doesn't use nearly as much
memory actually).

-Flávio

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 03:01 PM, Flávio Etrusco wrote:
 
 Where are you seeing these numbers? I guess you know you have to look
 at RSS, right?

gnome-system-monitor
Then look under the Processes tab, there is a Memory column.


alternatively I can use 'top -p process_id
Then take then do a bit of math:   RES - SHR = memory usage
This comes to the same result as shown in gnome-system-monitor.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Flávio Etrusco
On Fri, Aug 12, 2011 at 10:57 AM, Graeme Geldenhuys
graemeg.li...@gmail.com wrote:
 On 08/12/2011 03:01 PM, Flávio Etrusco wrote:

 Where are you seeing these numbers? I guess you know you have to look
 at RSS, right?

 gnome-system-monitor
 Then look under the Processes tab, there is a Memory column.


 alternatively I can use 'top -p process_id
 Then take then do a bit of math:   RES - SHR = memory usage
 This comes to the same result as shown in gnome-system-monitor.


 Regards,
  - Graeme -


OMG. Then we really need to discover what the gtk2 glue is doing so wrong.

Thanks,
Flávio

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 04:21 PM, Flávio Etrusco wrote:
 
 OMG. Then we really need to discover what the gtk2 glue is doing so wrong.

It's not just LCL-GTK2, the same thing happens with Lazarus IDE compiled
for LCL-Qt4 too. Just tested. Opening a blank project, Lazarus IDE
(using LCL-Qt4) uses 69MB already. Open a 100 units and the memory usage
jumps to 140MB. That's not ever working with the IDE yet, so imaging
what it would be at the end of a normal working day.



Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 01:19 PM, Graeme Geldenhuys wrote:
 
 memory usage after the above:
   Lazarus IDE (gtk2):  145MB
   MSEide:   31MB

Now to show how Lazarus is increasing in memory usage per release. Here
I loaded the same project and same amount of units under an old Lazarus
version v0.9.29 (r27743). Just loading the project with 5 open units,
memory usage is 44MB. Open the 208 the total of 208 units, and memory
usage is just 77MB - compared to the above 145MB of a 0.9.30.1 build.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Martin

On 12/08/2011 15:53, Graeme Geldenhuys wrote:

On 08/12/2011 01:19 PM, Graeme Geldenhuys wrote:

memory usage after the above:
   Lazarus IDE (gtk2):  145MB
   MSEide:   31MB

Now to show how Lazarus is increasing in memory usage per release. Here
I loaded the same project and same amount of units under an old Lazarus
version v0.9.29 (r27743). Just loading the project with 5 open units,
memory usage is 44MB. Open the 208 the total of 208 units, and memory
usage is just 77MB - compared to the above 145MB of a 0.9.30.1 build.


But what exactly are you comparing?

the base memory footprint of Lazarus vs MSEide (without loaded project), 
or the amount of memory needed to open a project (similar project)?


Comparing MSEIde against Lazarus. Lazarus includes codetools, a lot of 
info about the RTL units is always loaded (afaik), but you do get a 
benefit out of that.
Sure not all the memory maybe codetools, there are many other features 
that use the memory. but memory is rather cheap nowadays?
(BTW, how is the memory usage, if you strip all packages from Lazarus 
that can be stripped?)


Both projects have completely different targets, and that result in 
different requirements.






--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Graeme Geldenhuys
On 08/12/2011 05:06 PM, Martin wrote:
 
 But what exactly are you comparing?

Lazarus (old)   vsLazarus (new)
MSEide  vsany Lazarus version

At the moment I'm just comparing memory consumption doing the same tasks
in each test case.

But as I also list, opening 208 units, the speed in MSEide is near
instant compared to Lazarus IDE (any version of Lazarus, old or new).

But my main concern is by how much the memory consumption is growing in
Lazarus. Previous release compared to current release. And beginning of
the day to the end of a working day (without shutting down lazarus IDe
once).



 that use the memory. but memory is rather cheap nowadays?

So that's your answer. There is no issue even though memory usage double
between each release?



Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Martin

On 12/08/2011 16:16, Graeme Geldenhuys wrote:
But as I also list, opening 208 units, the speed in MSEide is near 
instant compared to Lazarus IDE (any version of Lazarus, old or new).


15 secs for 200 units are NOT a bad time. And btw, older lazarus was 
slower, there was recent work.


Part of this time (and very minor amount of memory 100kb for every 
25.000 (actually I believe 100kb for every 50.000) lines, go into 
functionality that is broken in MSEide.
Try horizentol scroll in MSE with lines longer than (afaik) 2000 chars. 
Yes, maybe not really needed to edit pascal code. But an editor should 
be able to deal with that.


Another bit of time is used by codetools. MSEide doesn't have them. It 
is every users choice to decide if they need them, and then to use 
MSEide or Lazarus.


I haven't compared the highlighter for pascal. But it may be similar.



that use the memory. but memory is rather cheap nowadays?

So that's your answer. There is no issue even though memory usage double
between each release?



IMHO, this is a simplified view.  And also remember 0.9.30 was a big 
release, after a long time...


Without knowing where this memory went, there is no telling how memory 
usage will look in future. It may well be, that some big amount went 
into a feature, that is well worth it, and that is of a kind that one 
can be sure, it will not happen with every release.


I am not having the time now to look into it.

But certain functionality, comes at certain cost. Lazarus priors the 
functionality over the cost (that does not mean Lazarus ignores the 
cost, but it accept certain costs, for certain features). you can choose 
to use it or not.


I am certain that if you can find ways to save that memory, without 
cutting functionality, then this will not be disregarded (It doesn't 
mean it will be accepted immediately, and without feedback or 
adaptations required)


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Henry Vermaak

On 12/08/11 17:09, Martin wrote:

On 12/08/2011 16:16, Graeme Geldenhuys wrote:

But as I also list, opening 208 units, the speed in MSEide is near
instant compared to Lazarus IDE (any version of Lazarus, old or new).


15 secs for 200 units are NOT a bad time. And btw, older lazarus was
slower, there was recent work.


It's not a bad time.  It's a _terrible_ time.

hcv@technical09:~/source/freepascal/latest/packages/univint/src$ time 
gvim +qa -fp *

450 files to edit

real0m3.433s
user0m3.110s
sys 0m0.208s

This is with syntax highlighting, everything opened in tabs.  I wonder 
how fast lazarus will open all the files in univint...


Henry

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Martin

On 12/08/2011 17:28, Henry Vermaak wrote:

On 12/08/11 17:09, Martin wrote:

On 12/08/2011 16:16, Graeme Geldenhuys wrote:

But as I also list, opening 208 units, the speed in MSEide is near
instant compared to Lazarus IDE (any version of Lazarus, old or new).


15 secs for 200 units are NOT a bad time. And btw, older lazarus was
slower, there was recent work.


It's not a bad time.  It's a _terrible_ time.

hcv@technical09:~/source/freepascal/latest/packages/univint/src$ time 
gvim +qa -fp *

450 files to edit

real0m3.433s
user0m3.110s
sys0m0.208s

This is with syntax highlighting, everything opened in tabs.  I wonder 
how fast lazarus will open all the files in univint...


I don't have a copy of gvim.

I can't compare the quality and amount of features. How well the 
highlighting deals with the various fpc constructs, if it provides 
folding, if it provides codetool like pascal context sensitive tools, 


Yes there are many editrors that are faster, (and many that are slower, 
but that's now excuse). But many of the comparisations are apples and 
bananas, they compare 2 products, that only share a minority of features 
(though this minority may just be the part with the highest visibility)



Mind: not bad = that does neither mean excellent, nor say it is  on 
the top ranks.  As I said there had been improvements (in the last 12 
month). There is room for more, sure.

But looking at the overall:
- opening several 100 files is rare. (yeah some people only open, never 
close, and next time they reload they open all of them again = but how 
often to you edit e4ach of 200 files on one work day?)
- Yet it is possible, and unless you need to restart the ide several 
times an hour AND load all the files each times, it is not a major issue 
(it may be to a very small minority of people
So from this, there is no major priority in requiring to speed this up. 
There is no denial that it would be nice, but no terribly high 
requirement either.




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Florian Klämpfl
Am 11.08.2011 22:13, schrieb Graeme Geldenhuys:
 On 11 August 2011 21:38, Felipe Monteiro de Carvalho
 felipemonteiro.carva...@gmail.com wrote:
 I find the choice of going for a console app quite curious.
 
 +1
 
 And this is not the first message (in recent days) where the developer
 is considering console app over gui app. Weird, but I guess there must
 be a niche market out there we don't know about. :)

Compiler development ;) I do almost all fpc development work with the
textmode ide :)

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Henry Vermaak

On 12/08/11 17:43, Martin wrote:

- opening several 100 files is rare. (yeah some people only open, never
close, and next time they reload they open all of them again = but how
often to you edit e4ach of 200 files on one work day?)


You are completely missing the point: This is a benchmark.  It points 
out that we are at least an order of a magnitude slower than editors 
with similar capability.  As Graeme showed, we've become slower, so if 
we don't watch it, this kind of attitude will end us up with a sluggish, 
bloated ide.


Henry

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Martin

On 12/08/2011 17:57, Henry Vermaak wrote:

On 12/08/11 17:43, Martin wrote:

- opening several 100 files is rare. (yeah some people only open, never
close, and next time they reload they open all of them again = but how
often to you edit e4ach of 200 files on one work day?)


You are completely missing the point: This is a benchmark.  It points 
out that we are at least an order of a magnitude slower than editors 
with similar capability.  As Graeme showed, we've become slower, so if 
we don't watch it, this kind of attitude will end us up with a 
sluggish, bloated ide.


Ok, but you miss the point too, you picked the wrong part of my reply 
out of context:


part1, related to benchmarking:
- are we comparing apples with apples, apples with bananas?
- are the compared products indeed providing similar quality/functionality?

part2, related to the above quote.
- that was about every day use. And while it may not be top of the list, 
it is not a major issue in ever day use.


As for paying attention. Several bits of work where undertaken in the 
last 12 month.



as for apples and bananas:

gvim does only open about 10 tabs  not one tab per file. At least my 
installation. I can not open more tabs, or access any other than the 10 
tabs. I can from the buffer menu change the content of each tab, but 
that's still only 10 tabs.


gvim (i just installed) does not have horizontal scrollbar, and if it 
wraps line it does not update the vertical scrollbar (maybe by design, 
but that's a terrible design, though one that saves a lot of time, hence 
good for the benchmark.)


the highlighting appears to be erroneous and far less complete
public in a class is highlighted, protected is not
deprecated is not hl.
I was unable to find out, if ANY hl is context sensitive at all; but for 
example nested comments are not correctly highlighted.
Overall it appears that it is a simple word based highlighting, versus 
a content sensitive highlighing in Lazarus (apples and bananas)


has gvim any codetool like stuff???




Are we comparing apples and apples. OTherwise what kind of benchmark is 
this?


Btw Lazarus took about 27 secs for the 450 files.  I am not saying that 
couldn't be improved, but if you want to benchmark. benchmark more fairly


And btw, if I save the 400 files as part of a project, and re-open, it 
goes in 16 secs. (As lazarus defers some of the work to idle time later)




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Vincent Snijders
2011/8/12 Graeme Geldenhuys graemeg.li...@gmail.com:
 that use the memory. but memory is rather cheap nowadays?

 So that's your answer. There is no issue even though memory usage double
 between each release?

Another reason to have as little releases as possible. ;-)

Vincent

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Michael Thompson
 OMG. Then we really need to discover what the gtk2 glue is doing so wrong.

I noticed a few weeks ago that, in at at least one unit, we don't appear to
free'ing g_list's consistently.  I queried this in the forums with no
response - as I stated in that post I have no idea if the glib has a garbage
collection style scheme, so I don't know how significant this is.

http://forum.lazarus.freepascal.org/index.php/topic,14149.0.html

This won't, of course, lead to an immediately overly large memory usage, so
I doubt this is the main culprit, but I suspect it doesn't help...

Mike
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-12 Thread Michael Thompson
  OMG. Then we really need to discover what the gtk2 glue is doing so
wrong.

 It's not just LCL-GTK2, the same thing happens with Lazarus IDE compiled
 for LCL-Qt4 too. Just tested. Opening a blank project, Lazarus IDE
 (using LCL-Qt4) uses 69MB already. Open a 100 units and the memory usage
 jumps to 140MB.

Does the memory usage lower when you then close the 100 units?   Trying to
eliminate leak as a possibility.
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Console App Development

2011-08-11 Thread Alexsander Rosa
Should we use CRT or VIDEO unit? What's the state of Free Vision? We plan to
port our WMS (Warehouse Management System) module from C to Pascal (to use
our persistence framework). It has a few colors, a numbered menu and a few
scrollable lists. The module usually is run thru Putty from mobile computers
like MC-3090 (Windows CE + WiFi).

-- 
Atenciosamente,
Alexsander da Rosa
http://rednaxel.com
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Sven Barth

On 11.08.2011 20:43, Alexsander Rosa wrote:

Should we use CRT or VIDEO unit? What's the state of Free Vision? We
plan to port our WMS (Warehouse Management System) module from C to
Pascal (to use our persistence framework). It has a few colors, a
numbered menu and a few scrollable lists. The module usually is run thru
Putty from mobile computers like MC-3090 (Windows CE + WiFi).


I can't speak for Free Vision (the only real world reference application 
seems to be the IDE and there's also a testapp in the 
$fpc/packages/fv/examples directory), but I can say a bit regarding CRT 
and VIDEO:


VIDEO seems to be targeted for fullscreen applications, because you 
basically work on a buffer that represents the complete screen. You 
won't be able to use UTF8 or Unicode characters and are thus restricted 
to what the unit gives you, but it tries to somehow map the block 
drawing characters into the extended ANSI area ( #127). Free Vision is 
based upon the VIDEO unit.


CRT allows you to only print to a part of the screen and will also allow 
you to write UTF8 characters as it's basically just a redirected Writeln 
that somehow injects the changes of fonts and the cursor movement. You 
should also be able to generate a fullscreen application though.


So it depends on what you want to achieve. You'd need to test whether 
those units work on Win CE at all though, because I can't help you here 
(I was never able to get the console on my Windows Mobile running :( )


Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Felipe Monteiro de Carvalho
I find the choice of going for a console app quite curious. Wouldn't
it be easier to write a standard GUI app using the LCL?

-- 
Felipe Monteiro de Carvalho

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Alexsander Rosa
A standard GUI app would require the (dozens of) warehouse operators to use
the stylus heavily. Today they use it only to start the PUTTY app (that
opens a saved SSH session) and yet they manage to often damage the screen
(!). Also, with a console app that runs via SSH we can easily run it from
desktop PC (no need to recompile, just open the SSH). Some processes do not
require high mobility and a PC + barcode scanner is way cheaper than MC-3090
handhelds.

We run it in 40x17 mode in the 3-inch small screens. The operators usually
type 2-digit numbers in the menu to access the features. They call them
screens, like run screen 52 for branch 17. After that they usually
walk/drive around the warehouse, read barcodes and move boxes. Here's a
screenshot:

2011/8/11 Felipe Monteiro de Carvalho felipemonteiro.carva...@gmail.com

 I find the choice of going for a console app quite curious. Wouldn't
 it be easier to write a standard GUI app using the LCL?

 --
 Felipe Monteiro de Carvalho



-- 
Atenciosamente,
Alexsander da Rosa
http://rednaxel.com
attachment: wms.png--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Graeme Geldenhuys
On 11 August 2011 21:38, Felipe Monteiro de Carvalho
felipemonteiro.carva...@gmail.com wrote:
 I find the choice of going for a console app quite curious.

+1

And this is not the first message (in recent days) where the developer
is considering console app over gui app. Weird, but I guess there must
be a niche market out there we don't know about. :)

Personally, if I had to go console app, I would probably choose
something like FreeVision at this point. I think you get quite a bit
of functionality for free. Though I haven't written a long running
console app (this excludes simple utility apps) in decades.


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Graeme Geldenhuys
On 11 August 2011 21:33, Sven Barth wrote:

 I can't speak for Free Vision (the only real world reference application
 seems to be the IDE and there's also a testapp in the
 $fpc/packages/fv/examples directory),

Isn't the FPC installer also written with Free Vision - I remember
seeing something like that years ago.


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Sven Barth

On 11.08.2011 22:15, Graeme Geldenhuys wrote:

On 11 August 2011 21:33, Sven Barth wrote:


I can't speak for Free Vision (the only real world reference application
seems to be the IDE and there's also a testapp in the
$fpc/packages/fv/examples directory),


Isn't the FPC installer also written with Free Vision - I remember
seeing something like that years ago.




Which installer are you talking about? At least the default Linux (or 
even Unix?) installer is a shell script. But you could try your newly 
aquired regular expression skills and search for fv in the fpc source 
directory :D (though using the search with complete word only would 
work as well...)


Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Graeme Geldenhuys
On 11 August 2011 22:18, Sven Barth wrote:

 Which installer are you talking about? At least the default Linux (or even
 Unix?) installer is a shell script.

I didn't need regex for this. Simple browsed my FPC src directory.
There is a 'installer' folder with an executable 'installer' or for
windows 'installer.exe'

See attached screenshot. I guess you can only run the installer once,
or something. :)


-- 
Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net
attachment: installer.png--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Sven Barth

On 11.08.2011 22:18, Sven Barth wrote:

On 11.08.2011 22:15, Graeme Geldenhuys wrote:

On 11 August 2011 21:33, Sven Barth wrote:


I can't speak for Free Vision (the only real world reference application
seems to be the IDE and there's also a testapp in the
$fpc/packages/fv/examples directory),


Isn't the FPC installer also written with Free Vision - I remember
seeing something like that years ago.




Which installer are you talking about? At least the default Linux (or
even Unix?) installer is a shell script. But you could try your newly
aquired regular expression skills and search for fv in the fpc source
directory :D (though using the search with complete word only would
work as well...)


Ok... that search won't help much... better try something like app as 
a complete word, then you'll find (besides many garbage) the DOS and 
OS/2 installer for FPC in $fpc/installer/install.pas :D


Regards,
Sven


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Sven Barth

On 11.08.2011 22:30, Graeme Geldenhuys wrote:

On 11 August 2011 22:18, Sven Barth wrote:


Which installer are you talking about? At least the default Linux (or even
Unix?) installer is a shell script.


I didn't need regex for this. Simple browsed my FPC src directory.
There is a 'installer' folder with an executable 'installer' or for
windows 'installer.exe'

See attached screenshot. I guess you can only run the installer once,
or something. :)


I tried to catch two flies at once... I wanted to find the installer 
(fly 1) and any other application in FPC directory that uses Free Vision 
(fly 2). So far there are only 3:

- example application
- IDE
- installer

Regards,
Sven


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread Alexsander Rosa
In the warehouse environment, with ruggedized handhelds, it's easier to use
the keyboard than a stylus.
http://images.google.com/search?tbm=ischq=warehouse+workergbv=2oq=warehouse+worker

2011/8/11 Graeme Geldenhuys graemeg.li...@gmail.com

 On 11 August 2011 21:38, Felipe Monteiro de Carvalho
 felipemonteiro.carva...@gmail.com wrote:
  I find the choice of going for a console app quite curious.

 +1

 And this is not the first message (in recent days) where the developer
 is considering console app over gui app. Weird, but I guess there must
 be a niche market out there we don't know about. :)

 Personally, if I had to go console app, I would probably choose
 something like FreeVision at this point. I think you get quite a bit
 of functionality for free. Though I haven't written a long running
 console app (this excludes simple utility apps) in decades.


 --
 Regards,
   - Graeme -


 ___
 fpGUI - a cross-platform Free Pascal GUI toolkit
 http://fpgui.sourceforge.net

 --
 ___
 Lazarus mailing list
 Lazarus@lists.lazarus.freepascal.org
 http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




-- 
Atenciosamente,
Alexsander da Rosa
http://rednaxel.com
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Console App Development

2011-08-11 Thread waldo kitty

On 8/11/2011 16:13, Graeme Geldenhuys wrote:

On 11 August 2011 21:38, Felipe Monteiro de Carvalho
felipemonteiro.carva...@gmail.com  wrote:

I find the choice of going for a console app quite curious.


+1

And this is not the first message (in recent days) where the developer
is considering console app over gui app. Weird, but I guess there must
be a niche market out there we don't know about. :)


+5

i have numerous apps that are being upgraded from DOS console apps and there's 
really no reason for them to have to incorporate all of the fluff'n'stuff of 
graphics... especially when doing so would require that the older boxen that are 
being used must be upgraded to the li'l monsters of today's apparent world and 
all for nothing more than graphical stuffs...


i'm still rather appalled that lazarus takes 75Meg on one machine and 125Meg on 
another for a debug environment... i'm not sure about the size difference since 
both should be identical other than one on w2k and the other on vista... but 
still...



Personally, if I had to go console app, I would probably choose
something like FreeVision at this point. I think you get quite a bit
of functionality for free. Though I haven't written a long running
console app (this excludes simple utility apps) in decades.


i just found out about freevision earlier today in this thread... never used it 
or any of the similar stuff in TP/BP back in the day... everything i've written 
has been straight forward and minimal... no OOPs stuff other than message base 
management stuffs i decided to try many years back... even today, i still code 
my own replacement routines for stuff that it too large or cumbersome...


this switchover to the Lazarus RAD environment and FPC is really taking me on a 
beating :(



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus