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/ |