From: divoplade <d@divoplade.fr>
To: help-guix@gnu.org
Subject: OCaml: incompatible ppx drivers (ppxlib and ocaml-migrate-parsetree)
Date: Wed, 30 Dec 2020 17:55:11 +0100 [thread overview]
Message-ID: <9fba565a28399f9db338b1ccab6777d8a66a98ce.camel@divoplade.fr> (raw)
[-- Attachment #1: Type: text/plain, Size: 1413 bytes --]
Dear guix,
I am trying to build js-of-ocaml. I have created an updated version of
ocaml-compiler-libs, ocaml-migrate-parsetree and ocaml-ppxlib, and
tried to build the latest js_of_ocaml with that, but I get the
following error when building the updated ppxlib:
starting phase `build'
File "_build/default/.ppx/0224ad3443a846e54f1637fccb074e7d/ppx.exe",
line 1, characters 0-0:
Error: Failed to create on-demand ppx rewriter for ppxlib.metaquot; too
many
incompatible ppx drivers were found: ppxlib and ocaml-migrate-
parsetree.
File "_build/default/.ppx/3134a5298fb2c80808cc94dd434856cb/ppx.exe",
line 1, characters 0-0:
Error: Failed to create on-demand ppx rewriter for ppxlib.traverse; too
many
incompatible ppx drivers were found: ppxlib and ocaml-migrate-
parsetree.
File "traverse/dune", line 7, characters 13-48:
7 | (preprocess (pps ppxlib_metaquot ppxlib.runner)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: Too many incompatible ppx drivers were found: ppxlib and
ocaml-migrate-parsetree.
File "ast/ast_helper_lite.mli", line 18, characters 0-17:
18 | open Ocaml_common
^^^^^^^^^^^^^^^^^
Error (warning 33): unused open Ocaml_common.
command "dune" "build" "@install" failed with status 1
builder for `/gnu/store/k7wfvxqbp07f8idjsbzi699v5y163j24-ocaml-ppxlib-
0.20.0.drv' failed with exit code 1
Why are these two packages "incompatible"? Do you understand what is
happening?
[-- Attachment #2: jsoo.scm --]
[-- Type: text/x-scheme, Size: 5684 bytes --]
(use-modules (guix packages))
(use-modules (guix download))
(use-modules (guix git-download))
(use-modules (guix build-system dune))
(use-modules (gnu packages ocaml))
(use-modules ((guix licenses) #:prefix license:))
(define-public ocaml-compiler-libs
(package
(name "ocaml-compiler-libs")
(version "0.12.3")
(home-page "https://github.com/janestreet/ocaml-compiler-libs")
(source
(origin
(method git-fetch)
(uri (git-reference
(url (string-append home-page ".git"))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"00nrar7h2pyflbdiq6wwwrb4k5jh9iff0jllihzm6ms8d5pspsg5"))))
(build-system dune-build-system)
(arguments `(#:tests? #f))
(properties `((upstream-name . "ocaml-compiler-libs")))
(synopsis "Compiler libraries repackaged")
(description "This package simply repackages the OCaml compiler libraries
so they don't expose everything at toplevel. For instance, @code{Ast_helper}
is now @code{Ocaml_common.Ast_helper}.")
(license license:expat)))
(define-public ocaml-migrate-parsetree
(package
(name "ocaml-migrate-parsetree")
(version "1.8.0")
(home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
(source
(origin
(method git-fetch)
(uri (git-reference
(url (string-append home-page ".git"))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f))
(propagated-inputs
`(("ocaml-ppx-derivers" ,ocaml-ppx-derivers)
("ocamlbuild" ,ocamlbuild)
("ocaml-result" ,ocaml-result)))
(properties `((upstream-name . "ocaml-migrate-parsetree")))
(synopsis "OCaml parsetree converter")
(description "This library converts between parsetrees of different OCaml
versions. For each version, there is a snapshot of the parsetree and conversion
functions to the next and/or previous version.")
(license license:lgpl2.1+)))
(define-public ocaml-ppxlib
(package
(name "ocaml-ppxlib")
(version "0.20.0")
(home-page "https://github.com/ocaml-ppx/ppxlib")
(source
(origin
(method git-fetch)
(uri (git-reference
(url (string-append home-page ".git"))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0nwwvh58hf18wpfh6i5mgsykiaw0rj9vy5id4xmja36s3pm5bcn3"))))
(build-system dune-build-system)
(propagated-inputs
`(("ocaml-ppx-derivers" ,ocaml-ppx-derivers)
("ocaml-compiler-libs" ,ocaml-compiler-libs)
("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
("ocaml-sexplib0" ,ocaml-sexplib0)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'set-topfind
(lambda* (#:key inputs #:allow-other-keys)
;; add the line #directory ".." at the top of each file
;; using #use "topfind";; to be able to find topfind
(let* ((findlib-path (assoc-ref inputs "findlib"))
(findlib-libdir
(string-append findlib-path "/lib/ocaml/site-lib")))
(substitute* '("test/base/test.ml"
"test/code_path/test.ml"
"test/deriving/test.ml"
"test/driver/attributes/test.ml"
"test/driver/non-compressible-suffix/test.ml"
"test/driver/transformations/test.ml")
(("#use \"topfind\";;" all)
(string-append "#directory \"" findlib-libdir "\"\n"
all))))
#t)))))
(synopsis
"Base library and tools for ppx rewriters")
(description
"A comprehensive toolbox for ppx development. It features:
@itemize
@item an OCaml AST / parser / pretty-printer snapshot, to create a full frontend
independent of the version of OCaml;
@item a library for library for ppx rewriters in general, and type-driven code
generators in particular;
@item
a feature-full driver for OCaml AST transformers;
@item a quotation mechanism allowing to write values representing the
OCaml AST in the OCaml syntax;
@item a generator of open recursion classes from type definitions.
@end itemize")
(license license:expat)))
(package
(name "ocaml-js-of-ocaml")
(version "3.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocsigen/js_of_ocaml")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ls3nhavhifsfwwz45k4xw91ml9zi6rnkfp3175b2havbavbzral"))))
(build-system dune-build-system)
(propagated-inputs
`(("ocaml-ppxlib" ,ocaml-ppxlib)
("ocaml-uchar" ,ocaml-uchar)
("ocaml-menhir" ,ocaml-menhir)
("ocaml-reactivedata" ,ocaml-reactivedata)
("ocaml-cmdliner" ,ocaml-cmdliner)
("ocaml-lwt" ,ocaml-lwt)
("ocaml-tyxml" ,ocaml-tyxml)))
(properties `((upstream-name . "js_of_ocaml")))
(home-page
"http://ocsigen.github.io/js_of_ocaml")
(synopsis
"Compiler from OCaml bytecode to Javascript")
(description
"Js_of_ocaml is a compiler from OCaml bytecode to JavaScript.
It makes it possible to run pure OCaml programs in JavaScript
environment like browsers and Node.js
")
(license #f))
next reply other threads:[~2020-12-30 16:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-30 16:55 divoplade [this message]
2020-12-30 18:28 ` OCaml: incompatible ppx drivers (ppxlib and ocaml-migrate-parsetree) Julien Lepiller
2020-12-30 19:30 ` divoplade
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9fba565a28399f9db338b1ccab6777d8a66a98ce.camel@divoplade.fr \
--to=d@divoplade.fr \
--cc=help-guix@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.