diskuv / dkml-installer-ocaml

The Windows-friendly distribution of OCaml
Apache License 2.0
63 stars 2 forks source link

How to pass --enable-imprecise-c99-float-ops manually? #23

Closed Kakadu closed 1 year ago

Kakadu commented 1 year ago

Yes, I'm trying it inside virtualbox

jonahbeckford commented 1 year ago

If you look in the release notes https://gitlab.com/diskuv-ocaml/distributions/dkml/-/blob/main/contributors/changes/v1.1.0.md hopefully you can see:

(
  (feature_flag_imprecise_c99_float_ops)
)

Write that as the file $env:ProgramData\DiskuvOCaml\conf\ocamlcompiler.sexp (inside virtualbox) before you run the installer.

There is an example of doing that in https://github.com/diskuv/dkml-installer-ocaml/blob/7fd94d46e1c41c6e1524819cbcc098ecec6380dc/vagrant/win32/test-language.ps1#L18-L23 which is used by a Vagrant CI (which uses VirtualBox on macOS to run Windows).

Kakadu commented 1 year ago

I tried to do that and it looks like that flag for disabling is passed explicitly, so enabling it back may depend on flags order. Also, I don't get meaning of "$env:ProgramData\DiskuvOCaml\conf\ocamlcompiler.sexp", where it should be located?

See the screenshot (I renamed sexp -> sexp2 to temporary disable my setting and see that disabling flag is passed from somewhere else)

image

Kakadu commented 1 year ago

Also, after deinstallation it lefts some Diskuv-related directories. Is it normal?

image

jonahbeckford commented 1 year ago

Weird how I missed that this ticket was still open. Sorry!

https://github.com/diskuv/dkml-installer-ocaml/issues/27 shows the technique does work. But it sounds like you may not know where your ProgramData folder is.

Can you open PowerShell in a brand new Virtual Box, and enter the .ps1 command exactly as I showed? That is line 21-23. Then tell me if that command failed. (If it didn’t fail, go ahead and run the installer)

Kakadu commented 1 year ago

failed

PS C:\Users\user> Set-Content -Path "$env:ProgramData\DiskuvOCaml\conf\ocamlcompiler.sexp" -Value "((feature_flag_imprecise_c99_float_ops))"
Set-Content : Could not find a part of the path 'C:\ProgramData\DiskuvOCaml\conf\ocamlcompiler.sexp'.
At line:1 char:1
+ Set-Content -Path "$env:ProgramData\DiskuvOCaml\conf\ocamlcompiler.se ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\ProgramData\...mlcompiler.sexp:String) [Set-Content], DirectoryNo
   tFoundException
    + FullyQualifiedErrorId : GetContentWriterDirectoryNotFoundError,Microsoft.PowerShell.Commands.SetContentComman
   d

PS C:\Users\user>
jonahbeckford commented 1 year ago

Ah. You need a mkdir first. See below.

Here is the full callout for the upcoming release ( https://gitlab.com/diskuv-ocaml/distributions/dkml/-/blob/cc5a524d85d90eb208211220ad25c8e420b28ac0/contributors/changes/v1.2.0.md ):

Callout to VirtualBox users: You must do the following in a PowerShell terminal inside VirtualBox before running the installer:

mkdir C:\ProgramData\DiskuvOCaml\conf\
Set-Content -Path "C:\ProgramData\DiskuvOCaml\conf\ocamlcompiler.sexp" -Value "((feature_flag_imprecise_c99_float_ops))"