1

(21 ответов, оставленных в Новости, анонсы, релизы.)

Andrei88 пишет:

Сама же статья https://sannata.org/konkurs/drpass001.shtml

Просто огонь!

Так получилось, что впервые я засел за Паскаль именно за «Поиском», и это был Turbo Pascal 3.0. Правда, настоящий, от Borland. Уже не помню, что писал тогда. А графический редактор писал не я, а мой товарищ. Для этого надо много за компом сидеть, и у него доступа к тому ПК было больше моего. smile



2

(62 ответов, оставленных в Новости, анонсы, релизы.)

uav1606 пишет:

Я, правда, не нашёл описываемую книгу в электронном виде, но в английском издании нет про добавление оператора case, только про какие-то там его оптимизации.

А можно и мне английское издание? Тоже искал описываемую книгу, чтобы своими глазами почитать, и тоже не нашел, везде предлагают или в библиотеку прийти, или купить.

Мне трудно представить, что изменилось в case по сравнению с Turbo Pascal 7.1, и если что-то действительно было улучшено, — будет новая инфа в мою личную копилку.

Freeman пишет:

Как уже отмечалось, Delphi создаёт на выходе скомпилированные файлы. Такие программы работают очень быстро – настолько, что увидеть код во время его выполнения невозможно.

А где-то возможно? Чтоб прям во время выполнения? Рука-лицо!

uav1606 пишет:

Например, по поводу "увидеть код во время его выполнения" - вероятно, имелось в виду в режиме отладки, так называемый режим анимации (или Auto Step), когда программа выполняется построчно с подсветкой текущей строки...

uav1606 пишет:
Freeman пишет:

Где такой режим?

Мне попадался. В W32Dasm, например. В QBasic тоже есть нечто похожее - режим трассировки.

Про режим Auto Step не знал. Если он и правда позволяет увидеть код во время выполнения — беру свои слова назад. Однако в Delphi такого режима нет.

uav1606 пишет:

не считая отладочной информации в EXE - там, по-моему, вообще всё в порядке, а Вы не правы

Всё вместе читается как необоснованный переход от одного вида отладки/настроек к другому, что я трактую как введение в заблуждение:

Хорошо, что у нас есть инструменты, которые позволят проследить выполнение программы в любой момент времени. Использование контрольных точек – один из способов отладки. Также можно воспользоваться утилитой Watch List, показывающей значение всех переменных программы в процессе работы. Стоит сказать, что инструменты отладки имеют множество настроек¹⁵.
──────────────────
15) Служебные файлы отладчика немного увеличивают размер exe‐файла программы. Если вы хотите оптимизировать размер вашей программы, то непременно ознакомьтесь с настройками отладчика.

К слову, tregsvr.exe из дистрибутива Delphi 6 почему-то собран в отладочном режиме. Я использую его в качестве примера такой программы:

Headers and sections (file/RVA)
     {stub}  00000/00000        260 bytes    0.0%
  {headers}  00104/00104        608 bytes    0.1%
       CODE  00400/01000      61952 bytes    6.3%  ·C·········XR·
       DATA  0F600/11000       2048 bytes    0.2%  ··D·········RW
        BSS  0FE00/12000          0 bytes    0.0%  ············RW
     .idata  0FE00/13000       3072 bytes    0.3%  ··D·········RW
       .tls  10A00/14000          0 bytes    0.0%  ············RW
     .rdata  10A00/15000        512 bytes    0.1%  ··D·······S·R·
     .reloc  10C00/16000       5120 bytes    0.5%  ··D·······S·R·
      .rsrc  12000/18000       5632 bytes    0.6%  ··D·······S·R·
     .debug  13600/1A000     904704 bytes   92.0%  ··D·······S·R·

92% — нифига себе «немного» увеличивает! Это при том, что для пошаговой отладки в IDE эта информация не нужна, повторюсь:

Debug information

Type    Switch
Syntax  {$D+} or {$D-}
        {$DEBUGINFO ON} or {$DEBUGINFO OFF}

Default {$D+}
        {$DEBUGINFO ON}

Scope    Global

Remarks

The $D directive enables or disables the generation of debug information. This information consists of a line-number table for each procedure, which maps object-code addresses into source text line numbers.

For units, the debug information is recorded in the unit file along with the unit's object code. Debug information increases the size of unit file and takes up additional memory when compiling programs that use the unit, but it does not affect the size or speed of the executable program.

When a program or unit is compiled in the {$D+} state, the integrated debugger lets you single-step and set breakpoints in that module.

The Include debug info (Project|Options|Linker) and Map file (Project|Options|Linker) options produce complete line information for a given module only if you've compiled that module in the {$D+} state.

The $D switch is usually used in conjunction with the $L switch, which enables and disables the generation of local symbol information for debugging. See also "Generate Turbo Debugger debug info (-V) option" and "Symbol cross-reference information."

EXE and DLL options

Check box                 What it does
───────────────────────────────────────────────────────────────────────
...
Include TD32 debug info   Places debug information in your program's executable file. This makes the resulting .EXE
                          file larger, but it does not affect memory requirements or performance.

                          Use this option only if you are using an external debugger. Using this option increases the
                          length of time required to compile a project.

В чем именно я неправ?


Антиквар пишет:

Журнал №44'2023. Выглядит это так, будто с начала 2023 года вышло 44 номера!

Поначалу подумал, что это претензия к апострофу. Его действительно используют при внутригодовой нумерации. Но участники дискуссии, похоже, не поняли друг друга.

При сквозной нумерации логично писать год в скобках: №50 (2025). Так не будет ощущения, что это 50-й номер года, а с «№50'2025» оно у меня есть.



4

(62 ответов, оставленных в Новости, анонсы, релизы.)

Andrei88 пишет:

Ну, книжка вообще вышла в 95-м году.

Это как знак качества или наоборот? big_smile

Уже подумалось, что хотели дать обзор на хорошую старую книжку, а получилась антиреклама некачественной компьютерной литературы тех лет. А тогда даже у меня интернета еще не было. И на Delphi я еще не писал, продолжая сидеть на Turbo Pascal под DOS. Это был период появления Pentium, когда компьютер устаревал чуть ли не дважды в год, а я еще не нашел способа это преодолеть. Поэтому начал сразу с Delphi 3 уже в 1998-м. И с интернетом.



5

(62 ответов, оставленных в Новости, анонсы, релизы.)

uav1606 пишет:

По поводу отладочной информации - тоже подтверждаю. Частично её можно встраивать в EXE (символы), чтобы потом было проще отлаживать.

Из текста статьи не до конца понятно, что имеется в виду.

В старых версиях Delphi (до Embarcadero) размер файла увеличивала отладочная информация для отладчика Microsoft (из Visual Studio или совместимого), его настройка неспроста находится на вкладке Linker. У меня в Delphi 6 есть «Include TD32 debug info» и «Include remote debug symbols» — какая-то из этих галок. Если обходиться отладчиком самого Delphi, встраиваемая в exe-шник отладочная информация не нужна. Для работы описываемого в статье Watch List отладочная информация берется из DCU/DCP-файлов, на размер exe-шника она не влияет. Справку цитировать?

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

uav1606 пишет:

так называемый режим анимации (или Auto Step), когда программа выполняется построчно с подсветкой текущей строки...

Где такой режим? yikes

uav1606 пишет:

(Вот насчёт case я тоже не понял - вроде этот оператор был ещё в первом виртовском описании 70-какого-то года.

Меня напрягло еще это:

9) Считается, что конструкция case работает быстрее, чем ifthen.

Считается кем?

А раньше журнал казался авторитетным — по крайней мере, без совсем уж явных косяков. sad



6

(62 ответов, оставленных в Новости, анонсы, релизы.)

Прочитал статью про Delphi («Delphi: к вершинам мастерства»).

Кроме того, расширилось базовое ядро языка Pascal. Добавился оператор case

Это в книге так написано? Что за дичь?! Рука-лицо!

Язык программирования Object Pascal очень чувствителен к синтаксису.

Что тут имеется в виду? Любой язык программирования «чувствителен» к синтаксису, ибо это программирование, а не беседа на лавочке.

Как уже отмечалось, Delphi создаёт на выходе скомпилированные файлы. Такие программы работают очень быстро – настолько, что увидеть код во время его выполнения невозможно.

А где-то возможно? Чтоб прям во время выполнения? Рука-лицо!

Служебные файлы отладчика немного увеличивают размер exe‐файла программы. Если вы хотите оптимизировать размер вашей программы, то непременно ознакомьтесь с настройками отладчика.

Это неверно. Вся отладочная информация хранится в DCU-файлах для программ и DCP-файлах для пакетов.

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



7

(21 ответов, оставленных в Новости, анонсы, релизы.)

Andrei88 пишет:

адаптированный Borland Pascal на картридже

Советский? Где-то описан? Можно ссылку?



8

(21 ответов, оставленных в Новости, анонсы, релизы.)

Копирование решений IBM в СССР — неисчерпаемая тема. Я знаю один большой текст, но он с сильным уклоном в стратегию или даже политику. В журнале же хотелось бы почитать или нечто техническое, или воспоминания участников, как уже читал про русификацию Windows и «Лексикон» (не помню, в журнале или нет).



Данный форум кажется мне тормозным по сравнению с другими экземплярами PunBB, не только собственными. Решил открыть отдельную тему.

Поискав по форуму, нашел сообщение аж 2012 года:

seomilk пишет:

Cайт и форум переехали на новый сервер, надеюсь скорость загрузки страниц увеличилась.

С тех пор что-то поменялось? Вижу хостинг TimeWeb-Казахстан, но сам сервер вроде же в России?

Если правильно помню, из-за активного использования функции eval() PunBB сильно выигрывает от перехода на PHP 7 и выше. Помнится, когда везде был только PHP 5, я был поклонником FluxBB, но с появлением PHP 7 разница в скорости стала неощутима, и я выбрал простоту установки расширений, то бишь PunBB. На какой версии PHP работает форум? Такое ощущение, что на 5-й.

Некоторые настройки мне кажутся неоптимальными и снижающими воспринимаемую скорость. В частности, стоило бы выставить в 0 задержку перенаправлений, чтобы они не выводились отдельной страницей. Вместо них сверху будет появляться желтенькая надпись, вроде «Сообщение добавлено», «Тема создана» и пр. «Нажмите здесь, если ваш браузер не поддерживает перенаправления» — это даже боюсь представить, с какого года неактуально. Вроде даже IE 5 уже поддерживал...

Хотя, если тут ввиду специфики форума ожидаются пользователи с Netscape 1.0, не знаю... С другой стороны, Netscape явно не поддерживает HTML5, в котором выводится форум. Ограничения должны быть согласованы, так сказать. В своих проектах я обычно ориентируюсь на Opera 12.18 — последнюю на движке Presto. Она поддерживает удивительно много, одновременно провоцируя наслаждаться скоростью — своей и форума. smile


uav1606 пишет:

Добавил расширение с поддержкой тега spoiler. Пример:

Спойлер

Какой-то текст.
Он будет скрыт и появится только после нажатия на заголовок.

Хреновый какой-то спойлер. Текст нельзя задать, да и дизайн жутко выбивается.

На своих форумах я использую другое расширение — sva_spoiler. Не представляю, что бы мы делали без возможности задать текст спойлера на форуме SDK, например.

Правда, поддержки зачеркнутого текста в нем нет, только спойлер.


uav1606 пишет:

Хорошо, в виде эксперимента установил это расширение. Теперь можно к сообщениям добавлять вложения.

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

uav1606 пишет:

Сразу (без клика) картинки показываются только до 400x400.

Большие картинки можно вставлять, например, под спойлер ссылкой с download=0 в конце вместо preview:

[spoiler][img]http://dgmag.in/forum/misc.php?action=pun_attachment&item=388&download=0[/img][/spoiler]

Результат:

Спойлер
Некий кадр с YouTube

uav1606 пишет:

Для последних номеров я по причине нехватки времени не сделал FB2-версии. Не знаю, нужны ли они вообще? А то что-то никто не жаловался. :-)

У меня, например, нет установленной программы для чтения FB2 на компе, есть только на читалке. К тому же журнал цветной. В те немногочисленные разы, когда я его прочитываю хотя бы частично, это случается на компе — в каком-то старом Foxit или прямо в браузере.

Задумался, стал ли бы я читать его вообще, будь он в формате HTML. Тут действует принцип, что легче открыть — легче и закрыть, ничего не прочитав, а лишь потыкавшись в несколько статей наугад и прокрутив мышкой. PDF же раз преодолел внутреннее сопротивление и открыл — приходится волей-неволей читать. Настолько его не люблю, что у меня сам факт открытия PDF на компе свидетельствует о заинтересованности и наличии необходимого времени, чтобы вникнуть, ибо пролистать PDF не так уж и просто, уж лучше совсем не открывать, пройти мимо.



13

(62 ответов, оставленных в Новости, анонсы, релизы.)

uav1606 пишет:

(Особенно было бы здорово, если бы эти EXE-шники работали хотя бы на XP.)

Andrei88 пишет:

А это вообще было бы здорово!

На самом деле это можно будет настроить, наверное. Так планируется, по крайней мере.

Обычно при разработке компилируемых программ я рассчитываю на Windows 2000. Выложенная на форуме Old-DOS PE Tool должна в ней работать (хотя не помню, когда последний раз запускал ее под Windows 2000). Для большинства программ нет разницы между Windows 2000 и XP с точки зрения API. Недавно поставил обе ОС в виртуалку — будет реальная площадка для тестирования совместимости.

А вот во время последней разработки помню, что новую функцию для консоли пришлось через динамическую подгрузку использовать, поскольку появилась она только в Windows Vista:

GetCurrentConsoleFontEx := GetProcAddress(GetModuleHandleW(kernel32), 'GetCurrentConsoleFontEx');

К сожалению, 9x в пролете, у меня везде Юникод. И Python не представляю, как можно будет сделать без Юникода. Хотя посмотрим там, всё в наших руках...



14

(62 ответов, оставленных в Новости, анонсы, релизы.)

Andrei88 пишет:

Как сказал наш программист, главное достоинство Python'a - море библиотек. А так - даже exe-шник обычный делать приходится сторонними средствами - то еще удовольствие, как и писать без возможности установить внешние библиотеки из интернета.

То есть,  когда я сделаю компилятор, работающий по технологии частичных вычислений и позволяющий получить настоящий, честный exe-шник без зависимостей — у меня уже есть первый его пользователь? cool



15

(62 ответов, оставленных в Новости, анонсы, релизы.)

uav1606 пишет:

Конечно, Delphi можно использовать только там, где не нужна сверхвысокая производительность

Странно читать подобное утверждение в 2025 году — эпоху повсеместного JS и Python, да еще от программиста, до сих пор иногда использующего Delphi в работе, как понимаю.

Andrei88 пишет:

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

Как бывший соавтор Delphi SDK для KolibriOS не смог пройти мимо и не упомянуть об SDK: в нем хватает ассемблерных вставок. smile

Andrei88 пишет:

Поглядел в википедии, 64-разрядные программы появились только в Delphi XE2 - думал, что все же раньше - все же 64-разрядные процы и винда появились несколько раньше. Другое дело, возможно, необходимости великой не было именно в 64-разрядных программах

Нет, не так. Это эффективные манагеры перестали вкладываться в развитие (и в конце концов развалили Borland), и реальная работа над ошибками и движение вперед случилось лишь с выделением CodeGear и последовавшей затем покупкой их Embarcadero, которой потом тоже понадобилось потратить время на развитие и пропустить 2 версии, чтобы к 3-ей всё же сделать 64-битный компилятор.

g0blinish пишет:

хех, вспомнилось, сколько было мата насчет сообщения отсутствующих .bpl

Это больше про C++Builder — его разработчики знатную свинью с умолчательными настройками проекта желающим писать на C++ подложили. Я в те времена уже активничал на форумах, и вопрос, как заставить программу на C++Builder запуститься на компе без установленного C++Builder появлялся на форумах как бы не по несколько раз в день. yikes