-
Notifications
You must be signed in to change notification settings - Fork 177
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This also ports the PPX to ocaml-migrate-parsetree. The work in this commit, and the preceding one, was done by Andrew Ray (@andrewray) in #374. These two commits are just a more blame-friendly version; the detailed history is visible #374. Some number of follow-on commits will probably be needed to fully stabilize and finalize the port. Also, this commit breaks some packages that depend on Lwt incorrectly. We will probably take steps to break them more softly than is being done by this commit alone. Builds on 4.05 are temporarily disabled, due to jbuilder not working with the 4.05 betas. We will address this by building on trunk later. This port disables coverage via Bisect completely (#319). We will restore that in follow-on work; in the meantime, we expect few enough edits to the test suite to be made that we can run the test suite with coverage in a separate branch that does not yet have this commit, and cherry-pick commits over if any development of the test suite occurs. The build system produced by this commit is a bit of a chimera: it adopts jbuilder without adopting modern packaging best practices. We need to do the latter slowly, to avoid breaking projects that depend on Lwt without proper warning (#293). Work along this direction had already started (#301, #338, #370), and this jbuilder port will make it easier to continue. The port also pre-emptively solves a lot of other issues with the build system. See the pull request for any issue links, to be added over the coming days. Maintainer's note: squash and summary done by Anton Bachin (@aantron).
- Loading branch information
Showing
75 changed files
with
1,014 additions
and
1,569 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,14 @@ | ||
_build | ||
src/unix/lwt_config.ml | ||
src/unix/lwt_config.h | ||
src/unix/lwt_unix_jobs_generated.ml | ||
src/unix/jobs-unix/ | ||
setup.data | ||
setup.log | ||
setup.exe | ||
setup-dev.exe | ||
_opam | ||
src/unix/lwt_config | ||
src/jbuild-ignore | ||
|
||
# Coverage analysis. | ||
bisect*.out | ||
_coverage/ | ||
|
||
# For local work, tests, etc. | ||
scratch/ | ||
|
||
# Autogenerated by jbuider | ||
.merlin | ||
*.install |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
# | ||
# This file has been copied from _build/default/META.lwt then | ||
# modified to add exists_if clauses to support optional | ||
# compilation and the camlp4 syntax extension packages have | ||
# been given appropriate predicates. | ||
# | ||
|
||
version = "dev" | ||
description = "Monadic promises and concurrent I/O" | ||
requires = "bytes result" | ||
archive(byte) = "lwt.cma" | ||
archive(native) = "lwt.cmxa" | ||
plugin(byte) = "lwt.cma" | ||
plugin(native) = "lwt.cmxs" | ||
package "log" ( | ||
directory = "log" | ||
version = "dev" | ||
description = "Logger for Lwt" | ||
requires = "bytes lwt result" | ||
archive(byte) = "lwt_log.cma" | ||
archive(native) = "lwt_log.cmxa" | ||
plugin(byte) = "lwt_log.cma" | ||
plugin(native) = "lwt_log.cmxs" | ||
exists_if = "lwt_log.cma" | ||
) | ||
package "ppx" ( | ||
directory = "ppx" | ||
version = "dev" | ||
description = "Lwt PPX syntax extension" | ||
requires(ppx_driver) = "compiler-libs | ||
compiler-libs.common | ||
ocaml-migrate-parsetree | ||
ppx_tools_versioned" | ||
archive(ppx_driver,byte) = "ppx_lwt.cma" | ||
archive(ppx_driver,native) = "ppx_lwt.cmxa" | ||
plugin(ppx_driver,byte) = "ppx_lwt.cma" | ||
plugin(ppx_driver,native) = "ppx_lwt.cmxs" | ||
exists_if = "ppx_lwt.cma" | ||
# This is what jbuilder uses to find out the runtime dependencies of | ||
# a preprocessor | ||
ppx_runtime_deps = "bytes lwt result" | ||
# This line makes things transparent for people mixing preprocessors | ||
# and normal dependencies | ||
requires(-ppx_driver) = "lwt.ppx.deprecated-ppx-method" | ||
package "deprecated-ppx-method" ( | ||
version = "dev" | ||
description = "glue package for the deprecated method of using ppx" | ||
requires = "bytes lwt result" | ||
ppx(-ppx_driver,-custom_ppx) = "./ppx.exe --as-ppx" | ||
exists_if = "ppx_lwt.cma" | ||
) | ||
) | ||
package "preemptive" ( | ||
directory = "preemptive" | ||
version = "dev" | ||
description = "Preemptive thread support for Lwt" | ||
requires = "bigarray | ||
bytes | ||
lwt | ||
lwt.log | ||
lwt.unix | ||
result | ||
threads | ||
threads.posix | ||
unix" | ||
archive(byte) = "lwt_preemptive.cma" | ||
archive(native) = "lwt_preemptive.cmxa" | ||
plugin(byte) = "lwt_preemptive.cma" | ||
plugin(native) = "lwt_preemptive.cmxs" | ||
exists_if = "lwt_preemptive.cma" | ||
) | ||
package "simple-top" ( | ||
directory = "simple-top" | ||
version = "dev" | ||
description = "Lwt-OCaml top level integration (deprecated; use utop)" | ||
requires = "bigarray | ||
bytes | ||
compiler-libs | ||
compiler-libs.common | ||
lwt | ||
lwt.log | ||
lwt.unix | ||
result | ||
unix" | ||
archive(byte) = "lwt_simple_top.cma" | ||
archive(native) = "lwt_simple_top.cmxa" | ||
plugin(byte) = "lwt_simple_top.cma" | ||
plugin(native) = "lwt_simple_top.cmxs" | ||
exists_if = "lwt_simple_top.cma" | ||
) | ||
package "syntax" ( | ||
directory = "syntax" | ||
version = "dev" | ||
description = "Camlp4 syntax for Lwt (deprecated; use lwt.ppx)" | ||
requires = "camlp4 lwt.syntax.options" | ||
archive(syntax, preprocessor) = "lwt_syntax.cma" | ||
archive(syntax, toploop) = "lwt_syntax.cma" | ||
archive(syntax, preprocessor, native) = "lwt_syntax.cmxa" | ||
archive(syntax, preprocessor, native, plugin) = "lwt_syntax.cmxs" | ||
exists_if = "lwt_syntax.cma" | ||
package "log" ( | ||
directory = "log" | ||
version = "dev" | ||
description = "Camlp4 syntax for Lwt logging (deprecated; use lwt.ppx)" | ||
requires = "camlp4 lwt.syntax.options" | ||
archive(syntax, preprocessor) = "lwt_syntax_log.cma" | ||
archive(syntax, toploop) = "lwt_syntax_log.cma" | ||
archive(syntax, preprocessor, native) = "lwt_syntax_log.cmxa" | ||
archive(syntax, preprocessor, native, plugin) = "lwt_syntax_log.cmxs" | ||
exists_if = "lwt_syntax_log.cma" | ||
) | ||
package "options" ( | ||
directory = "options" | ||
version = "dev" | ||
description = "Options for Lwt Camlp4 syntax extension (deprecated; use lwt.ppx)" | ||
requires = "camlp4" | ||
archive(syntax, preprocessor) = "lwt_syntax_options.cma" | ||
archive(syntax, toploop) = "lwt_syntax_options.cma" | ||
archive(syntax, preprocessor, native) = "lwt_syntax_options.cmxa" | ||
archive(syntax, preprocessor, native, plugin) = "lwt_syntax_options.cmxs" | ||
exists_if = "lwt_syntax_options.cma" | ||
) | ||
) | ||
package "unix" ( | ||
directory = "unix" | ||
version = "dev" | ||
description = "Unix support for Lwt" | ||
requires = "bigarray bytes lwt lwt.log result unix" | ||
archive(byte) = "lwt_unix.cma" | ||
archive(native) = "lwt_unix.cmxa" | ||
plugin(byte) = "lwt_unix.cma" | ||
plugin(native) = "lwt_unix.cmxs" | ||
exists_if = "lwt_unix.cma" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.