Используя «стек gh c», как вы компилируете программу Haskell с -fglasgow-exts? - PullRequest
2 голосов
/ 21 апреля 2020

Я следую Схеме «Записывай сам» в течение 48 часов, и я нахожусь в той точке, в которой для компиляции в программу должен использоваться флаг -fglasgow-exts. Я использую MacBook и Stack, однако, когда я пытаюсь запустить его с stack ghc scheme.hs -fglasgow-exts или stack ghc -fglasgow-exts scheme.hs, я не могу запустить его. Я пытался использовать команду, которую они использовали ghc -package parsec -o scheme, я тоже ничего не получаю.

Ответы [ 2 ]

3 голосов
/ 21 апреля 2020

Вы используете GH C через стек, поэтому, если вы хотите передать флаги командной строки, такие как -fglasgow-exts, в GH C, вам нужно сделать это после --, чтобы стек не сожрать флаги:

stack ghc -- -fglasgow-exts scheme.hs
0 голосов
/ 22 апреля 2020

Ничего себе я не видел этот флаг в командной строке по крайней мере 5 лет. Более идиоматические c будут помещать

{-# OPTIONS_GHC -fglasgow-exts #-}

в начало файла, но даже это довольно устарело. Кажется, что в наши дни этикет позволяет расширять индивидуально

{-# LANGUAGE ScopedTypeVariables, RankNTypes #-}

или все, что вам нужно. Обычно вы можете узнать, какие расширения вам нужны, не указав их, и ghc сообщит вам об этом в сообщении об ошибке. Если вы не знаете, что это такое, это хорошая возможность go прочитать об этом, что лично мне кажется очень интересным.

...