FPC-команда просит усиленно тестировать версию 2.3.1

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

FPC-команда просит усиленно тестировать версию 2.3.1

Сообщение debi12345 » 06.04.2008 20:40:08

Откуда ветер дует ?

Сначало письмо Мартина :
Код: Выделить всё
Hi,
Some parts of FPC RTL have been rewritten from scratch:
http://www.mail-archive.com/fpc-pascal%40lists.freepascal.org/msg10977.html
http://www.mail-archive.com/fpc-pascal%40lists.freepascal.org/msg12270.html

Please test your applications with FPC trunk and MSEide+MSEgui trunk:
http://svn.freepascal.org/svn/fpc/trunk
https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk

Martin


А теперь суть проблемы
Код: Выделить всё
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


И акцент на том, зачем нам это :
Код: Выделить всё
The new code will be in next FPC release and then it is too late...


ПС:
"Зацепленная" часть FPC RTL уже переписана с нуля, и уже есть первые "результаты" ( в гробу я их видел ) - Формы некоторых БД-проектов на MSE* даже перестали загружаться в IDE. Вполне вероятно, что и в Лазарусе тоже возможны проблемы.
Важно и сами IDE собирать на fpc2.3.1 -иначе не будет 100% чистоты экперимента !
Короче пересобираем наши IDE на fpc2.3.1 из SVN-транка - и пыьаемся собратььранее работавшие проекты. И рапортуем и рапортуем об ошибках,... И посылаем тесткэйсы и посылаем...
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 06.04.2008 22:16:30

Писец, всё равно что мыть шваброй грунтовую дорогу...

Допустим некто X, защитил копирайтом функцию
Код: Выделить всё
// (c) Mr. X
function max(a, b: Integer): Integer;
begin
  if a > b then Result := a
  else Result := b;
end;


Некто Y, тоже хочет в своем коде использовать фунцкию Max... хм... она защина авторским правом (можно ли защить функцию/код авториским правом? вопрос скорее к юристам...), перепишу ка я её сделующим образом:
Код: Выделить всё
// (c) Mr. Y
function max(a, b: Integer): Integer;
begin
  if a <= b then Exit(b);
  Exit(a);
end;


Вопрос №1. Чиста ли функция Y.max ?
Вопрос №2. Как поступит Mr. Z, и те кто будуд следовать за ним?
Вопрос №3. Каков критерий эквивалентности реализаций? Кто его определяет? Его кто-нибудь зафиксировал документально? На него можно сослаться в суде?
...
...

Лучше бы (одна или лучше обе стороны) предложили новый современный АПИ...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение debi12345 » 06.04.2008 22:42:32

Да понятно, но - если есть копирайт, то надо как-то выкручиваться. Или официально договариваться с правообладателем. Что легче и надежнее - выкрутиться или договориться ( с учетом возможного пепесмротра соглашений) ?
И понятно, что речь не идет о простейшем коде.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 » 07.04.2008 11:35:30

Пока отбой - из-за низкоуровневых багов.

I stopped FPC trunk/cleanroom debugging:
http://www.mail-archive.com/fpc-devel%4 ... 10679.html
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Sergei I. Gorelkin » 07.04.2008 13:36:43

Да вроде бы, после исправления первых нескольких самых грубых багов, полет нормальный... По крайней мере на моем рабочем проекте.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение debi12345 » 07.04.2008 13:54:16

На серьезном БД-проекте кое-что со стримингом вылазит...
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Deepthroat » 10.04.2008 01:03:57

2 shade

1. Чиста.
3. Наиболее вероятный вариант - полное совпадение кода == плагиат. Однако, возможно проведение специальной экспертизы, которая будет определять особенности написания кода авторами и исходя из этого делать вывод, кто именно является настоящим разработчиком. Так или иначе, авторское право распространяется только на код, но не на алгоритм.
Аватара пользователя
Deepthroat
постоялец
 
Сообщения: 144
Зарегистрирован: 06.09.2007 00:21:34
Откуда: Outer Heaven

Сообщение alexs » 10.04.2008 08:07:19

я не понял зависимости - но не всегда сохраняются линки между компнентами в пределах формы
у себя это обнаружил на ссылках их FBDataSet на jvUIBTransaction
причём у половины компонент
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение *vmr » 14.04.2008 13:45:56

Вот случайно наткнулся на то, с чего вся эта котовасия и началась:
http://www.stevetrefethen.com/blog/IWis ... eFree.aspx

(просто если кому интересно)
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru
cron