OberonCore
https://forum.oberoncore.ru/

Автосохранение перед компиляцией
https://forum.oberoncore.ru/viewtopic.php?f=23&t=6878
Страница 1 из 3

Автор:  adimetrius [ Пятница, 30 Декабрь, 2022 19:12 ]
Заголовок сообщения:  Автосохранение перед компиляцией

Коллеги, я правильно понял, что больше нет возражений сделать автосохранение текста модуля перед компиляцией? И что на это поведение не нужно делать опций настройки?

Автор:  Comdiv [ Пятница, 30 Декабрь, 2022 19:19 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Как минимум я компилирую модули, которые вообще не сохраняю. Не знаю, стоит ли это учитывать.

Автор:  adimetrius [ Пятница, 30 Декабрь, 2022 19:46 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Штатным компилятором? Расскажите подробнее, пж. В чем назначение? Видимо, это автогенерируемые модули? Вы их компилируете командой меню/с клавиш, или вызываете DevCompiler.CompileText?
Машкоды и символы у вас в обычные места складываются?

Автор:  Comdiv [ Пятница, 30 Декабрь, 2022 19:55 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Просто эксперименты или ситуативные вычисления, типа, "скриптовый язык".

Автор:  adimetrius [ Пятница, 30 Декабрь, 2022 20:07 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

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

Под "автосохранением перед компиляцией" я имею в виду очень поверхностное действие:
MENU Dev
"Compile" "K" "StdCmds.Save; DevCompiler.Compile" ""

Если автосохранение не подлежит отключению, то этого достаточно. Если подлежит - придется слегка нагородить огород.

Если скриптовый язык, полагаю, вы вызвыаете DevCompiler.CompileText напрямую, и в этом случае автосохранение вас не заденет.

Автор:  arisu [ Пятница, 30 Декабрь, 2022 22:09 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

+1 к автосохранению.

Автор:  Борис Рюмшин [ Суббота, 31 Декабрь, 2022 01:19 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Не, ну я согласен с Константином. Иногда чего-то нагородить короткое бывает полезно, не сохраняя. А потом сохранить, если пошло хорошо.
С другой стороны и автосохранение хорошо. Но только если с отменой сброса операций в комплекте, конечно.

Автор:  Иван Денисов [ Суббота, 31 Декабрь, 2022 10:00 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Думаю, то раз теперь отменили сброс операций, то такое поведение меньше сюрпризов будет давать. Однако часто люди используют компиляцию для проверки корректности программы, а не для получения непосредственно исполняемых файлов. И вот тут зачем мучить SSD диск не совсем понятно. Я бы добавил ещё команду компиляции без сохранения и даже без создания артефактов. И повесил её на Ctrl+Space к примеру. Тогда её вызывать для проверки программы. А уже для создания артефактов Ctrl+K и с сохранением файла, как вы предлагаете.

Автор:  Борис Рюмшин [ Суббота, 31 Декабрь, 2022 11:32 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

А я бы не менял работу Ctrl+K.

Автор:  adimetrius [ Суббота, 31 Декабрь, 2022 12:45 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Иван, для проверки корректности без сохранения - предлагаю вам воспользоваться командой Analyze. Повесьте ее себе на Ctrl+Space.

Но чем помешает сохранение, если вам нужно проверить корректность - мне непонятно.
Соображения о мучениях SSD диска - невесомы без цифр; неинженерны.

Далее я изложу свои соображения об удобном поведении среды.

Компиляция несохраненного текста, который начинается с MODULE ThisModule - в моей вселенной не вызывает диалоговых окон типа "Куда сохранить", а напрямую создает файл This/Mod/Module.odc.

Автосохранение, по мне, должно быть не перед компиляцией, а непрерывное. Я - человек-программист, текст передо мной, я его изменяю. Что такое сохранение?! это пережиточное понятие вообще. Да, у него есть побочный эффект, которым мы привыкли пользоваться - можно поправить и несохранить, а потом вернуться - но это побочный эффект, актуален в силу отсутствия версионности или хотя бы сохранения истории операций.

Хорошо, что мой блокнот и перьевая ручка спроектированы без операции "сохранить".

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

Ведь - подумать только! - есть Текст, Текстовый файл, Кодовый файл, Символьный файл, и еще собственно Подключенный модуль. Оккам плачет с бритвой.

В Сообщении о Языке говорится о модулях: "A module is a collection of ... . ...when the module is added to a system (loaded)..."
Таким образом, 1) модуль существует и 2) модуль может быть, а может не быть добавлен в систему, и есть момент, когда он добавляется в систему. Ну, или подключается, сейчас мне такой термин нравится.

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

Автор:  Trurl [ Суббота, 31 Декабрь, 2022 12:52 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

adimetrius писал(а):
Компиляция несохраненного текста, который начинается с MODULE ThisModule - в моей вселенной не вызывает диалоговых окон типа "Куда сохранить", а напрямую создает файл This/Mod/Module.odc.

А если такой файл уже есть, он затирается?

Автор:  arisu [ Суббота, 31 Декабрь, 2022 12:54 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

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

Автор:  adimetrius [ Суббота, 31 Декабрь, 2022 13:01 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Хороший вопрос. В моем техпроцессе я на такое не натыкался, надо попробовать, тогда я пойму, что мне удобнее. На первый взгляд, можно отказать в компиляции и вставить у имени модуля маркер сообщения с ошибкой "Такой модуль уже есть, и это, похоже, не он". Можно как в Систем 3: умерла так умерла. Там, емнип, не церемонились с потерей несохраненных изменений в тексте, но по крайней мере кнопка Close превращалась в Close!. (Конечно, есть еще вариант МС: выкинуть модальное диалоговое окно Abort Ignore Retry, желательно модальное на всю систему)

Автор:  arisu [ Суббота, 31 Декабрь, 2022 13:07 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

adimetrius писал(а):
(Конечно, есть еще вариант МС: выкинуть модальное диалоговое окно Abort Ignore Retry, желательно модальное на всю систему)
вообще, сообщения о подобных ошибках можно вставлять прямо в документ, как отдельный псведо-тулбар, и красить Страшным Красным Цветом. сразу решается и проблема модальности, и проблема принадлежности окна-сообщения. ну, или оборачивать временно документ в такое, это уже детали реализации.

Автор:  Иван Денисов [ Суббота, 31 Декабрь, 2022 18:15 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Борис Рюмшин писал(а):
А я бы не менял работу Ctrl+K.

А кто предлагает менять работу Ctrl+K. Антон предлагает только в меню добавить дополнительную команду. А я предлагаю на Ctrl+Space добавить компиляцию без создания артефактов. Analize не делает компиляцию, так что он не подходит. Люди именно компилируют модуль, а не проверяют.

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

Автор:  adimetrius [ Суббота, 31 Декабрь, 2022 21:36 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Иван Денисов писал(а):
Analize не делает компиляцию

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

Автор:  Иван Денисов [ Воскресенье, 01 Январь, 2023 09:08 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Да не подходит Analize, он еще и кучу других ошибок выводит. Я почитал вашу заметку про библиотекаря, как вы там лихо организовали компиляцию без артефактов. Так что хочу теперь попробовать! Это очень полезно для проверки. А то я каждый раз пересобирая Блэкбокс для тестов страдаю, что эти тысячи файлов создаются. Для компилятора точно нужен ключик для компиляции в память, без создания артефактов. А если библиотекарь это легко позволит сделать, просто замечательно будет.

Автор:  arisu [ Воскресенье, 01 Январь, 2023 12:40 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Иван Денисов писал(а):
Для компилятора точно нужен ключик для компиляции в память, без создания артефактов.
половина ключа уже есть: опция "----" отключает генерацию объектников. осталось только добавить отключение записи .sym, добавив обработку ещё одного минуса.

Автор:  Иван Денисов [ Воскресенье, 01 Январь, 2023 13:29 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

arisu писал(а):
Иван Денисов писал(а):
Для компилятора точно нужен ключик для компиляции в память, без создания артефактов.
половина ключа уже есть: опция "----" отключает генерацию объектников. осталось только добавить отключение записи .sym, добавив обработку ещё одного минуса.
О, спасибо! уже есть же поддержка оказывается. А символьный файл и так не обновляется, если ничего нового не было. Так что диск не изнашивает.

Автор:  Artyemov [ Понедельник, 02 Январь, 2023 00:37 ]
Заголовок сообщения:  Re: Автосохранение перед компиляцией

Иван Денисов писал(а):
А символьный файл и так не обновляется, если ничего нового не было. Так что диск не изнашивает.

RAM-диск попробуйте - подозреваю, не сможете отказаться ;-)

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