diff --git a/NEWS.md b/NEWS.md index a82d47dfbf600..c08cf22c093ea 100644 --- a/NEWS.md +++ b/NEWS.md @@ -55,6 +55,7 @@ This section lists changes that do not have deprecation warnings. * `broadcast` now treats `Ref` (except for `Ptr`) arguments as 0-dimensional arrays ([#18965]). + * `broadcast` now handles missing data (`Nullable`s) allowing operations to be lifted over `Nullable`s, as if the `Nullable` were like an array with zero or one element. ([#16961]). Note that many situations where `Nullable` @@ -76,6 +77,12 @@ This section lists changes that do not have deprecation warnings. * `quadgk` has been moved from Base into a separate package. ([#19741]) + * Fullwidth and halfwidth characters are now considered equivalent in + identifiers and code, and certain Greek-like Unicode characters + (µ "micro" and ɛ "latin epsilon") are considered equivalent to + the corresponding Greek characters, for ease of input. `\varepsilon` + now tab-completes to U+03B5 (greek small letter epsilon). ([#19464]) + Library improvements -------------------- diff --git a/doc/src/manual/variables.md b/doc/src/manual/variables.md index 087f4d98d5473..ea4214a983204 100644 --- a/doc/src/manual/variables.md +++ b/doc/src/manual/variables.md @@ -108,6 +108,15 @@ ERROR: syntax: unexpected "=" ... ``` +Some Unicode characters are considered to be equivalent in identifiers. +"Fullwidth" versions of ASCII and other symbols are treated as equivalent +to the ordinary (halfwidth) versions, to simplify Julia code entry in +some Asian languages. The Unicode characters `ɛ` (U+025B: Latin small letter open e) +and `µ` (U+00B5: micro sign) are treated as equivalent to the corresponding +Greek letters, because the former are easily accessible via some input methods. +Different ways of entering Unicode combining are treated as equivalent +(specifically, Julia identifiers are NFC-normalized). + ## Stylistic Conventions While Julia imposes few restrictions on valid names, it has become useful to adopt the following