-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include Stdlib.Result on OCaml >= 4.08.0 #9
Conversation
Signed-off-by: Anton Bachin <antonbachin@yahoo.com>
I won't be able to test for a while, but reads correct to me. Thank you! |
Want to prod about this, as |
I just ran across the same issue, almost wanted to blame |
I'll be happy to do the release if given access to the repo. |
Sorry for the delay, I missed the notification. The changes look good to me. @aantron I gave you commit access, feel free to merge and do a new release! |
Great, thanks! I will do the merge and release shortly. |
This caused a regression in https://github.com/ocaml-ci/ocaml-version.git:
|
Thanks. I was counting on the opam revdeps test to find things like this. I guess this means we can't expose |
odoc fails:
zed fails:
|
Would it be sufficient to bump the major version to 2 so that affected projects could have appropriate constraints added? Then projects which fail to compile with the 2.x release can add a constraint, like odoc and zed. This is a tough one to address since the changes are, in many cases, going to be multiple dependency steps removed from the broken projects. |
(Just want to note: I'm already and still thinking about it, but I don't have a good solution, especially compared to simply doing nothing and not having the 1.5 release) |
I think we should proceed with this as is (though it may be worth retagging 1.5 to add an explicit type representation). The argument:
I propose to keep the release as 1.5. I'll probably retag it to add the type representation. Then, I'll constrain all packages that are broken, and send each one a PR with a fix. For packages I can't compile or test due to obscure system dependencies or the like, I'll open an issue. This will also be a good time for each project to consider whether they should drop 4.02 support and the dependency on (In other words, it was the addition of @hcarty, @diml, @olafhering, @kit-ty-kate, what do you think? |
It may be worth adding a nested module that projects can EDIT: on balance, I think there are many other reasons why this is a bad idea, including that it's not forward-compatible with a transition away from package |
(although that nested module would make the PRs I would send much simpler :)) |
I just reported the failure, have nothing substantial to add to the issue. |
That's the important bit. 4.02 is quite old now. When we asked around about 4.02 support for Dune, only reason developers cared about 4.02 but now bucklescript has moved to 4.06. I think we should just encourage people to stop using the I haven't looked in details at the other proposed solutions, but I feel that they'll make things more complicated, which is rarely a good thing.
That seems fine to me. Removing the |
The BuckleScript world still needs OCaml 4.02 support, because not all projects have upgraded, and, for example, PPXs are still compiling on 4.02 to support BuckleScript 5.x. However, that should become much less of a need with OMP 1.6.0, which allows writing 4.02 ASTs no matter what OCaml version the PPX was compiled with. I'm about to explain how to use it in a Reason forum post. |
I see. BTW, I feel like the mistake we made was to name this module |
Might help with resolving janestreet/result#9
It seems totally reasonable to cause projects that need 4.02 support a little more maintenance. I've patched ocaml-version along these lines ocurrent/ocaml-version#5 |
@avsm These projects need maintenance in any case. If they choose to keep 4.02 support, and thus depend on But I agree with the underlying sentiment :) Just wanted to clarify. |
I'm happy with releasing 1.5 as-is. Thank you again for your work on this @aantron |
Understood @aantron, thanks for the clarification! I'm also happy for 1.5 to be released like this -- perhaps a short note on discuss.ocaml.org will help uncover any other 4.02.3 holdouts. |
Before janestreet/result#9 on 4.08+ the types `Result.result` and `result` would not unify, thus causing compilation errors when code that was using both ended up interfacing.
...also make sure
Result.t
is defined on all versions.Fixes #8.
cc @TypesLogicsCats @hcarty @hongchangwu