дневник Яос
Re: дневник Яос
Заменял "литеру" на "символ", а также начал переводить один из основополагающих модулей - Streams.
Re: дневник Яос
Продолжается перевод модуля Streams. Между тем, я уволился из прекрасного стартапа, где всё было хорошо до того момента, пока меня не попросили приостановить свой проект, чтобы он не мешал работе.
Re: дневник Яос
Модуль Streams вроде доперевёл, правлю ошибки по мелочи. Сделал "переход к определению" для многих (не для всех) встроенных типов и процедур - открывается как бы модуль, но на самом деле это файл справки. Поскольку после перевода встроенных процедур я многое в тексте сам перестал понимать :)
Re: дневник Яос
ЯОС собралась с русскоязычными потоками, индекс кирилличности достиг 26.7%. Однако нашлась ошибка в движке перевода - буду править, а потом придётся, видимо, всё повторить.
Re: дневник Яос
При попытке перевести ещё более фундаментальный модуль KernelLog столкнулся с местом, где двухъязычность ещё не реализована.
Пытаюсь чинить, план действий есть, слегка продвинулся по нему.
Пытаюсь чинить, план действий есть, слегка продвинулся по нему.
Re: дневник Яос
Нет, они заявили своё недовольство, что я занимаюсь своим проектом, и даже то, что это не в рабочее время, их не убедило. Типа я буду уставать и мне не будет хватать сил на работу.
Re: дневник Яос
Перевёл модуль KernelLog, вот он:
https://gitlab.com/budden/ja-o-s/-/blob ... nelLog.Mod
(переведён только интерфейс)
Индекс кирилличности 28,2%, однако движок перевода не совсем работает - приходится пока что кое-что делать руками. Правлю. Данная проблема всплыла по той причине, что вызовы процедуры из этого модуля подставляются компилятором в генерируемый код особым образом, а сами процедуры при этом ищутся по имени модуля и процедуры. Ранее не было учтено, что эти случаи требуют перевода.
https://gitlab.com/budden/ja-o-s/-/blob ... nelLog.Mod
(переведён только интерфейс)
Индекс кирилличности 28,2%, однако движок перевода не совсем работает - приходится пока что кое-что делать руками. Правлю. Данная проблема всплыла по той причине, что вызовы процедуры из этого модуля подставляются компилятором в генерируемый код особым образом, а сами процедуры при этом ищутся по имени модуля и процедуры. Ранее не было учтено, что эти случаи требуют перевода.
Re: дневник Яос
Вроде починил движок перевода, теперь, поскольку явных идей нет, хочу сделать что-то типа лиспового отладчика. Естественно, полностью такой же не выйдет ввиду ограничений языка и рантайма, но хотя бы инспектировать стек должно стать намного легче. А также нужно доехать до места, где лежит RPi и ещё раз, более вдумчиво, попробовать на ней оживить существующую сборку A2.
Re: дневник Яос
Внезапно сделал минимальный инспектор и даже интегрировал с чем-нибудь, и даже завёл встроенную процедуру для его вызова. Теперь можно остановить (почти) любую активность и изучить её стек, вставив в код вызов встроенной процедуры "Инспекция". Конечно, не хватает ещё вычисления выражений в текущем кадре стека, как в нормальных отладчиках, но это уже проект. Нужно доделать тягомотные переводы для модулей Reflection, PodrobnajaPechatq и Trace и, видимо, заниматься портированием на ARM вплотную. Неделю я уже без работы отдохнул, много отдыхать не выйдет.
Ещё думаю, не сделать ли виртуальную машину, чтобы можно было внутри A2 запускать A2. В т.ч. решить проблему хранения больших баз данных в своих отдельных кучах, чтобы большой размер кучи не мешал остальным приложениям.
Ещё думаю, не сделать ли виртуальную машину, чтобы можно было внутри A2 запускать A2. В т.ч. решить проблему хранения больших баз данных в своих отдельных кучах, чтобы большой размер кучи не мешал остальным приложениям.
Re: дневник Яос
Перевёл ещё один фундаментальный модуль, Trace. Индекс кирилличности 28.3%. Видимо, жирные куски теперь не так скоро попадутся. Потоки и логЯдра - это были очень жирные модули с массой клиентов. Так или иначе, индекс кирилличности за этот год вырос на 10%. Если и дальше продолжать в том же темпе, то через каких-нибудь 10 лет перевод ЯОС на русский язык будет завершён. Хотя понятно, что дальше будет медленнее, поскольку богатые месторождения вырабатыватся первыми, а потом порода становится более тощей. В нашем случае основные богатства уже извлечены на-гора.
Re: дневник Яос
Есть определённые успехи с RPi2, см. соседние темы.
Re: дневник Яос
Версия под RPi частично запустилось в qemu. Хотя похоже, что она падает в QEMU иначе, чем на настоящей плате, это, конечно же, плохо.
Re: дневник Яос
Добился идентичного поведения.
Re: дневник Яос
Описана работа с Raspberry Pi 2 b v 1.1 : https://gitlab.com/budden/ja-o-s/-/comm ... d611bc58a0
Re: дневник Яос
Запустил ЯОС на Zybo (по-прежнему без периферийных устройств).
https://gitlab.com/budden/ja-o-s/-/tree/Zybo-Z710-ЯОС-2
https://gitlab.com/budden/ja-o-s/-/tree/Zybo-Z710-ЯОС-2
Re: дневник Яос
Тяжкую работу с железом отложил, теперь - макросы. А для них нужен интерпретатор. Занялся его оживлением, успехи пока скромные.
Re: дневник Яос
Начал добавлять предупреждение об опасном преобразовании между типами адресВПамяти и размерМЗ и как-то завяз в этом. Компилятор с моими изменения падает в самых неприятных местах. А уже 10-е... Видимо, надо прогнать только те файлы, которые надо, этим компилятором, найти проблемное место и откатить все эти изменения. В другой раз, когда будет больше времени и сил. Единственное, в одном месте локализовалось, что типы не преобразовались, хотя должны были. Может через это как-то удастся раскрутить цепочку того, где я что сломал.
Re: дневник Яос
Ну вот, по макросам, казалось бы, всё сделано, а на самом деле ещё пахать и пахать, и время заканчивается.
Re: дневник Яос
Макросы очередной раз почти сделаны, т.е. имеется пример, который мог бы быть реально полезным, если в нём ещё исправить какое-то количество багов... Однако всё ещё есть куча проблем.
Re: дневник Яос
Код почти стабилизирован после возмущений, внесённых в него макросами. В значительной степени, хотя не до конца, привёл в порядок описание языка после переименований последней пары месяцев. Заодно поправил одну ошибку в отладчике, из-за которой он падал, и сделал одно улучшение. Однако отладчик всё равно постоянно зависает и это отвратительно.
Re: дневник Яос
Существенно поменял отладчик, можно сказать, совершил прорыв в контролируемости того, что там происходит. Не проверял в реальном бою, но на тестовом файлике кардинальные улучшения. Теперь есть предпосылки для того, чтобы реализовать удалённую отладку. Хотя тут будет немало работы по моделированию метаданных целевой системы - ведь в настоящее время отладчик берёт модули прямо из той системы, которую мы изучаем. А если мы с Win32 будем отлаживать систему, работающую на RPi, то метаданные у этих систем будут совсем разные. Так что этот проект ещё, можно сказать, далеко впереди. Ну и соответственно нужно разделить отладчик на слои - командный интерфейс отдельно, гуй отдельно. Пока что там всё смешано.
Ну и в целом план подготовки к выступлению практически выполнен. Остаётся сделать выпуск и, собственно, подготовить само выступление.
Ну и в целом план подготовки к выступлению практически выполнен. Остаётся сделать выпуск и, собственно, подготовить само выступление.
Re: дневник Яос
Вроде сделал, чтобы в распечатке стека и в отладчике показывался "сам" объект для методов объектов. Беэ этого было изрядно неудобно.
Изменения, внесённые в компилятор, явно за пределами моего понимания. Система этим компилятором дважды пересобралась и работает, но кто знает, какие грабли ещё ждут впереди...
Отладчик проверен в бою, периодически что-то происходит нехорошее, но в целом более-менее работоспособен.
Изменения, внесённые в компилятор, явно за пределами моего понимания. Система этим компилятором дважды пересобралась и работает, но кто знает, какие грабли ещё ждут впереди...
Отладчик проверен в бою, периодически что-то происходит нехорошее, но в целом более-менее работоспособен.
Re: дневник Яос
По Alt-Enter открывается "меню окна", подобно тому, как работает Alt-пробел в Windows. Дальше можно нажать 4 (на левую половину экрана), 5 (на ввесь экран) или 6 (на правую). Наверное, для полноты картины нужно все новые окна сразу ставить на левую половину экрана, а там дальше пользователь уже пусть сам размещает. И, конечно, в это меню нужно ещё несколько вариантов, но там получились ужасные повторы кода, и кроме того, меню будет слишком длинным. Не знаю, как быть пока что. Но уже большой шаг вперёд - я мечтал о возможности делать окно на полэкрана с самого начала проекта и вот наконец-то. Посмотрим, какие подводные камни всплывут...
Re: дневник Яос
Движемся в направлении симв32
Re: дневник Яос
Всё ещё недоехали. Казалось бы, успех вот он, но в самом конце, как это часто бывает, возникает последовательность ошибок всё возрастающей сложности. Надеюсь, не бесконечная. Во всяком случае, починил под это дело отладчик - он теперь работает лучше, чем когда либо, поскольку исправлена ошибка в логике работы с точками останова. Хотя падает всё равно с хорошей частотой. Также улучшена отладочная печать узлов синт.дерева. Ошибки в компиляторе постепенно правлю, хотя сейчас нашёл весьма странный кусок кода из старого (A2-шного) - теперь надо посмотреть, что он означает.
Re: дневник Яос
Начал внедрять симв32 в модуль Texts - уже не уверен, что стоило начинать. Нужно перешагнуть пропасть с тысячами изменений в более чем 10 модулях. Достаточно одной ошибки - и система просто не заработает. Сегодня, наверное, уже изменений 500 сделал и неизвестно сколько ещё впереди.
Re: дневник Яос
Сделал встроенную процедуру пПиши, которая выводит в любом месте любой указатель на запись вместе с полями. Раньше такая процедура была в модуле "к", неудобство состояло в том, что нужно было подключать/отключать этот модуль и сигнатура исследуемого модуля менялась. Теперь необходимость в подключении модуля "к" отпала.
Помимо этого, в прошлый день (кажется, это была пятница), перенёс из A2 возможность определять переменные в теле кода, как это принято в современных языка, а не только в начале процедуры, как это принято в языках Паскаль-семейства. Теперь можно писать так:
Помимо этого, в прошлый день (кажется, это была пятница), перенёс из A2 возможность определять переменные в теле кода, как это принято в современных языка, а не только в начале процедуры, как это принято в языках Паскаль-семейства. Теперь можно писать так:
Код: Выделить всё
модуль Proba;
(* Proba.Дей ~ *)
использует Strings, StringsUCS32;
тип з = окласс
перем пп : цел32;
вв : Strings.String кон з;
проц Дей*;
нач
перем Строка8 := Strings.NewString("2") : Strings.String;
Строка8 := Строка8 + 2;
перем Строка := StringsUCS32.NewString(Лит32("2")) : StringsUCS32.String;
Строка := Строка + 2;
копируйСтрокуДо0(Строка^,Строка^);
перем эз : з;
нов(эз);
эз.пп := 4;
эз.вв := Strings.NewString("Куку");
пПиши(эз,Строка^);
кон Дей;
кон Proba.
Re: дневник Яос
Стоило починить парсер среды, чтобы он понимал макросы, исчез с экрана красный цвет и настроение сразу улучшилось. Возникло ощущение, что я победил макросы, хотя ещё час назад было такое полууныние. Может и красный экран со стектрейсом нужно сделать другого цвета? А то как его вижу, сразу противно. Никогда, честно сказать, не думал, что цветовая гамма на меня как-то влияет.
А может быть, дело в другом, не знаю.
А может быть, дело в другом, не знаю.
Re: дневник Яос
Вроде доделал метапроцедуры в минимально пригодном для показа виде. Не лучший час для принятия решений, но похоже, что надо теперь попереводить, хотя бы уж до конца месяца. А то перевод совсем просел.
Re: дневник Яос
Начал делать команду, показывающую перевод имени, на котором стоит курсор в ИСР. Не придумал, как интегрировать - можно сделать по-разному,
а также неплохо бы к этой команде ещё прилепить показ всех (пере)определений данного метода по иерархии с возможностью перехода к любому из них (то, что раньше не знал, как сделать, вроде так получается сделать). Соответственно, самое простое здесь - это выводить в лог ядра в виде команд.
а также неплохо бы к этой команде ещё прилепить показ всех (пере)определений данного метода по иерархии с возможностью перехода к любому из них (то, что раньше не знал, как сделать, вроде так получается сделать). Соответственно, самое простое здесь - это выводить в лог ядра в виде команд.
Re: дневник Яос
Немного попереводил.
Re: дневник Яос
Перевёл (не полностью) модуль Builtins - самый первый по порядку модуль.
Правда, он мало используется.
Индекс кирилличности - 29.03%, а на графике последний раз был 28.88% - негусто.
Надо дописать программку для замера доли слов и эту цифру тоже на график вывести - теперь
доля русских букв будет расти всё медленнее, а доля русских слов ещё долго будет
расти с одинаковой скоростью.
Правда, он мало используется.
Индекс кирилличности - 29.03%, а на графике последний раз был 28.88% - негусто.
Надо дописать программку для замера доли слов и эту цифру тоже на график вывести - теперь
доля русских букв будет расти всё медленнее, а доля русских слов ещё долго будет
расти с одинаковой скоростью.
Re: дневник Яос
Начал переводить модуль Machine. Улучшил работу веб-браузера (всё ещё только http).
Re: дневник Яос
Кое-как доделал переводы модуля Machine/ЭВМ для версии Windows, открыл версию для BIOS32, а там, оказывается, есть ещё объём работы...
Re: дневник Яос
Написал письмо в МЦСТ, где предлагаю им взять меня на работу и дать мне 10 человек подчинённых. Ха-ха.
Перевод модуля ЭВМ/Machine упёрся в то, что переводчик не заходит внутрь машинного кода, соответственно, после перевода всё ломается.
Перевод модуля ЭВМ/Machine упёрся в то, что переводчик не заходит внутрь машинного кода, соответственно, после перевода всё ломается.
Re: дневник Яос
С грехом на 9/10 перевёл модуль Machine - скорее можно сказать "показал присутствие", чем "перевёл". Хотя если посмотреть на использование в модуле Heaps - то вроде всё выглядит переведённым. Проблема с этим модулем была в двух вещах:
* во-первых, модулей много для разной платформы и архитектуры
* во-вторых, там есть машкод, а мы его не умеем переводить. Это сильно замедлило дело, но в итоге
теперь компилятор ругается, когда в машкоде упоминается что-то, имеющее перевод. В итоге, правда, пришлось
стереть какое-то количество уже готовых переводов, в основном это были переводы имён параметров.
* во-первых, модулей много для разной платформы и архитектуры
* во-вторых, там есть машкод, а мы его не умеем переводить. Это сильно замедлило дело, но в итоге
теперь компилятор ругается, когда в машкоде упоминается что-то, имеющее перевод. В итоге, правда, пришлось
стереть какое-то количество уже готовых переводов, в основном это были переводы имён параметров.
Re: дневник Яос
Реализовал "тернарное если", если3(условие, выражениеПриИстине, выражениеПриЛжи) - пока только для одного компилятора и только в англоязычной ветке.
Re: дневник Яос
Починил загрузку с LiveCD.
Re: дневник Яос
Начал переводить модуль UCS32
Re: дневник Яос
Продолжил.
Re: дневник Яос
Вроде доделал UCS2 = Ю16, начал String = Строки8.
Клонировал проект на git.org.ru и отправил последние изменения туда.
Клонировал проект на git.org.ru и отправил последние изменения туда.
Re: дневник Яос
Перевёл 4 модуля, индекс кирилличности - 30.43%
Re: дневник Яос
Дочитал код загрузки кооп.версии и выделил все куски, написанные на ассемблере.
Re: дневник Яос
Продолжаю чтение загрузки Zynq. Что-то там много всего...
Re: дневник Яос
Похоже, что зависаем в ReadMemoryLayout, хотя казалось бы, где там зависать?
Надо сделать именованные процедуры Breakpoint1, BreakpointN и по ним размечать трассу с целью
поиска, где зависли. Ы?
Надо сделать именованные процедуры Breakpoint1, BreakpointN и по ним размечать трассу с целью
поиска, где зависли. Ы?
Re: дневник Яос
По RPi ещё с тех пор продвинулся, теперь падаем на утверждении где-то в чтении памяти (уже не помню, но надеюсь, что где-то записано).
Сегодня перешёл в другую ветку и сделал, чтобы подробная печать работала на 64-разрядах, в сборках Linux64 и Win64.
См. https://tvoygit.ru/budden/ja-o-s/src/br ... ная-печать
Сегодня перешёл в другую ветку и сделал, чтобы подробная печать работала на 64-разрядах, в сборках Linux64 и Win64.
См. https://tvoygit.ru/budden/ja-o-s/src/br ... ная-печать
Re: дневник Яос
Выложил новую сборку под Линукс.
Re: дневник Яос
На форуме можно подсвечивать код на языке ЯОС, с помощью кнопочке "JAOS". Вот так:
Код: Выделить всё
модуль ааа;
проц бб(); (* комментарий *)
(* вложенный
(* комментарий *) *)
нач
возврат 4 кон бб;
кон ааа.
Re: дневник Яос
Пытаюсь запустить переводчик всего под линуксом, и он спонтанно зависает. Место, где зависает, всегда одно и то же. Но плохо это всё выглядит, т.к. он зависает через значительное время.
Re: дневник Яос
Ура, повезло - с помощью диспетчера задач удалось неплохо локализовать проблему. В общем-то это во многом случайность, что именно этот процесс оказался в первой строчке и я обратил на него внимание. Команда СборщикВыпускаЯОС.Скомпилируй:
Код: Выделить всё
Unix.CondWait:72 pc=134581358 [0000000008058C6EH] = 134581286 + 72 crc=72910ABE
con= [@24] 00007FF470001F40
mtx= [@16] 00007FF46C000C00
Objects.Await:522 pc=134821788 [000000000809379CH] = 134821266 + 522 crc=55A1660C
cond= [@40] UnixFiles.WaitClose.@AwaitProcedure0
slink= [@32] 00007FF44FAA6A98
obj= [@24] 000000000810B0F0 (Modules.Module)
flags= [@16] {}
hdr= [@-16] 000000000810B070 (Heaps.ProtRecBlockDesc)
p= [@-24] 00007FF4039C0940 (Objects.Process)
c= [@-32] 0000000000000000 NIL
lock= [@-40] 00007FF48958B200 (Objects.LockT)
UnixFiles.WaitClose:121 pc=135308883 [000000000810A653H] = 135308762 + 121 crc=F85F95DA
no= [@16] -1816
UnixFiles.UnixOpen:239 pc=135288446 [000000000810567EH] = 135288207 + 239 crc=F85F95DA
path= [@32] 00007FF44FAA6B08
flags= [@24] {1}
permissions= [@16] 0
fd= [@-12] -1
fo= [@-16] -1816
errno= [@-20] 24
failure= [@-21] ложь
UnixFiles.UnixFileSystem.Old0:698 pc=135286270 [0000000008104DFEH] = 135285572 + 698 crc=F85F95DA
name= [@16] "FractalDemo.Mod"#00""
RESULT=00007FF44FAA6DD8-> [@56] 0000000000000000 NIL
@Self= [@40] 00007FF489545A50 (UnixFiles.UnixFileSystem)
f= [@-16] 0000000000000000 NIL
stat= [@-160] ...(Unix.Status)
fd= [@-164] 0
r= [@-168] 0
pos= [@-172] 82
oflags= [@-176] {38, 36, 33, 1}
nextdir= [@-432] "/y/jaos/Linux64/xym-i-Dpi"#00""
path= [@-688] "/y/jaos/source/FractalDemo.Mod"#00""
@hiddenIRVar0= [@-696] 0000000000000000 NIL
UnixFiles.AliasFileSystem.Old0:59 pc=135281146 [00000000081039FAH] = 135281087 + 59 crc=F85F95DA
name= [@16] "FractalDemo.Mod"#00""
RESULT=00007FF44FAA6E20-> [@64] 0000000000000000 NIL
@Self= [@40] 00007FF489545B00 (UnixFiles.AliasFileSystem)
f= [@-16] 0000000000000000 NIL
Files.OpenOld:221 pc=135204539 [00000000080F0EBBH] = 135204318 + 221 crc=8F46417A
enum= [@40] 00007FF4895451C0 (Files.FileSearcher)
fs= [@32] 00007FF489545B00 (UnixFiles.AliasFileSystem)
fname= [@16] "FractalDemo.Mod"#00""
RESULT=00007FF44FAA6E80-> [@360] 0000000000000000 NIL
f= [@-16] 0000000000000000 NIL
key= [@-20] 0
Files.Old:345 pc=135205245 [00000000080F117DH] = 135204900 + 345 crc=8F46417A
name= [@16] "FractalDemo.Mod"#00""
RESULT=00007FF44FAA6FF0-> [@-837622864] 0000000000000000 NIL
fs= [@-16] 00007FF489545B00 (UnixFiles.AliasFileSystem)
f= [@-24] 0000000000000000 NIL
prefix= [@-40] ""#00""
fname= [@-312] "FractalDemo.Mod"#00""
@hiddenIRVar0= [@-320] 0000000000000000 NIL
СборщикВыпускаЯОС.ДанныеОб1Конфигурации.ПроверьНаличиеФайловИПрочтиОбъявленияИспользования:273 pc=140687342532721 [00007FF453137871H] = 140687342532448 + 273 crc=ECEE17A0
Re: дневник Яос
В чём точно дело - не совсем ясно, но похоже, что мы упираемся в предел числа открытых файлов. "Прекрасная" идея закрывать файлы в финализаторах нас подвела. Ищем, как закрыть файлы явно и засунем это в компилятор.
Код: Выделить всё
(** Close files -- paradox: open (old) file and call Close method. Intended for systems in a host environment to explicitely release a file handle. *)
проц CloseFiles*(context : Commands.Context); (** [Options] {file} ~ *)
перем
filelist : СписокИмёнФайлов;
nofFiles, n : цел64; ndone : цел32;
file: Files.File;
нач
nofFiles := GetFileList(context, filelist);
ndone := 0;
нцДля n := 0 до filelist.разм - 1 делай
file := Files.Old(filelist.э[n]^);
если file # НУЛЬ то file.Close всё;
увел(n);
кц;
кон CloseFiles;
Последний раз редактировалось БудДен 07.08.22 12:42, всего редактировалось 1 раз.
Re: дневник Яос
Похоже, что дело было в вызове GC посреди перебора файлов - там есть специальная оговорка. В общем, закрытие файлов вроде помогает. Всё-таки A2 - божественная игрушка. Я думал, что только на локализацию проблемы могут уйти дни, потому что нужно будет тупо всё утыкивать трассировкой (и ошибка может от этого уехать в другое место) а внезапно всё решилось за час.
- Лис [Вежливый]
- Сообщения: 579
- Зарегистрирован: 08.10.18 13:32
Re: дневник Яос
Хотел тебе на твоём форуме в личку написать, но не нашел, как.
В общем, вот:
http://plana.mybb.ru/viewtopic.php?id=1249#p8255
В общем, вот:
http://plana.mybb.ru/viewtopic.php?id=1249#p8255
Re: дневник Яос
Тут есть темы про Эльбрус, их вроде поиском можно найти. Коротко ситуация с Эльбрусом такова, что я под него починил загрузочный iso-образ, и загрузочную флешку. Нашлись добрые люди, которые попробовали запустить на железке. Однако ничего не заработало. Сейчас знания о загрузке несколько расширились, можно ещё раз попробовать (бывают легко решаемые проблемы с видеорежимом).
Но это всё x86/x64. Портировать на собственно Эльбрус - я пока не понимаю, как. Насколько я понял, информации о системе команд было недостаточно, потом ситуация улучшалась, но насколько она улучшилась - я не отследил. В любом случае, я бы начал с порта на MIPS, который можно забесплатно гонять в эмуляторе.
Доступ по ssh к серверам недостаточен, т.к. там нет контроля над железкой. Максимум, что можно тут сделать - это портировать в режиме приложения (сделать кодогенератор под Эльбрус и тогда будет ЯОС для Эльбруса, запускаемый под Linux). В принципе это может быть хорошим первым шагом, но доступ нужен всё-таки к какому-нибудь vnc, т.к. в текстовом режиме с ЯОС почти ничего сделать нельзя. По идее, портирование на новую платформу, на которой уже работает Linux, наверное и нужно делать в два этапа - сначала режим приложения, потом режим ОС. Это позволит разделить разработку бекенда компилятора и разработку слоя совместимости с железом
У меня нет ресурсов этим заниматься - у меня пока в планах только продолжение перевода и дальше развитие управления памятью.
Но это всё x86/x64. Портировать на собственно Эльбрус - я пока не понимаю, как. Насколько я понял, информации о системе команд было недостаточно, потом ситуация улучшалась, но насколько она улучшилась - я не отследил. В любом случае, я бы начал с порта на MIPS, который можно забесплатно гонять в эмуляторе.
Доступ по ssh к серверам недостаточен, т.к. там нет контроля над железкой. Максимум, что можно тут сделать - это портировать в режиме приложения (сделать кодогенератор под Эльбрус и тогда будет ЯОС для Эльбруса, запускаемый под Linux). В принципе это может быть хорошим первым шагом, но доступ нужен всё-таки к какому-нибудь vnc, т.к. в текстовом режиме с ЯОС почти ничего сделать нельзя. По идее, портирование на новую платформу, на которой уже работает Linux, наверное и нужно делать в два этапа - сначала режим приложения, потом режим ОС. Это позволит разделить разработку бекенда компилятора и разработку слоя совместимости с железом
У меня нет ресурсов этим заниматься - у меня пока в планах только продолжение перевода и дальше развитие управления памятью.
Re: дневник Яос
Перевёл модуль Heaps/Кучи (только интерфейс, да и то не весь). Индекс кирилличности - 30.62% (а неплохо!)
Re: дневник Яос
Немного подправил парсер редактора. Теперь он не падает на объявлении переменных внутри блока.
Однако и не разбирает их должным образом - переменная, определённая внутри блока, показывается красной.
Хотя цель была в другом - научиться замерять потребление CPU отдельными процессами. Сейчас под Linux показывается
какая-то чушь (потребление cpu показывается одинаковым для всех тредов). Треды в юникс-версии сделаны на базе pthreads, и по
идее оно должно работать как-то так:
https://stackoverflow.com/questions/449 ... of-threads
Если это удастся, можно будет отличать активно вычисляющие треды от прочих - это часто нужно.
Неплохо бы ещё сделать, чтобы работало убийство тредов в unix-версии. В win оно нормально работает, а в линуксе ЯОС падает.
Однако и не разбирает их должным образом - переменная, определённая внутри блока, показывается красной.
Хотя цель была в другом - научиться замерять потребление CPU отдельными процессами. Сейчас под Linux показывается
какая-то чушь (потребление cpu показывается одинаковым для всех тредов). Треды в юникс-версии сделаны на базе pthreads, и по
идее оно должно работать как-то так:
https://stackoverflow.com/questions/449 ... of-threads
Если это удастся, можно будет отличать активно вычисляющие треды от прочих - это часто нужно.
Неплохо бы ещё сделать, чтобы работало убийство тредов в unix-версии. В win оно нормально работает, а в линуксе ЯОС падает.
Re: дневник Яос
Потихоньку продолжаю работу над обычной версией RPI. Я постепенно узнаю (того не желая) всё больше деталей об устройстве ARM и A2/ЯОС в ней, но успеха пока нет. Проблема на данный момент в устройстве виртуальной памяти. Раскладка памяти в RPI и Zynq разная, и похоже, что правильный способ работы - разный, в частности, отличаются значения флагов. Кроме того, реализаци для Zynq - кратно сложнее, чем кооперативная. В сумме, получается, что сложный код, аналогичный работающему для Zynq, у меня в наличии не имеется. Нужно либо упрощать версию Zynq до уровня RPi, либо добывать недостающее. Пока, естественно, пытаюсь пойти первым путём.
Re: дневник Яос
Продолжаю работу над RPi, всё плохо, но таймер вроде бы запустился. Хотя кто его знает.
Re: дневник Яос
Дошла до конца инициализация ядра с вытесняющей многозадачностью для RPi 2. Конечно, это мало о чём говорит - надо теперь сделать, чтобы оно действительно работало, т.е. чтобы работали и переключались процессы, далее нужно доделать интерфейс таймеров, функцию Sleep хотя бы и ввод с клавиатуры. Перспективы, наверное, есть, поскольку и трассировка, и отладчик работают достаточно неплохо. Я решил ограничиться только одним ядром и не писать драйвер SD-карты. Также я попытался (не знаю, насколько успешно) отключить все возможные виды кеширования. Для тестов работоспособности компилятора этого должно в какой-то степени хватить.
Re: дневник Яос
Концепт отображения имён функций в отладчике (одно имя функции отрисовывается, размер показывается неверно).
Re: дневник Яос
Подправил выдачу лога, чтобы он выдавал диапазон каждой функции. В принципе, пользуясь Dpi файлами от Богдана и этой информацией, можно пытаться сопоставить любой адрес в ядре и какое-то место в коде. В этом случае от gdb понадобится лишь то, что мы уже сейчас умеем, а интерфейсом отладчика тогда будет второй экземпляр ЯОС, для которого gdb станет сервером. Однако, это всё не совсем то, что нужно. Нам нужен тестовый полигон на ARM, а версия RPi сейчас на грани работоспособности. Поэтому решил попробовать вариант эмуляции Zynq. Собрал эмулятор Zynq, также собрал образ диска, теперь нужно как-то попробовать скормить его QEMU.
Re: дневник Яос
Сегодня удалось запустить UART в эмуляторе Zybo, но дальше не очень хорошо обстоят дела с SD-картой.
Сначала она не особо-то инициализировалась, а потом упала при попытке инициализировать раздел.
Сначала она не особо-то инициализировалась, а потом упала при попытке инициализировать раздел.
Re: дневник Яос
Инициализировалась SD-карта, но не без сомнений. Потом загрузчик начинает её читать. С чтением от нуля всё хорошо, но потом нужно прочитать начало второго раздела и почему-то возвращаются все нули. Неясно, что имеется под ними в виду и как это проверять/исправлять.
Re: дневник Яос
Проект по запуску закрытой версии ЯОС в эмуляторе QEMU для Zynq успешно завершён. ПЛИС часть не эмулируется. Начал работы по сведению во единое целое версии кода, которая запускается в QEMU и которая запускается на железке. Сам по себе код мало отличается, но отличия в конфигурации непонятно как поддерживать. Видимо, всё же будет два разных (но близких по содержанию) командных файла для сборки. Скриптовый язык A2/ЯОС не содержит шаблонизатора, который позволял бы параметризовать генерируемые файлы конфигурации, используемые начальным загрузчиком, поэтому так. Состав модулей в версии под эмулятор тоже сильно урезан, и автозагрузка тоже разная. Т.е., видимо, надо сделать так, чтобы различия между конфигурациями было легко локализовать и менять при внесении изменений параллельно.
Re: дневник Яос
Сделал один шажок к общей между QEMU и железной Zybo конфигурацией. При этом выяснилось, что механизм
автозамен (такой костыль для реализации одного из видов макросов) не работает. Наверное, я его сломал? А он нужен.
автозамен (такой костыль для реализации одного из видов макросов) не работает. Наверное, я его сломал? А он нужен.
Re: дневник Яос
Никакие вопросы не решены, однако ехать хотя бы в этом дурацком направлении - менее тревожно, чем просто ничего не делать. Наш мир катится в пропасть, это достаточно понятно. Но лягушка может взбить молоко в масло, хотя она просто бессмысленно рыпается. Поэтому сегодня я слегка продвинулся в сторону русскоязычной конфигурации, включающей Zybo.
Re: дневник Яос
Продолжались действия по интеграции Zynq в скрипт перевода, а именно, перенесены в основной код версий Linux64, Win32, Win64 инструменты, нужные на хозяйской (собирающей) ОС. Сделана заготовка скрипта, который будет (если Бог даст) переводить весь нужный код для Zybo на русский язык.
Re: дневник Яос
Заработала русскоязычная версия ЯОС на Zybo. Это большой этап - теперь ЯОС стала кросс-платформенной операционной системой, у которой исходные тексты, пусть частично, написаны на русском языке. Возможно, что это первая в мире такая операционная система. Советские ОС сначала делались под одну платформу, а потом они стали Unix-подобными и значит, перестали быть русскоязычными. Но это не точно, да и всем насрать.
Тем не менее, теперь ЯОС пришла в самосогласованное состояние. До этого она находилась в раскоряке. Из-за того, что исходники для Zynq были англоязычными и не были включены в общий скрипт перевода исходников по словарям с английского на русский и обратно, было невозможно полноценно поддерживать русскоязычную ветку. Т.е., по сути, не существовало ЯОС на Zybo на русском языке. Теперь она существует. И можно, собственно, либо продолжать перевод любых модулей, включая ядро, либо развивать ОС в таком полупереведённом состоянии, либо забросить этот проект к чёртовой бабушке, почесав своё ЧСВ. Видимо, сейчас я пока ничего не буду делать, пусть отлежится.
Какие-то исходники я обещал в июне выложить, если мы до этого времени доживём. Не буду отклоняться от ранее составленных планов.
Тем не менее, теперь ЯОС пришла в самосогласованное состояние. До этого она находилась в раскоряке. Из-за того, что исходники для Zynq были англоязычными и не были включены в общий скрипт перевода исходников по словарям с английского на русский и обратно, было невозможно полноценно поддерживать русскоязычную ветку. Т.е., по сути, не существовало ЯОС на Zybo на русском языке. Теперь она существует. И можно, собственно, либо продолжать перевод любых модулей, включая ядро, либо развивать ОС в таком полупереведённом состоянии, либо забросить этот проект к чёртовой бабушке, почесав своё ЧСВ. Видимо, сейчас я пока ничего не буду делать, пусть отлежится.
Какие-то исходники я обещал в июне выложить, если мы до этого времени доживём. Не буду отклоняться от ранее составленных планов.
Re: дневник Яос
Пара шагов в направлении реализации вложенных циклов команд в подвале клиента отладчика.
Re: дневник Яос
Научился передавать распечатку стека от сервера отладки к клиенту. Хотя нормального формата вывода для неё пока что нет.
Re: дневник Яос
Хотелось бы поинтересоваться каков прогресс за год насколько вырос индекс кирилличности?
Re: дневник Яос
Здравствуйте! Рад, что Вы живы и вспомнили про мой проектик.
6974229/22251066 ~= 0.3134334777488863
Однако основное достижение за год состояло в том, что интегрирована версия под Zybo - теперь она тоже на русском. Плюс армовская часть запускается в QEMU. В принципе вот ещё тема со сжатой информацией:
https://вече.программирование-по-русски ... ?f=5&t=369
6974229/22251066 ~= 0.3134334777488863
Однако основное достижение за год состояло в том, что интегрирована версия под Zybo - теперь она тоже на русском. Плюс армовская часть запускается в QEMU. В принципе вот ещё тема со сжатой информацией:
https://вече.программирование-по-русски ... ?f=5&t=369
Re: дневник Яос
А у Вас какие новости? Сравнил с прошологодним индексом кирилличности - он по итогу вырос меньше чем на процент за год. Такими темпами осталось примерно 70 лет до полного завершения перевода. Как я уже говорил, в одиночку этот проект мне не удастся завершить даже в том, что касается только этапа перевода. А команда из 100 человек справилась бы быстро, не только за счёт увеличения числа работающих, но и за счёт развития самой методологии. Но, чем богаты - тем и рады. Я смирился с этой реальностью. В конце концов, если я родился в неидеальном мире и за 49 с лишним лет мир не стал идеальным, то значит, он уже и не станет им.
Re: дневник Яос
Вот кстати замер по словам - он показывает общее количество слов и различающихся слов в кириллице, латинице и дальше сравнивает.
Не помню, что он делает со смешанными словами, ихсодник тут, кому интересно:
https://tvoygit.ru/budden/ja-o-s/src/br ... -в-a2.lisp
Не помню, что он делает со смешанными словами, ихсодник тут, кому интересно:
https://tvoygit.ru/budden/ja-o-s/src/br ... -в-a2.lisp
Код: Выделить всё
(progn
(посчитай-слова-в-A2 #p"/y/jaos/" "/y/отчёт.текст")
(посчитай-долю-русских))
Русских: 1414506 (уникальных 11311)
Всего слов: 4242352 (уникальны 31182)
, доля русских = 0.333424948393191 (уникальных 0.3627412087931471)NIL
Re: дневник Яос
Я жеж хобби поменял. Ушёл в железо проектирую нанокухню, думаю к концу недели магнитный столик рассчитаю и до черчу.А у Вас какие новости?
Re: дневник Яос
Мощь. Вы один в команде? Тут явно нужны и люди, и деньги. Дело стоящее. Можем завести для начала хотя бы раздел на форуме, проку будет мало, но хотя бы обозначите себя.
Re: дневник Яос
Что ж, день добрый, Павиа.
Не очень хорошо начинать с критики, но предупредить считаю обязательным, хотя бы вкратце:
GitLab — украинский ресурс, подконтрольный США
Выводы Вам делать уже самостоятельно. Как-никак война.
Здесь собираются в основном программисты, что в той или иной степени инженеры.
Первое, что в голову приходит, чем мог бы помочь:
В остальном же мы все простые "энтузиасты русского языка", как выразился Денис.
Не очень хорошо начинать с критики, но предупредить считаю обязательным, хотя бы вкратце:
GitLab — украинский ресурс, подконтрольный США
Выводы Вам делать уже самостоятельно. Как-никак война.
Здесь собираются в основном программисты, что в той или иной степени инженеры.
Первое, что в голову приходит, чем мог бы помочь:
- Разработка ПО для расчётов (средства разработки);
- Автоматизация управления (программирование микроконтроллеров);
- Симуляции, что являются скорее частью первого пункта;
- С финансами всё очень сложно. До конца года (по срокам) точно сложно.
В остальном же мы все простые "энтузиасты русского языка", как выразился Денис.
Re: дневник Яос
Проект ЯОС заморожен, все планы развития отменены. Репозиторий по-прежнему тут: https://tvoygit.ru/budden/ja-o-s
Проект "программирование-по-русски" остаётся, но я вряд ли буду активно участвовать.
Проект "программирование-по-русски" остаётся, но я вряд ли буду активно участвовать.
- Лис [Вежливый]
- Сообщения: 579
- Зарегистрирован: 08.10.18 13:32
Re: дневник Яос
Тебя можно поздравить, ты теперь действующий нейротехнолог?
Статью видел такую - https://www.linux.org.ru/forum/science/17246706
Статью видел такую - https://www.linux.org.ru/forum/science/17246706
Re: дневник Яос
Нет, просто я понял, что мешаю делу, занимая то место, которое занимаю. Являюсь лже-лидером, который может угробить всё дело, из-за проблем с мотивацией. Продолжайте без меня, у вас должно лучше получиться, чем со мной. А я найду чем заняться другим.
- Лис [Вежливый]
- Сообщения: 579
- Зарегистрирован: 08.10.18 13:32
Re: дневник Яос
> понял, что мешаю делу, занимая то место, которое занимаю.
Как ты это понял? Какие были соображения, исходные факты и последовательности логических выводов? Я тоже хочу это понять.
Мой форум появился из-за того, что Яр написал фразу "давайте хоть как-то договоримся вместе что-то делать, и составим какой-то план". Считаю, что эта цель частично достигнута (частично, потому что там нет трудоёмкостных и временны́х оценок). Лисофорум доступнен и там можно написать что-то другое, новое, например углубиться в нейросети (это направление там недопредставлено).
Как ты это понял? Какие были соображения, исходные факты и последовательности логических выводов? Я тоже хочу это понять.
Мой форум появился из-за того, что Яр написал фразу "давайте хоть как-то договоримся вместе что-то делать, и составим какой-то план". Считаю, что эта цель частично достигнута (частично, потому что там нет трудоёмкостных и временны́х оценок). Лисофорум доступнен и там можно написать что-то другое, новое, например углубиться в нейросети (это направление там недопредставлено).
Re: дневник Яос
Я об этом писал примерно 100 раз на своём канале в телеграме, который со вчерашнего дня называется программирование-по-русски . Если коротко, то я не одобряю победу роботов над людьми и создание электронного концлагеря. Поэтому мне не нужны ни ускорение прогресса в компьютерах, ни кибербезопасность. А ЯОС, если бы она была сделана, работала бы именно на это ввиду ряда технологических преимуществ. На другой чаше весов - поражение моей страны в войне, но это всё равно не настолько тяжёлая гиря, чтобы я мог идти вперёд без колебаний. И самое главное, даже в 2015 году было почти поздно начинать делать ЯОС. Я начал с опозданием на 3 года, а теперь уже и подавно поздно рыпаться. А война разгорается довольно быстро, несопоставимо со скоростью любых разработок, я сразу предупреждал и сразу взывал всех присоединиться именно из-за срочности вопроса. Но раз есть сомнения в нужности дела, то надо перестать его делать. Из интересного мне остаётся только внедрение русского языка в ИТ, но здесь другая ситуация - тут я уже сделал всё, что должен был сделать основоположник - расписал, как нужно внедрять РЯ в ИТ с технической точки зрения, сделал пример и всё такое. Дальше уже нужны другие люди, мне недостаточно это интересно, с учётом того, что любой другой проект в этой области будет ослабленным повторением того, что я уже сделал в ЯОС,
Просто раньше не догадывался, что нужно не драматизировать ситуацию, а отойти в сторонку и дать другим возможность что-то делать. И одновременно, чтобы они не надеялись на то, что у меня что-то получится.
Что касается ИИ, то я не буду им заниматься публично и открыто - я буду просто на этом зарабатывать, если не заленюсь.
Просто раньше не догадывался, что нужно не драматизировать ситуацию, а отойти в сторонку и дать другим возможность что-то делать. И одновременно, чтобы они не надеялись на то, что у меня что-то получится.
Что касается ИИ, то я не буду им заниматься публично и открыто - я буду просто на этом зарабатывать, если не заленюсь.
Последний раз редактировалось БудДен 09.06.23 18:29, всего редактировалось 4 раза.
- Лис [Вежливый]
- Сообщения: 579
- Зарегистрирован: 08.10.18 13:32
Re: дневник Яос
> в телеграме
Я не пользуюсь, он не опенсорсный.
Я не пользуюсь, он не опенсорсный.
Re: дневник Яос
Кстати, и этот форум я тоже закрою на запись. Всё равно в него почти никто не пишет.
Re: дневник Яос
Сломалась загрузка в режиме ОС. После трёх дней выяснений (в фоновом режиме между других дел) выяснилось, что дело в том, что я переключил способ сборки мусора. Но в компиляторе должен быть флаг установлен, а он не установлен.
Далее два варианта - либо надо вернуть способ сборки взад, либо добавить флаг.
Далее два варианта - либо надо вернуть способ сборки взад, либо добавить флаг.
Re: дневник Яос
Восстановил собираемость и запускаемость образа с HDD в ветке "главная". Инструкции не обновлены, но см. ролик:
https://dzen.ru/video/watch/6589e05939c6e24c8b15e751
https://dzen.ru/video/watch/6589e05939c6e24c8b15e751
Re: дневник Яос
Когда я стал жителем Подмосковья, то первое, чем меня удивили местные, так это фразой "Ехай взад" :) Просто улыбнуло :) Где парадная с поребриком, где-то дощщ с булошной. А моя бабушка вообще говорила: "Учёра былО холоднО, а нонча тёпла".либо надо вернуть способ сборки взад, либо добавить флаг
Re: дневник Яос
Восстановил контроль над исходниками сайта п-п-р (теперь под Ubuntu 18) и даже пополнил список проектов.
По идее, ещё нужна страничка "примеры" с красивыми примерами кода на русском, сделанными на красивом шрифте... которого пока не существует.
Также надо более подробно разъяснить идею семантического словаря. Я её то ли где-то рассказывал, то ли видео про это записывал, но не помню уже, где. Это было совсем недавно.
А вот где: https://tvoygit.ru/budden/semdict/src/b ... проекта.md
Хотя по идее для этого нужна отдельная тема.
По идее, ещё нужна страничка "примеры" с красивыми примерами кода на русском, сделанными на красивом шрифте... которого пока не существует.
Также надо более подробно разъяснить идею семантического словаря. Я её то ли где-то рассказывал, то ли видео про это записывал, но не помню уже, где. Это было совсем недавно.
А вот где: https://tvoygit.ru/budden/semdict/src/b ... проекта.md
Хотя по идее для этого нужна отдельная тема.
Re: дневник Яос
Более-менее оживил отладчик в более архитектурно оформленном варианте, когда ГПИ отделён от ядра.
Теперь пытаюсь сделать для него же хождение по машинным кодам, но квант времени исчерпался.
Теперь пытаюсь сделать для него же хождение по машинным кодам, но квант времени исчерпался.