RE: [fpc-devel] Inter Process Communication
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
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
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
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
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
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
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...
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
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)
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
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
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