OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 03:25

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 10 Октябрь, 2019 20:20 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Код:
         NEW(par); par.text := m; par.beg := 0; par.end := m.Length() - 1;
         DevCommanders.par := par


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 10 Октябрь, 2019 21:08 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Почему DevCompiler, DevLinker, DevDebug работают с текущей реализацией правильно?
Нужно пример, когда проявляется ошибка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Октябрь, 2019 12:49 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
В тексте содержится вся строка. DevXxx могут работать, потому что они некорректно читают параметры, вылезая за пределы диапазана [beg, end). Такое объяснение можно выдвинуть.

Пример:
Код:
./run-BlackBox <<DATA
DevCompiler.CompileThis ipuiK20 ipuiK46 ipuiK299
ipuiK299.CompileThis ipui$

DATA
Если после ipui$ поставить пробел, то идет компиляция подсистемы. А если строка заканчивается на $, то идет компиляция модуля ipui.
Код:
compiling
ok
compiling "ipuiK20"   7600   12
compiling "ipuiK46"   584   4
compiling "ipuiK299"   6176   12
Не открылся документ 'Mod/ipui.odc' подсистемы 'System': локация или файл не найдены


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Достаточно заменить
Код:
par.end := m.Length() - 1
на
Код:
par.end := m.Length()
или что-то ещё нужно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Октябрь, 2019 22:07 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Да.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Исправил в репозитории BBCP.
Из pack-dev0 убрал "~" в конце списка для DevPacker.PackThis.

Когда исприавил всё так же в своём "старом" репозитории, почему-то стал зависать DevPacker в pack-dev0:

Код:
****
* BlackBox
* keyboard interrupt
- TextModels.StdReader.Pos  (pc=00003F87, fp=CF7D3C10)
- DevPacker.GetNextFileName  (pc=000014BC, fp=CF7D3E30)
- DevPacker.PackThis  (pc=00001B2C, fp=CF7D4F80)
- Kernel.Call  (pc=00001D72, fp=CF7D4FAC)
- Meta.Item.ParamCallVal  (pc=00002B5F, fp=CF7D540C)
- StdInterpreter.CallProc  (pc=00000475, fp=CF7D5474)
- StdInterpreter.Command  (pc=00000A61, fp=CF7D550C)
- StdInterpreter.CallHook.Call  (pc=00000B0F, fp=CF7D56FC)
- Dialog.Call  (pc=00003644, fp=CF7D5724)
- ConsInterp.Call1  (pc=00000179, fp=CF7D5754)
- ConsInterp.Call0  (pc=0000024E, fp=CF7D5770)
- ConsInterp.Call  (pc=000003E3, fp=CF7D5788)
****


Если в конце строки параметров добавить пробел:
Код:
****
* BlackBox
* keyboard interrupt
- TextModels.StdReader.Read  (pc=00003F8A, fp=CF7B9FB4)
- DevPacker.RemoveWhiteSpaces  (pc=000012CE, fp=CF7B9FC0)
- DevPacker.GetNextFileName  (pc=000014BC, fp=CF7BA1E0)
- DevPacker.PackThis  (pc=00001B2C, fp=CF7BB330)
- Kernel.Call  (pc=00001D72, fp=CF7BB35C)
- Meta.Item.ParamCallVal  (pc=00002B5F, fp=CF7BB7BC)
- StdInterpreter.CallProc  (pc=00000475, fp=CF7BB824)
- StdInterpreter.Command  (pc=00000A61, fp=CF7BB8BC)
- StdInterpreter.CallHook.Call  (pc=00000B0F, fp=CF7BBAAC)
- Dialog.Call  (pc=00003644, fp=CF7BBAD4)
- ConsInterp.Call1  (pc=00000179, fp=CF7BBB04)
- ConsInterp.Call0  (pc=0000024E, fp=CF7BBB20)
****


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 13 Октябрь, 2019 03:02 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Проверьте RemoveWhiteSpaces.

B16 DevPacker.RemoveWhiteSpaces: зацикливается в конце текста
viewtopic.php?f=116&t=3974

Код:
   PROCEDURE RemoveWhiteSpaces (rd: TextModels.Reader; end: INTEGER);
   BEGIN
      WHILE ~rd.eot & (rd.Pos() <= end) & (rd.char <= 20X) DO GetCh(rd) END
   END RemoveWhiteSpaces;


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 

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


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

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


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

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