Дізнаймося, як встановити Factor локально, щоб розвʼязувати вправи Exercism на власному компʼютері
У треку Factor використовується Factor 0.101. Раніші версії не підтримуються.
Можна встановити стабільну чи нічну збірку або зібрати з вихідного коду.
Перевірмо встановлення, запустивши factor -e='vm-version print'. Ця команда має вивести 0.101 або вищу версію.
https://factorcode.org#stable-release надає стабільні бінарники в розділі «Stable release».
https://factorcode.org#development-release надає нічні бінарники в розділі «Development release». Ці бінарники збираються з git, але показуються лише ті збірки, які проходять перевірку.
Якщо нам потрібне найсвіжіше і навіть нічна збірка для нас застара, знадобиться сучасний компілятор C++ (GCC >=4.8 або Clang >=3.5), make і curl.
Коли ці нехитрі вимоги виконано, можна:
Завантажмо скрипт оболонки build: тут для Unix-подібних систем / оболонок POSIX або тут для Windows. Покладімо його в каталог, у який має бути встановлено Factor. Буде створено каталог factor з кодовою базою.
Запустімо його командою ./build.sh install або .\build.cmd install у Windows. Це клонує git-репозиторій Factor, збирає його й завантажує образ віртуальної машини Factor з https://factorcode.org. Цей процес може тривати від 2 до 20 хвилин, залежно від швидкості зʼєднання та тактової частоти процесора.
Тепер можна запустити бінарний файл factor або factor.exe, згенерований у підкаталозі factor. Спробуймо factor --help, щоб отримати довідку. Також можна отримати доступ до документації з командного рядка або натиснувши F1 у GUI Listener, що відкриє браузер довідки.
Надалі використовуймо build.sh або (build.cmd у Windows) у підкаталозі factor, щоб отримати зміни з git і перезібрати на місці, а також завантажити новий образ віртуальної машини, якщо потрібно.
Тепер структура файлів може мати такий вигляд:
.
├── build.sh <- delete if you like
└── factor
├── basis
├── boot.unix-x86.64.image
├── build.cmd <- use these from now on
├── build.sh <-
├── core
├── extra
├── factor
├── Factor.app
├── factor.image
├── GNUmakefile
├── libfactor.a
├── libfactor-ffi-test.so
├── LICENSE.txt
├── misc
├── Nmakefile
├── README.md
├── unmaintained
├── vm
└── work
Скрипт build верхнього рівня більше не потрібен, адже надалі слід використовувати завантажений.
Клонуймо репозиторій і використаймо make у цьому каталозі.
Якщо make завершується помилкою про відсутню ціль, спробуймо make factor або, якщо ми вміємо читати Makefile, знайдімо ціль make для нашої платформи в GNUmakefile.
Якщо це не спрацює, створімо issue на factor/factor із текстом помилки. Привітні розробники радо допоможуть.