Категоризация расширения GHC

Я задавался вопросом, могут ли расширения GHC быть разделены на в основном две различных категории

  • те, которые обеспечивают "синтаксический сахар" или удобство
  • и те, которые представляют что-то новое, новая парадигма, например.

Теперь, если можно было разделить существующие расширения на вышеупомянутые категории, в которые расширение впишется который категория?

5
задан Don Stewart 19 April 2011 в 03:10
поделиться

2 ответа

Я думаю, что более подходящей категоризацией было бы разделить их по конвейеру компилятора:

Syntactic extensions

  • -XMagicHash
  • -XUnicodeSyntax
  • -XNewQualifiedOperators
  • -XViewPatterns
  • -XNPlusKPatterns
  • -XDoRec
  • -XTransformListComp
  • -XNoImplicitPrelude
  • - XPostfixOperators
  • -XTupleSections
  • -XDisambiguateRecordFields
  • -XNamedFieldPuns
  • -XRecordWildCards
  • -XPackageImports
  • -XExplicitForAll
  • -XKindSignatures
  • . ..

Type System Extensions

  • -XUnboxedTuples
  • -XLiberalTypeSynonyms
  • -XGADTs
  • -XMultiParamTypeClasses
  • -XFlexibleContexts
  • - XConstrainedClassMethods
  • -XOverlappingInstances и -XIncoherentInstances
  • -XTypeFamilies
  • -XImplicitParams

Cross- cutting extensions

  • -XTemplateHaskell
  • -XForeignFunctionInterface

Optimizatsions

  • -fenable-rewrite-rules
  • -fspec-constr
  • -O2

Code Generation Extensions

  • -fllvm
  • -fasm
  • -fvia-C

Runtime Extensions

  • -threaded

What do you think? Не каждый флаг является либо (а) определяемым в терминах существующих конструкций, либо (б) новой частью компилятора. Все гораздо тоньше.

Есть много других расширений, посмотрите, сможете ли вы классифицировать их в такой форме.

8
ответ дан 13 December 2019 в 22:01
поделиться

Флаги уже распределены по категориям в справочнике по флагам в руководстве пользователя GHC, а языковые расширения разбиты на различные категории в разделе о языковых функциях . .

2
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: