https://github.com/JuliaLang/julia
Raw File
Tip revision: ac89a4304391ce1fbce922a3846d67554dc1c0ca authored by Keno Fischer on 27 August 2013, 16:10:48 UTC
Make File STDIO use IOStream instead of FS.File
Tip revision: ac89a43
NEWS.md
Julia v0.2.0 Release Notes
==========================

New language features
---------------------

  * Keyword & optional function arguments (#485, #1817).

  * Immutable types (#13).

  * Triple-quoted string literals (#70).

  * New variable bindings on each for loop and comprehension iteration (#1571).
    For example, before this change:

        julia> map(f->f(), { ()->i for i=1:3 })
        3-element Any Array:
         3
         3
         3

    and after:

        julia> map(f->f(), { ()->i for i=1:3 })
        3-element Any Array:
         1
         2
         3

  * Explicit relative importing (#2375)


New library functions
---------------------

  * Sampling profiler (#2597).

  * Functions for examining stages of the compiler's output:
    `code_lowered`, `code_typed`, `code_llvm`, and `code_native`

  * Multimedia I/O API (display, writemime, etcetera) (#3932).

  * MPFR-based `BigFloat` (#2814), and many new `BigFloat` operations.

  * New half-precision IEEE floating-point type, `Float16` (#3467).

  * `methodswith` shows all methods with an argument of specific type.

  * `mapslices` provides a general way to perform operations on slices of arrays  (#2204)

  * `Collections.PriorityQueue` type and `Collections.heap` functions (#2920).

  * `quadgk` 1d-integration routine (#3140).

  * `erfinv` and `erfcinv` functions (#2987).

  * `varm`, `stdm` (#2265)

  * `logdet` (#3070)

  * names for C-compatible types: `Cchar`, `Clong`, etc (#2370).
  
  * `cglobal` to access global variables (#1815)

  * `unsafe_pointer_to_objref` (#2468) and `pointer_from_objref` (#2515)

  * `readandwrite` for external processes

  * I/O functions `readbytes` and `readbytes!` (#3878).

  * `flush_cstdio` function (#3949).

  * ClusterManager makes it possible to support different types of compute clusters (#3649, #4014).

  * `rmprocs` for removing processors from a parallel computing session. The
    system can also tolerate to some extent processors that die unexpectedly
    (#3050).

  * `interrupt` for interrupting worker processes (#3819).
  
  * `timedwait` does a polled wait for an event till a specified timeout.  
  
  * `Condition` type with `wait` and `notify` functions for synchronizing `Task`s

  * `versioninfo` provides detailed version information

Library improvements
--------------------

  * Sort API updates (#3665).

  * `delete!(d::Dict, key)` has now been split into separate `pop!`
    and `delete!` variants: the former returns the deleted value and
    behaves like the old `delete!`, and the latter returns `d` and
    does not throw an exception if `key` was not found (#3439).

  * Linear-algebra factorization routines (`lu`, `chol`, etc.) now
    return `Factorization` objects (and `lud`, `chold`, etc. are
    deprecated) (#2212).

  * A number of improvements to sparse matrix capabilities and sparse
    linear algebra.

  * More linear algebra fixes and eigensolver hooks for
    `SymTridiagonal`, `Tridiagonal` and `Bidiagonal` matrix types
    (#2606, #2608, #2609, #2611, #2678, #2713, #2720, #2725)

  * Change `integer_valued`, `real_valued`, and so on to `isinteger`,
    `isreal`, and so on, and semantics of the later are now value-based
    rather than type-based, unlike Matlab/Octave (#3071).  `isbool` and
    `iscomplex` are eliminated in favor of general `iseltype` function.

  * Transitive comparison of floats with rationals (#3102).

  * Fast primality testing (da670c4).

  * `sum` and `cumsum` now use pairwise summation for better accuracy (#4039).

  * Dot operators (`.+`, `.*` etc.) now broadcast singleton dimensions of
    array arguments. This behavior can be applied to any function using
    `broadcast(f, ...)`.

  * `combinations`, `permutations`, and `partitions` now return
    iterators instead of a task. and `integer_partitions` has been
    renamed to `partitions` (#3989 and #4055).

  * `isreadable`/`iswritable` functions added for more IO types (#3872).

  * Much faster and improved `readdlm` and `writedlm` (#3350, #3468, #3483).

  * Faster `matchall` (#3719), and a number of string and regex improvements.

  * Documentation for writing packages (#2714, 2769, #2791) and linear algebra
    (#2807)

  * Support optional RTLD flags in `dlopen` (#2380)

  * Options in `pmap` for retrying or ignoring failed tasks. Also `pmap` now works with any iterable.

Deprecated or removed
---------------------

  * `ComplexPair` was renamed to `Complex` and made `immutable`, and
    `Complex128` and so on are now aliases to the new `Complex` type.

  * `!` was added to the name of many mutating functions, e.g., `push` was
    renamed `push!` (#907).

  * `ref` renamed to `getindex`, and `assign` to `setindex!` (#1484).

  * `writeable` renamed to `writable` (#3874).

  * `logb` and `ilogb` renamed to `exponent` (#2516).

  * `quote_string` renamed to `repr`.

  * `safe_char`, `check_ascii`, and `check_utf8` replaced by
    `is_valid_char`, `is_valid_ascii`, and `is_valid_utf8`,
    respectively.

  * `each_line, `each_match`, `begins_with`, `ends_with`,
    `parse_float`, `parse_int`, and `seek_end` replaced by: `eachline`,
    `eachmatch`, and so on (`_` was removed) (#1539).

  * `parse_bin(s)` replaced by `parseint(s,2)`; `parse_oct(s)`
    replaced by `parseint(s,8)`; `parse_hex(s)` replaced by
    `parseint(s,16)`.

  * `findn_nzs` replaced by `findnz` (#1539).

  * `DivideByZeroError` replaced by `DivideError`.

  * `addprocs_ssh`, `addprocs_ssh_tunnel`, and `addprocs_local`
    replaced by `addprocs` (with keyword options).

  * `remote_call`, `remote_call_fetch`, and `remote_call_wait` replaced
    by `remotecall`, `remotecall_fetch`, and `remotecall_wait`.

  * `has` replaced by `contains` for sets and by `haskey` for dictionaries.

  * `diagmm` and `diagmm!` replaced by `scale` and `scale!` (#2916).

  * `unsafe_ref` and `unsafe_assign` replaced by `unsafe_load` and
    `unsafe_store!`.

  * `add_each!` and `del_each!` replaced by `union!` and `setdiff!`

  * `isdenormal` renamed to `issubnormal` (#3105).

  * `expr` replaced by direct call to `Expr` constructor.

  * `|`, `&`, `$`, `-`, and `~` for sets replaced by `union`, `intersect`
    `symdiff`, `setdiff`, and `complement` (#3272).

  * `square` function removed.

  * `pascal` function removed.

  * `add` and `add!` for `Set` replaced by `push!`.

  * Deprecated `ls` function in favor of `readdir` or `; ls` in the REPL.

  * `start_timer` now expects arguments in units of seconds, not milliseconds.

  * Shell redirection operators `|`, `>`, and `<` were eliminated in favor
    of a new operator `|>` (#3523).

  * `amap` is deprecated in favor of new `mapslices` functionality.

Bugfixes and performance updates
--------------------------------

Too numerous to mention.
back to top