diff --git a/NEWS.md b/NEWS.md index a615dcc2b0353..bc6de0aa34b30 100644 --- a/NEWS.md +++ b/NEWS.md @@ -7,11 +7,30 @@ New language features * Unicode version 7 is now supported for identifiers etcetera ([#7917]). * Type parameters now permit any arbitrary `isbits` type, not just - `Int` and `Bool` ([#6081]). + `Int` and `Bool` ([#6081]). + + * Keyword argument names can be computed, using syntax such as `f(; (name, val))` ([#7704]). + + * (TODO pending final syntax) staged functions ([#7311]). + +Language changes +---------------- + + * `None` is deprecated; use `Union()` instead ([#8423]). + + * `Nothing` (the type of `nothing`) is renamed to `Void` ([#8423]). Library improvements -------------------- + * `convert` now checks for overflow when truncating integers or converting between + signed and unsigned ([#5413]). + + * Arithmetic is type-preserving for more types; e.g. `(x::Int8) + (y::Int8)` now + yields an `Int8` ([#3759]). + + * Reductions (e.g. `reduce`, `sum`) widen small types (integers smaller than `Int`, and `Float16`). + * New `Dates` module for calendar dates and other time-interval calculations ([#7654]). * Added generic Cholesky factorization, and the Cholesky factorization is now parametrized on the matrix type ([#7236]). @@ -34,6 +53,8 @@ Library improvements to provide uniform cross-platform behavior and up-to-date, locale-independent support for Unicode standards ([#5939]). + * New `Nullable` type for missing data ([#8152]). + Julia v0.3.0 Release Notes ========================== @@ -961,3 +982,9 @@ Too numerous to mention. [#7992]: https://github.com/JuliaLang/julia/issues/7992 [#8011]: https://github.com/JuliaLang/julia/issues/8011 [#8089]: https://github.com/JuliaLang/julia/issues/8089 +[#7704]: https://github.com/JuliaLang/julia/issues/7704 +[#5413]: https://github.com/JuliaLang/julia/issues/5413 +[#3759]: https://github.com/JuliaLang/julia/issues/3759 +[#7311]: https://github.com/JuliaLang/julia/issues/7311 +[#8423]: https://github.com/JuliaLang/julia/issues/8423 +[#8152]: https://github.com/JuliaLang/julia/pull/8152 diff --git a/doc/manual/faq.rst b/doc/manual/faq.rst index f69bf40a07737..ba40ecbe51a6d 100644 --- a/doc/manual/faq.rst +++ b/doc/manual/faq.rst @@ -697,22 +697,24 @@ situation can be detected using the ``isdefined`` function. Some functions are used only for their side effects, and do not need to return a value. In these cases, the convention is to return the value -``nothing``, which is just a singleton object of type ``Nothing``. This +``nothing``, which is just a singleton object of type ``Void``. This is an ordinary type with no fields; there is nothing special about it except for this convention, and that the REPL does not print anything for it. Some language constructs that would not otherwise have a value also yield ``nothing``, for example ``if false; end``. -Note that ``Nothing`` (uppercase) is the type of ``nothing``, and should -only be used in a context where a type is required (e.g. a declaration). - -You may occasionally see ``None``, which is quite different. It is the -empty (or "bottom") type, a type with no values and no subtypes (except -itself). You will generally not need to use this type. +For situations where a value exists only sometimes (for example, missing +statistical data), it is best to use the ``Nullable{T}`` type, which allows +specifying the type of a missing value. The empty tuple (``()``) is another form of nothingness. But, it should not really be thought of as nothing but rather a tuple of zero values. +In code written for Julia prior to version 0.4 you may occasionally see ``None``, +which is quite different. It is the empty (or "bottom") type, a type with no values +and no subtypes (except itself). This is now written as ``Union()`` (an empty union +type). You will generally not need to use this type. + Julia Releases ----------------