Skip to content

Conversation

@Leonidas-from-XIV
Copy link
Member

As suggested by @hhugo in #84 (comment) this reshuffles the file contents to make Basic, Safe & Raw (& an unnamed toplevel module, named T for lack of a better name) separate compilation units. This should hopefully bring down compilation size and as a side-effect it also removes a bit of copying as Common and Codec became their own modules so their content is not duplicated in multiple places.

It makes the dune file a bit more complex because it generates more files now but I believe the code is a bit more readable now.

This was referenced Jul 17, 2023
@Leonidas-from-XIV Leonidas-from-XIV merged commit d5cc8cb into ocaml-community:master Jul 19, 2023
@Leonidas-from-XIV Leonidas-from-XIV deleted the lower-bundle-size branch July 19, 2023 12:46
Leonidas-from-XIV added a commit to Leonidas-from-XIV/opam-repository that referenced this pull request Oct 10, 2023
CHANGES:

*2023-10-10*

### Changed

- Make `Basic`, `Safe` & `Raw` seperate compilation units that get exposed by
  the main module as suggested by @hhugo to enable JSOO to discard unused
  modules. No API changes should be observable. (ocaml-community/yojson#84, ocaml-community/yojson#167 @Leonidas-from-XIV)
- Removed forward refs in the parser to make dead-code elimination in JSOO
  better (ocaml-community/yojson#168, @hhugo)
Leonidas-from-XIV added a commit to Leonidas-from-XIV/opam-repository that referenced this pull request Oct 10, 2023
CHANGES:

*2023-10-10*

- Make `Basic`, `Safe` & `Raw` seperate compilation units that get exposed by
  the main module as suggested by @hhugo to enable JSOO to discard unused
  modules. No API changes should be observable. (ocaml-community/yojson#84, ocaml-community/yojson#167 @Leonidas-from-XIV)
- Removed forward refs in the parser to make dead-code elimination in JSOO
  better (ocaml-community/yojson#168, @hhugo)
Leonidas-from-XIV added a commit to Leonidas-from-XIV/opam-repository that referenced this pull request Oct 10, 2023
CHANGES:

*2023-10-10*

- Make `Basic`, `Safe` & `Raw` seperate compilation units that get exposed by
  the main module as suggested by @hhugo to enable JSOO to discard unused
  modules. No API changes should be observable. (ocaml-community/yojson#84, ocaml-community/yojson#167 @Leonidas-from-XIV)
- Removed forward refs in the parser to make dead-code elimination in JSOO
  better (ocaml-community/yojson#168, @hhugo)
nberth pushed a commit to nberth/opam-repository that referenced this pull request Jun 18, 2024
CHANGES:

*2023-10-10*

- Make `Basic`, `Safe` & `Raw` seperate compilation units that get exposed by
  the main module as suggested by @hhugo to enable JSOO to discard unused
  modules. No API changes should be observable. (ocaml-community/yojson#84, ocaml-community/yojson#167 @Leonidas-from-XIV)
- Removed forward refs in the parser to make dead-code elimination in JSOO
  better (ocaml-community/yojson#168, @hhugo)
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.

1 participant