OberonCore
https://forum.oberoncore.ru/

BlackBox 2.0
https://forum.oberoncore.ru/viewtopic.php?f=134&t=6819
Страница 20 из 20

Автор:  Иван Денисов [ Вторник, 08 Август, 2023 00:43 ]
Заголовок сообщения:  Re: BlackBox 2.0

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

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

Автор:  arisu [ Вторник, 08 Август, 2023 12:44 ]
Заголовок сообщения:  Re: BlackBox 2.0

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

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

Автор:  arisu [ Воскресенье, 17 Сентябрь, 2023 17:47 ]
Заголовок сообщения:  Re: BlackBox 2.0

ошибочка в 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

Автор:  Иван Денисов [ Понедельник, 18 Сентябрь, 2023 10:34 ]
Заголовок сообщения:  Re: BlackBox 2.0

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

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

Автор:  Иван Денисов [ Пятница, 10 Ноябрь, 2023 00:49 ]
Заголовок сообщения:  Re: BlackBox 2.0

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

Вложения:
bugAjustLines.png
bugAjustLines.png [ 310.9 КБ | Просмотров: 9031 ]

Автор:  arisu [ Пятница, 10 Ноябрь, 2023 01:29 ]
Заголовок сообщения:  Re: BlackBox 2.0

я сейчас не полезу смотреть (простите), но могу вам навскидку сказать одну штуку: текстовые скроллбары пытаются делать вид, что они скролят в каких-то виртуальных пикселах, поэтому домножают позицию на довольно большое число. я в своё время попадал на трапы из-за переполнения, и что-то где-то по этому поводу правил: то ли тупо проверку и clamp перед домножением вкрячил, то ли что-то подобное. возможно, вы на это же самое налетели. простите за невнятное описание, сейчас несколько другим занят, нет рыбов^w силов пальцем в код показать.

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

Автор:  arisu [ Пятница, 10 Ноябрь, 2023 01:35 ]
Заголовок сообщения:  Re: BlackBox 2.0

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

Автор:  Иван Денисов [ Вторник, 16 Апрель, 2024 23:57 ]
Заголовок сообщения:  Re: BlackBox 2.0

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

Автор:  Иван Денисов [ Понедельник, 24 Июнь, 2024 15:41 ]
Заголовок сообщения:  Re: BlackBox 2.0

Благодаря бдительности Антона Шелина, после обсуждения в чате 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



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

Автор:  arisu [ Вторник, 25 Июнь, 2024 08:51 ]
Заголовок сообщения:  Re: BlackBox 2.0

спасибо! ещё начало цикла можно на четыре байта равнять: немножко, но помогает. надо будет глянуть — добавил ли я это, или только собирался. если добавил — то выдерну патч.

Страница 20 из 20 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/