github melange-re/melange 3.0.0-v51

latest releases: 3.0.0-51, 3.0.0-414
3 months ago

CHANGES:

  • BREAKING: remove Belt as a dependency of Stdlib
    (#796,
    #797)
    • Melange no longer includes the melange.belt library by default; after
      this release, you need to add (libraries melange.belt) to your melange
      stanzas.
  • Melange Runtime / Stdlib: remove deprecated modules and functions
    (#817):
    • Js.List: use Stdlib.List or Belt.List instead;
    • Js.Null_undefined: use Js.Nullable instead;
    • Js.Option: use Stdlib.Option or Belt.Option instead;
    • Js.Result: use Stdlib.Result or Belt.Result instead;
    • Js.Cast.
  • BREAKING:
    • remove support for @bs / @bs.* attributes; Melange users should now
      use [@u] for uncurried application and [@mel.*] as the prefix for the
      FFI attributes (#818)
    • remove [@@mel.val], which was redundant in the Melange FFI
      (#818)
  • BREAKING(runtime): rename a few keys with legacy names
    (#819):
    1. Exception ID RE_EXN_ID to MEL_EXN_ID
    2. BS_PRIVATE_NESTED_SOME_NONE option marker to
      MEL_PRIVATE_NESTED_SOME_NONE
  • BREAKING(runtime): unify pipe-first / pipe-last libraries in Js modules
    (#731,
    #893,
    #895,
    #899,
    #963,
    #964,
    #965)
    • Modules ending with 2 (e.g. Js.String2, Js.Array2,
      Js.TypedArray2) are no longer available in Melange
    • The functions in their corresponding modules now take labeled arguments
      and one positional argument, prioritizing the usage of |> but still
      allowing |. (-> in Reason) when optionally labeled arguments aren't
      omitted.
  • BREAKING(runtime): remove deprecated functions from Js.* modules
    (#897)
  • Consistently handle empty payloads in externals:
    (#852)
  • Fix crash when pattern matching in the presence of complex constant inlining
    (#871)
  • Support renaming modules in the output JS with @mel.as
    (#879)
  • Support @mel.as in @mel.obj labelled arguments
    (#834)
  • Fix error location for empty string interpolation in {j| .. |j}
    (#888,
    #890)
  • Add Js.Obj.assign to merge 2 JS objects immutably
    (#900,
    #795)
  • Turn off warning 20 (ignored-extra-argument) for %mel.raw application
    (#915)
  • Deprecate non-namespaced FFI attributes such as @string or @obj in favor
    of e.g. @mel.string and @mel.obj
    (#923)
  • Improve error messages returned by melange.ppx
    (#924,
    #928,
    #931,
    #936)
  • Improve error messages in the Melange compiler core
    (#941)
  • Fix a typo in Node.node_module (pa{r,}rent)
    #929
  • BREAKING(runtime): Remove Js.null_undefined in favor of Js.nullable
    (#930)
  • BREAKING(ppx): disallow attribute payload in [@mel.new] in favor of the
    external primitive string
    (#938)
  • Don't process [@mel.config] twice
    (#940)
  • BREAKING(ppx): remove @mel.splice in favor of @mel.variadic
    (#943)
  • Introduce an unprocessed alert to detect unprocessed Melange code, hinting
    users to preprocess with melange.ppx
    (#911,
    #945,
    #947)
  • Implement more Stdlib functions in modules String, Bytes, Buffer, BytesLabels
    and StringLabels (#711,
    #956,
    #958,
    #961)
  • BREAKING(runtime): Improve Js.Int and change some of its functions to
    pipe-last (#966)
  • BREAKING(runtime): Improve Js.Date and change some of its functions to
    pipe-last (#967)
  • BREAKING(runtime): Improve Js.Re and change some of its functions to
    pipe-last (#969,
    #989)
  • BREAKING(runtime): Improve docstrings in the Node library and change some
    of its functions to pipe-last
    (#970)
  • BREAKING(runtime): Improve Js.Float and change some of its functions to
    pipe-last (#968)
  • BREAKING(runtime): Remove unnecessary unit argument from Js.Math.atan2
    (#972)
  • BREAKING(runtime): Add labeled arguments to the callbacks in Js.Global
    (#973)
  • BREAKING(runtime): Add a label to Js.Dict.map's function argument pipe-last
    (#974)
  • runtime(Js.String): deprecate anchor, link and substr functions to
    match the JS standard deprecations
    #982
  • Fix error messages related to [@mel.meth] arity mismatches
    (PR)
  • ppx: split [@@deriving abstract] into two:
    • [@@deriving jsProperties] derives a JS object creation function that
      can generate a JS object with optional keys (when using [@mel.optiona])
    • [@@deriving getSet] derives getter / setter functions for the JS object
      derived by the underlying record.
  • ppx: Deprecate [@@deriving abstract]
    (#979)
  • BREAKING(dom): remove Dom.Storage2 in favor of Dom.Storage
    (988)
  • playground: fix reporting of PPX alerts
    (#991)
  • Move the unicode string transformation to the compiler core so that it runs
    after PPX preprocessing
    (#995,
    #1037)
    • PPXes will no longer see the internal *j delimiter in unicode strings
      and can hook on either j or js
  • Preserve unicode in format strings
    (#1001)
  • Support @mel.as in %mel.obj
    (#1004)
  • Upgrade the Melange JS parser to Flow
    v0.225.1

    (#1012)
  • fix: add a newline after %mel.raw expressions to avoid breaking JS output
    when they contain single line comments
    (#1017)
  • BREAKING(core): only allow strings in {j| ... |j} interpolation
    (#1024)

Don't miss a new melange release

NewReleases is sending notifications on new releases.