О релизах и багах

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

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

Сообщение Иван Шихалев » 17.05.2005 20:24:01

В прошлый раз зарелизив единичку FPC Team уже была полна планами на следующую версию с множеством новых фич... Как следствие, багофиксы оказались не самым приоритетным направлением.
В настоящий момент ситуация более благоприятная: планы, заявленные на 2.2 — скорее доведение до ума фич существующих. Однако все может поменяться... Предлагаю тестить со страшной силой, насколько это возможно. Писать репорты, патчи... Если туго с английским — пишем в этот форум: четко локализованная проблема, описание, пометка «прошу перевести и отрепортить»

Что касается планов FPC Team, <a href='http://www.freepascal.org/future.html' target='_blank'>источник тут</a>.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Иван Шихалев » 17.05.2005 21:30:52

А вот перевод (большей частью) их планов:

<span style='font-size:15pt;line-height:100%'>Планы на будущее</span>

Запланировано в следующей версии
  • Следующая старшая версия (2.2)
    • Язык:
      • Поддержка <span style='font-family:courier'>DispInterface</span> and <span style='font-family:courier'>dispid</span> (OLE-связывание в Windows)
        </li>
      • Поддержка динамических библиотек (Кажется, имеется в виду аналог run-time packages, но не уверен — ИШ)
        </li>
      • Поддежка делегирования интерфейсов</li>
      </li>
    • Компилятор:
      • Улучшенная оптимизация (static single assignment)
        </li>
      • Усовершенствованная многопоточность
        </li>
      • Встроенный ассемблер для не-x86 платформ
        </li>
      • Встроенный компоновщик
        </li>
      • Чистка системы модулей и (улучшенная) поддержка динамической компоновки и пакетов</li>
      </li>
    • RTL:
      • Большая совместимость с позднейшими версиями Delphi</li>
      </li>
    • Уже в процессе (RTL):
      • Обновить и модернизировать работу для некоторых платформ:
        • Solaris (важно для поддержки Sparc!)
          </li>
        • Больше модулей WinAPI и сторонних пакетов (Socket suite?)</li>
        </li>
      </li>
    </li>
Запланировано в дальнейших версиях
  • Компоновка с кодом C++ (Objective C?)
    </li>
  • Повышение уровня оптимизации, включая liveliness analysis (Не знаю, как переводится — ИШ)
    </li>
  • Полная поддержка DWARF (отладочный формат)
    </li>
  • Больше архитектур (m68k?, Alpha?, IA64?)
    </li>
  • Поддержка CORBA
    </li>
  • Переработка вычислений с множествами:
    • Разрешить больше, чем 256 элементов
      </li>
    • <span style='font-family:courier'>set of 255..256</span> умещается в один байт (нижняя граница не устанавливается автоматически в <span style='font-family:courier'>ord(0)</span>)
      </li>
    • Больше управления упаковкой множеств (в зависимости от директивы <span style='font-family:courier'>packset</span>)
      </li>
    • Разрешить множества размером более 32 байт (2**32/8=512 MB)</li>
    </li>
Текущий ремонт (задачи для Юных Девелоперов)
Приблизительная сложность по шкале от 1 до 10 дана в скобках.
  • Переработать и проверить модуль Windows (проблема с макросами) (3)
    </li>
  • Больше модулей Windows API (4)
    </li>
  • Набор кроссплатформенных сетевых компонентов базовой архитектуры (Ох, тут я похоже погнал — ИШ) (сложность: 4; работа: 7-8)
    </li>
  • Porting Delphi source for projects/contrib (3-6 depending on package)
    </li>
  • Отладить/расширить поддержку ассемблера Intel (7-8)
    </li>
  • Работы по IDE:
    • Изучить открытые баг-репорты относительно IDE (5-8)
      </li>
    • (Связано с IDE/FV, но полезно и само по себе) Отладить ОС-независимую работу с терминальным вводом/выводом (Video/Keyboard/Mouse) (7)</li>
    </li>
  • Создать высококачественную обратную связь (для баг-репортов со 100 строками примера максимум)
    </li>
  • Больше демок и примеров (2-4)
    </li>
  • Документация, учебники
    </li>
  • Усовершенствовать поддержку ДБ:
    • Усовершенствовать подержку custom variants (<span style='font-family:courier'>TInvokableVariant</span>, <span style='font-family:courier'>TPublishableVariant</span>) (4-6)
      </li>
    • Усовершествовать совместимость <span style='font-family:courier'>TDataSet</span> (реализовать недостающие методы) (4-6)
      </li>
    • Драйверы (наследники) для различных ДБ (6-8)</li>
    (Дальше не так весело, потому без перевода — ИШ :))
    </li>
  • More OS/2 support
    • OS/2 API units (including SOM) (4)
      </li>
    • Adopt more packages for OS/2 (3)
      </li>
    • Write SOM Compiler emiter (OS/2) for Free Pascal (8)
      </li>
    • Rework OS/2 RTL for native OS/2 target (3)</li>
    </li>
  • Maintenance of Graph unit (on one platform or more), create a SDL Graph unit? (5-7)
    </li>
  • Adding an architecture (9-11 :))
    • m68k
      </li>
    • Alpha
      </li>
    • Extend ARM support to more cores and OSes
      </li>
    • Mips</li>
    </li>
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Сергей Смирнов » 17.05.2005 22:00:17

Очень мудрые, взвешенные планы. Никаких Generics и прочей модной ерунды. Я даже немного удивлён :) Особенно радует "Встроенный компоновщик". Может кому-то это и не очень важно, но меня жутко раздражает, что линковка длится на порядок больше компиляции.
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение Иван Шихалев » 17.05.2005 22:10:46

Мне тоже понравилось, да вот что-то на сердце неспокойно — см. первый пост.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Иван Шихалев » 22.05.2005 20:24:39

Баг оптимизатора. При сочетании <span style='font-family:courier'>-O3</span> (оптимизация третьего уровня) и <span style='font-family:courier'>-Or</span> (перенос локальных переменных в регистры) результат регулярно вываливается в AV. Тогда как ключи типа <span style='font-family:courier'>-OG3p3u</span> или наоборот <span style='font-family:courier'>-OG2p3ru</span> выдают вполне работоспособный результат.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Black_Wizard » 23.05.2005 15:49:45

Сел недавно попробовать сделать одну олимпиадную задачку на FP. И нашел в нем баг (или мож я че не так сделал). Короче, вот код:

*****************************
program Antivirus;

type
TVirus = record
Vir_Name, Vir_Code : String;
end;
var
prog_code : String;
Vir_Count : Integer;
Virus : array [1..100] of TVirus;
f : Text;
begin
Assign(f, 'input.txt'); Reset(f);
Readln(f, Prog_Code);
Readln(f, Vir_Count); <==
for i:=1 to Vir_Count do
begin
Read(f, Virus[i].Vir_Name);
Readln(f, Virus[i].Vir_Code);
end;
Close(f);
end.
********************

В операции, отмеченной стрелочкой, FP почему то не читает целое число из файла.
P.S. В Турбо Паскале это нормально работает!
Black_Wizard
 

Сообщение Иван Шихалев » 23.05.2005 16:06:41

Буквально недавно правили какие-то баги, связанные с Read/ReadLn. Подробностей не помню.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Гость_PVOzerski » 25.05.2005 15:59:02

Напоминаю: при смартлинке главного модуля win32-dll-и теряют секцию .edata.
Гость_PVOzerski
 

Сообщение Иван Шихалев » 25.05.2005 20:22:38

Напоминаю: при смартлинке главного модуля win32-dll-и теряют секцию .edata.

Помню я, помню ;)
Времени не хватает.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Alexandr » 30.05.2005 22:08:17

У меня есть желание помочь в разработке и исправлении багов.
Только не могу понять как это сделать.
Alexandr
 

Сообщение Sniper » 31.05.2005 00:13:38

Alexandr писал(а): У меня есть желание помочь в разработке и исправлении багов.
Только не могу понять как это сделать.

Это очень просто сделать:
1. Нужно качнуть исходники
2. Вот есть список непофиксеных багов,
<a href='http://www.freepascal.org/bugs/db.php3?statusfield=Unfixed' target='_blank'>http://www.freepascal.org/bugs/db.php3?statusfield=Unfixed</a>
3. ты смотришь в чём заключается интересующий тебя баг
4. Фиксишь баг
5. связываешь с каким-нибудь разработчиком и радостно сообщаешь что ты пофиксил баг, дальше он наверное скажет что делать (но про то, что делать с пофиксенным багом и куда этот фикс отправлять это моё ИМХО)
Sniper
постоялец
 
Сообщения: 472
Зарегистрирован: 28.05.2005 13:02:42

Сообщение Иван Шихалев » 31.05.2005 07:11:56

но про то, что делать с пофиксенным багом и куда этот фикс отправлять это моё ИМХО

Как показала практика — оптимальный вариант — отправить patch-файл в fpc-devel.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Sniper » 31.05.2005 12:36:12

Иван Шихалев писал(а):отправить patch-файл в fpc-devel.

а вот с этого места прошу по-подробнее =)
Sniper
постоялец
 
Сообщения: 472
Зарегистрирован: 28.05.2005 13:02:42

Сообщение Иван Шихалев » 31.05.2005 13:06:31

FPC-DEVEL - это список рассылки fpc-devel@lists.freepascal.org
В нем обсуждаются вопросы развития компилятора, правки багов и так далее. По программированию или использованию компилятора там задавать вопросы не стоит. Подробнее о списках рассылки: <a href='http://www.freepascal.org/maillist.html' target='_blank'>http://www.freepascal.org/maillist.html</a> (я уже где-то давал, кажется, эту ссылку...).

В общем, если есть желание править баги, то следует на него подписаться, а затем (возможно, после соответствующего обсуждения) отправить в аттаче патч, а в теле письма краткое описание проблемы и патча.

Патч-файл - это результат работы утилиты diff над оригинальным исходником и поправленным.

Если проблема не надумана, патч успешный, а описание корректное, то есть шанс, что исправление войдет уже в следующую ночную сборку.

Исправление багов через список рассылки лучше, чем личным письмом тем, что не нужно выяснять распределение ролей в FPC Team. К тому же, эти роли часто перекрываются...
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение Иван Шихалев » 31.05.2005 21:54:48

Очень мудрые, взвешенные планы. Никаких Generics и прочей модной ерунды.

А видел <a href='http://www.nl.freepascal.org/lists/fpc-devel/2005-May/005229.html' target='_blank'>битву в fpc-devel</a> по поводу совместимости с Delphi2005?
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

След.

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

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

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

Рейтинг@Mail.ru