Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
827 views
in Technique[技术] by (71.8m points)

.net - What are F#'s FSharp.Core.optdata and FSharp.Core.sigdata files?

Both files seem to reside in F#'s directory, along with FSharp.Core.dll. Both files seem to be a constant source of trouble if one forgets to put them together with FSharp.Core.dll. They seem to be binary files so I wasn't able to uncover their purpose.

I googled a bit both files but there doesn't seem to be a clear answer to my question. So..what is their function in F#?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Optdata is definitely optimisation data, it is written as part of the EncodeOptimizationData function in the compiler. FSharp.Core has this information stored in an external file rather than embedded in the resource manifest.

sigdata is encoded with EncodeInterfaceData and contains information about the signatures/interfaces for the F# types. FSharp.Core, FSharp.Compiler.Silverlight and FSharp.LanguageService.Compiler all have this information stored in an external file rather than embedded in the resource manifest.

As FSharp.Core does not contain either of these in its resource manifest they have to be present externally, Im not sure of this reason though.

User produced F# files, when compiled, have this information encoded into the resource manifest, you can see this if you look at the metadata.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...