OberonCore
https://forum.oberoncore.ru/

#022 Добавить второй уровень рабочих папок
https://forum.oberoncore.ru/viewtopic.php?f=134&t=6554
Страница 3 из 5

Автор:  Иван Денисов [ Воскресенье, 28 Март, 2021 18:19 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Comdiv писал(а):
Идея всё та же, что уже озвучивалась
Просто /USE остаётся неизменным, а вместо /USE2 Dir2 /USE Dir1 пишем /USE Dir2:Dir1

Фёдор Васильевич и Евгений Эдуардович такую постановку раскритиковали. И согласен, что тут и новый механизм для парсера. И возможность перепутать. Я вот только сделал не так, что Ф.В. предлагал сделать USE2 для промежуточной. И я перепутал ещё на этапе внедрения :)
Может для промежуточной какое-то более читаемое название вроде /LIBS ?

Автор:  Info21 [ Понедельник, 29 Март, 2021 07:51 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Иван Денисов писал(а):
Я вот только сделал не так, что Ф.В. предлагал сделать USE2 для промежуточной. И я перепутал ещё на этапе внедрения :)
Иван Андреевич, это же элементарно -- будет огромный баттхёрт с совместимостью. Подумайте, сколько уже есть рабочих папок.

Исправляйте скорее, пока у Вас бета.

На таком пустяке такую засаду устраивать.

Автор:  Иван Денисов [ Понедельник, 29 Март, 2021 09:49 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Проблем с совместимостью нет, так как, если нет средней папки, то третья становится рабочей.
Так что с обычным /USE все как обычно работает.

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

Автор:  adimetrius [ Понедельник, 29 Март, 2021 11:59 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

CUSTOM?

Автор:  Comdiv [ Понедельник, 29 Март, 2021 13:27 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Иван Денисов писал(а):
Фёдор Васильевич и Евгений Эдуардович такую постановку раскритиковали. И согласен, что тут и новый механизм для парсера.
Если проблема заключается в разборе списка :) , можно повторно задействовать /USE, то есть
не /USE Dir2:Dir1, а /USE Dir2 /USE Dir1.
Нет, конечно, для "рабочего каталога" было бы логично использовать /WORKDIR, но это же не так, как было раньше.

Цитата:
И возможность перепутать.
Перепутать будет возможность всегда, а концепция PATH, вроде бы, большинству понятна? Из того, что сделано в GNU/Linux я скорее ожидал бы, что файлы сохраняются и ищутся сначала в $BB_PRIMARY_DIR, ведь это же primary.

Автор:  Trurl [ Понедельник, 29 Март, 2021 13:54 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Comdiv писал(а):
Перепутать будет возможность всегда, а концепция PATH, вроде бы, большинству понятна?

А представьте, если при записи файла он будет размещен где-то в PATH.

Автор:  Comdiv [ Понедельник, 29 Март, 2021 14:18 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

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

Автор:  Wlad [ Понедельник, 29 Март, 2021 16:29 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Пётр Кушнир писал(а):
На пути в мир java-пакетов бесконечной глубины, фу. :cry:

В чём плохость?

Автор:  Иван Денисов [ Понедельник, 29 Март, 2021 17:08 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Comdiv писал(а):
Цитата:
И возможность перепутать.
Перепутать будет возможность всегда, а концепция PATH, вроде бы, большинству понятна? Из того, что сделано в GNU/Linux я скорее ожидал бы, что файлы сохраняются и ищутся сначала в $BB_PRIMARY_DIR, ведь это же primary.

Да, это напрягает.

Я бы предпочёл такие названия:
Код:
$BB_START_DIR
$BB_LIBS_DIR    /LIBS
$BB_USE_DIR     /USE


Вторая и третья - опциональны... Если задана /LIBS но не зазада /USE , то /LIBS - считается рабочей.

Автор:  adimetrius [ Понедельник, 29 Март, 2021 20:16 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Иван Денисов писал(а):
Я бы предпочёл такие названия:
Код:
$BB_START_DIR
$BB_LIBS_DIR    /LIBS
$BB_USE_DIR     /USE


Вторая и третья - опциональны... Если задана /LIBS но не зазада /USE , то /LIBS - считается рабочей.


Ненастойчиво предлагаю:

1) если рабочая папка /USE не задана - то и не работать вовсе... или работать из "рабочей папки ОС" - той, из которой запущена команда (хотя не знаю, к чему привыкли в Вин)
2) И уж точно не считать LIBS рабочей, если это не задано напрямую (т.е. LIBS # USE) - а то как наворотишь дров, накомпилируешь модулей...

С LIBS возникает вопрос: а что такое библиотека?
Со START тоже напутано путаницы: стартовая директория в ОС - это ведь та, из которой запускается программа, при этом она вовсе не та, в которой находится программный файл... и еще учесть, что исполнимый blackbox может вовсе лежать не вместе с остальными штатными файлами (при экспериментах с ядром и HostFiles я компоную и запускаю отдельный исполнимый файл blackbox)

Может
STANDARD
CUSTOM
USE

Или
STD (стандарт - штатный набор файлов ББ)
EXT (расширения - у нас же есть такое понятие, хоть и недоопределенное; как раз для расширений эта папка, кмк)
USE

Автор:  Александр Ильин [ Понедельник, 29 Март, 2021 20:34 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Может быть, что-то типа /READ и /USE (=read/write)?

Автор:  Иван Денисов [ Вторник, 30 Март, 2021 07:13 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

READ - не вполне понятно.

Вот так годится, на мой взгляд
Код:
$BB_STANDARD_DIR
$BB_CUSTOM_DIR     /CUSTOM
$BB_USE_DIR      /USE

Автор:  Info21 [ Вторник, 30 Март, 2021 14:24 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Иван Денисов писал(а):
Проблем с совместимостью нет, так как, если нет средней папки, то третья становится рабочей.
Так что с обычным /USE все как обычно работает.
Речь о ситуации, когда средняя папка добавляется: /USE по-прежнему должен соответствовать рабочей папке.

Автор:  Пётр Кушнир [ Вторник, 30 Март, 2021 14:49 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Иван Денисов писал(а):
Бесконечной глубины вроде не предвидится. Речь, про трёхуровневую систему
1. уровень = эталонный Блэкбокс, который легко обновить
2. уровень = надстройки
3. уровень = проект

А, то есть это скорее https://ru.wikipedia.org/wiki/Aufs

Автор:  Иван Денисов [ Вторник, 30 Март, 2021 17:21 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Супер! Теперь мы может называть это явление в Блэкбоксе технически точным термином "каскадно-объединённое монтирование"!

/READ тут вписывается тогда вместо /CUSTOM, кстати

Автор:  Wlad [ Четверг, 01 Апрель, 2021 11:58 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Пётр Кушнир писал(а):
А, то есть это скорее https://ru.wikipedia.org/wiki/Aufs

Надо внимательно присмотреться, имеет ли смысл делать "полное объединение" логического деления проектов и самой (модульной) системы КП с конкретным вариантом реализации локации элементов файловой системы...
Например, можно поступать как в проектах некоторых IDE или в GoboLinux: практически вводится "промежуточный слой", который позволяет адресоваться в "двух слоях логики доступа" к некоторым информационным единицам (структура проекта и структура подлежащей файловой системы).

Автор:  Info21 [ Пятница, 02 Апрель, 2021 13:36 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Иван Денисов писал(а):
Вот так годится, на мой взгляд
Код:
$BB_STANDARD_DIR
$BB_CUSTOM_DIR     /CUSTOM
$BB_USE_DIR      /USE
Так нормально.

Автор:  Иван Денисов [ Понедельник, 05 Апрель, 2021 12:54 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Обсудил ещё лично с многими заинтересованными людьми. Утверждаем значит такое именование!

Для примера вот так сейчас работает.
Код:
C:\Users\Иван\Desktop\WINDOWS\BlackBox.exe /CUSTOM C:\Users\Иван\Desktop\libs /USE C:\Users\Иван\Desktop\projects


Для Linux
Код:
#!/bin/sh

# ulimit -s 32000
# ulimit -a

rn=`readlink -f "${0}"`
standardDir=`dirname "${rn}"`
useDir=`readlink -f .`

exe="blackbox"

# fix Ubuntu-specific problems:
unset UBUNTU_MENUPROXY
unset GTK_MODULES
export LIBOVERLAY_SCROLLBAR=0

# export LD_DEBUG=all
exec env \
   BB_STANDART_DIR="${standardDir}" BB_CUSTOM_DIR="./libs" BB_USE_DIR="${useDir}" \
   BB_PACKED_NAME="${exe}" \
   "${standardDir}"/${exe} "${@}"


Исправил недочёт в StdApi из-за которого документация из CUSTOM папки не открывалась.
В документации к Files.FileList указано, что "Процедура может изменять loc.res."
А в StdApi.PathToSpec это не учитывалось. Так что loc.res не был равен 0 в ThisDialog, и поэтому документация не открывалась.

Проверил и в Windows 7 и в Linux Mint 20.1.

Автор:  Иван Денисов [ Понедельник, 05 Апрель, 2021 21:03 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Обновил пакет в хранилище.

Вот такой скрипт теперь кладу в ~/.local/share/nemo/scripts чтобы удобно запускать Блэкбокс с расширениями в любой удобной директории.
Все расширения и надстройки теперь удобно хранить отдельно от базовой обновляемой автоматически версии.

Код:
#!/bin/sh
bbStdDir="/usr/lib/blackbox"
bbCustomDir="/home/ivan/blackbox"

unset UBUNTU_MENUPROXY
unset GTK_MODULES
export LIBOVERLAY_SCROLLBAR=0

env \
  BB_STANDARD_DIR="${bbStdDir}" \
  BB_CUSTOM_DIR="${bbCustomDir}" \
  BB_USE_DIR="$PWD" \
  ${bbStdDir}/blackbox $* &

Автор:  Иван Денисов [ Понедельник, 05 Апрель, 2021 22:36 ]
Заголовок сообщения:  Re: #022 Добавить второй уровень рабочих папок

Допустил недочёт в Windows версии, в 60-ой сборке поправил:
https://blackbox.oberon.org/unstable/de ... a1.060.zip

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