Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

.net

f#

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#?

like image 651
devoured elysium Avatar asked Jan 20 '14 00:01

devoured elysium


People also ask

What is the f on a camera?

The “f” in f-stop stands for the focal length of the lens. While focal length itself refers to the field of view of a lens, f-stop is about how much light you allow to hit the sensor via the aperture opening.

What does the f-stop do?

(Focal-STOP) The f-stop is the "aperture" opening of a camera lens, which allows light to come in. It also determines how much is in focus in front of and behind the subject (see depth of field). The f-stop is one of the two primary measurements of a camera lens.

What do f-stop numbers mean?

F-stop (aka f-number) is the number that you see on your camera or lens as you adjust the size of your aperture. Since f-stops are fractions, an aperture of f/2 is much larger than an aperture of f/16. Just like the pupil in your eye, a large aperture lets in a lot of light.

What does f 2.8 mean in photography?

It doesn't matter if you have a stabilized camera or lens, it's the fast shutter speed that freezes the subject motion. An f/2.8 lens will give you twice the shutter speed of an f/4 lens when shooting with the aperture wide open.


1 Answers

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.

like image 180
7sharp9 Avatar answered Oct 07 '22 15:10

7sharp9