IntelliJ IDEA + Pascal

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

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

Re: IntelliJ IDEA + Pascal

Сообщение mishel56 » 08.03.2019 10:56:24

Mirage писал(а):grot писал(а): ============ ??? !!! ??? что с отладчиком ??? !!! ??? ==========
Запилен! Теперь с отладчиком.

Mirage писал(а):Скорее всего поможет выключение опции "Use full file names for breakpoints" в настройках отладчика (SDKs, вкладка Debugger). Когда я проверял на винде этой опции не было. В след. релизе пофикшу.

Ура! Заработало! Брависимо! Изображение

Снимаю перед Вами шляпу!

А что так не уверено,- "Скорее всего поможет выключение опции "Use full file names for breakpoints" ". Ведь работает!
Mirage писал(а):Да, стало понятно в чем причина. В команде -break-insert -f "D:\Free Pascal(TP7)\3.0.4\primer\idea\26\test26.pas:9" GDB интерпретирует D как имя функции (должен как имя файла, видимо слишком стар GDB), двоеточие как разделитель, а остальное как номер строки, видимо.

Немного заумное получилось объяснение, но пойдет. (Воспринимает, - "интерпретирует D как имя функции", - и басто, басто. )
Конечно, вопросов становится все больше, а ответов всё меньше. Прорвемся, главное ввязаться в драку, а дальше время покажет.
Mirage писал(а):Еще GDB 7.2 очень уж стар. Он установился с mingw32. Надо бы как-нибудь обновить. Например поставить свежий mingw.

Посмотрел на досуге версии GDB, у меня крайняя высветилась 7.6.1 от 2013года.
Посоветуйте какую нужно устанавливать версию GDB. Например, в IDE freepascal на текущую дату используется версия 7.4 GDB.

Изображение


Mirage писал(а):Это не реализовано в плагине. Реализовать можно, но будет видно только в процессе отладки. Т.е. после запуска программы. Надо ли оно?

Наверное для маленьких программ это не актуально, вот если код программы перевалит за 500 строк, наверное может понадобиться.
Надо тестить, а пока только осваиваю отладчик.
Всё зависит от Вашего свободного времени и трудности реализации.
Спасибо, огромное спасибо за то, что сделано!
Б-Р-А-В-И-С-И-М-О!
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: IntelliJ IDEA + Pascal

Сообщение Mirage » 09.03.2019 14:38:52

mishel56 писал(а):А что так не уверено,- "Скорее всего поможет выключение опции "Use full file names for breakpoints" ". Ведь работает!


Со всеми этими GDB никогда не бывает уверенности. Рад, что помогло.

mishel56 писал(а):Посоветуйте какую нужно устанавливать версию GDB.


В принципе, чем свежее, тем лучше. На оф. сайте предлагают 8.2.1. Mingw64 тоже грозится 8.x.x ставить.
Mirage
энтузиаст
 
Сообщения: 858
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: IntelliJ IDEA + Pascal

Сообщение mishel56 » 09.03.2019 16:10:54

mishel56 писал(а):Давайте проверим эти настройки для отладчика и дебайгера для freepascal:
-первая командная строка имеет вид
Additinal compiler options: -Mdelphi -dMSWINDOWS -dCPUX86
-вторая командная строка имеет вид
Debugging compiler options:-Ddebug -glh -CroiO -godwarfsets

К отладчику мы вернемся немного позже, давайте поговорим о ключах компилятора, в начале насторожило использование
в отношении к freepascal ключа -Mdelphi, все-таки, хотя DELPHI является продолжением паскаля (турбо паскаля), но DELPHI более структурированный язык, в этом он лучше и хуже одновременно паскаля. Лучше, проще писать программу из кирпичиков, но если вы давно не работали на DELPHI , даже в своей программе(в своих собственных "рыбах") разобраться иногда очень и очень не просто.
Да и писали языки (паскаль и DELPHI) разные люди.

По началу ошибок с ключом -Mdelphi не было.

Но первая же задача связанная со строковыми переменными (тип STRING)
привела к тривиальной ошибке.
Процедуры известные, отлажены и должны работать в IntelliJ IDEAI.
Но не пошли.
(*************)
Код: Выделить всё
procedure Delete_Char(var st:string); // удаление из строки всех ведомых пробелов
                // в конце строки
var
i : Byte;
begin
  i := ord(st [0] ) ; {i - текущая длина строки}
  while (i <> 0) and (st[i] = ' ') do
   begin
     dec(i);
     st[0] := chr(i)
    end;
end;

(*************)
на строке
i := ord(st [0] ) ; {i - текущая длина строки}
компилятор выдал ошибку
Error:(126, 17) Pascal builder: Element zero of an ansi/wide- or longstring cannot be accessed, use (set)length instead
Можно наверное задавить это сообщение ключами в тексте программы (Element zero of longstring ),
но править кучу отлаженных процедур,- как-то не с руки.
А простая замена ключа компилятора с -Mdelphi на -Mfpc, - дала положительный результат.
Ошибка исчезла.
Может стоит подумать о разграничении настройки плагина I-Pascal по умолчанию,- для программ freepascal и программам на Lasarus :?:
Ключ -Mdelphi наверное больше подходит к Lasarus , чем к freepascal.
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: IntelliJ IDEA + Pascal

Сообщение Mirage » 09.03.2019 16:41:37

FreePascal - компилятор. Lazarus и I-Pascal - IDE.
Ошибку при компиляции выдает компилятор. От IDE это не зависит.
-Mdelphi и -Mfpc это режимы компилятора, указывающие диалект языка.
В I-Pascal по умолчанию ставится режим совместимости с Delphi как наиболее оптимальный. Но ничто не мешает выставить другой, если код того требует.
Со строками в разных режимах работается очень по-разному.
Mirage
энтузиаст
 
Сообщения: 858
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: IntelliJ IDEA + Pascal

Сообщение mishel56 » 10.03.2019 11:13:32

Mirage писал(а):FreePascal - компилятор. Lazarus и I-Pascal - IDE.Ошибку при компиляции выдает компилятор. От IDE это не зависит.

Конечно, мы друг друга поняли, но нас читают другие и среди них есть начинающие программисты.
Наверное такие объяснения у многих из них вызовут ненужные вопросы.
В данном случае есть ошибка компилятора под язык free pascal.
А ключи этому компилятору подсовывает командная строка, в данном случае
плагин I-Pascal IDE IntelliJ IDEAI (IDE, - интегрированная среда разработки программного продукта, пришлось расшифровать :D )
Mirage писал(а):В I-Pascal по умолчанию ставится режим совместимости с Delphi как наиболее оптимальный. Но ничто не мешает выставить другой, если код того требует.

Всё смешалось "в графстве Облонских", - паскаль, турбо паскаль, DELPHI, free pascal, LASARUS, АВС паскаль (так и хочется ещё добавить язык модула-2). Наверное это трудная задача ублажить всех.Изображение
Mirage писал(а):mishel56 писал(а):Посоветуйте какую нужно устанавливать версию GDB.
В принципе, чем свежее, тем лучше. На оф. сайте предлагают 8.2.1. Mingw64 тоже грозится 8.x.x ставить.

На оф. сайте уже предлагают 8.3 релиз, а выложили на текущую дату версию gdb-weekly-8.3.50.20190305.tar.xz (см. ветку Current GDB).
За всем не угонишься...
Кстати в архиве gdb-weekly-8.3.50.20190305.tar.xz лежат исходники на си.
А чем же их компировать, - пока не увидел?!

В Mingw64 (MinGW-W64-builds-4.3.5) предлагают крайнею версию 8.1.0.
Т.к. в наборе есть 8 архивов для версии 8.1.0., какой для чего нужен, -это ещё вопрос?
Вот тут точно, "я что-то пропустил"...
Или ставить всё по-умолчанию:
Architecture: i686
Thread model: posix
Exception: sjlj
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: IntelliJ IDEA + Pascal

Сообщение Лекс Айрин » 10.03.2019 13:54:50

mishel56, строго говоря Лазарус не язык программирование, а rad среда. Сам язык называется object pascal. Дельфи и фрипаскаль его разные реализации (диалекты).
Плагин же вряд-ли подсовывает ключи просто так - у него где-то о в настройках или самом коде прописано что использовать. Вполне вероятно, что для ускорения времени создания просто не стали прописывать все распространенные диалекты.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: IntelliJ IDEA + Pascal

Сообщение Mirage » 10.03.2019 17:23:33

mishel56 писал(а):За всем не угонишься...


За всем и не надо. Самая свежая версия не принципиальна. Главное чтоб совсем уже старье не было.
У mingw64 есть инсталлятор, в котором можно указать желаемую версию и архитектуру. Пакет нужен только базовый, если сями не балуетесь.
Thread model и Exception значения не имеют.
Mirage
энтузиаст
 
Сообщения: 858
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: IntelliJ IDEA + Pascal

Сообщение mishel56 » 11.03.2019 20:30:16

Лекс Айрин писал(а):mishel56, строго говоря Лазарус не язык программирование, а rad среда. Сам язык называется object pascal. Дельфи и фрипаскаль его разные реализации (диалекты).

>>Лазарус,- rad среда. Принимается.

>>Сам язык называется object pascal.
Вернемся к первоисточнику ("Фаронов В.В. Turbo Pascal 7.0 Практика программирования. год издания 1997),- "работа в среде BORLAND PASCAL" стр.204. (у меня на руках издание от 1997г)
скачать можно здесь (посмотреть главу восемь 8):
http://www.libkruz.com/1-70/pascal.html
Одновременно с Турбо Паскалем 7.0 фирма Borland выпустила на рынок более
мощную систему программирования Borland Pascal with Objects 7.0. В состав этой
системы входят три среды программирования: Borland Pascal for Windows (BPW),
Borland Pascal (ВР) и Турбо Паскаль.

Начиная уже с турбо паскаля 7.0 (вспомним Turbo Vision 2.0 в Turbo Pascal 7.0), все паскали имеют в своем названии-приставку "object pascal".
Поэтому, если не уточнять с чем мы имеем дело, турбо паскалем, delphi, free pascal и т.д. , - право дело мы запутаемся...Изображение

Вон ребята не запариваются,- взято из документации на отладчик gdb версии 8.2.1 :
глава 15.4 Supported Languages
gdb supports C, C++, D, Go, Objective-C, Fortran, OpenCL C, Pascal, Rust, assembly,
Modula-2, and Ada.
Какой Pascal поддерживают,- пойди разберись? :D
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: IntelliJ IDEA + Pascal

Сообщение Лекс Айрин » 11.03.2019 21:22:39

mishel56, насколько я помню, объектным Паскалем официально считаются диалекты фрипаскаль и Дельфи. Борланд паскаль это обычный паскаль с некоторыми расширениями. Хотя тут я могу и ошибаться. Есть ещё эпловский вариант. По известным мне сведениям.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: IntelliJ IDEA + Pascal

Сообщение mishel56 » 11.03.2019 22:00:04

Лекс Айрин писал(а):Борланд паскаль это обычный паскаль с некоторыми расширениями.

Наверное правильно считать, кто с чего начинает программировать.
Кто-то начинает с Delphi, - и тогда бесспорно Delphi,- object pascal.
Кто-то начинает с free pascal, а кто-то начинает с Turbo Vision для Turbo Pascal (или Borland Pascal with Objects 7.0.).
Посмотрите здесь:
http://citforum.ru/programming/tv_doc/tvdoc_01.shtml
первая программа Turbo Vision :
Код: Выделить всё

uses
   Objects, Drivers, Views, Menus, Dialogs,App;


(***************)


var
  FileViewerApp: TApplication;

begin
  FileViewerApp.Init;  { начальная установка }
  FileViewerApp.Run;  { выполнение }
  FileViewerApp.Done;  { закрытие }
end.

Ну чем код программы, отличается от кода программы на Delphi?

Добавлено спустя 41 минуту 39 секунд:
Mirage писал(а):mishel56 писал(а):За всем не угонишься.
За всем и не надо. Самая свежая версия не принципиальна. Главное чтоб совсем уже старье не было.

Тогда договорились, берем за основу версию 8.1.0 ( 2018г) из mingw64. (проверил: версия 8.1.0 так же устанавливается и на Windows 7 32 разрядную).

Можно спросить? Система ставится(развертывается) под 412Мбт... А взять из нее нужно максимум 60МБт.
Там и компилятор под СИ и папки с python 2.7 и т.д.
Директории bin достаточно для работы gdb версии 8.1.0 ?
...А остальные папки можно и с архивировать.
mishel56
новенький
 
Сообщения: 11
Зарегистрирован: 28.02.2019 14:33:11

Re: IntelliJ IDEA + Pascal

Сообщение Mirage » 11.03.2019 23:59:47

mishel56 писал(а):Поэтому, если не уточнять с чем мы имеем дело, турбо паскалем, delphi, free pascal и т.д. , - право дело мы запутаемся...


Ну, Free Pascal это точно не язык. Это компилятор, поддерживающий массу диалектов - Object Pascal, совместимый с Delphi, свой Object Pascal - OBJFPC, Objective Pascal, для интеграции с Apple и нечто похожее на старый добрый Turbo Pascal (FPC). Может еще что-то.
Как подсказал I-Pascal ;) режим совместимости с Turbo Pascal это TP, а FPC тогда неведомо что...

mishel56 писал(а):Какой Pascal поддерживают,- пойди разберись?


К сожалению, никакой. Знаний о диалектах паскаля и о его специфических структурах данных GDB почти не содержит. Отсюда и неважнецкая отладка.

mishel56 писал(а):Директории bin достаточно для работы gdb версии 8.1.0 ?


Вероятно, да. Python так точно не нужен. Зачем его ставит в базовой комплектации неясно.
Mirage
энтузиаст
 
Сообщения: 858
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: IntelliJ IDEA + Pascal

Сообщение Лекс Айрин » 12.03.2019 00:57:42

mishel56, вообще-то, совсем другой начинкой. тогда не было классов, да и отрисовка производилась средствами самой программы, точнее библиотекой турбо вижн. Не было проперти и проще была схема видимости полей объекта... Плюс куча разных мелочей. Мне пришлось, допустим учиться практически заново.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Пред.

Вернуться в Разное

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

Сейчас этот форум просматривают: Google [Bot] и гости: 0

Рейтинг@Mail.ru