Dunify#241
Conversation
| "dune" {>= "3.14"} | ||
| "ocaml" {>= "4.08.0"} | ||
| "js_of_ocaml" {>= "6.0.0"} | ||
| "eliom" {>= "11.0.0"} |
There was a problem hiding this comment.
The dependency on Eliom needs to updated with the upcoming version. This PR requires ocsigen/eliom#810
There was a problem hiding this comment.
Until the releases are available, the required pins are:
opam pin add -n eliom git+https://github.com/ocsigen/eliom#master
opam pin add -n ocsigen-ppx-rpc git+https://github.com/ocsigen/ocsigen-ppx-rpc#main
opam pin add -n ocsigenserver git+https://github.com/ocsigen/ocsigenserver#master
| -> ?onmove:(Dom_html.touchEvent Js.t -> int -> unit) Eliom_client_value.t | ||
| -> ?onend:(Dom_html.touchEvent Js.t -> int -> unit) Eliom_client_value.t | ||
| -> 'a Eliom_content.Html.elt | ||
| -> Html_types.div_content Eliom_content.Html.elt |
There was a problem hiding this comment.
I wonder if the typechecking was broken with eliomc here ?
There was a problem hiding this comment.
The bind function is supposed to make it possible to bind any element, so the 'a made sens
There was a problem hiding this comment.
For some reason I was thinking that the element was inserted into a div. It's not and the type API type is reasonable.
I haven't been able to annotate the code to make this work thought.
|
I think this version does not install css files anymore. There was a ocsigen-toolkit.install, that should probably be removed and replaced maybe by something like: (not sure) |
These changes are necessary to replace eliomc with the normal ocaml compiler and eliom's PPX. The API of Ot_picture_uploader, Ot_swipe, Ot_tongue and Ot_carousel changed because it was hard to share polymorphic values across the client and server. In some cases, it looks like there was a bug in typechecking, for example in Ot_tongue. Requires Eliom to be pinned to at least 705cc199.
Included as a subtree from https://github.com/Julow/ocsigen-dune-rules It replaces the 'gen_dune' tool and the standalone PPX definition with a tested and reused tool.
eliom.ppx.client was ran twice.
The code contains many warnings that were supposedly enabled and treated as error by the previous Makefile.
The polymorphic ~change argument is used in the wild.
The polymorphic argument requires explicit annotation due to how the generated code references it.
The development version of eliom requires more recent compilers.
The version of binaryen available in ubuntu is too old and doesn't contain wasm-merge needed by wasm_of_ocaml.
|
I added the install rule for the CSS and rebased. Ready for review! |
This switches build system to Dune. This works like with the Eliom template, except that the rule generation is extracted and tested here: https://github.com/Julow/ocsigen-dune-rules
ocsigen-dune-rules is vendored, as it's not released.
Some changes to the code are needed as code typechecks differently with
eliomcthan with the regular compiler andeliom.ppx. More annotation are needed but the typechecking is now also more strict in case of polymorphism. The API of some modules is changed slightly.