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

refactor(reactjs_jsx_ppx): port reactjs ppx to ppxlib / separate package #517

Merged
merged 9 commits into from
Mar 19, 2023

Conversation

anmonteiro
Copy link
Member

No description provided.

@anmonteiro anmonteiro merged commit ba5f09f into main Mar 19, 2023
@anmonteiro anmonteiro deleted the anmonteiro/reactjsx-ppx branch March 19, 2023 07:36
@jchavarri
Copy link
Member

I understand after this change, projects using melange with dune have to replace:

(melange.compile_flags :standard -bs-jsx 3)

with

(preprocess (pps reactjs-jsx-ppx))

right?

Also, should melc cli be updated to remove, or deprecate, the -bs-jsx flag? I believe it is useless now?

@anmonteiro
Copy link
Member Author

I understand after this change, projects using melange with dune have to replace:

(melange.compile_flags :standard -bs-jsx 3)

with

(preprocess (pps reactjs-jsx-ppx))

right?

That's correct.

Also, should melc cli be updated to remove, or deprecate, the -bs-jsx flag? I believe it is useless now?

Yup, the flag is effectively useless now. I think we might be able to remove it entirely, since:

  • in dune integration projects (which we haven't shipped yet, so early adopters), your code wouldn't work until you use a preprocessing stanza
  • mel used to add the flag automatically, and people didn't use it

anmonteiro added a commit to anmonteiro/opam-repository that referenced this pull request May 31, 2023
CHANGES:

- melange: print an error message if `$MELANGELIB` is set to a directory that
  doesn't exist ([melange-re/melange#449](melange-re/melange#449))
- melange: fix bug where `--bs-module-name` didn't always affect generated JS
  file casing ([melange-re/melange#446](melange-re/melange#446))
- melange: fix bug where `-o output.js` didn't always write a JavaScript file
  ([melange-re/melange#454](melange-re/melange#454))
- melange: remove the `-bs-read-cmi` flag in favor of the builtin
  `-intf-suffix` flag, standard in OCaml
  ([melange-re/melange#458](melange-re/melange#458),
  [melange-re/melange#460](melange-re/melange#460))
- melange: return an actionable error message when no output is specified
  with `-impl` / `-intf`
  ([melange-re/melange#465](melange-re/melange#465),
  [melange-re/melange#466](melange-re/melange#466))
- melange: use `Object.prototype.hasOwnProperty` in the `Caml_obj` runtime
  ([melange-re/melange#469](melange-re/melange#469))
- melange: transform
  [`NonEscapeCharacter`](https://tc39.es/ecma262/#prod-NonEscapeCharacter)
  correctly in JS strings (those written using `{js|string here|js}`)
  ([melange-re/melange#469](melange-re/melange#469))
- melange: define `MELANGE` conditional compilation variable
  ([melange-re/melange#472](melange-re/melange#472))
- melange: Make `Pervasives` exactly match the `Stdlib` behavior
  ([melange-re/melange#476](melange-re/melange#476))
- melange: fix unbound error when trying to use `Printexc.exn_slot_id`
  ([melange-re/melange#482](melange-re/melange#482))
- melange: fix codegen issue accessing a nested module path that is also
  `include`d ([melange-re/melange#487](melange-re/melange#487))
- melange: preserve the correct command-line order for load path directories
  ([melange-re/melange#492](melange-re/melange#492))
- melange: respect the `-nostdlib` option; don't add stdlib / runtime to the
  load path in that case
  ([melange-re/melange#496](melange-re/melange#496))
- melange: build the Melange runtime / stdlib / runtime tests with the dune
  integration ([melange-re/melange#493](melange-re/melange#493)). Thus
  melange now requires Dune 3.8.
- melange: allow shadowing sub-modules of Stdlib in user projects
  ([melange-re/melange#512](melange-re/melange#512))
- melange, reactjs-jsx-ppx: introduce a `reactjs-jsx-ppx` package, remove its
  dependency from melange
  ([melange-re/melange#517](melange-re/melange#517))
- melange: remove the `--bs-jsx <version>` flag from `melc` now that
  `reactjs-jsx-ppx` is a separate package
  ([melange-re/melange#525](melange-re/melange#525))
- melange: add `melpp` executable to preprocess `#if` conditionals with the
  melange parser ([melange-re/melange#539](melange-re/melange#539))
- mel: delete the `mel` package. The dune integration is now the only
  officially supported workflow for orchestrating melange builds
  ([melange-re/melange#546](melange-re/melange#546))
- melange: Extract `melange.ppx` from the melange package. This preprocessing
  step interprets extensions such as `%bs.obj`, `%bs.raw`, `%bs.re`, etc.
  ([melange-re/melange#534](melange-re/melange#534))
- melange: allow installing melange in more OCaml versions and compiler
  switches. Melange now migrates binary AST to the version it understands
  ([melange-re/melange#548](melange-re/melange#548))
- melange: don't run anonymous args function from
  `[@@@bs.config {flags = [| ... |]}]` attributes
  ([melange-re/melange#554](melange-re/melange#554))
- melange: add `--preamble` flag to add a preamble to emitted JS. An example is
  `"use client";` in React Server Components, which needs to appear before
  imports ([melange-re/melange#545](melange-re/melange#545),
  [melange-re/melange#574](melange-re/melange#574))
- melange: turn off warning 20 (`ignore-extra-argument`) by default. This
  warning is rarely useful in Melange due to false positives when invoking
  functions defined with `%bs.raw`
  ([melange-re/melange#488](melange-re/melange#488),
  [melange-re/melange#576](melange-re/melange#576))
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.

2 participants