Comments (4)
As discussed in Zulip I would long term recommend to disable the path length restriction in Windows by a registry switch as explained here:
This works since the "anniversary update" of Windows 10 (2016) - so on all maintained Windows systems.
BUT there are several places in OCaml and related insfrastructure which restrict path length on their own on Windows based on the MAX_PATH Windows C API define. This must be removed to work.
I checked that cygwin (which we are using to build Coq Platform) can handle arbitrary length paths (some things get funny beyond 4k) if the above registry change is made.
from platform.
Hi folks,
I've closed ejgallego/coq-serapi#377 in favor of this issue, as it was a duplicate, however note the useful information there.
Also it seems to me that we could close #358 if we find a solution for this.
Manas Jayanth was very kind to provide us with some more info about OCaml path lenght and Windows:
Have you had the chance to read my post on the forum?
https://discuss.ocaml.org/t/ocaml-on-windows-the-long-paths-issue/13283
I found this while working on LIGO, I believe this is the last commit that built on Windows correctly: https://gitlab.com/ligolang/ligo/-/commit/b3f561b8d530a7c49a7f504b8ae558475fd2982b
It needed long paths support.
Also Manas pointed out to these remarks by David to their post on discuss:
Nice! Thanks for writing it up 🙂
For me personally, the focus is steering OCaml 5.x back to having MSVC support (part of finishing off restoring what was "broken" by the multicore merge) but this is the kind of thing which I hope will be able to get more upstream support in the future. In particular, we need to have a big overhaul of the "minimum Windows version"... OCaml 5.2, or possibly 5.3, is likely to raise the Win32 API minimum to needing Windows 8.1, and there are lots of things like this where we can start to take advantage of not being remotely compatible with old versions of Windows. I wouldn't expect the compiler work for this to be too bad, because we already have our linker (in flexlink) which can apply manifests (it does that already on MSVC)... but it's really neat that you've been able to make it work transparently in esy without needing the upstream support straightaway!NB I've draw a difference between our "supported" versions of Windows and the "required" minimum version of Windows. I don't think the README files on ocaml/ocaml are properly up-to-date, but we support Windows 10 and 11 but, at least time I checked, OCaml programs still run on Windows Vista and Windows 7 but not on Windows 2000 or XP, so we support Windows 10 & 11 but we require Windows Vista.
from platform.
@ejgallego : thanks for the pointers. I have already seen that setting the registry entry is not enough, but that one needs the manifest in addition (possibly only this).
The question is what is the best point to manifest all involved executables. One could do it in a somewhat hacky way, say go over the bin folder after coq is installed, but I would prefer a more tool supported solution. So it should either be build into the OCaml linker or into dune.
from platform.
Indeed it would be great to get native OCaml support; I guess the next step for us is to check if an upstream issue does exist, or else forward this issue upstream so we can involve the rest of the OCaml windows team in the discussion.
from platform.
Related Issues (20)
- "Argument list too long" error when installing coq-unimath HOT 8
- Add path length check on root path on Windows (for serapi).
- CI: update Github actions HOT 2
- snap-installed Coq Platform does not work in emacs/ProofGeneral HOT 3
- coq-platform snap: missing icons in coqide HOT 2
- changed code signature in macOS release 8.17.1~2023.08? HOT 2
- coq_makefile broken
- Tracker issue for 8.18 pick creation
- Scripts: opam update is done to late - it must be done before switch creation
- Add coq-tools / coq-bug-minimizer to the platform? HOT 2
- Add coinduction to the Coq Platform
- Add the libraries for undecidability and first-order logic to the Platform HOT 4
- Coq Platform & OCaml 5 HOT 1
- CI: auto cancel workflow runs on new push to PR branch
- Snap release 8.18 / 2023.11.0 HOT 1
- Missing Windows 32bit binaries in 2023.11.0 release HOT 3
- 2023.11.0 on Mac M2: coq-unicoq, coq-relation-algebra fail with seg fault HOT 14
- README incorrectly says there's no binary release for Apple Silicon HOT 1
- Tracker issue for 8.19 package tag creation
- Please avoid Dune 3.13-3.15 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from platform.