OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 16 Июль, 2024 02:47

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




Начать новую тему Ответить на тему  [ Сообщений: 390 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20
Автор Сообщение
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 08 Август, 2023 00:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3793
arisu писал(а):
возьмите уже у меня нормальные регулярки. ;-) код там, конечно, адский жоп — зато работает. я TextCmds под регулярки адаптировал, удобно. в замене вдобавок есть приятные фичи типа «преобразовать в верхний/нижний регистр», «capitalise», и прочая. надо бы ещё вызов команды добавить — в смысле, вызывать команду для обработки subexpressions в заменяторе. положительно не понимаю, как вы без регулярок живёте.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 08 Август, 2023 12:44 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1236
Иван Денисов писал(а):
Регулярные выражения всё же это уже как дополнение. Не оставляю попытки сохранять минимализм базового фреймворка.
ну, я тут считаю, что движок регулярок — это то, что должно быть сразу в коробке. сам по себе движок — один модуль, без внешних зависимостей. ну, монстр, 80 кб. но это всё ещё лучше, чем CpcRegul, с его бабелем.

а как только вы ощутите прелесть регулярок и расширеной замены — то никаких вопросов о том, должно ли это быть сразу в поставке, и вовсе не останется. ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 17 Сентябрь, 2023 17:47 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1236
ошибочка в WinFiles: в `NewLocator`:
Код:
IF (i > 1) & (loc.path[i-1] = "/") OR (loc.path[i-1] = "\") THEN

а должно быть так:
Код:
IF (i > 1) & ((loc.path[i-1] = "/") OR (loc.path[i-1] = "\")) THEN


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 18 Сентябрь, 2023 10:34 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3793
arisu писал(а):
ошибочка в WinFiles: в `NewLocator`:
Код:
IF (i > 1) & (loc.path[i-1] = "/") OR (loc.path[i-1] = "\") THEN

а должно быть так:
Код:
IF (i > 1) & ((loc.path[i-1] = "/") OR (loc.path[i-1] = "\")) THEN

Большое спасибо, внёс исправление.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Пятница, 10 Ноябрь, 2023 00:49 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3793
Бывает вот такой баг, при попытке прокрутки документа после перехода на позицию в документе, которая требует сдвига лифта скроллбара. Похоже что-то неверно немного с алгоритмом прокрутки документов.


Вложения:
bugAjustLines.png
bugAjustLines.png [ 310.9 КБ | Просмотров: 8888 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Пятница, 10 Ноябрь, 2023 01:29 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1236
я сейчас не полезу смотреть (простите), но могу вам навскидку сказать одну штуку: текстовые скроллбары пытаются делать вид, что они скролят в каких-то виртуальных пикселах, поэтому домножают позицию на довольно большое число. я в своё время попадал на трапы из-за переполнения, и что-то где-то по этому поводу правил: то ли тупо проверку и clamp перед домножением вкрячил, то ли что-то подобное. возможно, вы на это же самое налетели. простите за невнятное описание, сейчас несколько другим занят, нет рыбов^w силов пальцем в код показать.

p.s.: это где-то в сообщениях закопано, там не то чтобы сразу очевидно было: я как обычно раскручивал от трапа обратно, пока не нашёл виноватого где-то аж через три, вроде бы, подсистемы от текста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Пятница, 10 Ноябрь, 2023 01:35 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1236
алсо, не связаное с предыдущим. после каких-то изменений (довольно давно) у меня перестала возникать ситуация, когда после некоторых трапов навсегда исчезает каретка. помните, мы про это где-то тут говорили? если у вас тоже — может, вы отследили, вследствие чего? мы, вроде как, оба переписывали работу с окнами и вы мои изменения для восстановления работы поиска брали; я подозреваю, что это с одним из них связано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 16 Апрель, 2024 23:57 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3793
Теперь в список ресурсов возможно добавить файл с манифестом.
Синтаксис немного замысловатый, чтобы минимально модифицировать структуру парсера. Но всё работает!
Код:
1 MANIFEST (1 'BlackBox.exe.manifest')


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 24 Июнь, 2024 15:41 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3793
Благодаря бдительности Антона Шелина, после обсуждения в чате https://t.me/blackbox_20 была внесена правка в компиляторе

Добавлена строчка
Код:
INC(DevCPE.dsize, DevCPM.cacheLineSize);


DevCPM.cacheLineSize установлен размером 64 байта.


DevCPV486.Allocate

Код:
   PROCEDURE Allocate*;
      VAR gvarSize: INTEGER;
   BEGIN
      DevCPM.errpos := DevCPT.topScope.adr;   (* text position of scope used if error *)
      gvarSize := 0;
      Variables(DevCPT.topScope.scope, gvarSize); DevCPE.dsize := -gvarSize;
      INC(DevCPE.dsize, DevCPM.cacheLineSize);(* gap to prevent cache line share between code and data*)
      Objects(DevCPT.topScope.right)
   END Allocate;


Модуль для проверки:

Код:
MODULE Test3;

VAR j* : INTEGER;

PROCEDURE Do1*;BEGIN  FOR j:=0 TO 100000000-1 DO END;INC(j);END Do1;
PROCEDURE Do2*;BEGIN  FOR j:=0 TO 100000000-1 DO END;INC(j);END Do2;
PROCEDURE Do3*;BEGIN  FOR j:=0 TO 100000000-1 DO END;INC(j);END Do3;
PROCEDURE Do4*;BEGIN  FOR j:=0 TO 100000000-1 DO END;INC(j);END Do4;

END Test3.

Test3.Do1

Test3.Do2

Test3.Do3

Test3.Do4



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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 25 Июнь, 2024 08:51 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1236
спасибо! ещё начало цикла можно на четыре байта равнять: немножко, но помогает. надо будет глянуть — добавил ли я это, или только собирался. если добавил — то выдерну патч.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 390 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20

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


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

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


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

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