Early Technical Limitations

  1. On first install for Windows running the ./dk DkRun_V2_2.Run -- DkHelloScript_Std.Y33Article --serve example can give:

    [00:00:22.564] [SUCCESS] (3/18) reproducibility or quick typing
    [00:00:22.564] Starting test: focus on what you run
    [00:00:22.566] [.\dk.cmd#3] '.\dk.cmd' DkRun_V2_1.Run '--generator=dune' -- DkHelloScript_Std.AndHelloAgain
    [ERROR][2024-04-29T00:00:43Z] /Run/
          Failed to run
             C:\Users\WDAGUtilityAccount\DkHelloScript\src\DkHelloScript_Std\Y33Article.ml
             (DkHelloScript_Std.Y33Article). Code fa10b83d.
    
          Problem: The DkHelloScript_Std.Y33Article script exited with
             STATUS_ACCESS_VIOLATION (0xC0000005) - The instruction at 0x%08lx
          referenced memory at 0x%08lx. The memory could not be %s.
          Solution: Scroll up to see why.

    If you rerun it, it succeeds.

  2. The ./dk script delegates to the build tool CMake first, and then to OCaml. That design reflects the history that DkCoder was designed first for C packages. The current design means:

    1. ./dk has the performance overhead of spawning CMake on startup.

    2. Ctrl-C does not cleanly kill all of the subprocesses on Windows. You may need to run

      taskkill /f /im ocamlrunx.exe

      to kill those hung processes.

    3. ./dk has command line arguments interpreted by CMake before being interpreted by your script. In particular, nested double-quotes like ./dk ... "here is a nested " double quote"` in PowerShell won't work.

  3. The GUI code was very recently ported to Windows. It has not had memory auditing so segfaults may occur. And playing sounds is known to hang. Do not use for GUIs and music for production code until we message that this has been fixed.