Skip to content
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

Changes for OCaml 4.11.2 #8898

Merged
merged 61 commits into from
Jun 16, 2021
Merged

Changes for OCaml 4.11.2 #8898

merged 61 commits into from
Jun 16, 2021

Conversation

psteckler
Copy link
Member

@psteckler psteckler commented May 17, 2021

Allow source code to be compiled with OCaml 4.11.2.

A couple of earlier PRs made some of the needed changes:

Other boilerplate changes:

  • use [@sexp.opaque] annotations on types instead of the sexp_opaque type constructor (this one breaks the versioned-type-change linter test in CI; that's a spurious failure)
  • type annotations on some SQL query parameters, which would otherwise fail
  • let%bind and let%map with specified modules no longer mention Let_syntax; instead of Async.Deferred, use just Async
  • ppx code changed to reflect changes to AST structure

The opam.export file has been updated to use Jane St packages compatible with 4.11.2. Other packages have been updated as well. There are a few changes related to changes in the Jane St library structure (Heap becomes Paired_heap, for example).

The Docker Rosetta and toolchain files have been updated.

Warning 67, "unused functor parameter", is disabled for some signatures, which wasn't being reported in 4.07.1.

The submodules for forked libraries async_kernel, graphql_ppx, ppx_optcomp, and rpc_parallel have been updated, and READMEs added to them to describe the forks. ppx_version, not a fork, is updated.

A fork of ppx_deriving_yojson was created, and added as a submodule, because the latest version compatible with other libraries generates polymorphic equality checks. That's a temporary situation, more recent versions of the library should work when OCaml and Jane St libraries are updated again.

Updated the submodule references to MinaProtocol from CodaProtocol where applicable.

@psteckler psteckler requested review from bkase, imeckler, mrmr1993 and a team as code owners May 17, 2021 23:59
@psteckler psteckler marked this pull request as draft May 17, 2021 23:59
@psteckler psteckler added the ci-build-me Add this label to trigger a circle+buildkite build for this branch label May 17, 2021
Base automatically changed from feature/no-poly-eq to compatible June 2, 2021 22:56
@psteckler psteckler changed the title [DO NOT MERGE] Changes for OCaml 4.11.2 Changes for OCaml 4.11.2 Jun 3, 2021
@psteckler psteckler marked this pull request as ready for review June 3, 2021 21:10
@lk86 lk86 linked an issue Jun 8, 2021 that may be closed by this pull request
Copy link
Contributor

@lk86 lk86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed all non-ml files and they look solid

src/lib/downloader/downloader.ml Outdated Show resolved Hide resolved
@@ -165,10 +165,6 @@ let%test_unit "checkpoint read" =
~expect:cp_sorted cp_alist ;
close db ;
close cp ;
let%bind () = File_system.remove_dir db_dir in
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to remove these calls as part of this upgrade?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd removed them because we get: pthread lock: Invalid argument.

I'll see if I can work around that.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After removing these calls, and running the unit test, the temp directories no longer exist in /tmp. Could it be the unit test framework knows to do this?

src/lib/rosetta_models/enums.ml Outdated Show resolved Hide resolved
Copy link
Member

@mrmr1993 mrmr1993 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes address my concerns. Looks good, great job!

@psteckler psteckler removed the ci-build-me Add this label to trigger a circle+buildkite build for this branch label Jun 14, 2021
@psteckler psteckler added the ci-build-me Add this label to trigger a circle+buildkite build for this branch label Jun 15, 2021
assert false
in
[%test_eq: Mock_snark_pool.Resource_pool.Diff.t list]
(List.sort ~compare rebroadcastable3)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't you add these to make the unit test pass?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added the sorting, yes. The equality tests were deleted in compatible, for whatever reason.

@mrmr1993 mrmr1993 merged commit 8130d17 into compatible Jun 16, 2021
@mrmr1993 mrmr1993 deleted the feature/ocaml-4.11.2 branch June 16, 2021 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-build-me Add this label to trigger a circle+buildkite build for this branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

upgrade code to use ocaml upgrade to 4.11.2
3 participants