relit icon indicating copy to clipboard operation
relit copied to clipboard

Support for OCaml 4.06

Open cyrus- opened this issue 6 years ago • 7 comments

That's the most recent release of the compiler. How hard would this be? Can we use the OCaml preprocessor to simultaneously support different versions of Typedtree in the same repository? Might depend on #7.

cyrus- avatar Oct 04 '18 20:10 cyrus-

Reason just started supporting OCaml 4.07 so it should be somewhat easy to move... actually supporting both 4.07 and 4.08 is harder. I don't think it depends on #7 necessarily but they probably have similar solutions... choosing to compile different code in a PPX depending on the ocaml version?

charlesetc avatar Oct 05 '18 02:10 charlesetc

Does Typedtree change a lot between 4.06 -> 4.07 -> 4.08?

If so, a simple solution would be to use cppo in places where we need the code to be different. You can do stuff like this:

#if OCAML_VERSION >= (4, 0, 6)
(* All is well. *)
#else
  #error "This version of OCaml is not supported."
#endif

cyrus- avatar Oct 05 '18 05:10 cyrus-

Yeah I think I'd rather use ppx_optcomp so we don't have to introduce tooling to work with another kind of preprocessor. I'm not sure what the actual changes are, but apparently making something like ocaml-migrate-parsetree for typed trees is much harder as they tend to change much more between versions.

charlesetc avatar Oct 06 '18 01:10 charlesetc

Ah yeah that looks better, we should use that.

cyrus- avatar Oct 06 '18 20:10 cyrus-

We support 4.07 now! But to get 4.06 working we'll likely need to use ppx_optcomp.

charlesetc avatar Nov 03 '18 20:11 charlesetc

Newbie here, working with reasonreact... Is keeping in line with the latest OCaml compiler for bucklescript of any concern? They seem to be going for 4.06.x, which should be coming up soon.

YonaHope avatar Mar 26 '19 17:03 YonaHope

Hey! Sorry it's taken a while to respond. Commit cacd3255ab43c011d09f26016a2a2c1dd5d04db0 is still on 4.06 so you could try checking that out when Bucklescript is ready. It's a little hard to change master to support both 4.06 and 4.08. If there ends up being a lot of interest in using Relit with Bucklescript specifically I'd be happy moving it to 4.06 for a while.

charlesetc avatar Apr 27 '19 18:04 charlesetc