LINUX.ORG.RU

Free Pascal 3.2.0

 , ,


0

5

Состоялся выпуск FPC 3.2.0!

Эта версия является новым крупным релизом и содержит багфиксы и обновления пакетов, новые возможности и новые таргеты.

Со времени выхода FPC 3.0 прошло 5 лет, так что рекомендуется обновиться как можно скорее.

Новые возможности: https://wiki.freepascal.org/FPC_New_Features_3.2.0

Список изменений в которых может нарушиться обратная совместимость: https://wiki.freepascal.org/User_Changes_3.2.0

Список новых поддерживаемых платформ: https://wiki.freepascal.org/FPC_New_Features_3.2.0#New_compiler_targets

Скачать: https://www.freepascal.org/download.html

>>> Официальный сайт

★★★★

Проверено: leave ()

Верным путём идут товарищи. Ещё 20 лет назад нужно было завезти инициализаторы и другие операции с динамическими массивами. Глядишь, народу не так стрёмно было бы работать. Раньше фактически приходилось в массив дописывать, каждый раз вызывая setlength, теперь можно insert использовать.

Vudod ★★★★★ ()

Захотел поностальгировать, открыл описание фичей https://castle-engine.io/modern_pascal_introduction.html (ссылку спёр из аналогичной новости на реддите), вижу отсутствие лафтаймов, висячие ссылки и UB, интерфейсы COM и CORBA для того чтобы считать эти самые ссылки, модули и встроенная прямо в компилятор сборочная система конечно есть, но при импорте всё серет в глобальный скоп и весело перезаписывает определения друг друга, и в целом засранный всякими встроенными функциями глобальный скоп, простецкие шаблоны без ограничений на подстановку, магические синтаксисы и компиляторные хаки. Мне кажется или это фактически реальный уровень до-стандартного C++?

d_a ★★★★★ ()
Ответ на: комментарий от d_a

вижу отсутствие лафтаймов, висячие ссылки

Запили свои лайфтаймы. Или используй record с

class operator Finalize

или используй интерфейсы.

UB

В debug режиме компилятор проверяет почти всё что возможно:

-Ci        IO-checking
-Co        Check overflow of integer operations
-Cr        Range checking
-CR        Verify object method call validity
-Ct        Stack checking
-Sa        Turn on assertions
-gh        Use heaptrace unit (for memory leak/corruption debugging)
-gc        Generate checks for pointers (experimental, only available on some targets, might generate false positive)

но при импорте всё серет в глобальный скоп и весело перезаписывает определения друг друга, и в целом засранный всякими встроенными функциями глобальный скоп

Да, тут же написано как с этим бороться

Используй полные имена

простецкие шаблоны без ограничений на подстановку

ну да, простецкие шаблоны.

fsb4000 ★★★★ ()

Вот какой ЯП нужно было использовать для веба, а не Похапе, Пестон, или прости господи, Жаваскрипт.

windows10 ★★ ()

Там уже можно использовать регистрозависимые идентификаторы?

X512 ()

Хороший язык, только мёртвый

Crocodoom ★★★ ()

День Мёртвых Языков на ЛОРе?

anonymous ()
Ответ на: комментарий от X512

Не знаю можно ли там это делать, но надеюсь, что нет. Зачем это вообще может понадобиться?

anonymous ()
Ответ на: комментарий от Crocodoom

Хороший язык, только мёртвый

Pascal подобен французскому шансону, который тоже почти «мёртвый», однако, приятно послушать, ибо:
«Cherchez pas la raison:
C’est parce que c’est si bon»
«Не ищите причину:
Потому что это так хорошо» :)

quickquest ★★★★★ ()
Последнее исправление: quickquest (всего исправлений: 1)

Я рад что оно живёт. В паре с Lazarus это уникальная вещь. Delphi не в счет, при такой цене оно полудохлое

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

Python с Tkinter тормоза, Qt лицензия, остальное замороченное

ism ★★★ ()
Ответ на: комментарий от ism

Есть примеры софта с тим быстрым гуи?

anonymous ()
Ответ на: комментарий от ism

быстрый GUI следует делать только на нем

Там есть auto layout, или надо все контролы мышкой расставлять и всё расползается при использование шрифта отличного от используемого разработчиком?

X512 ()
Ответ на: комментарий от X512

Всё нормально с лицензией в Qt.

Можно коммерческий софт писать ?

ism ★★★ ()
Ответ на: комментарий от ism

Можно, Qt5 доступен под LGPL 3.0 что позволяет линковку с закрытым кодом.

X512 ()

https://wiki.freepascal.org/FPC_New_Features_3.2.0#New_compiler_targets

Support for the i8086-win16 (16-bit Windows) target

Overview: Experimental support has been added for the 16-bit Windows target. It is a cross compiler only target (cross compilation is possible from e.g. Win32, Win64 or Linux).

Notes: Windows 3.0 or later is supported.

More information: Win16

Оно настолько древнее, что мерещится каменный молот и охра :)

Кому оно понадобилось ?

ism ★★★ ()
Ответ на: комментарий от X512

В паскале обычно пишут типы начиная с T, а типы указателей начиная с P:

type PObject = ^TObject;

var
  obj: TObject;
fsb4000 ★★★★ ()
Ответ на: комментарий от X512

Можно, Qt5 доступен под LGPL 3.0 что позволяет линковку с закрытым кодом.

Странно, я думал для закрытого софта лицензия нужна

За что тогда они деньги берут ?

ism ★★★ ()
Ответ на: комментарий от fsb4000

Префиксы и type PObject = ^TObject; не нужны. В следующем поколении языка Паскаль - Оберон идентификаторы регистрозависимы и необязательно объявлять указательный тип.

TYPE
	Item = POINTER TO RECORD
		next: Item;
		val: INTEGER;
	END;


PROCEDURE Insert (VAR list: Item; item: Item);
BEGIN
	item.next := list;
	list := item;
END Insert;
X512 ()
Ответ на: комментарий от ism

За что тогда они деньги берут ?

  1. Части модулей нет под LGPL.

  2. Поддержка?

  3. Программисты не хотят заморачиваться с написанием инструкций, как пользователям заменить Qt либу на свою.(Именно этого и требует lgpl)

Вот прочитай этот ответ:

https://stackoverflow.com/a/39438539/4544798

Можно использовать Qt для проприетарного кода…

fsb4000 ★★★★ ()
Ответ на: комментарий от windows10

Вот какой ЯП нужно было использовать для веба, а не Похапе, Пестон

Для стороны сервера есть Pascal Server Pages.

или прости господи, Жаваскрипт.

Да, на клиенте JS всех задавил, и даже Билли не смог его забороть своим любимым VB(Script).

Но вот откуда в JS взялось знакомое слово function?..

hobbit ★★★★★ ()
Ответ на: комментарий от X512

Ну, коли ты интересуешься темой, есть хоть какой-то профит от использования минималистичных языков, типа оберона или компонентного паскаля? Или эти языки не просто минималистичны, а ещё и хорошо спроектированы? Вроде идея была в том, что простой язык проще контролировать, но мне кажется, что без сахара приходятся слишком много велосипедить (чего возможно не происходит на практике).

P.S.: я сам нубас, если что, просто интересуюсь.

anonymous ()
Ответ на: комментарий от anonymous

Есть примеры софта с тим быстрым гуи?

Я писал гуй к базе данных, обработку прайсов. Удобнее нет. Можно почти в реальном времени все менять и отправлять в релиз, результат виден сразу

ism ★★★ ()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от X512

Там есть auto layout, или надо все контролы мышкой расставлять и всё расползается при использование шрифта отличного от используемого разработчиком?

Это вам надо смотреть, но интерфейс настройки расположения и взаимодействия элементов очень подробный и удобный

ism ★★★ ()

Знаю одну хорошую программу на поцкале - Double Commander, юзаю с огромной радостью. Ради этого пусть живет FP

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от hobbit

Для стороны сервера есть Pascal Server Pages

Весело! Надо срочно запилить фреймворк Pascal Home Pages!

hbee ★★★ ()
Ответ на: комментарий от anonymous

Ну, значит веб выигрывает.

5 минутный деплой проекта после копания в html и замороченной отладки ? Нет

Lazarus намного проще и удобней, на нем раз в 5 быстрее, чем в том же Pycharm

ism ★★★ ()
Ответ на: комментарий от ism

Да, веб выигрывает по всем параметрам.

anonymous ()
Ответ на: комментарий от anonymous

Языки Оберон семейства имеют ограниченное применение, в основном в научной и embedded области. Для компонентного паскаля также есть фреймворк BlackBox имеющий документную систему и реализующий подход «текст как интерфейс» позволяющий вызывать процедуры по комманде и напрямую обращаться к открытым документам, выделению и т.п. Папример можно написать:

MODULE A;
	IMPORT TextMappers, TextControllers;
	
	PROCEDURE Do*;
		VAR ctrl: TextControllers.Controller; fm: TextMappers.Formatter;
	BEGIN
		ctrl := TextControllers.Focus();
		IF ctrl # NIL THEN
			fm.ConnectTo(ctrl.text);
			fm.SetPos(ctrl.CaretPos());
			fm.WriteString("This is a test."); fm.WriteLn;
		END;
	END Do;
	
END A.

(!) A.Do

И при нажатии на (!), «This is a test.» будет выведен в фокусном текстовом документе включая сам исходник.

У меня на нём написано много инструментов например ElfDecoder позволяющий просматривать ELF файлы включая stripped которые не читаются в readelf и objdump: https://imgur.com/a/WaCtxMw.

Языки семейства Оберон копмактны, просты в изучении и в них сложнее зделать случайную ошибку приводящую к нежелательному поведению. Правда библиотек под Оберон мало, приходиться много писать самому и использовать объявления для DLL/SO библиотек.

X512 ()
Ответ на: комментарий от PPP328

Потому что readelf/objdump полагаются на section table и symbol table а мой ElfDecoder на dynamic table и dynamic symbol table.

X512 ()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Языки семейства Оберон копмактны, просты в изучении и в них сложнее зделать случайную ошибку

Да, русский язык однозначно не из семейства Оберон.

Nervous ★★★★ ()
Ответ на: комментарий от X512

Ещё у меня есть декодеры для PE и NE (16 бинтые исполняемые файлы из Windows 3.0).

X512 ()
Ответ на: комментарий от anonymous

Да, веб выигрывает по всем параметрам.

Для недопрограммеров да. Они даже ядро ОС будут писать на js

Ибо тупые

ism ★★★ ()
Ответ на: комментарий от ism

Python с Tkinter тормоза, Qt лицензия, остальное замороченное

Это Tcl/Tk то замороченный? Но тоже тормоза, да, как и Python/Tk.

Gentooshnik ★★★ ()
Ответ на: комментарий от ism

Можно, Qt5 доступен под LGPL 3.0 что позволяет линковку с закрытым кодом.

Странно, я думал для закрытого софта лицензия нужна

LGPL - это лицензия!

Gentooshnik ★★★ ()
Ответ на: комментарий от ism

Ибо тупые

Сейчас веб посложней системного программирования, лол.

anonymous ()
Ответ на: комментарий от Gentooshnik

Это Tcl/Tk то замороченный? Но тоже тормоза, да, как и Python/Tk.

Тут чисто юзабельный вопрос, exe созданный Lazarus уже содержит в себе всё, не нужно установок библиотек и прочего. Просто запуск программы

Python программа требует как минимум установки питона в системе. На старт требуется куча ресурсов на инициализацию

Так что при одинаковом удобстве программирования exe файл выигрывает в компактности, скорости, потреблении ресурсов

ism ★★★ ()
Ответ на: комментарий от X512

Почему языки семейства Оберон не стали достаточно популярными? Почему они не достигли популярности хотя бы Паскаля?

bbk123 ★★★★★ ()
Ответ на: комментарий от ism

Можно делать exe и из Python, и из Tcl. И встроенный в exe интерпретатор Tcl даже инициализируется приемлемо быстро.

Я не пытаюсь переубедить, но указываю на неточности.

Gentooshnik ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.