LINUX.ORG.RU

Вышел Lazarus 4.0

 , ,


2

7

5 мая 2025 года состоялся релиз интегрированной среды разработки Lazarus 4.0, предназначенной для разработки софта на языке Pascal с использованием компилятора FreePascal 3.2.2. Lazarus предоставляет возможности, схожие с Borland Delphi.

Основные изменения:

  • реализованы встраеваемые панели интерфейса и встраеваемый редактор GUI (ранее окна была отдельными);
  • улучшены подсветка кода и его отображение в редакторе;
  • улучшена работа отладчика;
  • реализована поддержка свежей версии пакета Pas2js, предназначенного для разработки веб-приложения в Lazarus;
  • добавлена поиск пиктограмм по ключевым словам с помощью плагина Icon Finder;
  • улучшено отображение некоторых компонентов в Cocoa, также добавлен инструмент CocoaConfig для настройки;
  • доработаны компоненты TCalendarDialog, TOpenDialog, TShape, TLabeledEdit, TTimeEdit, TColorDialog, TFilenameEdit, TMenu и TMenuItem.

>>> Скачать

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: unfo (всего исправлений: 2)

Ответ на: комментарий от sunjob

Не, это на Lazarus-e, на Avalonia пустое окно под сотню метров оперативы отъедало. После некоторых танцев с бубном, удалось уменьшить это дело, до примерно 50 )

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

давайте какую-нибудь унивесальную команду используем для получения «размера захваченной памяти»?
у меня команда time не видит ключ -v

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

Да просто top сделай, там примерно такая же цифра будет

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

кто бы мог подумать? туплю, чего?! чпасибо :о)

пакет-то установлен, вот соображалки как-бы нет!

book$ /usr/bin/time -v ./project1.dbg
Heap dump by heaptrc unit of project1.dbg
640 memory blocks allocated : 83750/84584
640 memory blocks freed     : 83750/84584
0 unfreed memory blocks : 0
True heap size : 163840
True free heap : 163840
        Command being timed: "./project1.dbg"
        User time (seconds): 0.09
        System time (seconds): 0.03
        Percent of CPU this job got: 5%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.32
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 33388
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 3024
        Voluntary context switches: 787
        Involuntary context switches: 34
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0
book$ /usr/bin/time -v ./project1.end
        Command being timed: "./project1.end"
        User time (seconds): 0.09
        System time (seconds): 0.02
        Percent of CPU this job got: 5%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.01
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 31148
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 2939
        Voluntary context switches: 689
        Involuntary context switches: 34
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

как-то так, надеюсь это то, что надо?! :о)

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 3)
Ответ на: комментарий от No
helloworld - 20,936 B

book$ /usr/bin/time -v helloworld
Hello World
        Command being timed: "helloworld"
        User time (seconds): 0.03
        System time (seconds): 0.02
        Percent of CPU this job got: 2%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.12
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 23336
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 1477
        Voluntary context switches: 122
        Involuntary context switches: 39
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 2)
Ответ на: комментарий от No

ну а с другой стороны это совсем незначительная «нагрузка», на фоне всех плюсов от работы в лазаре!

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

и вызывай с back-слешем чтобы баш вызывал внешний time

Фигасе сильное колдунство, я всегда /usr/bin/time в таких случаях писал

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

чтоб strip и upx наконец забыть как страшный сон?

О, а лазарусские бинари можно обычным стрипом? А че за упикс?

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

Правильно ли я понимаю, что развитие паскале-подобных языков пошло дальше из Object Pascal у сабжа к (Active) Oberon и Modula 3? Непонятно на чем остановилось развитие идеи

Golang вполне себе популярен, хотя он довольно сильно мутирован и Паскаль не сразу различить.

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

Maximum resident set size (kbytes): 33388

Ну это же он с разделяемой памятью показывает, которое используется т другими приложениями? То есть по факту запуск Вашей программы не уменьшит объем доступной памяти на 33МБ ?

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

Не, это на Lazarus-e, на Avalonia пустое окно под сотню метров оперативы отъедало

А GTK# с нативной компиляцией не смотрели?

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

А че за упикс?

https://upx.github.io

UPX is an advanced executable file compressor. UPX will typically reduce the file size of programs and DLLs by around 50%-70%, thus reducing disk space, network load times, download times and other distribution and storage costs.

Programs and libraries compressed by UPX are completely self-contained and run exactly as before, with no runtime or memory penalty for most of the supported formats.

UPX supports a number of different executable formats, including Windows programs and DLLs, macOS apps and Linux executables.

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

ну как-то сомнительно, что приложение никакую разделяемую память не исользует. Хотя это, конечно, устаревший gtk2…

Работа с памятью в Линукс очень сложно устроена. И каждый диспетчер по разному считает используемую память. я наблюдал, что после обновления системы free, meminfo и top стали показывать used memory на 20% больше, хотя available memory осталось примерно тем же. А вывод used memory у htop после обновления не поменялся

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

О, а лазарусские бинари можно обычным стрипом?

Конечно можно, это же нативный бинарь.

А че за упикс?

the Ultimate Packer for eXecutables У него есть свои плюсы и минусы (минус любовь к оперативке чуть повышена, плюс в том что чтение с диска быстрее и даже в случае ssd при нормальном процессоре программа стартует быстрее, если конечно это не игра где большая часть загрузки это всякие 3D модельки и текстурки), ну и антивири его не всегда любят, т.к. им часто вирусню пакуют, чтоб меньше места занимала

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

Работа с памятью в Линукс очень сложно устроена

согласен! возможно, продвинутые специалисты подскажут, по данному поводу?! :о)

sunjob ★★★★★
()

ЛОР не тот стал. Народ спокойно обсуждает Паскаль. Старые фрики все передохли, похоже, новые уже сюда не заходят.

По теме — вот эта игрушка была раньше на Лазарусе написана, правда, они только под Винду сборки делали и рекомендовали в Линуксе через вайн пускать: https://www.kamremake.com/

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

Народ спокойно обсуждает Паскаль

а может быть все современные языки слились ниже плинтуса? а паскаль как был на «своем месте/нише» так там и остался?

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

О, а лазарусские бинари можно обычным стрипом?

Конечно можно, это же нативный бинарь

Ну вот когда ты так говоришь - звучит-то логично, но сам бы я никогда не додумался. Почему-то стрип ассоциируется с си)

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

Запустил два раза простую прогу с формой и кнопкой, выводящей «Hello world». Вывод утилиты smem -P:

_PID_______Command ________Swap____USS______PSS_____RSS

11595__./test_lazarus_____________0_____4440_____6891____25456

11613 ./test_lazarus______________0_____4452_____6929____25672

USS (Unique Set Size) — память, которую освободит система, если процесс завершится. Полезно для поиска утечек.

PSS (Proportional Set Size) — учитывает shared-библиотеки (например, если 10 процессов используют общую библиотеку размером 1 МБ, каждому процессу в PSS добавится 0.1 МБ).

RSS (Resident Set Size) — общий объем RAM, занимаемый процессом (включая shared-память). Может вводить в заблуждение из-за дублирования shared-данных.

intruder
()

На диске кстати релизная версия занимает всего 2.8 МБ. Не знаю, зачем strip и upx использовать, и так норм

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

UPX — это какая-то IQ-ловушка, не знаю, кто в здарвом уме этим может пользоваться. Эта дрянь мало того, что при каждом запуске программы её разархивирует, так ещё весь распакованный код после этого висит в памяти, вместо постраничной подгрузки ядром по мере надобности.

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

Так после стрипа ты и получишь релизную версию.

А зачем оно нужно, если релизный режим можно включить? Кроме удаления дебажной инфы, в релизной версии включается «умная компоновка» ( не знаю, что это), и оптимизация -O3

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

Это килобайты или кибибайты. В документации не написано, но обычно в Linux в системных утилитах выводится информация в кибибайтах (KiB), мибибайтах и гибибайтах. В которых честные 1024 меньших единиц. Но это не точно

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

В байтах оно никак не хочет выводить, так что проверить трудно

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

Не совсем. Дело в том, что чтение/запись в оперативку штука очень дешевая, а вот чтение/запись с диска вещь дорогая. Потому даже всякие zram которые архивируют (сжимают) оперативку при её нехватке (когда используется подкачка, т.е. идут операции с диском) дают значительное ускорение. Так что запуск такой программы быстрее, да и работа может быть гораздо плавнее, т.к. больше диск читать нет нужды. А оперативки нынче много. Вот у меня сейчас запущен браузер с 16 вкладками, файловый менеджер, терминал, монитор ресурсов, торрентокачалка, плеер, всякий фоновый серверный софт, вроде самбы и памяти кушается 3,6 гигов из 16. Так что что её жалеть то, чтоб солить?

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

А оперативки нынче много.

Тогда ядерный page cache её использует по максимуму. Если места на диске так жестко не хватает, то нужно использовать сжатую ФС (или какой-нить fuse-костыль, если не жалко CPU, например, как squashfs в appimage)

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

да какие проблемы?! пожалуйста, заведите отдельную тему и... я весь ваш самый активный по/читатель! :о)

а тут лучше о лазаре, по рукам? :о)

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

Фигасе сильное колдунство, я всегда /usr/bin/time в таких случаях писал

Да ваще! век живи, век учись…

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

Я вам не наркодиллер, чтобы Rust рекомендовать. Rust прекрасен тем, что он есть, а пользоваться им не стоит…

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

Количество скачиваний любой фигни — тот ещё «аргу́мент», особенно если знать, как легко это «калеКчество» «накручивается»... :)

Somebody ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.