Conversation
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.
| "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.
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.
|
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) |
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.