OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:20

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




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Linux Console: проблема StdLog
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 07:46 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Что делать с StdLog?
Оригинальный явно импортирует HostDialog. И вообще не знаю, как сделать, чтобы заработал в косольной версии.
StdLog нужен для Dev.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 08:33 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Alexander Shiryaev писал(а):
Что делать с StdLog?
Оригинальный явно импортирует HostDialog. И вообще не знаю, как сделать, чтобы заработал в косольной версии.
StdLog нужен для Dev.

Его надо заменять на простой Log везде, мне когда-то Федор (кажется) объяснял, что использовать StdLog вообще не желательно в программах, так как он цепляется через hook в зависимости от реализации, в случае консольных приложений вместо него цепляется LinConsole.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 08:46 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexander Shiryaev писал(а):
Что делать с StdLog?
Оригинальный явно импортирует HostDialog. И вообще не знаю, как сделать, чтобы заработал в косольной версии.
StdLog нужен для Dev.
Умозрительно помочь не могу. Практически от этого момента я ещё далеко. Нужно подтянуться, а времени не хватает, буду стараться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 08:47 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Иван Денисов писал(а):
Alexander Shiryaev писал(а):
Что делать с StdLog?
Оригинальный явно импортирует HostDialog. И вообще не знаю, как сделать, чтобы заработал в косольной версии.
StdLog нужен для Dev.

Его надо заменять на простой Log везде, мне когда-то Федор (кажется) объяснял, что использовать StdLog вообще не желательно в программах, так как он цепляется через hook в зависимости от реализации, в случае консольных приложений вместо него цепляется LinConsole.

Да, но Dev использует его явно, а делать правки в Dev нежелательно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 09:21 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexander Shiryaev писал(а):
...
Да, но Dev использует его явно, а делать правки в Dev нежелательно.
Кое-какие мысли, может будут полезны.

Поглядел, StdLog импортируется во многих местах Dev. Если заменять StdLog на Log, оно правильнее, но тогда придётся заводить отдельную подсистему а-ля CDev которая более ничем не отличается. Естественно, это крайне не желательно.

Когда не ясно как поступить лучше, нужно выписать имеющиеся варианты, их плюсы и минусы. Как Вы сделали для пускача.

Ситуация выгляди плачевно:
* Имя StdLog мы заменить не можем, а реализацию заменить надо. Единственное решение --- линковать переделанную консольную версию статически.
* Последнее тоже не реально, т.к. в интерфейсе торчит TextModels и его тоже придётся линковать, со многими потрохами.
* Остаётся вариант: урезать из интерфейса TextModels, кажется на работоспособности не использующих их компонентов это сказаться не должно. Остальные потребные компоненты, придётся переписать. Какие? Прикидка:
Код:
StdCoder.Decode ..,, ..SQ....3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
 hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX
 7.2.s,scB.0k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O
 NbXmb.2.Ay3k2koL.,6.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.Qm3.,
 sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.h6,w,oV2E.0.4U1U00.bnUGLu8ro8quGrmCL
 WKqtE0E.ELU.EBU.U,6.I3l6w1.0E65.2.c8fP3d8mBE,5TeEdKLqKKtCLLCJuIepZBGomCrl0
 ks,ktuGdKLqKa2V.Iy1U.2.W9S.y80E.QE.sQRtIQeoBjghg2hgn7.X5.u0n9PU.Iy5.,.60cN
 E.cU.UiAco,.2.7.,..242U,.,.,tcp00kMDy.wnjl.k.k,MyfUmT3,OOD01cUZT16.,UoV.UO
 .,.16.c8,.E.mP,U2U,YyzzzzDU,U,IzzzzzD.EzzzzzjA.hzzzzz4.IT.Iyzzzz1oxzzzz5.0
 E.OS28UPoZ0cUXzId9NBuPN9Nbf9BuPN9N7ONbvMQ.6.YOY,wL6..5gwL.0.k5kEF.0.4EeE.8
 Mtr.2..c4E.k.0.e0.,6YUczzzzz.A.cxzzzz56zzzzz5ctzzzzzzz7Vf7V,8Vf7Vz7Vl7V18V
 L8VZ7VV7Vf7Vt7V,dD7QE7gD7QA7gD7A6v7Vf7V,tB7AA7AD7gD7AE7AA7wF7AC7gA7AAyI05I
 0nI0F.ow6.cwb.,6..N.X.0U,.,Y..I.,k.mzzzzz5k2UNWzLU2dRP7D7gD7AB7wE7wC7AH7Q0
 l6V18Vz7VPdE7A6dONl9RP0AVRYk1ZkqYkpYkxYkUYa2Sb2yd24YuYkyYkxYk,ZkysC7AC7Q0p
 6Vx7Vt7VV7Vv7Vd7Vv7VL8Vn7V3c.PM0l7Vj7V,tId9NNuPDP0HM11eP19PnfS9fQHs8HM9HM1
 5uPP9F9fMfvNHs8HM9UhBgiZgZJinBVhAVfAVBQcj7QH9P9fQHs8im2im4CIcqo2qm2iWhgV2h
 AUhA,PMFNfNNOORvO9fQHs8AVfgVABhiRBwb7QZ7Ec4qliqm8r2qm2im2i0ZvPBPONPNZnKgZ7
 M1bOR39JTvPNP0PN0P,3QwdONQcjphoJijZhghgmRiiQ87vEdfQN9F9vQ0ks7S..RtETfPd16F
 6.C244.IC...Qii..70,cw7.,.d.,.HE.2U..U,IER.,6.AAw.A92U.sU0,,6..W.y12.8cG.,
 ..G00k.0.0.0mF,,Mg.U,U.2.8cB.,..e,2.A.c8.2UEC.6..mEw7169rwKiEw3c0Cy2,U1xB.
 .O,2..606.k22.WtZCbUwYX8Utj00MyfUMwdc7cJ7a.IC....
 --- end of encoding ---


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 15:32 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Для консольной версии однозначно придется разрабатывать CDev, поскольку отличия не заканчиваются на StdLog — ставить маркеры ошибок ведь некуда и т.п. Компилятор тогда должен указывать номер строки с ошибкой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 15:57 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Иван Денисов писал(а):
Для консольной версии однозначно придется разрабатывать CDev, поскольку отличия не заканчиваются на StdLog — ставить маркеры ошибок ведь некуда и т.п. Компилятор тогда должен указывать номер строки с ошибкой.
Достаточно взять текст с маркерами после компиляции, вывести их положения и сообщения. Александр это уже давно сделал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Linux Console: проблема StdLog
СообщениеДобавлено: Понедельник, 01 Октябрь, 2012 22:51 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Может быть просто в интерпретаторе после выполнения каждой команды выводить содержимое StdLog.text на экран и очищать его. Для Dev сойдёт. А вообще в консольных программах использовать Log вместо StdLog. И Log.hook должен устанавливаться после StdLog.INIT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Linux Console: проблема StdLog
СообщениеДобавлено: Понедельник, 01 Октябрь, 2012 23:14 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Евгений Темиргалеев писал(а):
Ситуация выгляди плачевно:
* Имя StdLog мы заменить не можем, а реализацию заменить надо...
Хехе. Забыл про самим придуманный способ кросс-разработки. Тулзу всё же придётся усложнить, чтобы она умела экранировать и отдельные модули. И... пилим консольную реализацию StdLog как угодно (с сохранением интерфейса).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Linux Console: проблема StdLog
СообщениеДобавлено: Понедельник, 01 Октябрь, 2012 23:21 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexander Shiryaev писал(а):
Может быть просто в интерпретаторе после выполнения каждой команды выводить содержимое StdLog.text на экран и очищать его. Для Dev сойдёт. А вообще в консольных программах использовать Log вместо StdLog. И Log.hook должен устанавливаться после StdLog.INIT.
1) Да, всё верно: сгодится любой костыль (выводить на экран после каждого Ln и т.п.? --- поглядите реализацию LinLog, когда там делается flush), который покрывает потребности стандартных компонентов, нарушающих прописную истину 2) Использовать абстрактный Log. В последнем есть команда Open, говорящая, что приложение хочет писать в этот лог (после его открытия), она же и ставит хук.... Кхе кхе. Возможно, я догадался, почему разработочные компоненты используют именно StdLog :)...


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

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


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

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


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

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