дневник Яос

Только технические вопросы по ЯОС. Терминология и прочее - в других форумах.
БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

дневник Яос

Сообщение БудДен » 15.01.19 16:27

Анонс Ч115 - здесь: http://программирование-по-русски.рф/st ... -е115.html

Люди, близкие к BlueBottle, сообщили, что отладчик работает только в «старой сборке». Дедуктивный метод привёл к коммиту 15.10.2015, «rebuilt releases», в котором старая сборка последний раз собиралась. Смело забыто всё, что было потом. Как результат - отладчик смог показать некоторые стеки. Для этого нужно запустить WinAos\AosDebug.exe и в нём запустить Aos.EXE .

P.S. Или 19.06.2016? Я пока не понял
Последний раз редактировалось БудДен 25.04.20 17:39, всего редактировалось 3 раза.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 17.01.19 23:53

Форкнул репозиторий, нашёл последнюю сборку, где отладчик и сама ОС работают, добавил README.md - https://github.com/budden/ch115

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 21.01.19 15:18


БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 25.01.19 22:47

Согласно плану, теперь пора читать документацию. Вики
http://www.ocp.inf.ethz.ch/wiki почти всю прочитал. Теперь буду читать книгу «Разработка ОС и компилятора. Проект Оберон»

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 26.01.19 00:51

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

Вот вики про начальную настройку для русификации

Русифицировал верхний уровень меню - это достигается правкой файлов настроек:
русифицированное-главное-меню-ч115.png
русифицированное-главное-меню-ч115.png (6.55 КБ) 1005 просмотров
Вики про русификацию меню

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 23.04.19 00:44

Ч115 заморожен и в таком виде переехал на gitlab: https://gitlab.com/budden/ch115
Зато теперь появился https://github.com/budden/YA2OS - чудесным образом материализовалась пара экспертов по этой ОС
и я в фоновом режиме попробую помогать им хотя бы в документировании. Не факт, что на это будет время или силы и что мы найдём взаимопонимание.

Данная система не пытается быть русскоязычной.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 27.04.19 16:16

После примерно недели обсуждений принял решений вернуться к версии с гитлаба. Тот проект непонятно из кого состоит, его цели не определены и непонятно, куда он движется. Т.е. ситуация абсолютно никак не под контролем и не ясна.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 28.04.19 00:32

Форкнул всё же последние изменения Ярослава.
Репозиторий теперь живёт здесь:

https://github.com/budden/jaos

Рабочее название - ЯОС.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 06.11.19 00:35

Репозиторий пережил повторное рождение, теперь он отрощен уже забыл откуда, видимо, от общей версии.

На данный момент:
* сделал возможной работу при 2х зуме (отключение сглаживания)
* кое-какие горячие клавиши
* исправил ~3 ошибки в TFPET (это заняло основное время).

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 12.11.19 20:34

Мелочи
* исправил ещё сколько-то ошибок в tfpet
* сгенерировал размеченные исходники за 2014-07-04 - http://программирование-по-русски.рф/st ... index.html
* открывать по умолчанию новые файлы в старом окне
* CTRL-R для включения-выключения панели ошибок в TFPET.

Теперь надо улучшить обработку красного экрана (открывать любой файл, а не только текущий) и можно переходить к отладчику.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 15.11.19 20:37

После выделения места ошибки на красном экране и нажатии Alt-F7 открывается редактор с модулем и это место ищется (правда, почему-то к нему не происходит перехода, а оно лишь показывается в списке сообщений - возможно, это ещё нужно доработать).

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 16.11.19 17:42

Запустил отладчик, правда, он не вполне работает. Во всяком случае, есть с чего начать. https://forum.oberoncore.ru/viewtopic.p ... 31#p109529

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 18.11.19 15:26

Уже некоторое время назад залил обновлённую версию разобранных исходников на сайт:

http://программирование-по-русски.рф/st ... index.html

Это означает, что имена модулей, классов, полей, методов и локальных переменных можно уже начинать переводить.
Есть желающие этим заняться?

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 23.11.19 01:22

Потихоньку улучшаю работу парсера TF* - нашлись многосоставные WITH Statements - пилю их потихоньку.
Но некоторые идентификаторы помечаются красным по каким-то мистическим причинам.

Выяснилось, что парсер TF* - не парсер-линза. При преобразовании "исходник-дерево-исходник" часть комментариев будет потеряна.
Можно страшно ругаться на такие случаи, делать для них заплатки и так постепенно от них избавиться.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 23.11.19 20:17

Научился полностью обрабатывать WITH (надеюсь). Не очень удобно - приходится менять в 5 местах. Но что поделаешь.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 24.11.19 14:09

* Научился обрабатывать 16-ричные константы вида 0xFFFF.
* Сделал, чтобы символьный файл для TFPET генерировался прямо во время компиляции - теперь отдельно генерировать их руками не нужно. Пока непонятно, будет ли это работать достаточно хорошо - определённые аномалии с тем, что TFPET не всегда замечает обновление символьных файлов, есть.


БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 26.11.19 16:54

Обновил копию svn-репозитория, https://gitlab.com/budden/a2os-since-2008

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 30.11.19 14:54

Пытаемся перейти через границу новых объектных файлов. Слёту не собралось, будем идти мелкими шажками.

1. Собираем из новой a2 новую a2 же.

Код: Выделить всё

> move a2.exe a2host.exe
> mkdir obgn
> a2host.exe
>A> PET.Open Release.Tool
>A> Предполагаем, что нужная нам сборка - WinAosNewObjectFile
>A> Находим её текстом и получаем команду (подправим в ней сразу путь):
>A> Release.Build --path="obgn/" WinAosNewObjectFile ~
>A> Выскакивает файлик с командами. В нём жмём Ctrl-Enter на слове SystemTools в строке SystemTools.DoCommands
>A> А потом вот такая незатейливая команда для линковки (путь тоже поменял)
>A> StaticLinker.Link --fileFormat=PE32 --fileName=A2.exe --extension=GofW --displacement=401000H --path="obgn/" Runtime Trace Kernel32 Machine Heaps Modules Objects Kernel KernelLog Streams Commands FIles WinFS Clock Dates Reals Strings Diagnostics BitSets StringPool ObjectFile GenericLinker Reflection  GenericLoader  BootConsole ~
>A> SystemTools.PowerDown ~
> move obg obg.old
> move obgn obg
> a2.exe
Так оно собралось и запустилось.
Затем повторяем эту процедуру и получаем работающий TFPET с переходом к определению. В этой новой a2 выполняем

Код: Выделить всё

TFXRef.MakeXRef "C:/ob/jaos/source/" "*Oberon*"~
И получаем исходники с переходом к определению.
Последний раз редактировалось БудДен 01.12.19 15:15, всего редактировалось 2 раза.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 30.11.19 15:15

Теперь попробуем той же средой собрать старый AOS.

Код: Выделить всё

>cd WinAos
>mkdir objt
>a2.exe
>A>PET.Open Release.Tool
>A>Ищем слово WinAos и находим несколько смазанную команду, чиним её:
>A>Release.Build --path="objt/" -b WinAos ~
>A>PELinker.Link --path=objt/ Win32.Aos.Link~ 
>A<WMTextView: Command execution error, res: 3401 (PELinker.GofW not found)


БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 30.11.19 18:34

Чегой-то компилятор в PET в этой версии вообще не работает... Чтобы он заработал, нужно в PET подсунуть ключи, которые можно стащить в генерируемом файле CompileCommand.Tool, т.е. что-то вроде

Код: Выделить всё

--objectFile=Generic --newObjectFile --mergeSections -b=AMD --objectFileExtension=.GofW --symbolFileExtension=.SymW --destPath=obg/
Чтобы подсунуть их перманентно, их нужно поместить в configuration.xml, как описано здесь: https://forum.oberoncore.ru/viewtopic.p ... 99#p109750
Последний раз редактировалось БудДен 01.12.19 15:19, всего редактировалось 1 раз.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 30.11.19 19:29

С помощью этого я собрал PELinker, но всё равно старую версию слинковать не смог.
Придётся, видимо, без этого обойтись.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 30.11.19 19:59

Как тогда будем делать шаг индукции?

[*] слить изменения (v)
[*] собрать новую A2 с залитыми изменениями из новой же A2 (v)
[*] если она не взлетит, убрать изменения от Богдана (не понадобилось)
[*] переход к определению всё же должен заработать (v)
[*] опираясь на последнюю сборку с работающим отладчиком, попытаться оживить таковую с нашими залитыми исходниками для нового формата

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 01.12.19 15:46

Похоже, что опции в редакторе нужно задавать так: «--platform=Win32G --warnings»

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 05.12.19 16:25

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

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 14.12.19 23:05

Отладчик заработал с новым форматом объектных файлов, за счёт отключения дизассемблирования. Только под x86.
Также внёс кое-какие улучшения в разбор исходных текстов в TFPET - переход к определению улучшился в одном частном случае, а также генерация символьных файлов, которые нужны для TFPET, теперь действительно происходит во время компиляции из редактора.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 17.12.19 22:59

Кое-как дотянул до 2016-12-06, собралось с грехом пополам, но пришлось для этого немало строчек в отладчике закомментировать. Ясно, что впереди немало работы, перед тем, как всё оживёт. Не забыть разобраться с передачей имени файла в PET.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 27.12.19 12:41

За несколько поездок на работу и с работы по МЦК добавил в редактор обработку перечислимых типов.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 03.01.20 23:57

Движется разработка модуля отладочной печати. Отладчик пока стух и не работает.
В TFPET пока тоже не всё гладко.
Впервые залил код на русском языке, хотя пока что это - транслит.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 17.01.20 22:38

Ещё добавил много транслита. Можно считать, что задача отладочной печати вчерне решена.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 18.01.20 22:50

Ещё поработал над отладочной печатью. Пора прекращать :)
Поэтому ставлю галочку в плане:

http://вики-ч115.программирование-по-ру ... работкиЯОС

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 01.02.20 01:56

Ещё улучшил парсер TFPET. Осталось всего 6 сообщений об ошибках на весь исходник.
Можно двигаться вперёд вдоль истории версий A2.
Хотя отладчик при попытке реального использования часто зависает,
а отладочная печать печатает не всё то, что интересно. Но ничего. Прогресс всё равно есть.

Возможно, на этом месте нужно будет сделать некую паузу в проекте.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 06.02.20 23:03

Вероятно, впервые за всю историю, исходный код (одной конфигурации)
A2 разобран парсером TF без ошибок. Некоторые идентификаторы всё же красные,
но это уже более простые ошибки.

Коммит тут.
https://gitlab.com/budden/jaos/commit/2 ... 81e656de7c

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 16.02.20 18:59

Дотянул до 2018-06-12, парсер TFPET опять отстал от жизни, в остальном пока деградации функционала не замечено.
Потом ещё по мелочи поправлю и пересоберу.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 08.03.20 16:38

Сижу на версии 2019-09-10, прямо перед революцией числовых типов. Внесли дофига изменений в язык, до сих пор не могу доделать парсер. Из уже сделанного:
  • препроцессор IFDEF, в т.ч. внутри ассемблерных вставок (это пока что было самым сложным)
  • процедуры внутри записей
  • новое выражение IGNORE
  • поменялся синтаксис конструкции WITH
  • инициализация полей записей
  • квалификатор EXTERN для полей и процедур
И ещё осталось впереди около 100 ошибок разбора на весь исходник...

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 12.03.20 20:18

На той версии 2019-09-10 парсер всё распарсил - для этого сделал ещё 3 или 4 изменения.
Впрочем, это не полный синтаксис AO, а лишь подмножество, используемое в самой A2.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 22.03.20 00:40

Частично починил отладочную печать для версии 2019-09-10 до революции типов.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 24.03.20 14:27

Вроде отладочная печать заработала.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 30.03.20 22:38

Доделал версию от 2019-09-10 до революции числовых типов

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 01.04.20 17:09

Революция числовых типов вроде бы преодолена, теперь ветка по умолчанию называется яос03. Данные опять же на 2019-09-10

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 03.04.20 17:13

Поднял до последнего на данный момент релиза A2, 2019-12-09. Теперь варианта два:
  • посмотреть, как работают 64-разрядные релизы под Win
  • посмотреть, как работают 32-разрядные релизы под Lin
  • попробовать оживить A2 в вирт.машине - его никто не трогал последние несколько лет, или я не понял, куда он переехал
  • заняться русификацией
У кого какие идеи? Я склонен не лезть в 64-разрядность.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 03.04.20 17:37

Попробую сначала запустить 32-разрядную версию под Linux.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 03.04.20 23:11

Удалось собрать и запустить, инструкция - тут:

https://gitlab.com/budden/jaos/-/blob/я ... 8.04-64.md

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

TFPET имеет проблемы. Вероятно, дело в путях к xym-файлам. Нужно теперь проверить/починить отладчик (буду приятно удивлён,
если он вообще заработает). Починить процесс сборки Linux-версии, подправить горячие клавиши. Но в целом ясно, что
версия под Linux32 в 64-разрядном Linux в целом работоспособна.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 05.04.20 04:03

Вроде починил xym-файлы, теперь переход к определению под Linux работает. Также сделал скрипты, позволяющие кросс-компилировать из-под Windows (скрипты для сборки внутри Linux тоже есть). Отладчик опирается на WinApi, поэтому разбираться не буду. Всё равно он скорее "для галочки", до полезного инструмента ему ещё далеко. Хотелось бы ещё запустить на вирт. машине версию с моими новшествами, но с понедельника на работу, поэтому окно возможностей закрылось. Сделано достаточно много.

Теперь нужно начинать русификацию-кириллизацию. А как её делать? Не совсем ясно. Слишком много возможных вариантов.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 06.04.20 01:29

Безуспешные попытки запустить новую версию A2 как ОС под QEMU... Оно просто не работает. Но есть люди, у которых оно совсем недавно работало. Будем надеяться.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 07.04.20 01:12

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

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 07.04.20 01:50

Откатился, собрал, работает. Правда, xym-файлов в образе для QEMU нет, поэтому TFPET не будет переходить к определению, но это уже дело техники.

Таким образом, теперь Яос собирается и работает как приложение под WIndows 10, Ubuntu 18.04, а также как ОС на железе (во всяком случае, на QEMU).

Ура!

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 07.04.20 01:56

Теперь нужно заняться русификацией. Рабочий план - сделать кириллатиницу, т.е. единую кодировку, совместимую с ASCII, где латинский алфавит представлен кириллицей так:

Код: Выделить всё

а б ц д е ф г ш и й к л м н о п ь р с т у в ю х ы з
При этом данные буквы имеют коды, равные соответствующим кодам ASCII от латиницы, а меняется вывод шрифтов. Остальную кириллицу нужно будет куда-нибудь распихать в пределах 256 символов - это заведомо осуществимо. Такая штука будет использоваться для ввода текстов программ. И она, конечно, несовместима с utf-8, потребуется новая "кодовая страница". В A2, кроме просто текста, есть ещё "богатый текст", в нём будет всё как обычно.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 09.04.20 00:13

Выявился ряд проблем с кириллицей в WinAos и Linux32 версии WinAos, однако удалось как-то и где-то показывать и печатать кириллицу. Запустил Bios32 версию на виртуальном железе под QEMU с подключенными штатными средствами ввода русского текста и штатным переключателем раскладки (правда, кнопку переключения пришлось пока что поставить F5).

Впервые сделал файл с кириллическим текстом средствами самой AOS (под Linux32), вот он: https://gitlab.com/budden/jaos/-/blob/м ... 32HDD.Tool

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 13.04.20 12:07

Это - принцип поэтапности. Двигаться шагами такого размера, на которые хватает ресурсов, получая осязаемый результат и приближаясь к цели на каждом шаге. Лис мог бы оказать помощь проекту, если бы смог поднять сеть под ЬЕМУ. А то под проприетарным Виртуал Бохом под проприетарной Юиндоюс сеть в А2 работает, а под открытым ЬЕМУ в открытом Линухе - не работает.

В данном сообщении использована транслитерация латиницы кириллицей "Яролит взад".

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 13.04.20 13:53

Не, не нужно запускать с сетью.

Выложил образ Яос с работающей сетью, работающим TFPET и работающим модулем отладочной печати.

https://yadi.sk/d/wrM52s4_Ff1fOw

Собрано вот отсюда https://gitlab.com/budden/jaos/-/commit ... ab3b17945f
Конфигурация там изменена, секция NetConfig в Configuration.XML выглядит так:

Код: Выделить всё

<Section name="NetConfig">
  <Setting name="IPForwarding" value="FALSE"/>
  <Setting name="EchoReply" value="TRUE"/>
  <Setting name="PreferredProtocol" value="4"/>
  <Section name="IPV4">
    <Section name="AutoNetConfig">
      <Setting name="Enabled" value="TRUE"/>
    </Section>
  </Section>
  <Section name="IPV6">
    <Section name="AutoNetConfig">
      <Setting name="Enabled" value="FALSE"/>
    </Section>
  </Section>
А в секции AutoStart имеются такие строчки:

Код: Выделить всё

<Setting name="Запуск локалхоста" value="Loopback.Install"/>
<Setting name="Hardware Detecton" value="PCITools.DetectHardware"/>
В остальном же сборка и запуск описаны в скрипте
source/BuildBios32HDD.Tool, но команду для запуска ЬЕМУ оттуда брать не нужно! Вместо этого нужно использовать
находящийся в архиве скрипт.

Также подобная машина работает под VirtualBox, нужно
задать для машины сетевую карту PCnet-PCI II (Am79C970A) и с помощью
qemu-img преобразовать образ из формата raw в формат vmdk.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 16.04.20 01:56

Вторая попытка улучшить положение с раскладкой клавиатуры в WinAos, но не сильно удачнее первой. Главное, что я понял:

1. Сочетания клавиш с Shift и Ctrl и так обрабатываются нормально.
2. Надо написать свою версию TranslateMessage к-рая будет преобразовывать только определённые буквы. Я на самом деле уже её почти написал,
но буквы кириллицы за пределами латиницы сломались.

Теперь нужно с этим переспать.

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

А вообще начинается какое-то разбрасывание на мелочи.

смотритель
Site Admin
Сообщения: 17
Зарегистрирован: 25.04.18 15:17

Re: дневник ч115

Сообщение смотритель » 16.04.20 22:32

Прошу не разводить на подфоруме по операционной системе ЯОС разговоров, не относящихся к делу. Марина может нас интересовать в двух аспектах:

- если она симпатичная, то её фотографию можно запостить в пределах норм общественной морали
- если она хочет оказать помощь проекту, то пусть напишет

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 17.04.20 17:09

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

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 18.04.20 01:09

Починилась кириллица в буфере обмена в Windows (команда A2 починила). Выложил машину под виртуалбокс.
Пересобрал все релизы и записал очередное видео:

https://www.youtube.com/watch?v=9e0hJjz64Tw

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 19.04.20 01:20

Создал "NEW INTEGER16" для хранения строк в UTF16. ПРовёл рефакторинг взятого от Сергея Дурманова кода ввода данных из буфера обмена. Надо доделать вывод и дальше интегрировать разные строковые типы в систему, прежде всего, научиться их печатать в поток.

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

одна буква utf-8 - позиция смещается на 1.
конец строки - позиция смещается на 1.

И это нужно внедрить потоки, а такие потоки внедрить в компилятор, генератор отладочной инфы и TF*

Коммит с добавлением числовых типов:

https://gitlab.com/budden/jaos/-/commit ... bd998c3347

Павиа
Сообщения: 134
Зарегистрирован: 23.05.19 21:28

Re: дневник ч115

Сообщение Павиа » 19.04.20 11:36

И это нужно внедрить потоки, а такие потоки внедрить в компилятор, генератор отладочной инфы и TF*
Какие потоки?
Вообщем потоки это очень медленно и не удобно. Надо делать иерархический разбор примитивными методами.
Считать весь файл в память. Разбить на строки. Строки на слова. Никаких потоков только массивы.
UTF-8 хорош только для копирования и сравнения. В чём он быстрый.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 19.04.20 17:38

Выбор действий определяется ограниченностью ресурсов. В A2 сейчас во многих местах уже поддерживается UTF-8, с этим придётся считаться. Миллион строк кода в хобби-режиме не особо поворочаешь.

Сделал вывод строк (utf-8) в обработчике ошибок (Traps.Show). Также выводятся нечитаемые символы. Я бы сделал представлением Char по умолчанию UCS2 (т.е. UTF16 без суррогатных пар), т.к. система делается не для Китая. Но вряд ли это осуществимо по трудоёмкости. Пока чиню по мелочи и заодно выясняю. Но исправлять подсчёт позиции в потоке точно придётся, и видимо парсер и редактор придётся переделать, чтобы в них считалось по буквам юникода и строкам, а не по байтам. В противном случае просто ничего работать не будет. Как переделать - пока не знаю.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 19.04.20 17:46

Но кривой юникод всё же не выводится и после его появления вывод сообщения об ошибке вообще обрывается. Придётся уже в другом месте чинить, попробую разобраться.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 19.04.20 20:52

Поправил ещё в одном месте (вывод некорректного UTF-8)

https://gitlab.com/budden/jaos/-/commit ... 20d56f1e75

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 20.04.20 02:18

Ндя, очередная бага состояла в том, что плохо выводился текст в сам KernelLog, но без KernelLog фиг отладишь. Придётся приступить к более длительной осаде.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 20.04.20 22:42

Вчера меня почти обозвали идиотом в чате телеграма, посвящённом А2, и попросили не флудить. Я послушался, вышел из группы и вообще закрыл нафиг этот дурацкий телеграм. Поэтому сегодняшний день был весьма плодотворным. Во-первых, спортивная злость, во-вторых, не тратится время на этот самый флуд :)
  • теперь флагманской версией в Win является Win32/oberon.exe, а не WinAos/a2.exe - отличие в том, что у нового лидера есть консольное окно, в которое можно выводить Trace-ом. Это меня спасло при отладке KernelLog. Теперь наличие двух отдельных каналов трассировки документировано. Также поправил документацию по сборке (ссылка пока не в мастере). Если вдруг есть добровольцы, прошу проверить правильность инструкций. Однако хостом для кросс-компиляции по прежнему остаётся WinAos/a2.exe (думаю, что это до следующей оказии что-нибудь поменять в системе сборки)
  • решил ещё одну проблему с некорректным юникодом, в случае, когда глоталась строчка после первой же ошибки. Таким образом, уже исправлено 4 проблемы с юникодом. Но это ещё далеко не всё, что нужно сделать в этом направлении, даже по самым скромным запросам. Речи о приучении парсера А2 к русским ключевым словам пока даже близко не идёт. Речь пока идёт просто об установлении полноценной работоспособности юникода, хотя бы в виде УТФ8, везде, где это нужно.
  • переписал код для раскодировки УТФ8 из буферизованного потока, но никакого теста не написал. Вряд ли оно работает. То, что было там раньше, скорее всего тоже не работало (иначе я бы туда и не полез бы, впрочем, тут надо долго выяснять и разбираться)
  • написал прототип класса потока, который
    возвращает байты, но способен при этом считать позицию по буквам УТФ8. Правда, ещё нужно доделать обработку концов строк.
  • немного поменял структуру исходников, чтобы можно было чтение буквы УТФ8 вставить прямо в базовый класс Streams.Reader. Поскольку в A2 используется наследование плюс сложный порядок инициализации, если мы хотим, чтобы чтение юникода было доступно рано по течению инициализации ОС, то нужно сделать это именно там, а не в более позднем файле UTFStrings.Mod, как это было раньше
Однако я должен заниматься не этим, а своей основной работой (надеюсь, моё начальство не читает этот форум, а если читает, то поймёт и простит :) )
Так что придётся сделать некую паузу.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 21.04.20 22:45

Сегодня я неплохо поработал, позволю немного покопаться с A2. Сначала вставлю чтение УТФ8 прямо в Стреамс.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 22.04.20 00:38

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

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 23.04.20 01:56

С помощью читателя-обёртки починил вывод позиции ошибки. Теперь опять можно попробовать вводить кириллицу в исходные тексты (в строковых литералах и комментариях). Правда, пока есть аномалия с раскраской - слово "Тест" сводит раскраску в редакторе с ума. А с помощью нехитрой магии - починил и вывод юникода в текстовую консоль. Теперь под Юиндоюс осталось только починить работу с русскими именами файлов - и можно будет начинать собственно перевод.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник ч115

Сообщение БудДен » 25.04.20 01:56

Сегодня было особо некогда, но немного покопал подсветку синтаксиса. В одной части внедрил новый тип-букву (руну?) воплощённую в виде записи. Но в целом там в основном остаётся CHAR. Классно то, что было решено поддерживать только кириллицу. Бывает нужно составить таблицу каких-то свойств букв (например, является ли данная буква буквой, цифрой, знаком препинания или чем-то ещё). Для целого юникода любая такая таблица является огромной и должна реализовываться либо как функция , либо как хеш-таблица. А если нужна только кириллица, то просто создаётся таблица размером 0x500 с чем-то там или без чего-то там - и всё. Заменить 256 на 1000 с чем-то почти всегда не страшно, а вот таблица размером 2^32 элементов спокойно может вызвать проблемы. Ведь я запихиваю работу с UTF8 в самое начало загрузки, чтобы она была доступна во всех модулях и чтобы тем самым кириллица стала полноправным членом общества в Яос.

Нарабатываю набор библиотечных функций для преобразования строковых типов, их сравнения и проч.

Похоже на то, что идея о поэтапном внедрении юникода и длительном периоде сосуществования CHAR(байт), UCS32 и UTF8 работает. В конечном итоге нужно вытеснить UTF8 и CHAR и оставить их только для ввода-вывода и FFI, но сразу это сделать невозможно, т.к. система потеряет работоспособность. Похоже, что получается делать это маленькими шажками, при этом после каждого шага система остаётся работающей. И даже пока не понадобилось лезть и менять компилятор/язык.

Вчера славно второй раз поругался в телеграм чате A2 и опять оттуда ушёл. Дня не продержался. Ну ладно, может ещё вернусь туда. А может, так и надо. Нечего в мессенджерах тупить, работать надо.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 25.04.20 17:46


БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 26.04.20 01:07

Есть две вещи: с одной стороны, быстрый прогресс по улучшению положения с кириллицей, с другой - этот прогресс состоит из частных заплаток для отдельных модулей, и для каждого применения заплатку нужно создавать заново. Некоторые получаются не слишком просто. Поэтому пока нет ясности, насколько уверенно происходит работа с кириллицей. Например, я переписал код, способный при чтении из буфера склеивать букву в кодировке UTF-8, попавшую на границу буферов. Но я его не тестировал. Сообщения об ошибках в коде на АО учитывают кириллицу, а в ассемблере - нет. Т.е. есть некое ощущение рыхлости и накопление тех.долга.

С другое стороны, можно уже попытаться перейти к таким приятностям, как кириллизация самого ЯП АО.

Нужно составить план на ближайшее время. Вот примерно такой:

- посмотреть, можно ли починить кириллицу в формате Oberon (богатый текст)
- починить русские имена файлов, чтобы они работали во всех трёх версиях (сейчас точно не работают в WinAos)
- печать StringJQ в трапах, в KernelLog и в модуле отладочной печати. Причём неясно, что делать с ARRAY OF UNSIGNED32?

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 26.04.20 14:30

С форматом оберон решаем так - его нужно заменить на формат bbt, к-рый используется в веб-браузере и вроде в который можно даже вставлять картинки. Он изрядно сломан в плане невозможности назначить стиль текста и даже увеличить шрифт, а браузер не запускается и поэтому текст с картинками нельзя поинспектировать, но кириллица в нём поддерживается и это текстовый формат, основанный на ХМЛ.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 26.04.20 16:05

Работа со стилями - один сплошной глюк и уже пора в этом разобраться. Я разбирался уже один раз, но толку вышло мало. Завожу отдельную тему:

http://вече.программирование-по-русски. ... ?f=5&t=252

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 28.04.20 01:23

Немного лучше разобрался в стилях, но того, что надо, сделать пока не получилось. Наша цель - чтобы можно было отконвертировать формат Oberon в bbt и потом отключить и уничтожить формат Oberon - он не поддерживает кириллицу. Я так понял, что в формате BlueBottle есть понятие стиля абзаца, но оно кривое и не до конца поддерживается инструментами. Возможно, его следует выкинуть, раз оно не работает.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 30.04.20 01:23

Сегодня опять не смог лечь спать вовремя, зато:
  • Нежное масштабирование в документах формата bbt (оно работает, но при сохранении забывается), см. http://вече.программирование-по-русски. ... ?f=5&t=252
  • Включил штатную русификацию главного меню, которая уже была!
  • Перевёл туториал в формат bbt - теперь можно в нём печатать в кириллице и оно даже запоминается
  • Отметил некоторые места в исходниках, где зашит размер шрифта.
  • Частично осознал, как устроены стили (но недостаточно, чтобы понять, почему мои изменения "работают" именно так, а не иначе)
  • Починил автораспознавание формата bbt
Появились предпосылки сделать так, чтобы в редакторе для программиста при масштабировании текст не помечался бы изменённым - давно хотел это сделать, но знаний не хватало. Теперь часть знаний в наличии.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 01.05.20 01:06

На сегодня: выкинул все или почти все шрифты (кроме шрифта из модуля WMDefaultFont.Mod, который не так просто отключить), в которых нет кириллицы. Установленные по умолчанию шрифты содержали глюки - кривая буква й, отсутствие кириллицы, совпадающие по виду одинарные и двойные кавычки. В итоге теперь используются везде шрифты из семейства DejaVu. Они не идеальны, не особо приятно на них смотреть, но в них русский и английски текст нормально масштабируются и выводятся без глюков.

Благодаря проделанной за прошедшие два дня работе, стало возможно вводить документацию в формате bbt на русском языке. Формат oberon кириллицу не поддерживал.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 01.05.20 01:14

яос-2020-04-30.png
яос-2020-04-30.png (204.18 КБ) 284 просмотра

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 02.05.20 22:40

Не осилил починку браузера, хотя какая-то польза от этой деятельности всё же была. См.

http://вече.программирование-по-русски. ... e9210f84e9

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 02.05.20 22:54

Следующем номером попробую переделать парсеры A2 (их у нас ведь два - один для компиляции, один для редактора), чтобы они понимали юникод. Начну с того, который для редактора. Это будет шаг по направлению к русскоязычным идентификаторам и ключевым словам.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 04.05.20 17:56

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

Ребята из команды A2 починили браузер - теперь он зависает не при открытии страницы, а при нажатии на первую гиперссылку на странице. Но это уже большой шаг вперёд. Глядишь - и дальше сделают.

Наконец-то сделал над собой усилия и начал делать что-то вроде каркаса для тестирования. Хотя там вроде уже есть какой-то, надо хоть взглянуть на него.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 04.05.20 23:26

На данный момент всё ещё не работает лексер. Начал тестировать, тест не прошёл, начал чинить отладчик, отладчик тоже не работает. Короче, пошло распыление усилий. Но поскольку отладчик уже показал себя полезным, положу дня два на то, чтобы его всё же дочинить.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 05.05.20 17:37

Ещё починил отладчик и нашёл с его помощью ещё одну ошибку (в своём новом коде).

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 05.05.20 23:10

Вроде отладил ввод многострочных строк для команд, уткнулся (очередной раз) в проблему CRLF vs LF

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 08.05.20 00:10

Это какой-то ад. Занимаюсь всего лишь одним модулем Strings. Сначала ошибок было около 200, теперь осталось около 40. Это только ошибки компиляции. Ясно, что при массовых заменах я внесу и другие ошибки (уже внёс в те модули, которые поправлял, отлаживал долго).

Спать.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 08.05.20 22:48

Вроде перевёл за сегодня TFTypeSys.Mod, до понимающего кириллицу TFPET ещё ого-го. Временное окно скоро закроется, и всё затянется ещё на месяц. Т.е. раньше начала июня не будет среды разработки с поддержкой кириллицы в идентификаторах, и даже картиночку красивую не получится нарисовать. Не говоря уж, конечно же, о компиляторе с поддержкой кириллицы в идентификаторах. Как бы не к осени он созрел. Жаль, что так медленно, вроде простая вещь, а тянется годами. Хорошо хотя бы то, что текущее дело можно делать в более-менее вялотекущем режиме.

Главное, не полениться и побольше потестировать модули.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 10.05.20 20:30

Дело пошло существенно медленнее в последние два дня из-за других дел, но сегодня TFAOParser.Mod с UCS32 скомпилировался. Теперь нужно тестировать и открывается (видимо) прямая дорога к поддержке русскоязычных идентификаторов хотя бы в IDE. Впилить их в компилятор может оказаться намного сложнее... Но можно будет зато показывать красивые картинки :)

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 12.05.20 14:21

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

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 12.05.20 23:59

Пока качались репозитории, пересобрал Linux32 и образ под QEMU. Правда, последний без сетки. Но парсер не сильно продвинулся.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 13.05.20 23:11

Было особо некогда, но улучшил процесс сборки BIOS32. Теперь можно с довольно высокой степенью автоматизации собрать и запустить образ для qemu с работающей сетью (под Linux). Это, в общем-то, к основной теме нынешней деятельности никак не относится, просто было сподручно это сделать. Идеально было бы забрать из A2 патчи, которые чинят веб-браузер, но неизвестно, когда до этого дойдут руки. Явно не раньше, чем заработает TFPET.

https://gitlab.com/budden/jaos/-/commit ... 880bad2d29

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 14.05.20 23:29

Лучше бы я поспал, но раз уж исправил сравнение строк, то надо про это написать. Отладка нового парсера продвинулась на маленький шажок.

Павиа
Сообщения: 134
Зарегистрирован: 23.05.19 21:28

Re: дневник Яос

Сообщение Павиа » 15.05.20 16:52

А сравнение у вас по правилам Unicode или по символьно? Юникод сурогатные пары требует объединять как следствие длина становится короче. Как по мне правило это тупое. Даже вредное. Так как много алгоритмов выборки и поиска отсекают по длине, а это правило порождает, вторую отличную от первой длину.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 15.05.20 20:45

Сравнение посимвольно. Я сначала читаю из utf-8, вот что получилось, то и сравниваю. А где этот алгоритм описан и что является примером суррогатной пары?

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 16.05.20 23:21

Благодаря помощи команды A2, научился по переменной типа ANY (указатель на любую запись) определять родословную (т.е. базовые типы по порядку наследования) типа этой записи. Это понадобилось после того, как выяснилось, что модуль отладочной печати не печатает унаследованные от базовых типов поля записей. Однако ни отладочную печать ни доделал, ни парсер не работает. Мало времени, медленно идёт, цели множатся как головы гидры. Настроение средне паршивое. Шансы выпустить юникодный TFAOParser в мае тают.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 18.05.20 13:56

Готовимся к консервации проекта, см http://вече.программирование-по-русски. ... 5cd52289fc

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 19.05.20 19:18

В "подробной печати" теперь печатаются поля предков записи, а не только поля самого младшего класса. Плюс немного подчистил этот говнокод. Вроде всё работает.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 20.05.20 14:02

Скопировал из A2 изменения от Сергея Дурманова (спасибо), которые чинят веб-браузер.
Теперь он работает, хотя и надо его иногда пинать. Открывается в т.ч. мой сгенерированный маркдаун, http://xn-----6kcajervcdvqarhfgengcekya ... -docs.html
Вложения
веб-браузер-в-яос.png
веб-браузер-в-яос.png (165.14 КБ) 245 просмотров

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 20.05.20 14:05

Перепахал ещё один модуль под 32-битные знаки. Объём проделанной работы устрашает, а модульно тестировать можно не всё (да и кому не лень этим заниматься)? Остался, по сути дела, только один файл, чтобы попробовать запустить TFPET, полностью основанный на UCS32. Там, где он обращается к другим модулям, не переведённым на UCS32, происходит конвертация в/из UTF-8, который пока что во многих местах является внутренним представлением строк в А2. Чувствуется, что тема внедрения 32-битных знаков по трудоёмкости может оказаться гораздо эпичнее, чем даже перевод на русский язык...

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 22.05.20 23:43

Консервация пока отменяется, но может ещё состояться.

В модуле TFPET2 было с утра 300 с лишним ошибок компиляции, теперь осталось 194. Ещё пара дней и можно будет посмотреть, как он падает.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 23.05.20 18:45

Ошибки компиляции закончились, но пока не работает, что было вполне ожидаемо. Во всяком случае, окошко уже показывается. Более того, даже открылся файлик и редактор не упал. Правда, и текст не раскрашивает. Но это уже определённый uspekh.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 24.05.20 11:34

Умеем читать, сохранять и раскрашивать файл. Теперь пора сделать модельный набор ключевых слов на РЯ и раскрасить их, потом сделать снимок экрана и всем показывать. Наверное, первый случай в истории, когда разработка языка начинается с раскраски синтаксиса в IDE. Хотя в наше время и такое наверняка бывает.

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 24.05.20 23:24

Добавил поддержку юникодных ключевых слов в модуле раскраски,

https://gitlab.com/budden/jaos/-/commit ... 1c79ac1878

Теперь могу делать такие картиночки:
Раскраска-с-кириллицей.png
Раскраска-с-кириллицей.png (43.6 КБ) 218 просмотров

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 24.05.20 23:28

Почему-то не работает ЛогЯдра.Строка

БудДен
Сообщения: 2333
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 27.05.20 12:55

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

Ответить