[lazarus] Notice: Possible copyright infringements in FPC code base
Hello, The FPC team has been recently made aware that a number of routines in the Classes unit are apparently based on code originally from Borland/CodeGear. After someone found a tool to automatically compare source code bodies to look for structural similarities, we improved its support for Object Pascal (it's in svn now) and used it to compare all FPC RTL and FCL units with their Kylix 3 and Delphi 7 equivalents (in so far these exist). This enabled us to find more cases where code may have originally come from or be based on Delphi/Kylix code. All such identified routines of sufficient complexity and/or likeliness have been or are in the process of being rewritten from scratch using a clean room approach: by someone who is not intimately familiar with the current implementation, and only based on documentation written by other people. I am personally supervising this effort. This whole issue highlights a quite annoying problem though: one the one hand, it is most certainly our responsibility to ensure that all committed code can be legally licensed under FPC's modified LGPL license, and in particular does not originate from Delphi/Kylix sources. On the other hand, we have to avoid reading Delphi/Kylix code as much as possible since by doing so, we may become tainted ourselves and unconsciously start writing code which is based too closely on Borland/CodeGear code. As everyone knows, we nevertheless all try our best to avoid committing tainted code, see e.g. the comments attached to the following bug reports: * http://www.freepascal.org/mantis/view.php?id=7680 * http://www.freepascal.org/mantis/view.php?id=8248 * http://www.freepascal.org/mantis/view.php?id=9770 And yet, from time to time it nevertheless happens anyway: * http://www.freepascal.org/mantis/view.php?id=8661 So this is one area where you, our users, can make a big difference and help us in preventing this from happening in the future, as well as with notifying us as soon as possible when it does happen (or when you know it happened in the past). Most importantly: please ensure that you *never* submit patches based on code copyrighted by third parties. Let one thing be clear, however: none of the code that you wrote yourself can be affected by this issue, as long as this code is not based on the tainted code (whereby based means based on their source code; it does not mean, a.o., deriving from a tainted class, or calling a tainted routine -- in these cases your own code is clean). Simply recompiling your program with an untainted version of FPC will automatically clear your programs of any taint as well. We are in a constructive dialog with people from CodeGear over this issue, and will report back later on the repercussions as far as current and previous FPC releases are concerned. For the FPC Team, Michael. PS: for those interested, here is the preliminary list of tainted routines we have identified. If you are aware of more cases, please let us know as soon as possible so we can evaluate them and put them in the queue for re-implementation! Classes: * ExtractStrings * TParser.TokenComponentIdent * TParser.NextToken * TReader.DoFixupReferences * TReader.ReadCollection * TReader.FindComponentClass * TWriter.WriteComponent * TWriter.WriteComponentData * TWriter.WriteProperties * TPropFixup.MakeGlobalReference * FindNestedComponent * GlobalFixupReferences * GetFixupInstanceNames * RemoveFixupReferences (RemoveFixups in Delphi), * RedirectFixupReferences * GetFixupInstanceNames (GetFixupReferenceNames in Delphi), * RemoveGlobalFixup * RemoveFixups * TStringList.Grow * TStringList.QuickSort * TStringList.Find * TCollection.GetNamePath * TFPList.Assign (Kylix: tlist.assign) * TFPList.Delete (Kylix: tlist.delete) * TList.Extract Strutils: * SearchBuf * DecodeSoundexInt Varutils: * DoVarClearArray Math: * MomentSkewKurtosis: Zstream: * Needs complete re-implementation (was taken from the net...) Db: * TDataset.SetFieldValues * TDataset.DataEvent * TDataSet.CalculateFields, * TDataset.EnableControls * TDataLink.CalcFirstRecord * TField.RefreshLookupList * TField.CalcLookupValue Comctrl: * HandleSafeCallException _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Michael Van Canneyt wrote: Hello, The FPC team has been recently made aware that a number of routines in the Classes unit are apparently based on code originally from Borland/CodeGear. After someone found a tool to automatically compare source code bodies to look for structural similarities, we improved its support for Object Pascal (it's in svn now) and used it to compare all FPC RTL and FCL units with their Kylix 3 and Delphi 7 equivalents (in so far these exist). This enabled us to find more cases where code may have originally come from or be based on Delphi/Kylix code. All such identified routines of sufficient complexity and/or likeliness have been or are in the process of being rewritten from scratch using a clean room approach: by someone who is not intimately familiar with the current implementation, and only based on documentation written by other people. I am personally supervising this effort. This whole issue highlights a quite annoying problem though: one the one hand, it is most certainly our responsibility to ensure that all committed code can be legally licensed under FPC's modified LGPL license, and in particular does not originate from Delphi/Kylix sources. On the other hand, we have to avoid reading Delphi/Kylix code as much as possible since by doing so, we may become tainted ourselves and unconsciously start writing code which is based too closely on Borland/CodeGear code. As everyone knows, we nevertheless all try our best to avoid committing tainted code, see e.g. the comments attached to the following bug reports: * http://www.freepascal.org/mantis/view.php?id=7680 * http://www.freepascal.org/mantis/view.php?id=8248 * http://www.freepascal.org/mantis/view.php?id=9770 And yet, from time to time it nevertheless happens anyway: * http://www.freepascal.org/mantis/view.php?id=8661 So this is one area where you, our users, can make a big difference and help us in preventing this from happening in the future, as well as with notifying us as soon as possible when it does happen (or when you know it happened in the past). Most importantly: please ensure that you *never* submit patches based on code copyrighted by third parties. Let one thing be clear, however: none of the code that you wrote yourself can be affected by this issue, as long as this code is not based on the tainted code (whereby based means based on their source code; it does not mean, a.o., deriving from a tainted class, or calling a tainted routine -- in these cases your own code is clean). Simply recompiling your program with an untainted version of FPC will automatically clear your programs of any taint as well. We are in a constructive dialog with people from CodeGear over this issue, and will report back later on the repercussions as far as current and previous FPC releases are concerned. For the FPC Team, Michael. Let me notice that we are in difficult situation on the other hand: we cannot be sure if some of the fpc/lazarus code wasn't used in Delphi , right ? The only way is to check date of publication of our sources and of official Delphi sources. Just my 2 cents. Boguslaw PS: for those interested, here is the preliminary list of tainted routines we have identified. If you are aware of more cases, please let us know as soon as possible so we can evaluate them and put them in the queue for re-implementation! Classes: * ExtractStrings * TParser.TokenComponentIdent * TParser.NextToken * TReader.DoFixupReferences * TReader.ReadCollection * TReader.FindComponentClass * TWriter.WriteComponent * TWriter.WriteComponentData * TWriter.WriteProperties * TPropFixup.MakeGlobalReference * FindNestedComponent * GlobalFixupReferences * GetFixupInstanceNames * RemoveFixupReferences (RemoveFixups in Delphi), * RedirectFixupReferences * GetFixupInstanceNames (GetFixupReferenceNames in Delphi), * RemoveGlobalFixup * RemoveFixups * TStringList.Grow * TStringList.QuickSort * TStringList.Find * TCollection.GetNamePath * TFPList.Assign (Kylix: tlist.assign) * TFPList.Delete (Kylix: tlist.delete) * TList.Extract Strutils: * SearchBuf * DecodeSoundexInt Varutils: * DoVarClearArray Math: * MomentSkewKurtosis: Zstream: * Needs complete re-implementation (was taken from the net...) Db: * TDataset.SetFieldValues * TDataset.DataEvent * TDataSet.CalculateFields, * TDataset.EnableControls * TDataLink.CalcFirstRecord * TField.RefreshLookupList * TField.CalcLookupValue Comctrl: * HandleSafeCallException _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Unable to build the current Lazarus with fpc 2.0.4
On Nov 16, 2007 9:14 PM, Mattias Gaertner [EMAIL PROTECTED] wrote: I disabled FakeMethods for 2.0.x. Everything is fine after this fix. Thanks Mattias ! -- Adrian Maier _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Let me notice that we are in difficult situation on the other hand: we cannot be sure if some of the fpc/lazarus code wasn't used in Delphi , right ? Correct. Borland/CodeGear must also be fair. Since fpc/laz is an open source project (means everybody can read the source codes), it's very possible that CodeGear/Borland had stolen/copy fpc/laz's codes, especially on some features that had been added to Delphi/Kylix after fpc had them already. The only way is to check date of publication of our sources and of official Delphi sources. +1 -Bee- has Bee.ography at: http://beeography.wordpress.com _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Recompile FPC unit
Op zaterdag 17-11-2007 om 10:34 uur [tijdzone +1000], schreef SteveG: I (think) I have found an error in the FmtBCD unit (from C:\lazarus\fpc\2.2.1\units\i386-win32\rtl ) A simple empty dll will not load if this unit (or any 'using' it is used. So far as I can tell, the problem 'seems' to be with the following lines {$r+,q+,s+} { $r-,q-,s-} Remove the space at the front of the second line, problem disappears. That could explain several db-bugs about building dll's when the db-unit is used. Joost _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] About and Help on Carbon Menu Bar
On Nov 18, 2007 11:15 PM, Tobias Giesen [EMAIL PROTECTED] wrote: Hello, Hi, is there a known best way to get the About My App menu item into the so-called Application Menu on the Mac OS Menu bar? You have to use Carbon Menu Manager. Also is there a way to get the keyboard shortcut for Help to be Cmd-? rather than F1? It is hardcoded in LCL application.inc: procedure TApplication.NotifyKeyDownHandler(Sender: TObject; var Key: Word; Shift: TShiftState); var i: Integer; begin i:=FApplicationHandlers[ahtKeyDownAfter].Count; while FApplicationHandlers[ahtKeyDownAfter].NextDownIndex(i) do TKeyEvent(FApplicationHandlers[ahtKeyDownAfter][i])(Sender,Key,Shift); if (Shift=[]) and (Key=VK_F1) then ShowHelpForObjecct(Sender); end; We can adapt this to use platform specific key. If not I'll probably construct my menu directly using Carbon Menu Manager ... Tom _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
* TStringList.Grow Once I have published alternatives to this. However there cannot be done much more than using different growing rates. * TStringList.QuickSort Same here, a nonrecursive version based on something that I found in an once famous free library and to which I gave proper credit. Althought Quicksort is an idiot's choice for sorting strings. * TStringList.Find Same here. The only way to be different to Delphi's implementation is to use another comparision. Martin _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Martin Waldenburg schrieb: * TStringList.Grow Once I have published alternatives to this. However there cannot be done much more than using different growing rates. * TStringList.QuickSort Same here, a nonrecursive version based on something that I found in an once famous free library and to which I gave proper credit. Althought Quicksort is an idiot's choice for sorting strings. I guess the name gives no choice :) _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Florian Klaempfl schrieb: Martin Waldenburg schrieb: Althought Quicksort is an idiot's choice for sorting strings. I guess the name gives no choice :) a routine called Quicksort doesn't need to implement the Algorithm of this name. Nevertheless the one has stamped himself as one. Martin _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [fpc-devel] Notice: Possible copyright infringements in FPC code base
On 19/11/2007, Michael Van Canneyt [EMAIL PROTECTED] wrote: be based on Delphi/Kylix code. All such identified routines of sufficient complexity and/or likeliness have been or are in the process of being rewritten from scratch using a clean room approach: by someone who is not intimately familiar with the current implementation, and only based on documentation written by other people. I am personally supervising this effort. Well done guys! I'm glad you took the first step and trying to get a clean slate. Lets hope Borland/CodeGear does the same thing, as it works both ways. Also glad to here that the SIM tool came in handy. We are in a constructive dialog with people from CodeGear over this issue, and will report back later on the repercussions as far as current and previous FPC releases are concerned. Are those discussions publicly available (newsgroup, forum) or are they in private? Would make for an interesting read to see what CodeGear says and what they are doing from their side. After all, FPC and Lazarus came up with some cool ideas of the years and our code is a lot more public than theirs. PS: for those interested, here is the preliminary list of tainted routines we have identified. If you are aware of more cases, please let us know as soon as The original discussion sure opened a can of worms Lazarus, it seems you guys are next. :) Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
On Mon, 19 Nov 2007, Martin Waldenburg wrote: * TStringList.Grow Once I have published alternatives to this. However there cannot be done much more than using different growing rates. Which is exactly what we'll do. * TStringList.QuickSort Same here, a nonrecursive version based on something that I found in an once famous free library and to which I gave proper credit. Althought Quicksort is an idiot's choice for sorting strings. Probably we could put a shellsort behind it, and no-one would notice :-) * TStringList.Find Same here. The only way to be different to Delphi's implementation is to use another comparision. My opinion also, it's a simple binary search after all. Standard textbook material stuff... Michael. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [fpc-devel] Notice: Possible copyright infringements in FPC code base
On Mon, 19 Nov 2007, Graeme Geldenhuys wrote: On 19/11/2007, Michael Van Canneyt [EMAIL PROTECTED] wrote: be based on Delphi/Kylix code. All such identified routines of sufficient complexity and/or likeliness have been or are in the process of being rewritten from scratch using a clean room approach: by someone who is not intimately familiar with the current implementation, and only based on documentation written by other people. I am personally supervising this effort. Well done guys! I'm glad you took the first step and trying to get a clean slate. Lets hope Borland/CodeGear does the same thing, as it works both ways. Also glad to here that the SIM tool came in handy. We are in a constructive dialog with people from CodeGear over this issue, and will report back later on the repercussions as far as current and previous FPC releases are concerned. Are those discussions publicly available (newsgroup, forum) or are they in private? Would make for an interesting read to see what CodeGear says and what they are doing from their side. After all, FPC and Lazarus came up with some cool ideas of the years and our code is a lot more public than theirs. Those discussions are in private. Michael. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] Lazarus-0.9.24-fpc-2.2.0
I am making an application for a customer and I tried to use the version 0. 9. 24-fpc-2. 2. 0 but I had problems when trying to install the package of ZEUS. Did anybody see that? And after the retreat of TMASKEDIT they did find a similar one?
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Martin Waldenburg schrieb: Michael Van Canneyt schrieb: Probably we could put a shellsort behind it, and no-one would notice :-) for comparision intensive sorting a well implemented Mergesort beats everything, For sorting large stringlists a radixsort might be even better? _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Martin Waldenburg wrote: Michael Van Canneyt schrieb: Probably we could put a shellsort behind it, and no-one would notice :-) for comparision intensive sorting a well implemented Mergesort beats everything, especialy with caseinsensitive Unicode it can exceed other Algorithms 100 times for larger lists. It uses slightly more memory thought. It be improved even furter by doing some preprocessing before doing the actual sort If we are talking about TStringList.Sort then we will work with ansi strings. To compare ansi strings the best will be radial sort method. It doesnot use string compare at all - only chars compared level by level. I've not searched for english description of method but using google translate you can read this page: http://algolist.ru/sort/radix_sort.php There you can find C implementation of method. I also have somewhere pascal implementation. Some years ago I did comparision of quicksort, qucksort with inserts (which a bit faster than usual quicksort) and radial sort. Radial sort was the fastest. Best regards, Paul Ishenin. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Florian Klaempfl schrieb: For sorting large stringlists a radixsort might be even better? not in my tests, I dit quite a lot. Martin _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
On Nov 19, 2007, at 1:13 PM, Michael Van Canneyt wrote: On Mon, 19 Nov 2007, Florian Klaempfl wrote: Martin Waldenburg schrieb: Michael Van Canneyt schrieb: Probably we could put a shellsort behind it, and no-one would notice :-) for comparision intensive sorting a well implemented Mergesort beats everything, For sorting large stringlists a radixsort might be even better? Well, the solution is very simple : TSortAlgorithm = (saBubble,saShell,saMerge,saRadix,saQuick); TStringList = Class(TStrings); Property SortAlgorithm : TSortAlgorithm Read FSA Write FSA; end; I think it is a very good idea. I await your contributions, I'll take care of the rest. And I _am_ serious. -- Damien Gerard [EMAIL PROTECTED] _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Paul Ishenin schrieb: Martin Waldenburg wrote: Michael Van Canneyt schrieb: Probably we could put a shellsort behind it, and no-one would notice :-) for comparision intensive sorting a well implemented Mergesort beats everything, especialy with caseinsensitive Unicode it can exceed other Algorithms 100 times for larger lists. It uses slightly more memory thought. It be improved even furter by doing some preprocessing before doing the actual sort If we are talking about TStringList.Sort then we will work with ansi strings. To compare ansi strings the best will be radial sort method. It doesnot use string compare at all - only chars compared level by level. I've not searched for english description of method but using google translate you can read this page: http://algolist.ru/sort/radix_sort.php There you can find C implementation of method. I also have somewhere pascal implementation. Some years ago I did comparision of quicksort, qucksort with inserts (which a bit faster than usual quicksort) and radial sort. Radial sort was the fastest. Best regards, Paul Ishenin. I was talking about sorting Algorithms using the fastest possible comparision for a given case. Meaning all Algorithms using the same comparision, else their speed can hardly be compared at all. Martin _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
Damien Gerard schrieb: Well, the solution is very simple : TSortAlgorithm = (saBubble,saShell,saMerge,saRadix,saQuick); TStringList = Class(TStrings); Property SortAlgorithm : TSortAlgorithm Read FSA Write FSA; end; I think it is a very good idea. I think so too. I await your contributions, I'll take care of the rest. And I _am_ serious. However I do not code anymore for the foreseenable future. I've found more importand and also more rewarding tasks. Simple trying to stay alive, which is quite hard in my case. Getting married. Well I already did it, just needs to be legalized for Germany, which still involves some paper war. Awaiting the birth of my son and see him growing up. Being happy as much as possible. Only sometimes I am reading these mails in iddle time, just for the sake of old times. Martin _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] IDE Crashes on Mac OS (gtk)
On Nov 19, 2007 12:26 AM, Damien Gerard [EMAIL PROTECTED] wrote: On Nov 18, 2007, at 11:18 PM, Felipe Monteiro de Carvalho wrote: On Nov 18, 2007 10:36 PM, Damien Gerard [EMAIL PROTECTED] wrote: In the same time How do you re-build Lazarus with GTK2 ? http://wiki.lazarus.freepascal.org/GTK2_Interface#Using_the_Gtk2_interface_under_Mac_OS_X I don't want Gimp... But it is for a good cause ! However I'm not sure it's worth it, as gtk2 also requires X11, so it's not a big improvement. One can build the IDE with Qt, but the code editor still has some problems. But I can work with GTK2 for the IDE and temporarily use QT for my app, waiting for the carbon widgetset. I am boring of Linux I prefer to use my laptop :) Under Carbon we still lack a Caret, but aside from this very important detail it works very well. The caret should now work in IDE TSynedit under Carbon. Tom _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
On Mon, 19 Nov 2007, Martin Waldenburg wrote: Damien Gerard schrieb: Well, the solution is very simple : TSortAlgorithm = (saBubble,saShell,saMerge,saRadix,saQuick); TStringList = Class(TStrings); Property SortAlgorithm : TSortAlgorithm Read FSA Write FSA; end; I think it is a very good idea. I think so too. I await your contributions, I'll take care of the rest. And I _am_ serious. However I do not code anymore for the foreseenable future. I've found more importand and also more rewarding tasks. Simple trying to stay alive, which is quite hard in my case. Getting married. Well I already did it, just needs to be legalized for Germany, which still involves some paper war. I am familiar with such paper war, went through it myself in Belgium :-) Awaiting the birth of my son and see him growing up. Being happy as much as possible. In that case I suggest throwing your PC out of the house. Nothing good comes from it in my experience :-) (but the same can be said from 99,99% of all other human activities) Michael. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
RE: [lazarus] Notice: Possible copyright infringements in FPC code base
Well, the solution is very simple : TSortAlgorithm = (saBubble,saShell,saMerge,saRadix,saQuick); TStringList = Class(TStrings); Property SortAlgorithm : TSortAlgorithm Read FSA Write FSA; end; I think it is a very good idea. I think so too. TStringList = Class(TStrings); method SelectBestSortAlgorithm; // from count of strings/string type/ end; *--- This E-Mail may contain confidential and/or privileged information. It is only intended for the use of the addressee indicated in this message. If you are not an intended addressee of this email (or responsible for delivery of the message to such person), the disclosure, copying or delivering of the contents of this email to anyone else is strictly prohibited and may be unlawful. If you receive this e-mail by mistake destroy the message and please notify us immediately by e-mail, [EMAIL PROTECTED] Information or opinions in this message that do not relate to the business of ELCB Information Services shall be treated as neither given or endorsed by it. *--- _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
RE: [lazarus] Notice: Possible copyright infringements in FPC code base
On Mon, 19 Nov 2007, Stephen Dickason wrote: Well, the solution is very simple : TSortAlgorithm = (saBubble,saShell,saMerge,saRadix,saQuick); TStringList = Class(TStrings); Property SortAlgorithm : TSortAlgorithm Read FSA Write FSA; end; I think it is a very good idea. I think so too. TStringList = Class(TStrings); method SelectBestSortAlgorithm; // from count of strings/string type/ end; You beat me to it :-) Michael. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] IDE Crashes on Mac OS (gtk)
On Nov 19, 2007, at 2:33 PM, Tom Gregorovic wrote: On Nov 19, 2007 12:26 AM, Damien Gerard [EMAIL PROTECTED] wrote: On Nov 18, 2007, at 11:18 PM, Felipe Monteiro de Carvalho wrote: On Nov 18, 2007 10:36 PM, Damien Gerard [EMAIL PROTECTED] wrote: In the same time How do you re-build Lazarus with GTK2 ? http://wiki.lazarus.freepascal.org/GTK2_Interface#Using_the_Gtk2_interface_under_Mac_OS_X I don't want Gimp... But it is for a good cause ! However I'm not sure it's worth it, as gtk2 also requires X11, so it's not a big improvement. One can build the IDE with Qt, but the code editor still has some problems. But I can work with GTK2 for the IDE and temporarily use QT for my app, waiting for the carbon widgetset. I am boring of Linux I prefer to use my laptop :) Under Carbon we still lack a Caret, but aside from this very important detail it works very well. The caret should now work in IDE TSynedit under Carbon. I use the last snapshot for OS X i386 and followed http://wiki.lazarus.freepascal.org/Carbon_Interface I've got this : [...] unknown stabs type 0xC0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonthemes.o unknown stabs type 0xE0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonthemes.o unknown stabs type 0xC0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xE0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xC0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xE0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xC0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xE0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xC0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xE0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xC0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/laz_xmlwrite.o unknown stabs type 0xE0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/laz_xmlwrite.o ld: can't write output file: ../startlazarus Error: Error while linking TExternalToolList.Run Exception: Error: Error while linking TMainIDE.DoBuildLazarus: Build Lazarus without linking failed. Should I take the subversion to test it ? Tom _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives -- Damien Gerard [EMAIL PROTECTED] _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] IDE Crashes on Mac OS (gtk)
I use the last snapshot for OS X i386 and followed http://wiki.lazarus.freepascal.org/Carbon_Interface I've got this : [...] unknown stabs type 0xC0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonthemes.o unknown stabs type 0xE0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonthemes.o unknown stabs type 0xC0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xE0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xC0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xE0 in /usr/local/share/lazarus/lcl/units/i386- darwin/carbon/carbonclipboard.o unknown stabs type 0xC0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xE0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xC0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xE0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/basiccodetools.o unknown stabs type 0xC0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/laz_xmlwrite.o unknown stabs type 0xE0 in /usr/local/share/lazarus/components/ codetools/units/i386-darwin/laz_xmlwrite.o ld: can't write output file: ../startlazarus Error: Error while linking TExternalToolList.Run Exception: Error: Error while linking TMainIDE.DoBuildLazarus: Build Lazarus without linking failed. Under Mac OS X 10.5.1 Should I take the subversion to test it ? -- Damien Gerard [EMAIL PROTECTED] _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] About copyright infringement
Hello, Question: What if clean room approach code is the same as the other. Simplistically speaking, how many other ways can one write 1 + 1 = 2? Even if you may be able, most people would write it that way anyway. When you get right down to it, the set of standard mathematical and other functions available to a programmer is limited, and is used by everybody. Most people I think want to write efficient code as well. To take one of my own situations, quite a while back I needed to have a RoundTo() function in lazarus, so I wrote my own. At a much later point in time I actually looked at the Delphi code and saw that the only difference that code had was that it used the IntPower function. Except for this difference, structurally the two roundto functions were the same. At the time I wrote my code I didn't use the IntPower function because I didn't know it was available. So hypothetically speaking, if I knew about the IntPower function at the time I wrote my code I probably would have written the same code as Delphi's. Would my code have been infringing? Regards, George _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] keyboard hooking on X
Hi, some time ago I made a keyboard beeper with lazarus working on Win98 and Win2k. I used the system hook for this purpose. Is there something like this system wide keyboard hook on X, so that I can port the beeper to *nix systems? TIA, Marc _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Notice: Possible copyright infringements in FPC code base
If CodeGear are fair, they send you her Code in private so you have the same chance to find Copyright issues as they have. Until this isnt the case everything they suppose the fpc team is mess. regards Christoan Michael Van Canneyt schrieb: Hello, The FPC team has been recently made aware that a number of routines in the Classes unit are apparently based on code originally from Borland/CodeGear. After someone found a tool to automatically compare source code bodies to look for structural similarities, we improved its support for Object Pascal (it's in svn now) and used it to compare all FPC RTL and FCL units with their Kylix 3 and Delphi 7 equivalents (in so far these exist). This enabled us to find more cases where code may have originally come from or be based on Delphi/Kylix code. All such identified routines of sufficient complexity and/or likeliness have been or are in the process of being rewritten from scratch using a clean room approach: by someone who is not intimately familiar with the current implementation, and only based on documentation written by other people. I am personally supervising this effort. This whole issue highlights a quite annoying problem though: one the one hand, it is most certainly our responsibility to ensure that all committed code can be legally licensed under FPC's modified LGPL license, and in particular does not originate from Delphi/Kylix sources. On the other hand, we have to avoid reading Delphi/Kylix code as much as possible since by doing so, we may become tainted ourselves and unconsciously start writing code which is based too closely on Borland/CodeGear code. As everyone knows, we nevertheless all try our best to avoid committing tainted code, see e.g. the comments attached to the following bug reports: * http://www.freepascal.org/mantis/view.php?id=7680 * http://www.freepascal.org/mantis/view.php?id=8248 * http://www.freepascal.org/mantis/view.php?id=9770 And yet, from time to time it nevertheless happens anyway: * http://www.freepascal.org/mantis/view.php?id=8661 So this is one area where you, our users, can make a big difference and help us in preventing this from happening in the future, as well as with notifying us as soon as possible when it does happen (or when you know it happened in the past). Most importantly: please ensure that you *never* submit patches based on code copyrighted by third parties. Let one thing be clear, however: none of the code that you wrote yourself can be affected by this issue, as long as this code is not based on the tainted code (whereby based means based on their source code; it does not mean, a.o., deriving from a tainted class, or calling a tainted routine -- in these cases your own code is clean). Simply recompiling your program with an untainted version of FPC will automatically clear your programs of any taint as well. We are in a constructive dialog with people from CodeGear over this issue, and will report back later on the repercussions as far as current and previous FPC releases are concerned. For the FPC Team, Michael. PS: for those interested, here is the preliminary list of tainted routines we have identified. If you are aware of more cases, please let us know as soon as possible so we can evaluate them and put them in the queue for re-implementation! Classes: * ExtractStrings * TParser.TokenComponentIdent * TParser.NextToken * TReader.DoFixupReferences * TReader.ReadCollection * TReader.FindComponentClass * TWriter.WriteComponent * TWriter.WriteComponentData * TWriter.WriteProperties * TPropFixup.MakeGlobalReference * FindNestedComponent * GlobalFixupReferences * GetFixupInstanceNames * RemoveFixupReferences (RemoveFixups in Delphi), * RedirectFixupReferences * GetFixupInstanceNames (GetFixupReferenceNames in Delphi), * RemoveGlobalFixup * RemoveFixups * TStringList.Grow * TStringList.QuickSort * TStringList.Find * TCollection.GetNamePath * TFPList.Assign (Kylix: tlist.assign) * TFPList.Delete (Kylix: tlist.delete) * TList.Extract Strutils: * SearchBuf * DecodeSoundexInt Varutils: * DoVarClearArray Math: * MomentSkewKurtosis: Zstream: * Needs complete re-implementation (was taken from the net...) Db: * TDataset.SetFieldValues * TDataset.DataEvent * TDataSet.CalculateFields, * TDataset.EnableControls * TDataLink.CalcFirstRecord * TField.RefreshLookupList * TField.CalcLookupValue Comctrl: * HandleSafeCallException _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] About copyright infringement
On Mon, 19 Nov 2007, George Lober wrote: Hello, Question: What if clean room approach code is the same as the other. Simplistically speaking, how many other ways can one write 1 + 1 = 2? Even if you may be able, most people would write it that way anyway. When you get right down to it, the set of standard mathematical and other functions available to a programmer is limited, and is used by everybody. Most people I think want to write efficient code as well. To take one of my own situations, quite a while back I needed to have a RoundTo() function in lazarus, so I wrote my own. At a much later point in time I actually looked at the Delphi code and saw that the only difference that code had was that it used the IntPower function. Except for this difference, structurally the two roundto functions were the same. At the time I wrote my code I didn't use the IntPower function because I didn't know it was available. So hypothetically speaking, if I knew about the IntPower function at the time I wrote my code I probably would have written the same code as Delphi's. Would my code have been infringing? No, but you would have a bitch of a time trying to prove that :-) Michael. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] WinCE, howto open a networkpath?
Hi all, With the INet components, I managed to use a UDP-component to frequently ask an internetserver for some data. However, no traffic is generated when the handheld is powered up. I first have to initiate internet explorer, ask for some trivial page and after that my application can continu its UDP traffic. I guess starting IE opened a networkpath and takes care of obtaining an ipnr etc. What do I have to call to ensure a networkpath (GPRS, WiFi, whatever is available) is opened the same way IE does? tia! John _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
[lazarus] GPU info
My question is along the lines of this paper. http://citeseer.ist.psu.edu/555028.html; Is there anybody who developed a unit or did any work for using GPU's for numerical computation with FPK/Lazarus? Also, if anyone knows, what are the increase in speed expected over the best Intel or AMD has to offer compared to a current best GPU? Developing a floating point (if such a GPU exists in double or extended precision) unit on a GPU should not be so difficult as the Unit only need to do a few basic elementary functions from which all the remainder of functions and special functions can be obtained. Here is an overview of GPU issues. http://64.233.169.104/search?q=cache:SastpUrSdOMJ:www.gpgpu.org/sc2006/workshop/Apple_GPUintrinsics.pdf+gpu+numerical+floatinghl=enct=clnkcd=1gl=us; Anyone have any info? Thanks _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] GPU info
Lv schrieb: My question is along the lines of this paper. http://citeseer.ist.psu.edu/555028.html; Is there anybody who developed a unit or did any work for using GPU's for numerical computation with FPK/Lazarus? Only in C. Also, if anyone knows, what are the increase in speed expected over the best Intel or AMD has to offer compared to a current best GPU? Hard to say, depends on your application. A modern graphics card has a peak performance of ~500 GFLOPS, a modern core CPU ~25 GFLOPS, so if you can explore the performance of the GPU, you can get a speed up of 20 in theory. Developing a floating point (if such a GPU exists in double or extended precision) unit on a GPU should not be so difficult as the Unit only need to do a few basic elementary functions from which all the remainder of functions and special functions can be obtained. Here is an overview of GPU issues. http://64.233.169.104/search?q=cache:SastpUrSdOMJ:www.gpgpu.org/sc2006/workshop/Apple_GPUintrinsics.pdf+gpu+numerical+floatinghl=enct=clnkcd=1gl=us; Anyone have any info? Thanks _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] [r12910][Ubuntu][GTK2] Compilation failed
On Sun, 18 Nov 2007 16:03:48 +0100 Damien Gerard [EMAIL PROTECTED] wrote: On Nov 18, 2007, at 2:09 PM, Mattias Gaertner wrote: On Sun, 18 Nov 2007 01:51:00 +0100 Damien Gerard [EMAIL PROTECTED] wrote: On Nov 18, 2007, at 1:33 AM, Damien Gerard wrote: I've got the following compilation error after update the head revision 12910 : The r12883 is the last revision which compiles under Linux for me. In lcl/interfaces/gtk2/gtk2widgetset.inc(618,48) Identifier not found pango_layout_get_font_description It seems this has been fixed. I have made a rebuild from scratch and it doesn't work for me :( You need a FPC 2.2.0, 2.0.4 or recent 2.3.1. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] [r12910][Ubuntu][GTK2] Compilation failed
On Nov 19, 2007, at 9:46 PM, Mattias Gaertner wrote: On Sun, 18 Nov 2007 16:03:48 +0100 Damien Gerard [EMAIL PROTECTED] wrote: On Nov 18, 2007, at 2:09 PM, Mattias Gaertner wrote: On Sun, 18 Nov 2007 01:51:00 +0100 Damien Gerard [EMAIL PROTECTED] wrote: On Nov 18, 2007, at 1:33 AM, Damien Gerard wrote: I've got the following compilation error after update the head revision 12910 : The r12883 is the last revision which compiles under Linux for me. In lcl/interfaces/gtk2/gtk2widgetset.inc(618,48) Identifier not found pango_layout_get_font_description It seems this has been fixed. I have made a rebuild from scratch and it doesn't work for me :( You need a FPC 2.2.0, 2.0.4 or recent 2.3.1. Oo It works with 2.0.4 and not with the 2.1.4 ? I use the package provided by the ubuntu and for this OS I would not like to use a specific version. Mattias -- Damien Gerard [EMAIL PROTECTED] _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] GPU info
Hi Florian, I tried to search for it but could only find a vague reference to Cephes. Do you have a link to (hopefully) the source code in C? Florian Klaempfl wrote: Lv schrieb: Is there anybody who developed a unit or did any work for using GPU's for numerical computation with FPK/Lazarus? Only in C. _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] Lazarus IDE revamp
On Nov 18, 2007 6:16 PM, James Chandler Jr [EMAIL PROTECTED] wrote: I like the Lazarus IDE as it is. Delphi 2005 and 2006 default IDE is less pleasant to use. IMO a copycat Laz IDE revamp along the lines of recent Delphi versions would not be an improvement. But IMHO it wouldn't be a decline either. When I first moved away from Delphi as my primary programming language I certainly missed the MDI interface, but after using (mainly) JDev then Eclipse for 4+ years I sure find the MDI interface rather messy... I've been wishing for a SDI one, but I'm not convinced it's better, probably one can adapt to either when obliguated to do so for some years ;-) Cheers, Flávio _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] [r12910][Ubuntu][GTK2] Compilation failed
On Mon, 19 Nov 2007 22:04:26 +0100 Damien Gerard [EMAIL PROTECTED] wrote: [...] In lcl/interfaces/gtk2/gtk2widgetset.inc(618,48) Identifier not found pango_layout_get_font_description I have made a rebuild from scratch and it doesn't work for me :( You need a FPC 2.2.0, 2.0.4 or recent 2.3.1. Oo It works with 2.0.4 and not with the 2.1.4 ? I use the package provided by the ubuntu and for this OS I would not like to use a specific version. 2.1.4 was a development version. 2.0.4 and 2.2.0 are the released stable versions. Mattias _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] GPU info
Hope this helps: http://www.gpgpu.org/ http://developer.nvidia.com/object/cuda.html _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Re: [lazarus] GPU info
That is a great reference for me to dig into, thanks. Lord Satan wrote: Hope this helps: http://www.gpgpu.org/ http://developer.nvidia.com/object/cuda.html _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _ To unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject archives at http://www.lazarus.freepascal.org/mailarchives