OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 27 Март, 2019 05:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 10 Январь, 2019 23:44 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Я весь форум замусорил, не хочу и этот замусорить. Пожалуйста, напишите в личку, если есть кто-то, кто знает A2, а я задам вам в личку свои вопросы. Хотя, раз уж я эту тему создал, то в ней могу спросить то, что меня интересует:
  • есть ли функция перехода к определению? Рыл исходники, пока не нашёл.
  • есть ли отладчик?
А последующие вопросы уже в личку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 07:34 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
1) Нет, реализована лишь навигация по структуре - если перемещать курсор по тексту, то в дереве модуля активный элемент подсвечивается, и наоборот, если в дереве структуры модуля нажать на элемент, то курсор в редакторе установится в нужное место. Переход к определению из произвольного места требует наличия некоторой информации. Не то чтобы её сложно получить, просто это никому особо не нужно было - при реальной разработке используются внешние инструменты.
2) Нет, по крайней мере публично не доступен. Есть модули Debugging.Mod, DebugДщп.Mod , используемые для отладки и логирования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 08:22 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Спасибо. Переход к определению нужен хотя бы для того, чтобы понять, что делает данная команда, поскольку документацией не особо балуют.

Какие внешние инструменты традиционно используются и как вообще устроен процесс разработки (где об этом написано)?

И чтобы два раза не вставать - есть ли какой-то план разработки, задачи, которые можно поделать для разгона? Лично я начал бы с того, что собрал бы у себя всю документацию. Есть сайт a2os.org.ua, но неясно, сколько он ещё проживёт - надо сделать зеркало. Обновить туториал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 09:26 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
Никто не говорит, что отсутствие функционала это хорошо. И большинство людей понимают, что минимализм и отсутствие функционала это совершенно разные вещи. Но комьюнити у оберон-технологий маленькое, а если учесть и фрагментированность, обусловленную множеством реализаций, то оно вообще исчезающе мало. И люди, которые всё-таки используют "оберон" как стек технологий, не склонны делиться своими наработками. Просто, если у вас есть конкурентное преимущество, на котором вы неплохо зарабатываете, зачем его отдавать посторонним. Эта проблема не только в обероне - в закуклившихся проектах это распространено, так как нет мотивации публиковать то, на что ты "потратил лучшие годы своей жизни".
Большое сообщество - большая конкуренция за место в этом сообществе. А подняться в сообществе, заныкав вкусные плюшки и грызя их по ночам в темном темном уголочке, не получится. Поэтому оберонам не хватает критической массы, способной произвести достаточно кинетической энергии и сказать "лёд тронулся, господа присяжные заседатели...".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 13:35 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Спасибо, печальная картина, даже не знаю, что ответить. Переход к определению, думаю, я осилю и без больших трудозатрат. А вот отладка... Один отладчик в другой я кое-как оборачивал, а с нуля... Не имею не малейшего представления, с чего начинать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 14:50 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
Ну, переход к определению хорошая плюшка, да. Но, учитывая, что в обероне область видимости четко определена и локализована, и требуется обязательная квалификация модуля, то пройтись по иерархии не сложно даже в текущем состоянии. . Понятно, что если мы не используем квалификатор, то сущность принадлежит или локальному скопу, в котором находимся ( процедура и она подсвечивается в структуре модуля ) или типу, которому принадлежит процедура ( и он подсвечивается ) или модулю, то есть найти не сложно. Если есть квалификатор, опять же, иерархия скопов прозрачна и найти ее в структуре не проблема. Не удобно, да, но можно достаточно быстро.
В любом случае, перейти к определению можно будет только в пределах модуля, потому что найти внешний модуль по его имени в общем случае не возможно, потому что имена программного модуля и объектного модуля могут не совпадать. например имя файла у наc Windows.Test.Mod, Linux.Test.Mod, а внутри он описан как module Test; или module Test1 или...
Частично эту проблему решил бы файл проекта, в котором это всё описано. Или описать package в файле типа Release.Tool и, используя Release.Mod строить проект на лету для выбранного билда.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 17:07 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Чтобы быть находимой, достаточно того, чтобы эта инфа должна записываться компилятором и быть среди метаданных модуля после того, как он загружен. Обычно это "информация об исходном тексте", которой пользуются отладчики, и она является частью отладочной информации. В ББЦБ это есть, неужели же нет в более продвинутой A2?

> Не удобно, да, но можно достаточно быстро.
Но после лиспа, SQL, 1С, C#, Js довольно трудно себе обосновать, почему можно позволить себе терять столь драгоценное время.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 17:16 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1174
budden писал(а):
Чтобы быть находимой, достаточно того, чтобы эта инфа должна записываться компилятором и быть среди метаданных модуля после того, как он загружен... В ББЦБ это есть

Нет этого. Все основано на том, что каждый модуль находится в определенном месте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Январь, 2019 17:30 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Ок, может быть, но это - малосущественная деталь. Там есть отображение номеров строк на адреса в коде, на чём основано отображение трапов и пошаговая отладка. Неужто имя файла, если оно понадобится, не поместится? Тут вопрос другой: кто это будет делать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Январь, 2019 09:18 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
А можно как-то зарегистрироваться на www.ocp.inf.ethz.ch? Он не отправляет на почту сообщение о подтверждении регистрации.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Январь, 2019 10:52 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
budden писал(а):
Неужто имя файла, если оно понадобится, не поместится? Тут вопрос другой: кто это будет делать?

Куда не поместится? Вроде речь шла об IDE, а оно работает с исходниками. В А2 для кроссплатформености используется, например, такая схема именования Window.MyModule.Mod, Linux.MyModule.Mod, которые внутри именованы как module MyModule; именно это имя используется при импорте. Как узнать, какой именно файл открыть Window.MyModule.Mod или Linux.MyModule.Mod? А может вообще Solaris.MyModule.Mod или Darwin.MyModule.Mod? В АО имя файла и имя объектного модуля вообще никак не связаны. А ведь ещё есть разделение и по архитектуре процессора...
Так что перейти в другой модуль достаточно нетривиальная задача. Поэтому я и говорю, что частично эту проблему может решить файл проекта, где гвоздями будут прибиты имена файлов, или указана некая маска, по которой можно сформировать имя файла из имени объектного модуля.
И да, в одном файле может находится несколько модулей, как их в таком случае автоматически искать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Январь, 2019 19:41 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
> Вроде речь шла об IDE, а оно работает с исходниками.
Это зауженное представление об IDE. В лиспе IDE работает И с исходниками, И с образом, получая инфу и оттуда, и отсюда. У в каком-нибудь SQL вообще IDE работает только с образом - все исходники хранятся в СУБД.

Система BlueBottle знает по имени модуля, где его найти? Как интерпретатор находит модуль, если он не загружен в память? Или он найдёт только тот, который загружен?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Январь, 2019 22:17 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1007
У объектных свой каталог, отдельно от исходников.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Январь, 2019 22:32 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Значит, нужно в объектный файл записать имя файла исходника, из которого он возник, и задача перехода к исходнику будет решена. Я об этом сразу и написал, возможно, не совсем внятно. При этом данное решение будет работать в любом случае, независимо от того, как всё устроено.

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

Есть и третий вариант - разработка в образе, когда объектный файл содержит все исходники в себе.

Какой из них лучше - это вопрос, достойный обсуждения.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Январь, 2019 03:23 

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 31
Откуда: Equestria
По моему все варианты одинаково хреновые. В чём проблема в добавить к именам файлов префикс, если известно на какой платформе/процессоре оно запущено? Я примерно так и сделал у себя в ББ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Январь, 2019 07:09 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
Бинарники нам ничем не помогут. Кроссплатформенная разработка привносит некоторые сложности, в том числе и поиск нужного файла. Это легко решается в сборочных скриптах или проектах, но это для сборки, когда файл всегда один, под конкретную платформу. Если же мы занимаемся разработкой, то всегда должны учитывать наличие некоторого количества поддерживаемых платформ. И ответ на вопрос, какой файл открывать - Windows.Module.Mod или Linux.Module.Mod, а может AMD64.Module.Mod - мы не получим. Можно, конечно, использовать некие соглашения или префиксы, и открывать конкретный файл в зависимости от того, на какой платформе работаем - если это Windows, то и пытаться открыть Windows.Module.Mod. Однако, у такого подхода есть существенные недостатки. А вдруг это общий модуль, и у него просто нет префиксов, или он общий для нескольких платформ, а для какой-то конкретной - отдельный, с префиксом. Ни и самое главное, как тогда разрабатывать в Windows для нативной A2, учитывая несколько архитектур процессора? да и для других хостов? Ведь тогда мы не сможем перейти в файл нужной нам реализации.
Поэтому все эти умолчания и подразумеваемые схемы именования ничего не решают, скорее наоборот.
Запихивание всё в один файл и использование директив условной компиляции также мало помогает, вообще в исходниках заблудишься. И ещё момент о директивах условной компиляции - като раз я решил проект отрефакторить в одной распространенной ide, там как раз были директивы, так оно вод текущую платформу переименовало, а под другие - нет, ну а что, участки кода не активные же.
То есть у всех методик одни и те же проблемы - отсутствие доступа к исходникам модуля отличной от текущей платформы. Лично для меня более правильным подходом было бы открытие всех программных модулей, относящихся к имени объектного модуля. То есть в ide должны открываться всё файлы по маске содержащей имя объектного модуля. А ещё лучше было бы наличие спецификации модуля.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Январь, 2019 13:25 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1007
В символьный файл можно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 26 Январь, 2019 01:24 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Эта тема, думаю, уже достаточно замусорена, можно, я тут позадаю вопросы?
Вот вопрос такой
Цитата:
символьные: CHAR8, CHAR16, CHAR32 и псевдоним CHAR для символьного типа по умолчанию;

Чему равен CHAR в 32-разрядной WinAos в 2015 году?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 26 Январь, 2019 09:28 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 17
CHAR8, как и в 2019


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 26 Январь, 2019 10:53 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 428
Спасибо. А где это записано?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB