to post messages and comments.

В коде LazPaint, который призван вроде как рекламировать Lazarus и Free Pascal, вижу такое:
SysToUTF8(ExtractFilePath(Application.ExeName))
То есть, там в большинстве мест однобайтовый string, но надо держать в уме, это там ANSI string или UTF8, и можно перепутать и вообще не увидеть ошибку.

А ведь нормальный мог бы быть инструмент разработки, если бы взять и начать применять единый стандарт. Пусть уж UTF8, вот только не надо тогда ExeName в ANSI.

Что-то уже второй раз натыкаюсь в базовых библиотеках второтега на косяки с арифметикой указателей. Причем в местах, которые мало кем используются. Приходится исправлять у себя, пока в стабильную ветку исправления не перекочевали.

Быстрая компиляция в FPC некорректно работает с новыми возможностями языка. Для корректной сборки при изменении модулей, использующих или содержащих generic-классы необходимо полностью пересобирать весь прект, иначе вылетит птичка^W ошибка.

freepascal.org
При стандартном компилировании FreePascal использует режим компиляции "FPC" (обычно я использую режим Delphi, но сейчас нужно использовать модули, писанные не мной, которые под этим режимом не работают), при котором
Strings are shortstrings by default.На дворе шёл 2011 год, к КаКиЕ-То СуКи БЛЯДЬ ДО СИХ ПОР ИСПОЛЬЗУЮТ СТРОКИ ИЗ 256 СИМВОЛОВ! АНАЛЬНЫЕ БОЛИ!

А я уже минут 30 пытаюсь понять, почему у меня в функцию рандомная половина строки передаётся

Все-так generic-и во FreePascal очень классная штука. Раньше были обходные пути через жопу для использования шаблонов и потому использовались редко, но теперь неплохо вполне — я их уже полюбил :)

Пидорасы какие-то удалили из моего Free Pascal 2.4.0 старые функции send, recv etc. А новым функциям нужны указатели. ГДЕ МОЯ СОВМЕСТИМОСТЬ, БЛЯДЬ?! ЗАПИЛИТЕ МНЕ ФУНКЦИИ КАК ВЫПИЛИЛИ, БЛЯДЬ?! МНЕ БЛЯДЬ ПО ВСЕМ ПРОГРАММАМ БЕГАТЬ @ ВСТАВЛЯТЬ {$IFDEF UNIX} ШОЛЕ?!

Итак: есть множество m [1..50]
Если множество заполнять m:=m+[x];
то на турбо паскале он  включит в множество и 0 и больше 50
А на free pascal — значения от 0 до 50 включительно.
Для меня это несколько неожиданно было.
Если на free pascal добавление элемента делать include(m,x); то тоже самое и 0 и 50 оказываются в множестве.
Объяснять это все преподавателю — последнее дело, они free pascal-и не знают.