Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename B64 to Base64, Rfc2045 to Base64_rfc2045 #25

Merged
merged 5 commits into from
Jan 21, 2019
Merged

Rename B64 to Base64, Rfc2045 to Base64_rfc2045 #25

merged 5 commits into from
Jan 21, 2019

Conversation

dinosaure
Copy link
Member

No description provided.

Copy link
Member

@avsm avsm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm after minor fix

src/dune Outdated Show resolved Hide resolved
@avsm
Copy link
Member

avsm commented Jan 20, 2019

The README also still has a reference to B64

@dinosaure dinosaure merged commit 88889cf into master Jan 21, 2019
@avsm avsm deleted the rename branch January 21, 2019 10:33
@timbertson
Copy link

Just want to make sure I'm not missing something: back in 2014, #4 renamed Base64 -> B64 in the first place to avoid naming clashes with other libraries. Now that's effectively been reverted, but there's no solution for the naming clashes that happen at link time (other than "don't use extlib or core_extended.base64")?

I saw https://github.com/lpw25/namespaces via https://discuss.ocaml.org/t/what-to-do-about-files-both-define-module-base64/3426/2, but it sounds like this is an eventual solution, so in the meantime users of cohttp + extlib need to pin this libeary to >1.x but <3.x so thy get a version of this library when it was named B64?

@dinosaure
Copy link
Member Author

@timbertson I understand your concerns and it's look like a regression if you consider #4. The initial problem is a misspelling name between B64 (the module) and Base64 (the package) which cames from a trick between ocamlfind (META file) and OPAM (opam file) - where it's not needed to share the same name between the module provided and the package provided.

I think, for newcomers to the OCaml community, it's a barrier where the question: where is the Base64 module? becomes a repeating problem (see #17).

Currently, we have no solution about that and the problem mostly concerns extlib than core_extended.base64 (where you can just remove this dependency and use others core_extended.*).

About extlib, I can try to figure out a way (which will break compatibility) to allow to use it in same time than ocaml-base64. However, from what I know (feedbacks from some packages releasers- but not all), extlib is less used - and this break let to developpers to reconsider utility of extlib inside their projects (like infer).

So, if you really need extlib, I can figure out about a proper solution between these packages 😃 you just need to tell me.

@timbertson
Copy link

Yeah, that's fair reasoning. It was mostly just super confusing when I was sure that I had a version new enough to be after fix for this clash, and then found out it was also a version new enough to reintroduce it.

I do need both extlib and cohttp (for https://github.com/timbertson/passe, it's not on opam). The frustrating thing is I just got done ripping out batteries (I started this project a while ago when I was new to OCaml, and batteries friction with parts of the stdlib wasn't worth it in retrospect). I ended up keeping extlib just for its OptParse module (which batteries copied wholesale, so it's compatible). I don't actually need the rest of extlib, I'd happily take a standalone version of optparse. I'll see if the extlib authors are open to that...

RealyUniqueName pushed a commit to HaxeFoundation/haxe that referenced this pull request Jan 22, 2021
* Update for extlib 1.7.8 breaking change

See https://github.com/ygrek/ocaml-extlib/releases/tag/1.7.8
> breaking change: ExtList.find_map type updated to match stdlib
(following deprecation in previous release)

* [extlib] Add base64 to leftovers

Copied from:
https://github.com/ygrek/ocaml-extlib/blob/f30acba5bb1e092faf22f777cef1b72a7b109097/src/base64.ml
https://github.com/ygrek/ocaml-extlib/blob/f30acba5bb1e092faf22f777cef1b72a7b109097/src/base64.mli

See conflict introduced by this change in ocaml-base64:
mirage/ocaml-base64#25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants