Node:Вызов mixguile, Next:, Previous:mixguile, Up:mixguile



Вызов mixguile

При вызове mixguile без аргументов она после загрузки файла инициализации ~/.mdk/mixguile.scm (если он существует), войдёт в Guile REPL (read-eval-print loop, цикл ввода, обработки и вывода).

mixguile принимает те же параметры командной строки, что и Guile:

mixguile [-s SCRIPT] [-c EXPR] [-l FILE] [-e FUNCTION] [-qhv]
         [--help] [--version]

Значение этих параметров таково:

-h User Option
-help User Option
Вывести краткое описание использования программы и завершить работу.

-v User Option
-version User Option
Вывести версию и информацию об авторских левах и завершить работу.

-s SCRIPT User Option
Загрузить код Scheme из файла script, обработать его и завершить работу. Этот параметр может быть использован для написания исполняемых скриптов Scheme, как описано в Скрипты Scheme.

-c EXPR User Option
Вычислить заданное выражение Scheme и завершить работу.

-l FILE User Option
Загрузить заданный файл Scheme и войти в REPL (цикл ввода, обработки и вывода).

-e FUNCTION User Option
После чтения скрипта, вызвать заданную функцию с аргументами, указанными в командной строке. Например, вы можете написать следующий скрипт Scheme:
#! /usr/bin/mixguile \
-e main -s
!#

;;; выполнить заданную программу и вывести содержимое регистров.

(define main
  (lambda (args)
    ;; загрузить файл, указанный в аргументе командной строки
    (mix-load (cadr args))
    ;; выполнить его
    (mix-run)
    ;; вывести содержимое регистров
    (mix-pall)))

сохранить её в файле, скажем, foo, сделать его исполняемым и выполнить:

$ ./foo hello

Такой вызов запустить вычисление функции main со списком параметров командной строки в качестве аргумента (в вышеприведённом примере ("./foo" "hello)). Заметьте, что параметры командной строки для mixguile должны находиться в отдельной строке после символа \.

-q User Option
Не загружать пользовательский файл инициализации. При запуске mixguile она проверяет наличие файла mixguile.scm в каталоге конфигурации ~/.mdk и, если он существует, загружает его. Этот параметр велит mixguile не загружать файл инициализации.