ocaml-toml / To.ml

OCaml library for TOML
https://ocaml-toml.github.io/To.ml
Other
82 stars 20 forks source link

should To.ml be compatible with OCaml 4.01 ? #9

Closed mackwic closed 9 years ago

mackwic commented 9 years ago

Some constructions, like this one are specific to OCaml 4.02.

At this point, there is no technical reason to depend on 4.02, so this would be a political decision.

I tend to think that To.ml is not the best place to do OCaml politic, but that could be debatable as Toml is a language that tend himself to renew the configuration languages.

As main contributors, what's your input on this topic, @sagotch @Emm ?

avsm commented 9 years ago

It's not so much political as a pragmatic decision -- there are still a number of libraries that require 4.01, since it typically takes a year or more for large codebases to migrate to new OCaml versions. Mirage OS is one such example, or the XAPI project. It would be most useful to have a small, embeddable library like To.ml available there for our use.

However, it's also perfectly fine to decide to use all the cool 4.02.0 features and make To.ml as clean as you possibly can. That would put the burden of 4.01.0 support on the people that need it (us) and we could maintain a small fork that accomplishes this. Just let us know what you prefer.

sagotch commented 9 years ago

I have two branches which would need to be updated with recent changes in master:

Anyway, I prefer to use the 4.02.0-compatible version by default (because of the cool 4.02.0 features such as module aliases), but got no idea about how to distribute these compatibility patches...

mackwic commented 9 years ago

There is 2 main ways in the packaging world to handle this kind of issue:

If it's only a question of patches, this is manageable. The real question is the scope of this project. I won't do work for 3.12 without good reason, but I think 4.01 should be compatible with Toml.

If we plan to support more than one version, we must keep the divergence between them as low as possible. It's a decision to make, it should be explicit and stated in the README, that's why I insist on this point.

avsm commented 9 years ago

I agree that 3.12.1 is certainly too old. Supporting two compiler versions (the latest release, and the previous one) would cover most project needs.

mackwic commented 9 years ago

@sagotch @Emm final call, we need to take a decision here !

Here is my point of view. Considering that:

I am in favor of dropping all 4.02-specific code and make To.ml full compatible with 4.01 until next compiler release (where the decision will have to be reevaluated). What do you think ?

Emm commented 9 years ago

Agreed.

On Mon, Dec 8, 2014 at 4:39 PM, Thomas Wickham notifications@github.com wrote:

@sagotch https://github.com/sagotch @Emm https://github.com/Emm final call, we need to take a decision here !

Here is my point of view. Considering that:

  • the 4.02 niceties are negligible
  • maintaining two mainline is definitely not reasonable
  • the users stated very clearly that 4.01 compatibility is very important
  • we don't have any political views on the topic

I am in favor of dropping all 4.02-specific code and make To.ml full compatible with 4.01 until next compiler release (where the decision will have to be reevaluated). What do you think ?

— Reply to this email directly or view it on GitHub https://github.com/mackwic/To.ml/issues/9#issuecomment-66133206.

sagotch commented 9 years ago

Agreed.

mackwic commented 9 years ago

Work has been merged in master, Toml is now officially compatible with 4.01.0. Like they say, « we hope to have answered your questions in a satisfactory and timely manner ». ;)

Closing this issue as resolved, please reopen if any complaint or missed incompatibility. Thanks for your feedback.

samoht commented 9 years ago

Thanks!