3.0.0-51
CHANGES:
- BREAKING: remove
Belt
as a dependency ofStdlib
(#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 no longer includes the
- Melange Runtime / Stdlib: remove deprecated modules and functions
(#817):Js.List
: useStdlib.List
orBelt.List
instead;Js.Null_undefined
: useJs.Nullable
instead;Js.Option
: useStdlib.Option
orBelt.Option
instead;Js.Result
: useStdlib.Result
orBelt.Result
instead;Js.Cast
.
- BREAKING:
- BREAKING(runtime): rename a few keys with legacy names
(#819):- Exception ID
RE_EXN_ID
toMEL_EXN_ID
BS_PRIVATE_NESTED_SOME_NONE
option marker to
MEL_PRIVATE_NESTED_SOME_NONE
- Exception ID
- 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.
- Modules ending with
- 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 ofJs.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 withmelange.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 fromJs.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
): deprecateanchor
,link
andsubstr
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 ofDom.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 eitherj
orjs
- PPXes will no longer see the internal
- 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)