RE: [fpc-devel] Inter Process Communication

2007-03-06 Thread George Birbilis
Haven't read this thread, so I might be off-topic a bit in the following:

On Windows the best way to copy data in my opinion is WM_COPYDATA message,
but I'm not sure if on Vista it will work ok (haven't tried). If you want to
try it see http://plugs.onestop.net


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2007
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com

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


RE: [fpc-devel] FPC dynamic libraries

2007-02-09 Thread George Birbilis
  If you meant having many libs of different version exist 
 side-by-side, 
  .NET runtime supports it, but Win32 itself doesn't
 
 Most unixes also have it. The point is that it kind of 
 defeats the purpose.
 Having 20+ libraries called fpcrtl-xyz.dll (or 
 fpcrtl.so.x.y.z on unixes) defeats the purpose of a shared 
 library: saving disk and (more importantly) memory space by 
 factoring out common code. 
 
 If we'd know that the fpcrtl.so (or .dll) interface will stay 
 the same in the next 5 years, it makes sense to distribute 
 this. Since the interface changes still wildly, it's a bad idea.
 
 Look at Delphi packages: as soon as the interface of a 
 package changes, you must re-compile all the binaries that 
 use it. The same would be true for FPC. I can assure you this 
 is a major headache when distributing apps.
 

Indeed, what Delphi does sucks too, I sell VCL components (binary only) for
QuickTime and QuickTimeVR (QTVR) and have to provide a separate version for
each Delphi version (@[EMAIL PROTECTED]@#). I also have the same components as 
ActiveX
controls (wrapping the VCL ones in them [made using Delphi's nice AX wizard
and only added property pages, which I wonder why normal VCL components
don't have as a concept]) and they're much easier to maintain, just one
build for all clients (Office, Delphi, .NET etc.). The problem with the
ActiveX is that you have to install them at the user's machine, so running
from CD with zero footprint isn't possible (there's a work arround with
products like thinstall that provide a small OS wrapper [just 300k for new
version of thinstall I read] arround the exe that uses a virtual filesystem
and registry just for your app, resulting in zero-footprint on user's
machine - I suppose they hijack/patch the registry and filesystem [maybe
also the disk access] APIs imports of the EXE, maybe also redefine old-style
DOS interrupts etc.)

With ActiveX too you have problem if you redefine the interfaces you
implement, but in general COM promotes the concept of Immutable interface
(once you publish it, never change it - not remove, nor add stuff). You can
extend evolved interfaces from it, but keep implementing it if you want
backwards compatibilty. COM itself evolves like that, e.g. with
IClassFactoryEx interface (or maybe IClassFactory2, don't remember the name)
that most probably (though not necessery) descends from IClassFactory etc.

I'd really love to be able to sell components for Lazarus too, but seems
impossible at the moment (I usually opensource the core functionality and
have the components provide extra features like I did with JEDI-QuickTime
that came out of my QT4Delphi [now QT4All] sourcebase). Maybe if Lazarus
could host ActiveX controls (not sure if the form designer now supports such
a thing, although I think FPC does support ActiveX controls more or less)

cheers,
George


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2007
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com

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


RE: [fpc-devel] FPC dynamic libraries

2007-02-09 Thread George Birbilis
 That this requires a strict versioning schedule, is part of the deal. 
 Borland's packages are also incompatible between released versions.

Which is very bad practice for a commercial IDE (makes third-party
commercial components support only some versions of Delphi [had suggested to
Borland to sell a special bundle with all Delphi versions from 2 and up in
it for component developers, but haven't seen this happen yet
unfortunately]). Some people had used Delphi trial versions in the past to
build resulting in their apps showing expiration messages later on (the RTL
had this built in as it seems)


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2007
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com

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


RE: [fpc-devel] FPC dynamic libraries

2007-02-09 Thread George Birbilis

 You can't, for Lazarus. You need the classes, that's what you 
 need the plugins for in the first place: to install 
 additional components on the component palette. They must 
 descend from the TComponent which is in the IDE.
 
 There is no way around it.

If you had an immutable Icomponent interface it could be. The IDE would talk
to the components only using immutable (not-changeable once published)
interfaces (Icomponent, IComponent2, IComponent3 etc.)

   Borland's packages are also incompatible between released 
 versions.
  
  Sure, but above you said Borland keeps them compatible.
 
 With this I mean that they release not so often that it 
 becomes a problem.
 if they would release every 3 weeks, it's a problem, this is obvious.
 
 Lazarus will have to do the same if they want to have 
 dynamically loadable packages. 
 

don't take Borland as an example in this case, it's a very bad practice what
they did...


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2007
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com

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


RE: [fpc-devel] FPC dynamic libraries

2007-02-09 Thread George Birbilis
  So, a component that you place in the component palette implements 
  some kind of palette interface, providing the IDE with the 
  communications it needs to work with the component.
 
 Nice idea, but I think you'll end up creating a set of 
 interfaces which describes completely 
 TCollection/TCollectionItem TPersistent and TComponent, plus 
 you'll need to completely redesign streaming from the ground 
 up, and that's not possible for Delphi compatibility. You 
 would loose all existing Delphi components out there.
 
 Not to mention that you cannot insert a non-tcomponent in the 
 tComponent tree. And any 'component' from a package will be 
 regarded as a non-tcomponent by the code from classes, so: no 
 component on form, no streaming.
 
 Delphi's IDE uses interfaces everywhere, but still assumes 
 TComponent/TPersistent as the base classes.
 

Could have some mechanism for TComponents that don't implement the
IComponent to inject that functionality in them (maybe dynamically plug-in
[best via the VMT, else partically via a special cast used only by the IDE]
to the class an automatic IComponent interface implementation that
implements IComponent by calling into Tcomponent. 

Such components would have to be rebuilt with the same version as the IDE,
but others that implement IComponent (or IComponent2 etc.) themselves could
be shipped as binary ones (say for commercial or free components that give
no source [say have option to buy the source]), as long as they only use
interfaces to access the IDE and don't use any RTL functionality that has
objects. Such objects could also embed (and static link) to their own
(tried) RTL version instead of linking to the IDE's latest RTL (the 2nd case
needs RTL to be available as package I suppose - but even then could have
both a static RTL and a dynamic package for it [also such components could
ship their own RTL package maybe and it could be used only by them inside
the same process if some versioning and namespace mechanism is used])

Speaking of namespaces, Borland added concept (to support .NET) in latest
Delphis I think, has FPC done similar yet? Could help in this case


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2007
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com

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


RE: [fpc-devel] FPC dynamic libraries

2007-02-07 Thread George Birbilis
  We need a version system.
 
 That's not something we need, but which most OS'es need 
 (and don't provide, except for hacks like symlinks or 
 different filenames).  
 Moreover, it doesn't really solve much unless you like having 
 20 different versions of the same shared library on your 
 system (which would more or less defeat the purpose of saving 
 space, although it could still save memory if more than one 
 FPC program is running at the same time).

If I understand well what you mean, Vista has versioning of that kind, you
can ask to see older versions of any file and restore the one you want. A
small caveat is that for files that don't exist currently anymore (deleted)
there's no GUI to get them (or one I haven't spotted yet) and you need to
make a dummy file with same name, then right click it and go to Properties,
then ask for the older versions (there's a special tab for that on the
dialog). Not sure if the Basic version of Vista has this functionality
available (I tried it with Vista Ultimate)


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2007
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com

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


RE: [fpc-devel] FPC dynamic libraries

2007-02-07 Thread George Birbilis
   We need a version system.
  
  That's not something we need, but which most OS'es need 
 (and don't 
  provide, except for hacks like symlinks or different filenames).
  Moreover, it doesn't really solve much unless you like having 20 
  different versions of the same shared library on your system (which 
  would more or less defeat the purpose of saving space, although it 
  could still save memory if more than one FPC program is 
 running at the 
  same time).
 
 If I understand well what you mean, Vista has versioning of 
 that kind, you can ask to see older versions of any file and 
 restore the one you want. A small caveat is that for files 
 that don't exist currently anymore (deleted) there's no GUI 
 to get them (or one I haven't spotted yet) and you need to 
 make a dummy file with same name, then right click it and go 
 to Properties, then ask for the older versions (there's a 
 special tab for that on the dialog). Not sure if the Basic 
 version of Vista has this functionality available (I tried it 
 with Vista Ultimate)

If you meant having many libs of different version exist side-by-side, .NET
runtime supports it, but Win32 itself doesn't

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


RE: Re[2]: [fpc-devel] Some compiler changes...

2007-01-23 Thread George Birbilis
It may be implemented as some IDE plugin: auto substitution of some
keywords and names (using comments to store display-names while naming all
keywords 
as they are and names as nameXX).

With Sun Java and MS J++ or .NET J# I try to use single Java code files and
different projects pointing to those same source files. It would be very
nice if there was full compatibility with Delphi an with Chrome (I'd then
set the switch in the respective project options instead of having to edit
or comment it out in each source file everytime I compile using a different
environment)


-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-
George Birbilis ([EMAIL PROTECTED])
Microsoft MVP J# 2004-2007
Borland Spiriti of Delphi
QuickTime QTVR ActiveX .NET Delphi
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com
-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-




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


RE: [fpc-devel] LGPL vs MPL

2006-12-26 Thread George Birbilis
  Btw, see
  http://www.sun.com/software/opensource/java/faq.jsp#g4
  some discussion on why one would choose for example GPL + Classpath
  exception (an amendment text from the Classpath project) vs LGPL.
  These two
  seem equivalent, but the 1st means that one can include in
 some Linux
  distros that require GPL
 which distros would those be? given that glibc is lgpl i
 can't imagine that resistance to it is exactly common in the
 distro environment ;)

I remember reading it (didn't mention which distros though I think) at an
interview of the so-called father of Java (who was fanatically against
Java getting opensourced before, but now tries to explain why they
opensourced it [I'm in favor of the opensourcing of it btw, since I'll be
able to port stuff of Java2 class libraries to .NET/J# when they finish the
opensourcing process])


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2006
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com




  _  

avast! Antivirus http://www.avast.com : Outbound message clean. 


Virus Database (VPS): 0662-1, 24/12/2006
Tested on: 26/12/2006 4:10:25 ??
avast! - copyright (c) 1988-2006 ALWIL Software.



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


No Cursor at Win32 windowed mode of FPC IDE (was: RE: [fpc-devel] Question about writing documentation)

2006-12-22 Thread George Birbilis
Sorry, forgot to change the subject
Can others see these two issues too?

  The FPC dev env when run in windowed mode at Windows XP
 32-bit shows
  no cursor (no blinking, nothing). At full screen shows a blinking
  cursor, but it's very tiring cause it blinks too fast

 Please use a bugreport to report such issues, but start a new
 thread if you also wish to discuss it on the mailing list.




  _  

avast! Antivirus http://www.avast.com : Outbound message clean. 


Virus Database (VPS): 0659-1, 16/12/2006
Tested on: 22/12/2006 9:17:16 ??
avast! - copyright (c) 1988-2006 ALWIL Software.



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


RE: [fpc-devel] Question about writing documentation

2006-12-21 Thread George Birbilis
Why not say return 1 or =0 for all?


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2006
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of
 Joost van der Sluis
 Sent: Friday, December 22, 2006 12:52 AM
 To: FPC developers' list
 Subject: [fpc-devel] Question about writing documentation

 Hi all,

 Two things:

 One: TDataset.Recordcount on Delphi (TclientDataset?) returns
 0 if it's called on an inactive TDataset. But an exception
 seems to be more appropiate to me. But some
 dataset-descendents raise an exception, some return 0.
 Now what should I do in sqldb and the TMemDataset?

 Two: I want to document the choice I made in point one, and I
 think that the writing documentation at the same time is a
 good idea. But now I have this question: TDataset.Recordcount
 always return -1. Even if the TDataset is closed.
 Any comment on the exception in, for example,
 TMemDataset.Recordcount, should I place that in the
 TMemDataset.Recordcount-help? Or can I put into the
 TDataset.Recordcount a remark, that most TDataset.Descendents
 return 0 or raise an exception?
 Normally you would write that down in the documentation of
 the descendent, but I want to make a statement to
 TDataset-descendent- developers, that if they make their own
 descendent, it should return 0 or an exception. where's the
 place to do that?

 I hope my point is clear.

 Regards,
   Joost.


 --
 Met vriendelijke groeten,

   Joost van der Sluis
   CNOC Informatiesystemen en Netwerken
   http://www.cnoc.nl

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



  _  

avast! Antivirus http://www.avast.com : Outbound message clean. 


Virus Database (VPS): 0659-1, 16/12/2006
Tested on: 22/12/2006 9:44:37 p?
avast! - copyright (c) 1988-2006 ALWIL Software.



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


RE: [fpc-devel] Question about writing documentation

2006-12-21 Thread George Birbilis
The FPC dev env when run in windowed mode at Windows XP 32-bit shows no
cursor (no blinking, nothing). At full screen shows a blinking cursor, but
it's very tiring cause it blinks too fast


George Birbilis ([EMAIL PROTECTED])
Computer  Informatics Engineer
Microsoft MVP J# for 2004-2006
Borland Spirit of Delphi
3D, QuickTime, QTVR, Java, Delphi,
ActiveX, .NET components, Robotics
http://www.kagi.com/birbilis
http://birbilis.spaces.live.com




  _  

avast! Antivirus http://www.avast.com : Outbound message clean. 


Virus Database (VPS): 0659-1, 16/12/2006
Tested on: 22/12/2006 9:53:59 p?
avast! - copyright (c) 1988-2006 ALWIL Software.



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