# fortrun "Fortran" + "run" = fortrun Утилита для альтернативного способа запуска устаревших Fortran проектов в любимых редакторах. Разработано специально для студентов МАИ, чтобы избавить их от необходимости разрабатывать в устаревших программах без прикольных фич. **Attention!** Данная программа не решит за вас нужные работы, но избавит от лишней головной боли в войне с устаревшим Fortran. ## Требования - **Windows 10 и выше** (программа может работать и с ранними версиями, но не проверялась) - **Microsoft PowerStation 4.0** - Без него программа не заработает, т.к. в нем содержится нужный компилятор и линкер. В ином случае, программа предупредит вас об отсутствии нужных файлов и откажется сотрудничать. - **[Visual Studio Code](https://code.visualstudio.com/)** (или любой другой редактор с терминалом, либо ручками) - Хотя бы небольшое количество прямых лапок и терпение ## Установка ### Способ для ленивых Вы можете пропустить нюансы, установив ПО используя [последнюю версию установщика (fortrun-setup.exe)](https://git.dj-haski.ru/Dj_Haski/fortrun/releases). После установки можете переходить сразу к **Использованию**. ### Способ для умных и прекрасных Вам будет необходим **Poetry** ([установка](https://python-poetry.org/docs/)) и **Python 3.10+** ([установка](https://www.python.org/downloads/)). Склонируйте репозиторий и перейдите в его папку: ```bash $ git clone https://git.dj-haski.ru/Dj_Haski/fortrun Cloning into 'fortrun'... ... $ cd fortrun/ ``` Установите пакеты **Poetry**: ```bash $ poetry install ``` Запустите файл **main.py** с нужными параметрами: ```bash $ poetry run main.py --help # либо сразу $ poetry run main.py build FA.F90 VAP4.F90 bm_nlp-msdev.lib --run --friendly ``` Для сборки установщика необходим [**Inno Setup**](https://jrsoftware.org/isinfo.php): ```bash $ /путь/до/innosetup/ISCC.exe .\setup.iss /Ffortrun-setup /Odist ``` Бинго, вы прекрасны! Дальше по накатанной. ## Использование ### Подготовка для Visual Studio Code Эта часть подразумевает, что вы установили ПО используя установщик. 1) Запустите **Visual Studio Code** 2) Откройте папку, где будут тусоваться ваши исходные файлы: *Файл -> Открыть папку...* 3) Создайте терминал, если его нет внизу: *Терминал -> Новый терминал* 4) Используйте перечисленные команды ниже, чтобы достичь нужного результата. ### Подготовка для умных и прекрасных Если вы пошли сложным путем, то вам необходимо самостоятельно добавить `main.py` в PATH и настроить Windows для работы с `.py` файлами. Либо же вызывать программу таким образом: ```bash $ python c:/путь/до/файла/main.py ... ``` ### Примеры команд (для лабораторных) Сразу оговорюсь, если у вас ничего не происходит после запуска, то вам необходимо нажать `ENTER`, так как скорее всего у вас стоит `PAUSE` в конце программы. #### Запуск в дружелюбном режиме Данная команда соберет два нужных файла + библиотеку, запустит её в "дружелюбном" режиме и превратит сложные отображения цифр (.19375D+01 или -.22352D-07) в простые (0.3959 или -0.00008). Учтите, что в собранной программе не будет дружелюбного отображения, так как этим занимается `fortrun`. ```bash $ fortrun build FA.F90 VAP4.F90 bm_nlp-msdev.lib --run --friendly ``` #### Запуск в обычном режиме Данная команда соберет два нужных файла + библиотеку и запустит её в обычном режиме. ```bash $ fortrun build FA.F90 VAP4.F90 bm_nlp-msdev.lib --run ``` #### Сборка файла Данная команда соберет два нужных файла + библиотеку в файл под названием "lab2.exe". ```bash $ fortrun build FA.F90 VAP4.F90 bm_nlp-msdev.lib --friendly --output lab2.exe ``` ### Документация по параметрам Помощь доступна через команду `fortrun --help`. - **fortrun version** - Просто выводит версию. И всё. - **fortrun build** - Основная команда для компиляции и линковки файлов + библиотек, флаги представлены ниже (использовать так: `fortrun --флаг --флаг2 что-то --флаг`). - **--output [ФАЙЛ]** - Собрать всё в указанный файл. - **--run** - Запустить программу сразу после сборки. - **--friendly** - Работает только с `--run`. Заменять представления чисел Fortran на человекочитаемые. - **--clean** - Очистить папку сборки после компиляции. - **--pause** - Поставить программу на паузу после выполнения. Полезно в некоторых сценариях. ## FAQ (Часто задаваемые вопросы) | **У меня пишутся какие-то "warning: ", это нормально?** Да. Скорее всего, на это не стоит обращать внимания, так как в лабораторных встречались такие сценарии, которые никак не влияют на работу. | **Что значит ошибка "Looks like compilation or linking failed. Perhaps you forgot to add some libraries or some source files? Check your source code and try again."** Вероятно, вы просто напросто забыли подключить нужную библиотеку (например: `bm_nlp-msdev.lib`), поэтому линкер не смог закончить свою работу. Гляньте на примеры. | **fortrun вылетает со странной ошибкой** Свяжитесь со мной по почте, указанной ниже. Не забудьте приложить скриншот проблемы. ## Контакты В случае обнаружения бага или при наличии интересного предложения, свяжитесь со мной по почте: ``` me@dj-haski.ru ``` Вопросы не касающиеся работы `fortrun` (этой проги), в 90% случаев остануться без ответа, ищите решение ошибок Fortran и лабораторных самостоятельно :)