Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 38 additions & 29 deletions src/Compiler/Driver/CompilerOptions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -263,29 +263,32 @@ let ParseCompilerOptions (collectOtherArgument: string -> unit, blocks: Compiler

// returns a tuple - the option token, the option argument string
let parseOption (s: string) =
// grab the option token
let opts = s.Split([| ':' |])
let mutable opt = opts[0]

if opt = "" then
let mutable option = s

if option = "" then
()
// if it doesn't start with a '-' or '/', reject outright
elif opt[0] <> '-' && opt[0] <> '/' then
opt <- ""
elif opt <> "--" then
elif option[0] <> '-' && option[0] <> '/' then
option <- ""
elif option <> "--" then
// is it an abbreviated or MSFT-style option?
// if so, strip the first character and move on with your life
if opt.Length = 2 || isSlashOpt opt then
opt <- opt[1..]
if option.Length = 2 || isSlashOpt option then
option <- option[1..]
// else, it should be a non-abbreviated option starting with "--"
elif opt.Length > 3 && opt.StartsWithOrdinal("--") then
opt <- opt[2..]
elif option.Length > 3 && option.StartsWithOrdinal("--") then
option <- option[2..]
else
opt <- ""
option <- ""

// grab the option token
let opts = option.Split([| ':' |])
let token = opts[0]

// get the argument string
let optArgs = if opts.Length > 1 then String.Join(":", opts[1..]) else ""
opt, optArgs
option, token, optArgs

let getOptionArg compilerOption (argString: string) =
if argString = "" then
Expand Down Expand Up @@ -352,7 +355,7 @@ let ParseCompilerOptions (collectOtherArgument: string -> unit, blocks: Compiler

processArg (responseFileOptions @ t)
| opt :: t ->
let optToken, argString = parseOption opt
let option, optToken, argString = parseOption opt

let reportDeprecatedOption errOpt =
match errOpt with
Expand All @@ -361,7 +364,7 @@ let ParseCompilerOptions (collectOtherArgument: string -> unit, blocks: Compiler

let rec attempt l =
match l with
| CompilerOption (s, _, OptionConsoleOnly f, d, _) :: _ when optToken = s && argString = "" ->
| CompilerOption (s, _, OptionConsoleOnly f, d, _) :: _ when option = s ->
reportDeprecatedOption d
f blocks
t
Expand Down Expand Up @@ -710,7 +713,7 @@ let tagAlgorithm = "{SHA1|SHA256}"
let tagInt = "<n>"
let tagPathMap = "<path=sourcePath;...>"
let tagNone = ""
let tagLangVersionValues = "{?|version|latest|preview}"
let tagLangVersionValues = "{version|latest|preview}"

// PrintOptionInfo
//----------------
Expand Down Expand Up @@ -1104,23 +1107,22 @@ let mlCompatibilityFlag (tcConfigB: TcConfigBuilder) =
Some(FSComp.SR.optsMlcompatibility ())
)

/// LanguageVersion management
let setLanguageVersion specifiedVersion =
let showLanguageVersions () =

printfn "%s" (FSComp.SR.optsSupportedLangVersions ())

let dumpAllowedValues () =
printfn "%s" (FSComp.SR.optsSupportedLangVersions ())
for v in LanguageVersion.ValidOptions do
printfn "%s" v

for v in LanguageVersion.ValidOptions do
printfn "%s" v
for v in LanguageVersion.ValidVersions do
printfn "%s" v

for v in LanguageVersion.ValidVersions do
printfn "%s" v
exit 0

exit 0
/// LanguageVersion management
let setLanguageVersion (specifiedVersion: string) =

if specifiedVersion = "?" then
dumpAllowedValues ()
elif specifiedVersion.ToUpperInvariant() = "PREVIEW" then
if specifiedVersion.ToUpperInvariant() = "PREVIEW" then
()
elif not (LanguageVersion.ContainsVersion specifiedVersion) then
error (Error(FSComp.SR.optsUnrecognizedLanguageVersion specifiedVersion, rangeCmdArgs))
Expand All @@ -1129,12 +1131,19 @@ let setLanguageVersion specifiedVersion =

let languageFlags tcConfigB =
[
// -langversion:? Display the allowed values for language version
// -langversion:<string> Specify language version such as
// 'default' (latest major version), or
// 'latest' (latest version, including minor versions),
// 'preview' (features for preview)
// or specific versions like '4.7'
CompilerOption(
"langversion:?",
tagNone,
OptionConsoleOnly(fun _ -> showLanguageVersions ()),
None,
Some(FSComp.SR.optsLangVersionHelp ())
)

CompilerOption(
"langversion",
tagLangVersionValues,
Expand Down
3 changes: 2 additions & 1 deletion src/Compiler/FSComp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1523,7 +1523,8 @@ notAFunctionButMaybeDeclaration,"This value is not a function and cannot be appl
3353,chkFeatureNotSupportedInLibrary,"Feature '%s' requires the F# library for language version %s or greater."
3360,parsEqualsMissingInTypeDefinition,"Unexpected token in type definition. Expected '=' after the type '%s'."
useSdkRefs,"Use reference assemblies for .NET framework references when available (Enabled by default)."
optsLangVersion,"Display the allowed values for language version, specify language version such as 'latest' or 'preview'"
optsLangVersion,"Display the allowed values for language version."
optsLangVersionHelp,"Specify language version such as '6.0' or 'latest' or 'preview'"
optsSupportedLangVersions,"Supported language versions:"
nativeResourceFormatError,"Stream does not begin with a null resource and is not in '.RES' format."
nativeResourceHeaderMalformed,"Resource header beginning at offset %s is malformed."
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.cs.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Zobrazte si povolené hodnoty verze jazyka a pak zadejte požadovanou verzi, například latest nebo preview.</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Zobrazte si povolené hodnoty verze jazyka a pak zadejte požadovanou verzi, například latest nebo preview.</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.de.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Zeigen Sie die zulässigen Werte für die Sprachversion an. Geben Sie die Sprachversion als "latest" oder "preview" an.</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Zeigen Sie die zulässigen Werte für die Sprachversion an. Geben Sie die Sprachversion als "latest" oder "preview" an.</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.es.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Mostrar los valores permitidos para la versión de idioma, especificar la versión de idioma como "latest" "preview"</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Mostrar los valores permitidos para la versión de idioma, especificar la versión de idioma como "latest" "preview"</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.fr.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Afficher les valeurs autorisées pour la version du langage, spécifier la version du langage comme 'dernière' ou 'préversion'</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Afficher les valeurs autorisées pour la version du langage, spécifier la version du langage comme 'dernière' ou 'préversion'</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.it.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Visualizza i valori consentiti per la versione del linguaggio. Specificare la versione del linguaggio, ad esempio 'latest' o 'preview'</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Visualizza i valori consentiti per la versione del linguaggio. Specificare la versione del linguaggio, ad esempio 'latest' o 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.ja.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">言語バージョンで許可された値を表示し、'最新' や 'プレビュー' などの言語バージョンを指定する</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">言語バージョンで許可された値を表示し、'最新' や 'プレビュー' などの言語バージョンを指定する</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.ko.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">언어 버전의 허용된 값을 표시하고 '최신' 또는 '미리 보기'와 같은 언어 버전을 지정합니다.</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">언어 버전의 허용된 값을 표시하고 '최신' 또는 '미리 보기'와 같은 언어 버전을 지정합니다.</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.pl.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Wyświetl dozwolone wartości dla wersji językowej; określ wersję językową, np. „latest” lub „preview”</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Wyświetl dozwolone wartości dla wersji językowej; określ wersję językową, np. „latest” lub „preview”</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.pt-BR.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Exibe os valores permitidos para a versão do idioma, especifica a versão do idioma, como 'mais recente ' ou 'prévia'</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Exibe os valores permitidos para a versão do idioma, especifica a versão do idioma, como 'mais recente ' ou 'prévia'</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.ru.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Отображение допустимых значений для версии языка. Укажите версию языка, например, "latest" или "preview".</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Отображение допустимых значений для версии языка. Укажите версию языка, например, "latest" или "preview".</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.tr.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">Dil sürümü için izin verilen değerleri görüntüleyin, dil sürümünü 'en son' veya 'önizleme' örneklerindeki gibi belirtin</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">Dil sürümü için izin verilen değerleri görüntüleyin, dil sürümünü 'en son' veya 'önizleme' örneklerindeki gibi belirtin</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">显示语言版本的允许值,指定语言版本,如“最新”或“预览”</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">显示语言版本的允许值,指定语言版本,如“最新”或“预览”</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down
9 changes: 7 additions & 2 deletions src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,13 @@
<note />
</trans-unit>
<trans-unit id="optsLangVersion">
<source>Display the allowed values for language version, specify language version such as 'latest' or 'preview'</source>
<target state="translated">顯示語言版本允許的值,指定 'latest' 或 'preview' 等語言版本</target>
<source>Display the allowed values for language version.</source>
<target state="needs-review-translation">顯示語言版本允許的值,指定 'latest' 或 'preview' 等語言版本</target>
<note />
</trans-unit>
<trans-unit id="optsLangVersionHelp">
<source>Specify language version such as '6.0' or 'latest' or 'preview'</source>
<target state="new">Specify language version such as '6.0' or 'latest' or 'preview'</target>
<note />
</trans-unit>
<trans-unit id="optsOptimizationData">
Expand Down