DinrusGroup / Dinrus

Язык Программирования Динрус (Базовый Набор Библиотек)
http://dinrus.gixx.ru
1 stars 1 forks source link

Мысли #5

Open MGWL opened 6 years ago

MGWL commented 6 years ago

Кажется я начинаю понимать структуру. Консоли - это программы изменения окружающей среды. Их задача обеспечить пути поиска до исходников и библиотек, тем самым сужая или расширяя количество доступных модулей. Сами модули по возможности адаптированы к собственной разработке RunTime системы, которая обеспечивает базовую функциональность и неизменность, чего нельзя сказать о Фобос и D2, которые меняются каждый месяц, что требует постоянно поддерживать проекты в работоспособном состоянии адаптируя их к изменениям.

В общем идея понятна.

Вопрос: почему за основу взят D1? Думаю из за того, что он стабилен... А где примеры? Везде вижу только библиотеки ... А как с кроссплатформенностью?

EnergonV commented 6 years ago

Рулада, Динрус, sc.ini, D1 и D2

Некоторые моменты пояснены здесь.

Библиотека Рулада появилась на основе библиотек, накопленных на http://dsource.org/ . Тогда D2 только начинался... Но и в, принципе, я не понял, почему авторы решили потерять backward compartibility (обратную совместимость)... Но, надеюсь, что собственный компилятор, который виртуально когда-нибудь появится, этот разрыв компенсирует(!)

Сайт с исходниками D1 - это целая свалка полезных вещей. Но, в принципе, самые главные из них уже в Руладе...

Что касается

примеров,

то они есть в репозитории примеров В Руладе по умолчанию используется Фобос, а для использования Тангонадо указывать в sc.iniпараметр -version=Tango . Можно написать отдельную программу-конфигуратор. Но я использую Руладу только как подручное средство для работы над Динрус. С ним они могут "дружить" только, если на Руладе состряпана dll, так как при прямом взаимодействие возникает конфликт имён в рантайме.

Кроссплатформенность

была изначально и никуда не потерялась, но на каждой архитектуре есть свои нюансы. Конечно, желательно вместо DMD использовать GDC. Но dmd есть и для Linux, поэтому, думаю, проблема только в том, чтобы заняться дальнейшей адаптацией исходников под эти системы. Просто на данный момент проводится эксперимент в целом, а также руссификация библиотек с английского на русский. Это медленный процесс, так как исходники проходят сложную переработку. Ну, а когда всё будет налажено, для переноса кодов на другие системы понадобится гораздо меньше усилий.

EnergonV commented 6 years ago

Утилиты-конфигураторы (dinrus, dgui, dinrusex, rulada, ruladaex, rguietc)

это простая идея упростить изменения файлов конфигурации. Поменять её прямо из консоли простым вызовом элементарной программки (dinrus, ruladaex и т.д.) Что-то типа RadioButton. Надо было бы открывать файл bin/sc.ini (это основной файл конфигурации, а можно написать такой же в папке программы, тогда этот будет игнорироваться, а конфигурация браться из второго) и другой файл, в etc, в котором записывается конфигурация для dsss и rebuild, и заниматься редактированием вручную. В общем, эти утилиты облегчают задачу)))

В принципе, можно таким же образом менять версию 2 на 1, и наоборот. Но для этого понадобится замена dmd.exe и ссылки на специальные (отдельные) папки библиотек и файлов импорта пакетов под D2Динрусе эта папка переименована из import в imp, что позволяет установить и официальную версию D1!). (Остальные инструменты, кажется, менять не обязательно)... Естественно, что менять dmd1 на dmd2 придётся постоянно, поскольку если даже расположить их в разных местах, и указать в переменной path, система будет "двоить"... Именно поэтому часто рекомендуют прежде удалить старую версию, а потом ставить новую (например, тот же python.exe может быть разной версии. А если их несколько на компе, то потенциально будут путаться библиотеки и исполнимые файлы, а результат работы совершенно непонятен!!)

EnergonV commented 6 years ago

Утилита bintod

Если выполнить в командной строке bintod bin.file, например, dmd.exe, то мы получим файл.d, в котором будет отображён весь заданный нами бинарник, как константный набор символов. Далее можно записать этот набор обратно в файл, или удалить и перезаписать его другим набором символов. Примерно так можно менять dmd1 на dmd2.

(Эту же операцию можно делать с любыми бинарными файлами, например, картинками).