fsprojects / FSharp.Formatting

F# tools for generating documentation (Markdown processor and F# code formatter)
https://fsprojects.github.io/FSharp.Formatting/
Other
464 stars 156 forks source link

Can't load native library in literate script #685

Open gbaydin opened 3 years ago

gbaydin commented 3 years ago

I'm writing DiffSharp docs using the tools in this repo. I need to make use of literate scripts to produce docs that have F# code executed with the --eval argument of fsdocs tool.

This is the test script I'm using in my machine. Call this test.fsx in the /docs folder of my repo:

(*** condition: prepare ***)
#I "../tests/DiffSharp.Tests/bin/Debug/net5.0"
#r "DiffSharp.Core.dll"
#r "DiffSharp.Data.dll"
#r "DiffSharp.Backends.Reference.dll"
#r "DiffSharp.Backends.Torch.dll"

let loadLibTorchNative() =
    let assemblyLoc = System.IO.Path.GetDirectoryName(typeof<DiffSharp.dsharp>.Assembly.Location)
    let loc = assemblyLoc + "/runtimes/linux-x64/native/libtorch.so"
    printfn "Loading %A" loc
    let handle = System.Runtime.InteropServices.NativeLibrary.Load(loc)
    printfn "Handle %A" handle

loadLibTorchNative()

open DiffSharp
dsharp.config(backend=Backend.Torch)

(**
Creating a tensor.
*)

let t = dsharp.tensor [ 0 .. 10 ]
printfn "%A" t
(*** include-output ***)

The code needs to load a native library, called libtorch.so in Linux, to work correctly.

Trial 1

When I run the script file with dotnet fsi test.fsx, things work fine and this is the output:

Loading "/home/gunes/git/github/DiffSharp/DiffSharp/tests/DiffSharp.Tests/bin/Debug/net5.0/runtimes/linux-x64/native/libtorch.so"
Handle 93963863724224n
tensor([0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])

But when I build the docs with fsdocs watch --eval --strict, I get the following page rendeded. The code doesn't work and (*** include-output ***) doesn't work.

image

Trial 2

If I make the change dsharp.config(backend=Backend.Torch) -> dsharp.config(backend=Backend.Reference) in the test.fsx file so that I have

loadLibTorchNative()

open DiffSharp
dsharp.config(backend=Backend.Reference)

it still fails in the same way with Trial 1.

Trial 3

If I comment out the native library load code, so that I have

// loadLibTorchNative()

open DiffSharp
dsharp.config(backend=Backend.Reference)

html output works as expected.

image

My conclusion

Because the native library load breaks both Backend.Reference (that doesn't need the native library) and Backend.Torch (that needs the native library) cases, this tells me that the native library load somehow breaks fsdocs.

In none of these examples I get any indication of an error in fsdocs output. I'm copying it below. Debugging this really difficult because it works fine in fsi and I get no error at all in fsdocs so I did lots of blind debugging and this is the summary of what I found out so far.

fsdocs output for Trial 2 (that failed)

dotnet fsdocs watch --eval --strict
restored project state from '.fsdocs/cache'

Inputs for API Docs:
    /home/gunes/git/github/DiffSharp/DiffSharp/src/DiffSharp.Core/bin/Debug/netstandard2.1/DiffSharp.Core.dll

Substitutions/parameters:
  root --> http://localhost:8901/
  fsdocs-authors --> Atılım Güneş Baydin, Don Syme, Barak A. Pearlmutter, Jeffrey Siskind, and DiffSharp contributors
  fsdocs-collection-name --> DiffSharp
  fsdocs-collection-name-link --> https://diffsharp.github.io/
  fsdocs-copyright --> Copyright 2014-2021
  fsdocs-logo-src --> http://localhost:8901/img/logo.png
  fsdocs-navbar-position --> fixed-left
  fsdocs-theme --> default
  fsdocs-logo-link --> https://diffsharp.github.io/
  fsdocs-license-link --> https://github.com/DiffSharp/DiffSharp/blob/master/LICENSE.md
  fsdocs-release-notes-link --> https://github.com/DiffSharp/DiffSharp/blob/master/RELEASE_NOTES.md
  fsdocs-package-project-url --> https://diffsharp.github.io/
  fsdocs-package-license-expression --> BSD-2-Clause
  fsdocs-package-tags --> F# fsharp ML AI Machine Learning PyTorch Tensor Automatic Differentiation Gradients
  fsdocs-package-version --> 1.0.0-local-210719
  fsdocs-repository-link --> https://github.com/DiffSharp/DiffSharp/
  fsdocs-repository-branch --> dev
  root --> http://localhost:8901/
using extra content from /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras
Building docs first time...

API docs:
  generating model for 1 assemblies in API docs...
  loading 1 assemblies...
isNetCoreApp = true
  registering entities for assembly DiffSharp.Core...
  reading XML doc for /home/gunes/git/github/DiffSharp/DiffSharp/src/DiffSharp.Core/bin/Debug/netstandard2.1/DiffSharp.Core.dll...
  reading assembly data for /home/gunes/git/github/DiffSharp/DiffSharp/src/DiffSharp.Core/bin/Debug/netstandard2.1/DiffSharp.Core.dll...
  collecting namespaces...
  found namespace DiffSharp in assembly DiffSharp.Core...
  found namespace DiffSharp.Backends in assembly DiffSharp.Core...
  found namespace DiffSharp.Data in assembly DiffSharp.Core...
  found namespace DiffSharp.Distributions in assembly DiffSharp.Core...
  found namespace DiffSharp.Model in assembly DiffSharp.Core...
  found namespace DiffSharp.Optim in assembly DiffSharp.Core...
  found namespace DiffSharp.Util in assembly DiffSharp.Core...
  found 25 entities in namespace DiffSharp...
  found 2 entities in namespace DiffSharp.Backends...
  found 5 entities in namespace DiffSharp.Data...
  found 7 entities in namespace DiffSharp.Distributions...
  found 24 entities in namespace DiffSharp.Model...
  found 4 entities in namespace DiffSharp.Optim...
  found 11 entities in namespace DiffSharp.Util...
  found 7 namespaces...

Content:
  generating model for docs/tutorial-vae.fsx --> ./tutorial-vae.html
  generating model for docs/tutorial-gan.fsx --> ./tutorial-gan.html
  generating model for docs/install.fsx --> ./install.html
  generating model for docs/extensions.fsx --> ./extensions.html
  generating model for docs/probability-distributions.fsx --> ./probability-distributions.html
  generating model for docs/tensors.fsx --> ./tensors.html
  generating model for docs/optimization.fsx --> ./optimization.html
  generating model for docs/quickstart.fsx --> ./quickstart.html
  generating model for docs/test.fsx --> ./test.html
  generating model for docs/nested-derivatives.fsx --> ./nested-derivatives.html
  generating model for docs/index.fsx --> ./index.html
  generating model for docs/models.fsx --> ./models.html
  generating model for docs/tutorial-classifier.fsx --> ./tutorial-classifier.html
  preparing docs/README.md --> ./README.html
  generating model for docs/tutorial-language.fsx --> ./tutorial-language.html
  generating model for docs/differentiable-programming.fsx --> ./differentiable-programming.html

Write API Docs:
  Generating tmp/watch/reference/index.html
  Generating tmp/watch/reference/diffsharp.html
  Generating tmp/watch/reference/diffsharp-backends.html
  Generating tmp/watch/reference/diffsharp-data.html
  Generating tmp/watch/reference/diffsharp-distributions.html
  Generating tmp/watch/reference/diffsharp-model.html
  Generating tmp/watch/reference/diffsharp-optim.html
  Generating tmp/watch/reference/diffsharp-util.html
  Generating tmp/watch/reference/diffsharp-backendmodule.html
  Generating tmp/watch/reference/diffsharp-compose.html
  Generating tmp/watch/reference/diffsharp-devicemodule.html
  Generating tmp/watch/reference/diffsharp-dtypemodule.html
  Generating tmp/watch/reference/diffsharp-dtypeautoopens.html
  Generating tmp/watch/reference/diffsharp-numerical.html
  Generating tmp/watch/reference/diffsharp-numerical-shorten.html
  Generating tmp/watch/reference/diffsharp-scalarextensions.html
  Generating tmp/watch/reference/diffsharp-shapemodule.html
  Generating tmp/watch/reference/diffsharp-shapeautoopens.html
  Generating tmp/watch/reference/diffsharp-shorten.html
  Generating tmp/watch/reference/diffsharp-slicingextensions.html
  Generating tmp/watch/reference/diffsharp-model-modelautoopens.html
  Generating tmp/watch/reference/diffsharp-util-array.html
  Generating tmp/watch/reference/diffsharp-util-arraynd.html
  Generating tmp/watch/reference/diffsharp-util-dataconverter.html
  Generating tmp/watch/reference/diffsharp-util-dictionary.html
  Generating tmp/watch/reference/diffsharp-util-extensionautoopens.html
  Generating tmp/watch/reference/diffsharp-util-randommodule.html
  Generating tmp/watch/reference/diffsharp-util-seq.html
  Generating tmp/watch/reference/diffsharp-util-utilautoopens.html
  Generating tmp/watch/reference/diffsharp-backend.html
  Generating tmp/watch/reference/diffsharp-backendfunctionality-1.html
  Generating tmp/watch/reference/diffsharp-binaryop.html
  Generating tmp/watch/reference/diffsharp-binaryopelementwise.html
  Generating tmp/watch/reference/diffsharp-device.html
  Generating tmp/watch/reference/diffsharp-devicetype.html
  Generating tmp/watch/reference/diffsharp-dtype.html
  Generating tmp/watch/reference/diffsharp-shape.html
  Generating tmp/watch/reference/diffsharp-tensor.html
  Generating tmp/watch/reference/diffsharp-tensorop.html
  Generating tmp/watch/reference/diffsharp-unaryop.html
  Generating tmp/watch/reference/diffsharp-unaryopelementwise.html
  Generating tmp/watch/reference/diffsharp-dsharp.html
  Generating tmp/watch/reference/diffsharp-scalar.html
  Generating tmp/watch/reference/diffsharp-backends-backendtensorstatics.html
  Generating tmp/watch/reference/diffsharp-backends-rawtensor.html
  Generating tmp/watch/reference/diffsharp-data-dataloader.html
  Generating tmp/watch/reference/diffsharp-data-dataset.html
  Generating tmp/watch/reference/diffsharp-data-datasetsubset.html
  Generating tmp/watch/reference/diffsharp-data-tensordataset.html
  Generating tmp/watch/reference/diffsharp-data-textdataset.html
  Generating tmp/watch/reference/diffsharp-distributions-bernoulli.html
  Generating tmp/watch/reference/diffsharp-distributions-categorical.html
  Generating tmp/watch/reference/diffsharp-distributions-distribution-1.html
  Generating tmp/watch/reference/diffsharp-distributions-empirical-1.html
  Generating tmp/watch/reference/diffsharp-distributions-normal.html
  Generating tmp/watch/reference/diffsharp-distributions-tensordistribution.html
  Generating tmp/watch/reference/diffsharp-distributions-uniform.html
  Generating tmp/watch/reference/diffsharp-model-batchnorm1d.html
  Generating tmp/watch/reference/diffsharp-model-batchnorm2d.html
  Generating tmp/watch/reference/diffsharp-model-batchnorm3d.html
  Generating tmp/watch/reference/diffsharp-model-conv1d.html
  Generating tmp/watch/reference/diffsharp-model-conv2d.html
  Generating tmp/watch/reference/diffsharp-model-conv3d.html
  Generating tmp/watch/reference/diffsharp-model-convtranspose1d.html
  Generating tmp/watch/reference/diffsharp-model-convtranspose2d.html
  Generating tmp/watch/reference/diffsharp-model-convtranspose3d.html
  Generating tmp/watch/reference/diffsharp-model-dropout.html
  Generating tmp/watch/reference/diffsharp-model-dropout2d.html
  Generating tmp/watch/reference/diffsharp-model-dropout3d.html
  Generating tmp/watch/reference/diffsharp-model-lstm.html
  Generating tmp/watch/reference/diffsharp-model-lstmcell.html
  Generating tmp/watch/reference/diffsharp-model-linear.html
  Generating tmp/watch/reference/diffsharp-model-mode.html
  Generating tmp/watch/reference/diffsharp-model-model.html
  Generating tmp/watch/reference/diffsharp-model-parameter.html
  Generating tmp/watch/reference/diffsharp-model-parameterdict.html
  Generating tmp/watch/reference/diffsharp-model-rnn.html
  Generating tmp/watch/reference/diffsharp-model-rnncell.html
  Generating tmp/watch/reference/diffsharp-model-vae.html
  Generating tmp/watch/reference/diffsharp-model-weight.html
  Generating tmp/watch/reference/diffsharp-optim-adam.html
  Generating tmp/watch/reference/diffsharp-optim-optimizer.html
  Generating tmp/watch/reference/diffsharp-optim-sgd.html
  Generating tmp/watch/reference/diffsharp-optim-optim.html
  Generating tmp/watch/reference/diffsharp-util-globalnestinglevel.html
  Generating tmp/watch/reference/diffsharp-util-nestinglevel.html
  Generating tmp/watch/reference/diffsharp-util-random.html

Write Content:
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/Dockerfile --> ./Dockerfile
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/NuGet.config --> ./NuGet.config
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/navbar-fixed-right.css --> ./content/navbar-fixed-right.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-custom.css --> ./content/fsdocs-custom.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-tips.js --> ./content/fsdocs-tips.js
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-default.css --> ./content/fsdocs-default.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/navbar-fixed-left.css --> ./content/navbar-fixed-left.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-search.js --> ./content/fsdocs-search.js
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy.png --> ./content/img/copy.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy-md.png --> ./content/img/copy-md.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy-md-blue.png --> ./content/img/copy-md-blue.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy-blue.png --> ./content/img/copy-blue.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/github.png --> ./content/img/github.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/github-blue.png --> ./content/img/github-blue.png
  writing docs/tutorial-vae.fsx --> ./tutorial-vae.html
  copying docs/mnist-samples.png --> ./mnist-samples.png
  writing docs/tutorial-gan.fsx --> ./tutorial-gan.html
  writing docs/install.fsx --> ./install.html
  copying docs/Dockerfile --> ./Dockerfile
  writing docs/extensions.fsx --> ./extensions.html
  writing docs/probability-distributions.fsx --> ./probability-distributions.html
  writing docs/tensors.fsx --> ./tensors.html
  writing docs/optimization.fsx --> ./optimization.html
  writing docs/quickstart.fsx --> ./quickstart.html
  copying docs/favicon.ico --> ./favicon.ico
  writing docs/test.fsx --> ./test.html
  writing docs/nested-derivatives.fsx --> ./nested-derivatives.html
  copying docs/mnist-sample.png --> ./mnist-sample.png
  writing docs/index.fsx --> ./index.html
  writing docs/models.fsx --> ./models.html
  writing docs/tutorial-classifier.fsx --> ./tutorial-classifier.html
  writing docs/README.md --> ./README.html
  copying docs/test.png --> ./test.png
  writing docs/tutorial-language.fsx --> ./tutorial-language.html
  writing docs/differentiable-programming.fsx --> ./differentiable-programming.html
  copying docs/img/anim-intro-2.gif --> ./img/anim-intro-2.gif
  copying docs/img/diffsharp-logo-text.png --> ./img/diffsharp-logo-text.png
  copying docs/img/badge-binder.svg --> ./img/badge-binder.svg
  copying docs/img/badge-script.svg --> ./img/badge-script.svg
  copying docs/img/badge-notebook.svg --> ./img/badge-notebook.svg
  copying docs/img/diffsharp-logo.png --> ./img/diffsharp-logo.png
  copying docs/img/anim-intro-1.gif --> ./img/anim-intro-1.gif
  copying docs/content/fsdocs-custom.css --> ./content/fsdocs-custom.css
  copying docs/content/fsdocs-default.css --> ./content/fsdocs-default.css
  copying docs/content/img/copy.png --> ./content/img/copy.png
  copying docs/content/img/copy-md.png --> ./content/img/copy-md.png
  copying docs/content/img/copy-md-blue.png --> ./content/img/copy-md-blue.png
  copying docs/content/img/copy-blue.png --> ./content/img/copy-blue.png
  copying docs/content/img/github.png --> ./content/img/github.png
  copying docs/content/img/github-blue.png --> ./content/img/github-blue.png
starting server on http://localhost:8901 for content in /home/gunes/git/github/DiffSharp/DiffSharp/tmp/watch
launching browser window to open http://localhost:8901/

Press any key to continue ...[14:57:15 INF] Smooth! Suave listener started in 22.115ms with binding 127.0.0.1:8901
Opening in existing browser session.

fsdocs output for Trial 3 (that worked):

dotnet fsdocs watch --eval --strict
restored project state from '.fsdocs/cache'

Inputs for API Docs:
    /home/gunes/git/github/DiffSharp/DiffSharp/src/DiffSharp.Core/bin/Debug/netstandard2.1/DiffSharp.Core.dll

Substitutions/parameters:
  root --> http://localhost:8901/
  fsdocs-authors --> Atılım Güneş Baydin, Don Syme, Barak A. Pearlmutter, Jeffrey Siskind, and DiffSharp contributors
  fsdocs-collection-name --> DiffSharp
  fsdocs-collection-name-link --> https://diffsharp.github.io/
  fsdocs-copyright --> Copyright 2014-2021
  fsdocs-logo-src --> http://localhost:8901/img/logo.png
  fsdocs-navbar-position --> fixed-left
  fsdocs-theme --> default
  fsdocs-logo-link --> https://diffsharp.github.io/
  fsdocs-license-link --> https://github.com/DiffSharp/DiffSharp/blob/master/LICENSE.md
  fsdocs-release-notes-link --> https://github.com/DiffSharp/DiffSharp/blob/master/RELEASE_NOTES.md
  fsdocs-package-project-url --> https://diffsharp.github.io/
  fsdocs-package-license-expression --> BSD-2-Clause
  fsdocs-package-tags --> F# fsharp ML AI Machine Learning PyTorch Tensor Automatic Differentiation Gradients
  fsdocs-package-version --> 1.0.0-local-210719
  fsdocs-repository-link --> https://github.com/DiffSharp/DiffSharp/
  fsdocs-repository-branch --> dev
  root --> http://localhost:8901/
using extra content from /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras
Building docs first time...

API docs:
  generating model for 1 assemblies in API docs...
  loading 1 assemblies...
isNetCoreApp = true
  registering entities for assembly DiffSharp.Core...
  reading XML doc for /home/gunes/git/github/DiffSharp/DiffSharp/src/DiffSharp.Core/bin/Debug/netstandard2.1/DiffSharp.Core.dll...
  reading assembly data for /home/gunes/git/github/DiffSharp/DiffSharp/src/DiffSharp.Core/bin/Debug/netstandard2.1/DiffSharp.Core.dll...
  collecting namespaces...
  found namespace DiffSharp in assembly DiffSharp.Core...
  found namespace DiffSharp.Backends in assembly DiffSharp.Core...
  found namespace DiffSharp.Data in assembly DiffSharp.Core...
  found namespace DiffSharp.Distributions in assembly DiffSharp.Core...
  found namespace DiffSharp.Model in assembly DiffSharp.Core...
  found namespace DiffSharp.Optim in assembly DiffSharp.Core...
  found namespace DiffSharp.Util in assembly DiffSharp.Core...
  found 25 entities in namespace DiffSharp...
  found 2 entities in namespace DiffSharp.Backends...
  found 5 entities in namespace DiffSharp.Data...
  found 7 entities in namespace DiffSharp.Distributions...
  found 24 entities in namespace DiffSharp.Model...
  found 4 entities in namespace DiffSharp.Optim...
  found 11 entities in namespace DiffSharp.Util...
  found 7 namespaces...

Content:
  generating model for docs/tutorial-vae.fsx --> ./tutorial-vae.html
  generating model for docs/tutorial-gan.fsx --> ./tutorial-gan.html
  generating model for docs/install.fsx --> ./install.html
  generating model for docs/extensions.fsx --> ./extensions.html
  generating model for docs/probability-distributions.fsx --> ./probability-distributions.html
  generating model for docs/tensors.fsx --> ./tensors.html
  generating model for docs/optimization.fsx --> ./optimization.html
  generating model for docs/quickstart.fsx --> ./quickstart.html
  generating model for docs/test.fsx --> ./test.html
  generating model for docs/test.fsx --> ./test.ipynb
  generating model for docs/test.fsx --> ./test.fsx
  generating model for docs/nested-derivatives.fsx --> ./nested-derivatives.html
  generating model for docs/index.fsx --> ./index.html
  generating model for docs/models.fsx --> ./models.html
  generating model for docs/tutorial-classifier.fsx --> ./tutorial-classifier.html
  preparing docs/README.md --> ./README.html
  generating model for docs/tutorial-language.fsx --> ./tutorial-language.html
  generating model for docs/differentiable-programming.fsx --> ./differentiable-programming.html

Write API Docs:
  Generating tmp/watch/reference/index.html
  Generating tmp/watch/reference/diffsharp.html
  Generating tmp/watch/reference/diffsharp-backends.html
  Generating tmp/watch/reference/diffsharp-data.html
  Generating tmp/watch/reference/diffsharp-distributions.html
  Generating tmp/watch/reference/diffsharp-model.html
  Generating tmp/watch/reference/diffsharp-optim.html
  Generating tmp/watch/reference/diffsharp-util.html
  Generating tmp/watch/reference/diffsharp-backendmodule.html
  Generating tmp/watch/reference/diffsharp-compose.html
  Generating tmp/watch/reference/diffsharp-devicemodule.html
  Generating tmp/watch/reference/diffsharp-dtypemodule.html
  Generating tmp/watch/reference/diffsharp-dtypeautoopens.html
  Generating tmp/watch/reference/diffsharp-numerical.html
  Generating tmp/watch/reference/diffsharp-numerical-shorten.html
  Generating tmp/watch/reference/diffsharp-scalarextensions.html
  Generating tmp/watch/reference/diffsharp-shapemodule.html
  Generating tmp/watch/reference/diffsharp-shapeautoopens.html
  Generating tmp/watch/reference/diffsharp-shorten.html
  Generating tmp/watch/reference/diffsharp-slicingextensions.html
  Generating tmp/watch/reference/diffsharp-model-modelautoopens.html
  Generating tmp/watch/reference/diffsharp-util-array.html
  Generating tmp/watch/reference/diffsharp-util-arraynd.html
  Generating tmp/watch/reference/diffsharp-util-dataconverter.html
  Generating tmp/watch/reference/diffsharp-util-dictionary.html
  Generating tmp/watch/reference/diffsharp-util-extensionautoopens.html
  Generating tmp/watch/reference/diffsharp-util-randommodule.html
  Generating tmp/watch/reference/diffsharp-util-seq.html
  Generating tmp/watch/reference/diffsharp-util-utilautoopens.html
  Generating tmp/watch/reference/diffsharp-backend.html
  Generating tmp/watch/reference/diffsharp-backendfunctionality-1.html
  Generating tmp/watch/reference/diffsharp-binaryop.html
  Generating tmp/watch/reference/diffsharp-binaryopelementwise.html
  Generating tmp/watch/reference/diffsharp-device.html
  Generating tmp/watch/reference/diffsharp-devicetype.html
  Generating tmp/watch/reference/diffsharp-dtype.html
  Generating tmp/watch/reference/diffsharp-shape.html
  Generating tmp/watch/reference/diffsharp-tensor.html
  Generating tmp/watch/reference/diffsharp-tensorop.html
  Generating tmp/watch/reference/diffsharp-unaryop.html
  Generating tmp/watch/reference/diffsharp-unaryopelementwise.html
  Generating tmp/watch/reference/diffsharp-dsharp.html
  Generating tmp/watch/reference/diffsharp-scalar.html
  Generating tmp/watch/reference/diffsharp-backends-backendtensorstatics.html
  Generating tmp/watch/reference/diffsharp-backends-rawtensor.html
  Generating tmp/watch/reference/diffsharp-data-dataloader.html
  Generating tmp/watch/reference/diffsharp-data-dataset.html
  Generating tmp/watch/reference/diffsharp-data-datasetsubset.html
  Generating tmp/watch/reference/diffsharp-data-tensordataset.html
  Generating tmp/watch/reference/diffsharp-data-textdataset.html
  Generating tmp/watch/reference/diffsharp-distributions-bernoulli.html
  Generating tmp/watch/reference/diffsharp-distributions-categorical.html
  Generating tmp/watch/reference/diffsharp-distributions-distribution-1.html
  Generating tmp/watch/reference/diffsharp-distributions-empirical-1.html
  Generating tmp/watch/reference/diffsharp-distributions-normal.html
  Generating tmp/watch/reference/diffsharp-distributions-tensordistribution.html
  Generating tmp/watch/reference/diffsharp-distributions-uniform.html
  Generating tmp/watch/reference/diffsharp-model-batchnorm1d.html
  Generating tmp/watch/reference/diffsharp-model-batchnorm2d.html
  Generating tmp/watch/reference/diffsharp-model-batchnorm3d.html
  Generating tmp/watch/reference/diffsharp-model-conv1d.html
  Generating tmp/watch/reference/diffsharp-model-conv2d.html
  Generating tmp/watch/reference/diffsharp-model-conv3d.html
  Generating tmp/watch/reference/diffsharp-model-convtranspose1d.html
  Generating tmp/watch/reference/diffsharp-model-convtranspose2d.html
  Generating tmp/watch/reference/diffsharp-model-convtranspose3d.html
  Generating tmp/watch/reference/diffsharp-model-dropout.html
  Generating tmp/watch/reference/diffsharp-model-dropout2d.html
  Generating tmp/watch/reference/diffsharp-model-dropout3d.html
  Generating tmp/watch/reference/diffsharp-model-lstm.html
  Generating tmp/watch/reference/diffsharp-model-lstmcell.html
  Generating tmp/watch/reference/diffsharp-model-linear.html
  Generating tmp/watch/reference/diffsharp-model-mode.html
  Generating tmp/watch/reference/diffsharp-model-model.html
  Generating tmp/watch/reference/diffsharp-model-parameter.html
  Generating tmp/watch/reference/diffsharp-model-parameterdict.html
  Generating tmp/watch/reference/diffsharp-model-rnn.html
  Generating tmp/watch/reference/diffsharp-model-rnncell.html
  Generating tmp/watch/reference/diffsharp-model-vae.html
  Generating tmp/watch/reference/diffsharp-model-weight.html
  Generating tmp/watch/reference/diffsharp-optim-adam.html
  Generating tmp/watch/reference/diffsharp-optim-optimizer.html
  Generating tmp/watch/reference/diffsharp-optim-sgd.html
  Generating tmp/watch/reference/diffsharp-optim-optim.html
  Generating tmp/watch/reference/diffsharp-util-globalnestinglevel.html
  Generating tmp/watch/reference/diffsharp-util-nestinglevel.html
  Generating tmp/watch/reference/diffsharp-util-random.html

Write Content:
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/Dockerfile --> ./Dockerfile
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/NuGet.config --> ./NuGet.config
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/navbar-fixed-right.css --> ./content/navbar-fixed-right.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-custom.css --> ./content/fsdocs-custom.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-tips.js --> ./content/fsdocs-tips.js
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-default.css --> ./content/fsdocs-default.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/navbar-fixed-left.css --> ./content/navbar-fixed-left.css
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/fsdocs-search.js --> ./content/fsdocs-search.js
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy.png --> ./content/img/copy.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy-md.png --> ./content/img/copy-md.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy-md-blue.png --> ./content/img/copy-md-blue.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/copy-blue.png --> ./content/img/copy-blue.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/github.png --> ./content/img/github.png
  copying /home/gunes/.nuget/packages/fsharp.formatting.commandtool/11.2.0/extras/content/img/github-blue.png --> ./content/img/github-blue.png
  writing docs/tutorial-vae.fsx --> ./tutorial-vae.html
  copying docs/mnist-samples.png --> ./mnist-samples.png
  writing docs/tutorial-gan.fsx --> ./tutorial-gan.html
  writing docs/install.fsx --> ./install.html
  copying docs/Dockerfile --> ./Dockerfile
  writing docs/extensions.fsx --> ./extensions.html
  writing docs/probability-distributions.fsx --> ./probability-distributions.html
  writing docs/tensors.fsx --> ./tensors.html
  writing docs/optimization.fsx --> ./optimization.html
  writing docs/quickstart.fsx --> ./quickstart.html
  copying docs/favicon.ico --> ./favicon.ico
  writing docs/test.fsx --> ./test.html
  writing docs/test.fsx --> ./test.ipynb
  writing docs/test.fsx --> ./test.fsx
  writing docs/nested-derivatives.fsx --> ./nested-derivatives.html
  copying docs/mnist-sample.png --> ./mnist-sample.png
  writing docs/index.fsx --> ./index.html
  writing docs/models.fsx --> ./models.html
  writing docs/tutorial-classifier.fsx --> ./tutorial-classifier.html
  writing docs/README.md --> ./README.html
  copying docs/test.png --> ./test.png
  writing docs/tutorial-language.fsx --> ./tutorial-language.html
  writing docs/differentiable-programming.fsx --> ./differentiable-programming.html
  copying docs/img/anim-intro-2.gif --> ./img/anim-intro-2.gif
  copying docs/img/diffsharp-logo-text.png --> ./img/diffsharp-logo-text.png
  copying docs/img/badge-binder.svg --> ./img/badge-binder.svg
  copying docs/img/badge-script.svg --> ./img/badge-script.svg
  copying docs/img/badge-notebook.svg --> ./img/badge-notebook.svg
  copying docs/img/diffsharp-logo.png --> ./img/diffsharp-logo.png
  copying docs/img/anim-intro-1.gif --> ./img/anim-intro-1.gif
  copying docs/content/fsdocs-custom.css --> ./content/fsdocs-custom.css
  copying docs/content/fsdocs-default.css --> ./content/fsdocs-default.css
  copying docs/content/img/copy.png --> ./content/img/copy.png
  copying docs/content/img/copy-md.png --> ./content/img/copy-md.png
  copying docs/content/img/copy-md-blue.png --> ./content/img/copy-md-blue.png
  copying docs/content/img/copy-blue.png --> ./content/img/copy-blue.png
  copying docs/content/img/github.png --> ./content/img/github.png
  copying docs/content/img/github-blue.png --> ./content/img/github-blue.png
starting server on http://localhost:8901 for content in /home/gunes/git/github/DiffSharp/DiffSharp/tmp/watch
launching browser window to open http://localhost:8901/

Press any key to continue ...[14:58:33 INF] Smooth! Suave listener started in 21.681ms with binding 127.0.0.1:8901
Opening in existing browser session.
gbaydin commented 3 years ago

Tagging @dsyme because he has familiarity with DiffSharp and how it uses native libs.