Description
Currently the FastTree ranking code has an #if
to control whether it uses native or .NET code, as declared here.
Normally this takes the form of #if USE_FASTTREENATIVE
, except for here.
That 2
, I'm somewhat embarrassed to report, is an unintentional mistake I made some time ago. It was part of a change involving some hundreds of files, and I think I just made a small error.
Now, somehow, this didn't get noticed. It however differs in its support of a few arguments. These arguments are hidden and not recommended to be used for general users, but nonetheless they may be important, and having it not be supported was unintentional.
machinelearning/src/Microsoft.ML.FastTree/FastTreeRanking.cs
Lines 854 to 857 in ecc6857
This is not to say we shouldn't shift to not use the native library, but I'd rather it be done in a controlled fashion to ensure compatibility (which this thing does not do), rather than unintentionally as I did here.
This issue is directly relevant to @najeeb-kazmi and @rogancarr .