Spec-Zone.ru › Haskell 8

6. Использование runghc

runghc позволяет запускать программы Haskell без предварительной компиляции.

6.1. Использование

Командная строка для runghc выглядит следующим образом:

runghc [runghc flags] [GHC flags] module [program args]

Любые флаги, не распознанные runghc, автоматически передаются в GHC. Если флаг распознаётся как runghc, так и GHC, но вы хотите передать его GHC, то вы можете поместить его после разделителя --. Флаги после разделителя обрабатываются как флаги только для GHC. В качестве альтернативы можно использовать опцию runghc --ghc-arg=<arg> для прямой передачи любого флага или аргумента GHC.

module может быть именем файла исходного кода Haskell с расширением или без него. Если по какой-то причине имя файла начинается с -, можно использовать второй -- для обозначения конца флагов. Всё, что следует за вторым --, будет считаться именем файла программы или модуля, за которым следуют его аргументы. Например:

  • runghc -- -- -hello.hs

6.2. Флаги runghc

runghc принимает следующие флаги:

  • -f /path/to/ghc: указывает runghc путь к исполняемому файлу GHC для запуска программы. По умолчанию runghc будет искать GHC в каталогах системного пути поиска.
  • --ghc-arg=<arg>: Передает опцию или аргумент в GHC
  • --help: выводит информацию об использовании.
  • --version: выводит информацию о версии.

6.3. Флаги GHC

Как уже говорилось, используйте -- или --ghc-arg=<arg> для разграничения флагов GHC, когда это необходимо. Например, -f распознаётся runghc, поэтому чтобы передать -fliberate-case в GHC, используйте любой из следующих вариантов:

  • runghc -- -fliberate-case
  • runghc --ghc-arg=-fliberate-case

Обратите внимание, что любые не флаги аргументы никогда не передаются в GHC. Неиспользуемый не-флаговый аргумент будет рассматриваться как имя запускаемой программы. Если флаг GHC принимает аргумент, используйте --ghc-arg=<arg> для передачи аргумента в GHC. Например, если вы хотите передать -package foo в GHC, используйте любой из следующих вариантов:

  • runghc -package --ghc-arg=foo Main.hs
  • runghc --ghc-arg=-package --ghc-arg=foo Main.hs

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/8.10.2/docs/html/users_guide/runghc.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API