Re: [fpc-devel] Dnamic packages support

2007-11-07 Thread Florian Klaempfl
L schrieb:
 Freepascal, C, etc. 'Compile using packages' does not make the plugin system
 language independent and portable too. I'm not sure if for example delphi
 packages would ever dynamically load into an fpc executable. 

You can't even use packages across different versions of the same compiler.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-07 Thread Felipe Monteiro de Carvalho
I think packages could be used to use Free Pascal object-oriented
libraries in other languages.

With packages it's possible to build LCL, for example, into a DLL,
create a procedural wrapper around it, and then use in any language,
like is done for the Qt bindings.

I'm not saying I would do it, but packages would make this task much easier.

I may do it one day, if I see myself in a situation where I must use
another language for a GUI project, well, then maybe at least I can do
some bindings for LCL and keep using it =)

thanks,
-- 
Felipe Monteiro de Carvalho
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-06 Thread Michael Schnell

Hi Lars,


The key point is exporting the api from the executable rather than the dll. Many
people don't understand this basic concept nor know it is possible, nor
understand why it works and how it works.
  
I, too, in fact don't understand this. care to give a short explanation 
? I do know about FP/GNU ABI-problems, but that does not seem to be the 
major port of the problem.

LazarusRB (arby) demonstrated this years ago with an API called Plugger. It is
no longer in active development 
That is a really bad :-( . What is LazarusRB ? Is there still something 
usable and some documentation on LazarusRB and/or Plugger ?



since I am very busy with web programming and
consulting, and documenting Powtils project which takes most of my time.

P.S.:
I did file a bug report regarding the in deed not functional 
CGI-project feature in Lazarus. I don't suppose that you are involved 
in that but maybe it would be a good idea to synchronize this with parts 
of what Powtils provides.


-Michael
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-06 Thread Michael Schnell

Hi

The key point is exporting the api from the executable rather than the dll. Many
people don't understand this basic concept nor know it is possible, nor
understand why it works and how it works.

LazarusRB (arby) demonstrated this years ago with an API called Plugger. It is
no longer in active development since I am very busy with web programming and
consulting, and documenting Powtils project which takes most of my time.

L505

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
  



--
Michael Schnell, Firmware-Entwicklung
LUMINO Licht Elektronik GmbH, Germany,
 Europark Fichtenhain A8, D-47807 Krefeld
Geschäftsführung: Dipl.-Ing. Karl Heinz Ronkholz, 
 Dipl.-Betriebswirt Mario Fullert, Dipl.-Ing. Rolf Aengenendt

www.lumino.de, fon: +49 (2151) 8196-172, fax: +49 (2151) 8196-272
Handelsregister HRB 1682 Amtsgericht Krefeld

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-06 Thread L

 Hi Lars,

  The key point is exporting the api from the executable rather than the dll.
  Many
  people don't understand this basic concept nor know it is possible, nor
  understand why it works and how it works.
 
 I, too, in fact don't understand this. care to give a short explanation
 ? I do know about FP/GNU ABI-problems, but that does not seem to be the
 major port of the problem.

Executables can export functions and procedures just like a library can.

For delphi/fpc programs.. where most people design their software inside one
gigantic executable.. you already have an API stored in the exe. Taking all the
code out of the exe and putting it inside DLL's takes time. When you export some
procedures from the exe, you already have all that infrastructure in the exe
that you can use instantly. No taking code out from the exe and putting it in
dll's required.

Of course putting it into dll's is not a big deal if you have
compiler support that does all this automatically with the 'compile using
packages' checkbox. Exporting from the exe offers you the ability to quickly
make an API for language independent plugins that can work with Digital Mars D,
Freepascal, C, etc. 'Compile using packages' does not make the plugin system
language independent and portable too. I'm not sure if for example delphi
packages would ever dynamically load into an fpc executable. Whereas
plugger ones would.

So since your executable already contains lots of code in it..
And since turning an existing big Exe into DLL's is a big pain (without
compiler support), you can make use of the 'export from exe' trick that
people don't know about. People think dll's are what we can export things
from. Not only dll's but also exe's. This is the key to two way communication
between the dll and the exe, rather than one way communication.


  LazarusRB (arby) demonstrated this years ago with an API called Plugger. It
is
  no longer in active development
 That is a really bad :-( . What is LazarusRB ? Is there still something
 usable and some documentation on LazarusRB and/or Plugger ?


Not really, just some old videos and screenshots.
The problem for me is simply lack of time :-(


  since I am very busy with web programming and
  consulting, and documenting Powtils project which takes most of my time.
 P.S.:
 I did file a bug report regarding the in deed not functional
 CGI-project feature in Lazarus. I don't suppose that you are involved
 in that but maybe it would be a good idea to synchronize this with parts
 of what Powtils provides.

They have something called 'ezcgi' and 'cgimodule' which I guess you have
checked out?
But yes, more project integration is needed.. when I get fpcweb.exe working it
will work with any IDE such as lazarus/mseide but even more integration is
needed than just a http compiler. Things like a menu item to open a powtils
template/project is needed, and much more. There are many lazarus users using
Powtils and I had hoped one of them would create some template for the
'file-new..' dialog.  Amir wrote a lazarus plugin I think for O-PSP development
once:
https://opensvn.csie.org/pspcgi/LazarusPlugin/

L505

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-05 Thread Michael Schnell



Look, I don't try to convince you that Lazarus or FPC should make
extensive use of packages - we worked years without it and we worked
very well, 
If using packages is the way to go to make installing visual components 
in Lazarus, IMHO it's essential to use them there ASAP.


It would be really nice to have a predefined way to do/deploy plugins 
(that should not depend on compiler versions and maybe should be doable 
in C, too). Maybe something supporting those could be worth some 
thoughts, too.


-Michael
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-05 Thread Mattias Gaertner
On Mon, 05 Nov 2007 12:08:31 +0100
Michael Schnell [EMAIL PROTECTED] wrote:

 
  Look, I don't try to convince you that Lazarus or FPC should make
  extensive use of packages - we worked years without it and we worked
  very well, 
 If using packages is the way to go to make installing visual
 components in Lazarus, IMHO it's essential to use them there ASAP.
 
 It would be really nice to have a predefined way to do/deploy
 plugins (that should not depend on compiler versions and maybe
 should be doable in C, too). Maybe something supporting those could
 be worth some thoughts, too.

If you really want to write C plugin, then I can add a unit to the
IDEIntf with some common functions without OOP.


Mattias
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-05 Thread Michael Schnell



If you really want to write C plugin, then I can add a unit to the
IDEIntf with some common functions without OOP.
  

I don't intend to doing that right now.

But one of the most commonly used and supposedly complex and well 
defined plugin systems open to 3rd party providers is Steinberg (Cubase) 
plugins for MIDI/Audio applets.


- the plugin API defines MIDI I/O, Audio I/O, GUI and supposedly some 
more weird stuff like copy protection dongles

- there are working hosts and plugins for Windows, Linux and Mac
- there are hundreds of companies providing those plugins (many freeware 
products)
- there are hosts by several companies. Besides Steinberg products there 
is NI Core and even a hardware system (that runs on Linux)

- I read about projects writing those plugins successfully with free Pascal

So this _is_ a good example of an OS and language independent plugin 
API. Maybe it's a good idea to provide something compatible.


-Michael
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-05 Thread L

  If you really want to write C plugin, then I can add a unit to the
  IDEIntf with some common functions without OOP.
 
 I don't intend to doing that right now.

 But one of the most commonly used and supposedly complex and well
 defined plugin systems open to 3rd party providers is Steinberg (Cubase)
 plugins for MIDI/Audio applets.

 - the plugin API defines MIDI I/O, Audio I/O, GUI and supposedly some
 more weird stuff like copy protection dongles
 - there are working hosts and plugins for Windows, Linux and Mac
 - there are hundreds of companies providing those plugins (many freeware
 products)
 - there are hosts by several companies. Besides Steinberg products there
 is NI Core and even a hardware system (that runs on Linux)
 - I read about projects writing those plugins successfully with free Pascal

 So this _is_ a good example of an OS and language independent plugin
 API. Maybe it's a good idea to provide something compatible.

The key point is exporting the api from the executable rather than the dll. Many
people don't understand this basic concept nor know it is possible, nor
understand why it works and how it works.

LazarusRB (arby) demonstrated this years ago with an API called Plugger. It is
no longer in active development since I am very busy with web programming and
consulting, and documenting Powtils project which takes most of my time.

L505

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-05 Thread Bogusław Brandys

Daniël Mantione wrote:


Op Sat, 3 Nov 2007, schreef Marco van de Voort:


Florian Klaempfl schrieb:

Ok, I'll ask next time this person to spent the weekend to fix windows
installer scripts and assign to it the still open web download page,
installer and install package bugs.

I was never for the download system in the first place remember? In my
opinion it can be a huge binary.

I meant only the current download pages.

Add: Each additional downloadble package increases deployment pain
significantly. Just look at 9500, this problem exists for aeons, nobody
cares.

Probably, but is that really the problem with packages? Packages are a part
of Delphi compat, and have been explicitely on the 2.x roadmap for years.
And now we cancel it because the linux install installs the demoes in the
wrong place, if not manually fixed?


As far as I am concerned, nothing is against the implementation of 
packages as long as it is non-intrusive to FPC users and FPC developers. 
Putting something on the roadmap does not automatically mean it gets 
implemented, fore major features there has to be someone who has an 
interrest in that feature before it get implemented. Until now, it hasn't 
been the case.


Daniël




Please,do not mess fpc with packages , implement only those parts 
required for creating and maintaining packages by Lazarus team.Here 
packages are useful. Better is to implement native debugger library for 
fpc programs instead of using gdb which may be fine under linux but 
crashes too often here under windows.


Regards
Boguslaw
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] Dnamic packages support

2007-11-03 Thread Leonardo M. Ram
Reading a post in public.mseide-msegui.talk, the mseide discussion
 list, I found this:

Florian has committed the beginning of dynamic packages support.

With Dynamic Packages you mean a platform independent way of
 implementing something similar to
.Dlls (or .bpl)? without creating each library its own memory manager?,
 where objects can flow
across all libraries without problems?

Leonardo M. Ramé
http://leonardorame.blogspot.com

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Leonardo M. Ramé schrieb:
 Reading a post in public.mseide-msegui.talk, the mseide discussion
  list, I found this:
 
 Florian has committed the beginning of dynamic packages support.
 
 With Dynamic Packages you mean a platform independent way of
  implementing something similar to
 .Dlls (or .bpl)? without creating each library its own memory manager?,
  where objects can flow
 across all libraries without problems?
 

If it is finished, it would be something like this yes. However, I'am
not convinced of the use of dyn. loaded packages for an OSS project so I
played only with it.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Michael Van Canneyt


On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Leonardo M. Ramé schrieb:
  Reading a post in public.mseide-msegui.talk, the mseide discussion
   list, I found this:
  
  Florian has committed the beginning of dynamic packages support.
  
  With Dynamic Packages you mean a platform independent way of
   implementing something similar to
  .Dlls (or .bpl)? without creating each library its own memory manager?,
   where objects can flow
  across all libraries without problems?
  
 
 If it is finished, it would be something like this yes. However, I'am
 not convinced of the use of dyn. loaded packages for an OSS project so I
 played only with it.

Hm. I don't see what OSS or not OSS has to do with it ?

Packages are IMHO a pre-requisite for any good plugin system.
It allows you to enable/disable certain features of a program based on the 
particular system you install the package on, without having to recompile
your complete application for this particular system.

Lazarus is an IDE and therefore recompilation is IMHO an acceptable solution,
since the person using it is a developer (even so, this would be too much asked
for most devels in my company) but the same cannot be said for most end-user 
applications, OSS or not. For example, I don't think we can expect an end 
user to recompile XMMS if he decides to use ogg vorbis files instead of .mp3...

Apart from the recompilation issue, packages allow you to have type-safety in 
plugins. A normal dll does not offer this (which is why techniques such as 
COM are used on Windows). I could not build my day-time job application if 
packages did not exist...

So I do think packages are really a must; I lack the skill to implement them
in the compiler, but will be glad to assist in any design issues or even 
creating any RTL code that you would need, if this is the problem for you.

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Daniël Mantione


Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:

 
 
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:
 
  Leonardo M. Ramé schrieb:
   Reading a post in public.mseide-msegui.talk, the mseide discussion
list, I found this:
   
   Florian has committed the beginning of dynamic packages support.
   
   With Dynamic Packages you mean a platform independent way of
implementing something similar to
   .Dlls (or .bpl)? without creating each library its own memory manager?,
where objects can flow
   across all libraries without problems?
   
  
  If it is finished, it would be something like this yes. However, I'am
  not convinced of the use of dyn. loaded packages for an OSS project so I
  played only with it.
 
 Hm. I don't see what OSS or not OSS has to do with it ?
 
 Packages are IMHO a pre-requisite for any good plugin system.

The reason is that the library construction requires you to write down 
your binary interface, and therefore design it properly. If the 
interfacing between application and plugin is automatic, it can also 
change automatically without you knowing.

I believe such a system is only useable in contolled environments. If 
plug-ins are to be developed by a third party, runtime-packages aren't 
a feasible mechanism.

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Michael Van Canneyt schrieb:
 
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:
 
 Leonardo M. Ramé schrieb:
 Reading a post in public.mseide-msegui.talk, the mseide discussion
  list, I found this:

 Florian has committed the beginning of dynamic packages support.

 With Dynamic Packages you mean a platform independent way of
  implementing something similar to
 .Dlls (or .bpl)? without creating each library its own memory manager?,
  where objects can flow
 across all libraries without problems?

 If it is finished, it would be something like this yes. However, I'am
 not convinced of the use of dyn. loaded packages for an OSS project so I
 played only with it.
 
 Hm. I don't see what OSS or not OSS has to do with it ?

Packages have major drawbacks
- DLL/shared lib hell; remember each fpc build gets/needs it's own set
of packages
- memory footprint of programs increase significantly since no
smartlinking is possible, I created once a pure shared linked lazarus:
it depended on 50 MB of shared libs.
- speed of programs decreases by ~10% because each global variable
access gets indirect (like pic)
- major blow up of installer size

 
 Packages are IMHO a pre-requisite for any good plugin system.
 It allows you to enable/disable certain features of a program based on the 
 particular system you install the package on, without having to recompile
 your complete application for this particular system.

Then it's the task of a programmer to design a proper plugin interface.
A plugin interface based on packages (in the delphi sense) requires that
the main program and the plugin use exactly the same compiler and rtl.

 
 Lazarus is an IDE and therefore recompilation is IMHO an acceptable solution,
 since the person using it is a developer (even so, this would be too much 
 asked
 for most devels in my company) but the same cannot be said for most end-user 
 applications, OSS or not. For example, I don't think we can expect an end 
 user to recompile XMMS if he decides to use ogg vorbis files instead of 
 .mp3...
 
 Apart from the recompilation issue, packages allow you to have type-safety in 
 plugins. A normal dll does not offer this (which is why techniques such as 
 COM are used on Windows). I could not build my day-time job application if 
 packages did not exist...
 
 So I do think packages are really a must; I lack the skill to implement them
 in the compiler, but will be glad to assist in any design issues or even 
 creating any RTL code that you would need, if this is the problem for you.

I see only a real use of packages if one doesn't want to distribute the
source of the IDE like Delphi.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
   played only with it.
  
  Hm. I don't see what OSS or not OSS has to do with it ?
  
  Packages are IMHO a pre-requisite for any good plugin system.
 
 The reason is that the library construction requires you to write down 
 your binary interface, and therefore design it properly. If the 
 interfacing between application and plugin is automatic, it can also 
 change automatically without you knowing.
 
 I believe such a system is only useable in contolled environments. If 
 plug-ins are to be developed by a third party, runtime-packages aren't 
 a feasible mechanism.

Of course, if only if it ties you down to the specifics of a language. But
that is not different between OSS or not OSS either.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Daniël Mantione schrieb:
 
 Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
 

 On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Leonardo M. Ramé schrieb:
 Reading a post in public.mseide-msegui.talk, the mseide discussion
  list, I found this:

 Florian has committed the beginning of dynamic packages support.

 With Dynamic Packages you mean a platform independent way of
  implementing something similar to
 .Dlls (or .bpl)? without creating each library its own memory manager?,
  where objects can flow
 across all libraries without problems?

 If it is finished, it would be something like this yes. However, I'am
 not convinced of the use of dyn. loaded packages for an OSS project so I
 played only with it.
 Hm. I don't see what OSS or not OSS has to do with it ?

 Packages are IMHO a pre-requisite for any good plugin system.
 
 The reason is that the library construction requires you to write down 
 your binary interface, and therefore design it properly. If the 
 interfacing between application and plugin is automatic, it can also 
 change automatically without you knowing.
 
 I believe such a system is only useable in contolled environments. If 
 plug-ins are to be developed by a third party, runtime-packages aren't 
 a feasible mechanism.

Exactly.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Michael Van Canneyt


On Sat, 3 Nov 2007, Daniël Mantione wrote:

 
 
 Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
 
  
  
  On Sat, 3 Nov 2007, Florian Klaempfl wrote:
  
   Leonardo M. Ramé schrieb:
Reading a post in public.mseide-msegui.talk, the mseide discussion
 list, I found this:

Florian has committed the beginning of dynamic packages support.

With Dynamic Packages you mean a platform independent way of
 implementing something similar to
.Dlls (or .bpl)? without creating each library its own memory manager?,
 where objects can flow
across all libraries without problems?

   
   If it is finished, it would be something like this yes. However, I'am
   not convinced of the use of dyn. loaded packages for an OSS project so I
   played only with it.
  
  Hm. I don't see what OSS or not OSS has to do with it ?
  
  Packages are IMHO a pre-requisite for any good plugin system.
 
 The reason is that the library construction requires you to write down 
 your binary interface, and therefore design it properly. If the 
 interfacing between application and plugin is automatic, it can also 
 change automatically without you knowing.
 
 I believe such a system is only useable in contolled environments. If 
 plug-ins are to be developed by a third party, runtime-packages aren't 
 a feasible mechanism.

Indeed.

It is exactly because I wish to control the plugins that I require packages.
The single identifier space is a huge advantage, which make it almost automatic.

If you don't have packages, then you must revert to COM interfaces, refcounted
stuff, explicitly sharing memory managers to be able to use ansistrings 
properly etc.

Packages solve all problems in 1 fell swoop. There is only 1 disadvantage to
packages, this is the versioning of the base packages, which is IMHO very 
controllable. All other things are advantages.

In my opinion, Packages are the second best thing Borland did for RAD.
If I remember the shit we had with VB and its OCXes, DLLs and whatnot. 
No thanks...

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Michael Van Canneyt


On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Michael Van Canneyt schrieb:
  
  On Sat, 3 Nov 2007, Florian Klaempfl wrote:
  
  Leonardo M. Ramé schrieb:
  Reading a post in public.mseide-msegui.talk, the mseide discussion
   list, I found this:
 
  Florian has committed the beginning of dynamic packages support.
 
  With Dynamic Packages you mean a platform independent way of
   implementing something similar to
  .Dlls (or .bpl)? without creating each library its own memory manager?,
   where objects can flow
  across all libraries without problems?
 
  If it is finished, it would be something like this yes. However, I'am
  not convinced of the use of dyn. loaded packages for an OSS project so I
  played only with it.
  
  Hm. I don't see what OSS or not OSS has to do with it ?
 
 Packages have major drawbacks
 - DLL/shared lib hell; remember each fpc build gets/needs it's own set
 of packages

I don't see this as a problem. We release only once a year.

 - memory footprint of programs increase significantly since no
 smartlinking is possible, I created once a pure shared linked lazarus:
 it depended on 50 MB of shared libs.

Disk footprint may be higher, but memory footprint is definitely lower.
I did extensive testing on that.

 - speed of programs decreases by ~10% because each global variable
 access gets indirect (like pic)

This is so.

 - major blow up of installer size

I fail to see this ?

 
  
  Packages are IMHO a pre-requisite for any good plugin system.
  It allows you to enable/disable certain features of a program based on the 
  particular system you install the package on, without having to recompile
  your complete application for this particular system.
 
 Then it's the task of a programmer to design a proper plugin interface.
 A plugin interface based on packages (in the delphi sense) requires that
 the main program and the plugin use exactly the same compiler and rtl.

Yes, of course. I don't see this as a problem, but as a plus, since you
control the environment.

I'm not talking about some audio decoding/encoding mechanism, that is for
babies. I'm talking about hundreds of possible interfaces, highly 
interdependent.

If I had to design a proper plugin interface for my application at work,
I would end up simply re-implementing packages, the interface would be 
HUGE, and would dwarf the implementation code.


  Lazarus is an IDE and therefore recompilation is IMHO an acceptable 
  solution,
  since the person using it is a developer (even so, this would be too much 
  asked
  for most devels in my company) but the same cannot be said for most 
  end-user 
  applications, OSS or not. For example, I don't think we can expect an end 
  user to recompile XMMS if he decides to use ogg vorbis files instead of 
  .mp3...
  
  Apart from the recompilation issue, packages allow you to have type-safety 
  in 
  plugins. A normal dll does not offer this (which is why techniques such as 
  COM are used on Windows). I could not build my day-time job application if 
  packages did not exist...
  
  So I do think packages are really a must; I lack the skill to implement them
  in the compiler, but will be glad to assist in any design issues or even 
  creating any RTL code that you would need, if this is the problem for you.
 
 I see only a real use of packages if one doesn't want to distribute the
 source of the IDE like Delphi.

Or, like I said, third party programs for which recompiling by the end user 
is not an option.

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 On Sat, 3 Nov 2007, Dani?l Mantione wrote:

 ...
 In my opinion, Packages are the second best thing Borland did for RAD.
 If I remember the shit we had with VB and its OCXes, DLLs and whatnot. 
 ...

I agree. I also want to remind that it is not just about the use for us. The
devels will create a package system on C level in no time. It is something
else for people that don't know all implementation details of Pascal/Delphi.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Michael Van Canneyt schrieb:
 
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:
 
 Michael Van Canneyt schrieb:
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Leonardo M. Ramé schrieb:
 Reading a post in public.mseide-msegui.talk, the mseide discussion
  list, I found this:

 Florian has committed the beginning of dynamic packages support.

 With Dynamic Packages you mean a platform independent way of
  implementing something similar to
 .Dlls (or .bpl)? without creating each library its own memory manager?,
  where objects can flow
 across all libraries without problems?

 If it is finished, it would be something like this yes. However, I'am
 not convinced of the use of dyn. loaded packages for an OSS project so I
 played only with it.
 Hm. I don't see what OSS or not OSS has to do with it ?
 Packages have major drawbacks
 - DLL/shared lib hell; remember each fpc build gets/needs it's own set
 of packages
 
 I don't see this as a problem. We release only once a year.

Well, twice a year, but there are also snapshots, people compile there
code themself etc. Each time you compile and install fpc it will fill
your windows dir or /usr/local/lib with another 50 MB of dlls :)

 
 - memory footprint of programs increase significantly since no
 smartlinking is possible, I created once a pure shared linked lazarus:
 it depended on 50 MB of shared libs.
 
 Disk footprint may be higher, but memory footprint is definitely lower.
 I did extensive testing on that.

Only because dll's/so's are probably being counted shared.

 
 - speed of programs decreases by ~10% because each global variable
 access gets indirect (like pic)
 
 This is so.
 
 - major blow up of installer size
 
 I fail to see this ?

Because we've to deliever also the fpl's?

 
 Packages are IMHO a pre-requisite for any good plugin system.
 It allows you to enable/disable certain features of a program based on the 
 particular system you install the package on, without having to recompile
 your complete application for this particular system.
 Then it's the task of a programmer to design a proper plugin interface.
 A plugin interface based on packages (in the delphi sense) requires that
 the main program and the plugin use exactly the same compiler and rtl.
 
 Yes, of course. I don't see this as a problem, but as a plus, since you
 control the environment.
 
 I'm not talking about some audio decoding/encoding mechanism, that is for
 babies. I'm talking about hundreds of possible interfaces, highly 
 interdependent.
 
 If I had to design a proper plugin interface for my application at work,
 I would end up simply re-implementing packages, the interface would be 
 HUGE, and would dwarf the implementation code.

Well, but this is mainly abusing packages ;)

 
 
 Lazarus is an IDE and therefore recompilation is IMHO an acceptable 
 solution,
 since the person using it is a developer (even so, this would be too much 
 asked
 for most devels in my company) but the same cannot be said for most 
 end-user 
 applications, OSS or not. For example, I don't think we can expect an end 
 user to recompile XMMS if he decides to use ogg vorbis files instead of 
 .mp3...

 Apart from the recompilation issue, packages allow you to have type-safety 
 in 
 plugins. A normal dll does not offer this (which is why techniques such as 
 COM are used on Windows). I could not build my day-time job application if 
 packages did not exist...

 So I do think packages are really a must; I lack the skill to implement them
 in the compiler, but will be glad to assist in any design issues or even 
 creating any RTL code that you would need, if this is the problem for you.
 I see only a real use of packages if one doesn't want to distribute the
 source of the IDE like Delphi.
 
 Or, like I said, third party programs for which recompiling by the end user 
 is not an option.
 
 Michael.
 
 
 
 
 ___
 fpc-devel maillist  -  fpc-devel@lists.freepascal.org
 http://lists.freepascal.org/mailman/listinfo/fpc-devel

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Daniël Mantione


Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:

 
  - memory footprint of programs increase significantly since no
  smartlinking is possible, I created once a pure shared linked lazarus:
  it depended on 50 MB of shared libs.
 
 Disk footprint may be higher, but memory footprint is definitely lower.
 I did extensive testing on that.

The memory footprint can only be lower if multiple applications are in 
memory that can use the same packages.

Even then, there will only be savings if the amount of code that can be 
smartlinked is small.

Example: Let's say an LCL package is 10MB. 2 applications are 2MB when 
smartlinked, and 100kb when linked against the package. (The heap can be 
ignored in this discussion because its memory usage does not differ 
depending on packages being used.)

Memory use with packages: 10MB+2*100KB = 10,2MB.
Memory use with smartlinking: 2*2MB=  4MB

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Michael Van Canneyt


On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Michael Van Canneyt schrieb:
  
  On Sat, 3 Nov 2007, Florian Klaempfl wrote:
  
  Michael Van Canneyt schrieb:
  On Sat, 3 Nov 2007, Florian Klaempfl wrote:
 
  Leonardo M. Ramé schrieb:
  Reading a post in public.mseide-msegui.talk, the mseide discussion
   list, I found this:
 
  Florian has committed the beginning of dynamic packages support.
 
  With Dynamic Packages you mean a platform independent way of
   implementing something similar to
  .Dlls (or .bpl)? without creating each library its own memory manager?,
   where objects can flow
  across all libraries without problems?
 
  If it is finished, it would be something like this yes. However, I'am
  not convinced of the use of dyn. loaded packages for an OSS project so I
  played only with it.
  Hm. I don't see what OSS or not OSS has to do with it ?
  Packages have major drawbacks
  - DLL/shared lib hell; remember each fpc build gets/needs it's own set
  of packages
  
  I don't see this as a problem. We release only once a year.
 
 Well, twice a year, but there are also snapshots, people compile there
 code themself etc. Each time you compile and install fpc it will fill
 your windows dir or /usr/local/lib with another 50 MB of dlls :)

Snapshots are of course not suitable; We don't support them in the first place.
I also don't use development builds or Betas of Borland, although I could.

I have 1 set of BPLs on my system. Works excellent.

And for an application that needs to change compiler version - something
that happened on my day-time job once in 8 years, this is not a problem.

  - memory footprint of programs increase significantly since no
  smartlinking is possible, I created once a pure shared linked lazarus:
  it depended on 50 MB of shared libs.
  
  Disk footprint may be higher, but memory footprint is definitely lower.
  I did extensive testing on that.
 
 Only because dll's/so's are probably being counted shared.

No, because they have a single memory area.

  - speed of programs decreases by ~10% because each global variable
  access gets indirect (like pic)
  
  This is so.
  
  - major blow up of installer size
  
  I fail to see this ?
 
 Because we've to deliever also the fpl's?

The package system will solve this nicely, because we'll only
distribute sources anyway. By the end of this year, I hope that
you'll be convinced of that :-)

  If I had to design a proper plugin interface for my application at work,
  I would end up simply re-implementing packages, the interface would be 
  HUGE, and would dwarf the implementation code.
 
 Well, but this is mainly abusing packages ;)

On the contrary, it is using them for what they were designed to 
accomplish.

Make no mistake:
I am not the only one using them like that. Beside my own articles
about it, there have been several description of such systems in 
e.g. Toolbox.

Look, I don't try to convince you that Lazarus or FPC should make
extensive use of packages - we worked years without it and we worked
very well, but you should also be open to the idea that there are 
areas where they are simply a very good thing, making development
much easier. Not everyone is a seasoned compiler developer like we 
are, and packages make it possible for less-educated developers to
participate in more complicated architectures, because they don't have
to worry about creating interfaces, ref counting, setting memory managers 
and whatnot. I cannot even begin to explain to some of my collegae what 
an interface is, they even barely understand classes. And because of 
Delphi's RAD approach and the use of packages, they don't have to...

Packages and the missing TClientDataset are the only 2 remaining things 
stopping me from using FPC/Lazarus for my daytime job. All else is 
covered or can be covered with a minimal amount of work.

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Michael Van Canneyt schrieb:
  Hm. I don't see what OSS or not OSS has to do with it ?
  Packages have major drawbacks
  - DLL/shared lib hell; remember each fpc build gets/needs it's own set
  of packages
  
  I don't see this as a problem. We release only once a year.
 
 Well, twice a year, but there are also snapshots, people compile there
 code themself etc. Each time you compile and install fpc it will fill
 your windows dir or /usr/local/lib with another 50 MB of dlls :)

Yes. And if my 500GB disk will be filled up with snapshots in
500GB/50MB=1 days, I'm sure in 27 years, the same HD will be a lot
cheaper.

Aside from the fact it makes sense to routinely install compatible versions.
Keep release + 1 snapshot just like with the compiler.

  Disk footprint may be higher, but memory footprint is definitely lower.
  I did extensive testing on that.
 
 Only because dll's/so's are probably being counted shared.

To be honest, all this diskspace/memory stuff is totally uninteresting.
Packages are about dividing the Pascal program up in blocks, with parts
being compilable AFTER the main program, without a lot of additional demands
(or need for control) on the interfaces between the packages.

Don't get too worked up about plugin architectures in the AutoCAD sense. In
practice it is way simpler, like only shipping one BPL to a custom if he
@([EMAIL PROTECTED] paid for it. This means you can have one main binary, in 
which a hand
full of acquisition BPLs register themselves. 

  - major blow up of installer size
  
  I fail to see this ?
 
 Because we've to deliever also the fpl's?

If it really is that of a problem, you only deliver them using a optional
package.

  If I had to design a proper plugin interface for my application at work,
  I would end up simply re-implementing packages, the interface would be 
  HUGE, and would dwarf the implementation code.
 
 Well, but this is mainly abusing packages ;)

No it is not. If the interface is not a focus of your design, it is a waste
of time to spell it out, and keep the packages independant programs.

Most notably since that fails miserably on Linux atm, since RTL duplication
isn't handled very well.
 
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Michael Van Canneyt


On Sat, 3 Nov 2007, Daniël Mantione wrote:

 
 
 Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
 
  
   - memory footprint of programs increase significantly since no
   smartlinking is possible, I created once a pure shared linked lazarus:
   it depended on 50 MB of shared libs.
  
  Disk footprint may be higher, but memory footprint is definitely lower.
  I did extensive testing on that.
 
 The memory footprint can only be lower if multiple applications are in 
 memory that can use the same packages.

You forget something, see below.

 
 Even then, there will only be savings if the amount of code that can be 
 smartlinked is small.
 
 Example: Let's say an LCL package is 10MB. 2 applications are 2MB when 
 smartlinked, and 100kb when linked against the package. (The heap can be 
 ignored in this discussion because its memory usage does not differ 
 depending on packages being used.)

This is wrong for plugins, see below.

 
 Memory use with packages: 10MB+2*100KB = 10,2MB.
 Memory use with smartlinking: 2*2MB=  4MB

First of all, we would be stupid to create a single LCL package. 
We should divide it into various packages grouping units 
according to functionality. Even Borland realized this eventually.
Secondly, your quoted sizes are simply bogus; This is not a valid 
argument for a discussion.

But that is beside the point.

I agree with you that for a single app, using packages is a bad thing for 
memory usage. No discussion there.

But the gain is not there. The gain I mentioned comes when using plugins.

With DLLs plugins, each DLL will of necessity have a lot of common code,
loaded into memory with each plugin. With packages, all code is in memory
only once.

Then, you are only considering code size. This is not enough. I am also 
considering heap size.  With DLLs, each DLL will of necessity have a lot 
of common data structures in memory, copied in each plugin. 
You would be surprised at the size of this. For a system with 100ds 
of interfaces, this can become a big amount.

Using packages for plugins, the code will be there only once, and the common
data structures in memory will be there only once. This is the gain I was 
talking about. It exists only for a plugin system, and when compared to a 
plugin system based on DLLs. 

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
 Even then, there will only be savings if the amount of code that can be 
 smartlinked is small.
 
 Example: Let's say an LCL package is 10MB. 2 applications are 2MB when 
 smartlinked, and 100kb when linked against the package. (The heap can be 
 ignored in this discussion because its memory usage does not differ 
 depending on packages being used.)
 
 Memory use with packages: 10MB+2*100KB = 10,2MB.
 Memory use with smartlinking: 2*2MB=  4MB

_ADDRESS_ space use. Memory use depends on actual usage, since the pages of
memory mapped DLLs will only be loaded on access. (and afaik linux does it
similarly)
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Marco van de Voort schrieb:
 - major blow up of installer size
 I fail to see this ?
 Because we've to deliever also the fpl's?
 
 If it really is that of a problem, you only deliver them using a optional
 package.

Who will maintain this?
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Michael Van Canneyt schrieb:
 
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:
 
 Michael Van Canneyt schrieb:
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Michael Van Canneyt schrieb:
 On Sat, 3 Nov 2007, Florian Klaempfl wrote:

 Leonardo M. Ramé schrieb:
 Reading a post in public.mseide-msegui.talk, the mseide discussion
  list, I found this:

 Florian has committed the beginning of dynamic packages support.

 With Dynamic Packages you mean a platform independent way of
  implementing something similar to
 .Dlls (or .bpl)? without creating each library its own memory manager?,
  where objects can flow
 across all libraries without problems?

 If it is finished, it would be something like this yes. However, I'am
 not convinced of the use of dyn. loaded packages for an OSS project so I
 played only with it.
 Hm. I don't see what OSS or not OSS has to do with it ?
 Packages have major drawbacks
 - DLL/shared lib hell; remember each fpc build gets/needs it's own set
 of packages
 I don't see this as a problem. We release only once a year.
 Well, twice a year, but there are also snapshots, people compile there
 code themself etc. Each time you compile and install fpc it will fill
 your windows dir or /usr/local/lib with another 50 MB of dlls :)
 
 Snapshots are of course not suitable; We don't support them in the first 
 place.
 I also don't use development builds or Betas of Borland, although I could.
 
 I have 1 set of BPLs on my system. Works excellent.

Because you use only one delphi version.

 
 And for an application that needs to change compiler version - something
 that happened on my day-time job once in 8 years, this is not a problem.
 
 - memory footprint of programs increase significantly since no
 smartlinking is possible, I created once a pure shared linked lazarus:
 it depended on 50 MB of shared libs.
 Disk footprint may be higher, but memory footprint is definitely lower.
 I did extensive testing on that.
 Only because dll's/so's are probably being counted shared.
 
 No, because they have a single memory area.

?

 
 - speed of programs decreases by ~10% because each global variable
 access gets indirect (like pic)
 This is so.

 - major blow up of installer size
 I fail to see this ?
 Because we've to deliever also the fpl's?
 
 The package system will solve this nicely, because we'll only
 distribute sources anyway. By the end of this year, I hope that
 you'll be convinced of that :-)


I fear somehow the deploying and maintainance of packages because of the
reasons mentioned: size, versioning, different code generation etc.

 
 If I had to design a proper plugin interface for my application at work,
 I would end up simply re-implementing packages, the interface would be 
 HUGE, and would dwarf the implementation code.
 Well, but this is mainly abusing packages ;)
 
 On the contrary, it is using them for what they were designed to 
 accomplish.
 
 Make no mistake:
 I am not the only one using them like that. Beside my own articles
 about it, there have been several description of such systems in 
 e.g. Toolbox.
 
 Look, I don't try to convince you that Lazarus or FPC should make
 extensive use of packages - we worked years without it and we worked
 very well, but you should also be open to the idea that there are 
 areas where they are simply a very good thing, making development
 much easier. Not everyone is a seasoned compiler developer like we 
 are, and packages make it possible for less-educated developers to
 participate in more complicated architectures, because they don't have
 to worry about creating interfaces, ref counting, setting memory managers 
 and whatnot. I cannot even begin to explain to some of my collegae what 
 an interface is, they even barely understand classes. And because of 
 Delphi's RAD approach and the use of packages, they don't have to...
 
 Packages and the missing TClientDataset are the only 2 remaining things 

See irc ;)

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Michael Van Canneyt


On Sat, 3 Nov 2007, Marco van de Voort wrote:

 
 To be honest, all this diskspace/memory stuff is totally uninteresting.
 Packages are about dividing the Pascal program up in blocks, with parts
 being compilable AFTER the main program, without a lot of additional demands
 (or need for control) on the interfaces between the packages.
 
 Don't get too worked up about plugin architectures in the AutoCAD sense. In
 practice it is way simpler, like only shipping one BPL to a custom if he
 @([EMAIL PROTECTED] paid for it. This means you can have one main binary, in 
 which a hand
 full of acquisition BPLs register themselves. 

This is actually more or less what I would have liked to get through, yes.

Thanks Marco :-)

Michael.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Marco van de Voort schrieb:
  - major blow up of installer size
  I fail to see this ?
  Because we've to deliever also the fpl's?
  
  If it really is that of a problem, you only deliver them using a optional
  package.
 
 Who will maintain this?

The person that will otherwise have to explain to newbies how to pass as
string to a dll.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Marco van de Voort schrieb:
 Marco van de Voort schrieb:
 - major blow up of installer size
 I fail to see this ?
 Because we've to deliever also the fpl's?
 If it really is that of a problem, you only deliver them using a optional
 package.
 Who will maintain this?
 
 The person that will otherwise have to explain to newbies how to pass as
 string to a dll.

Ok, I'll ask next time this person to spent the weekend to fix windows
installer scripts and assign to it the still open web download page,
installer and install package bugs.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Vincent Snijders

Michael Van Canneyt schreef:


On Sat, 3 Nov 2007, Marco van de Voort wrote:


Don't get too worked up about plugin architectures in the AutoCAD sense. In
practice it is way simpler, like only shipping one BPL to a custom if he
@([EMAIL PROTECTED] paid for it. This means you can have one main binary, in 
which a hand
full of acquisition BPLs register themselves. 


This is actually more or less what I would have liked to get through, yes.

Thanks Marco :-)


So, it is actually commercially driven and therefore not a thing you 
look for in a OSS environment ;-)


Vincent
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Daniël Mantione


Op Sat, 3 Nov 2007, schreef Marco van de Voort:

  Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
  Even then, there will only be savings if the amount of code that can be 
  smartlinked is small.
  
  Example: Let's say an LCL package is 10MB. 2 applications are 2MB when 
  smartlinked, and 100kb when linked against the package. (The heap can be 
  ignored in this discussion because its memory usage does not differ 
  depending on packages being used.)
  
  Memory use with packages: 10MB+2*100KB = 10,2MB.
  Memory use with smartlinking: 2*2MB=  4MB
 
 _ADDRESS_ space use. Memory use depends on actual usage, since the pages of
 memory mapped DLLs will only be loaded on access. (and afaik linux does it
 similarly)

True, but does that change this calculation? I.e. if 75% of the code is in 
memory, the calculation still results in the same conclusion. Or is there, 
according to you, a reason why smartlinked programs have higher loading 
percentages than dynamically linked programs?

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Michael Van Canneyt schreef:
  
  On Sat, 3 Nov 2007, Marco van de Voort wrote:
  
  Don't get too worked up about plugin architectures in the AutoCAD sense. In
  practice it is way simpler, like only shipping one BPL to a custom if he
  @([EMAIL PROTECTED] paid for it. This means you can have one main binary, 
  in which a hand
  full of acquisition BPLs register themselves. 
  
  This is actually more or less what I would have liked to get through, yes.
  
  Thanks Marco :-)
 
 So, it is actually commercially driven and therefore not a thing you 
 look for in a OSS environment ;-)

No. It is time driven. And we don't code everything in plain C in OSS
either. So why limit ourselves to that with library interfaces?
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Op Sat, 3 Nov 2007, schreef Marco van de Voort:
 
   Op Sat, 3 Nov 2007, schreef Michael Van Canneyt:
   Even then, there will only be savings if the amount of code that can be 
   smartlinked is small.
   
   Example: Let's say an LCL package is 10MB. 2 applications are 2MB when 
   smartlinked, and 100kb when linked against the package. (The heap can be 
   ignored in this discussion because its memory usage does not differ 
   depending on packages being used.)
   
   Memory use with packages: 10MB+2*100KB = 10,2MB.
   Memory use with smartlinking: 2*2MB=  4MB
  
  _ADDRESS_ space use. Memory use depends on actual usage, since the pages of
  memory mapped DLLs will only be loaded on access. (and afaik linux does it
  similarly)
 
 True, but does that change this calculation? I.e. if 75% of the code is in 
 memory, the calculation still results in the same conclusion. 

If the percentage is the same yes, but since the packages one has a higher
percentage of unused code, the unused pages percentage will also be higher.

 Or is there, 
 according to you, a reason why smartlinked programs have higher loading 
 percentages than dynamically linked programs?

Yes. They contain code that is more or less likely to have a chance to be
really used. The bloat in the packages scenario doesn't.  

And such a LCL bpl would be roughly have the TEXT symbols  of each component in
order, and an bunch of unused components would lead to unused pages.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
[ Charset ISO-8859-1 unsupported, converting... ]
  Because we've to deliever also the fpl's?
  If it really is that of a problem, you only deliver them using a optional
  package.
  Who will maintain this?
  
  The person that will otherwise have to explain to newbies how to pass as
  string to a dll.
 
 Ok, I'll ask next time this person to spent the weekend to fix windows
 installer scripts and assign to it the still open web download page,
 installer and install package bugs.

I was never for the download system in the first place remember? In my
opinion it can be a huge binary.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Marco van de Voort schrieb:
 [ Charset ISO-8859-1 unsupported, converting... ]
 Because we've to deliever also the fpl's?
 If it really is that of a problem, you only deliver them using a optional
 package.
 Who will maintain this?
 The person that will otherwise have to explain to newbies how to pass as
 string to a dll.
 Ok, I'll ask next time this person to spent the weekend to fix windows
 installer scripts and assign to it the still open web download page,
 installer and install package bugs.
 
 I was never for the download system in the first place remember? In my
 opinion it can be a huge binary.

I meant only the current download pages.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Florian Klaempfl schrieb:
 Marco van de Voort schrieb:
 [ Charset ISO-8859-1 unsupported, converting... ]
 Because we've to deliever also the fpl's?
 If it really is that of a problem, you only deliver them using a optional
 package.
 Who will maintain this?
 The person that will otherwise have to explain to newbies how to pass as
 string to a dll.
 Ok, I'll ask next time this person to spent the weekend to fix windows
 installer scripts and assign to it the still open web download page,
 installer and install package bugs.
 I was never for the download system in the first place remember? In my
 opinion it can be a huge binary.
 
 I meant only the current download pages.

Add: Each additional downloadble package increases deployment pain
significantly. Just look at 9500, this problem exists for aeons, nobody
cares.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Joost van der Sluis
Op zaterdag 03-11-2007 om 19:57 uur [tijdzone +0100], schreef Michael
Van Canneyt:
 
 Packages and the missing TClientDataset are the only 2 remaining
 things 
 stopping me from using FPC/Lazarus for my daytime job. All else is 
 covered or can be covered with a minimal amount of work. 

You'll have to explain the TClientDataset to me. Do you need a
symantical identical equivalent of TClientDataset?

Or do you only miss some features in sqldb?

Joost

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Marco van de Voort
 Florian Klaempfl schrieb:
  Ok, I'll ask next time this person to spent the weekend to fix windows
  installer scripts and assign to it the still open web download page,
  installer and install package bugs.
  I was never for the download system in the first place remember? In my
  opinion it can be a huge binary.
  
  I meant only the current download pages.
 
 Add: Each additional downloadble package increases deployment pain
 significantly. Just look at 9500, this problem exists for aeons, nobody
 cares.

Probably, but is that really the problem with packages? Packages are a part
of Delphi compat, and have been explicitely on the 2.x roadmap for years.
And now we cancel it because the linux install installs the demoes in the
wrong place, if not manually fixed?

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Florian Klaempfl
Marco van de Voort schrieb:
 Florian Klaempfl schrieb:
 Ok, I'll ask next time this person to spent the weekend to fix windows
 installer scripts and assign to it the still open web download page,
 installer and install package bugs.
 I was never for the download system in the first place remember? In my
 opinion it can be a huge binary.
 I meant only the current download pages.
 Add: Each additional downloadble package increases deployment pain
 significantly. Just look at 9500, this problem exists for aeons, nobody
 cares.
 
 Probably, but is that really the problem with packages?

I said: packages blow up download sizes
you said: make it an optional downloadable package
I say: we are even not able to maintain the current downloads and keep
them bug free

 Packages are a part
 of Delphi compat, and have been explicitely on the 2.x roadmap for years.
 And now we cancel it because the linux install installs the demoes in the
 wrong place, if not manually fixed?
 
 ___
 fpc-devel maillist  -  fpc-devel@lists.freepascal.org
 http://lists.freepascal.org/mailman/listinfo/fpc-devel
 

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Dnamic packages support

2007-11-03 Thread Daniël Mantione


Op Sat, 3 Nov 2007, schreef Marco van de Voort:

  Florian Klaempfl schrieb:
   Ok, I'll ask next time this person to spent the weekend to fix windows
   installer scripts and assign to it the still open web download page,
   installer and install package bugs.
   I was never for the download system in the first place remember? In my
   opinion it can be a huge binary.
   
   I meant only the current download pages.
  
  Add: Each additional downloadble package increases deployment pain
  significantly. Just look at 9500, this problem exists for aeons, nobody
  cares.
 
 Probably, but is that really the problem with packages? Packages are a part
 of Delphi compat, and have been explicitely on the 2.x roadmap for years.
 And now we cancel it because the linux install installs the demoes in the
 wrong place, if not manually fixed?

As far as I am concerned, nothing is against the implementation of 
packages as long as it is non-intrusive to FPC users and FPC developers. 
Putting something on the roadmap does not automatically mean it gets 
implemented, fore major features there has to be someone who has an 
interrest in that feature before it get implemented. Until now, it hasn't 
been the case.

Daniël___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel