https://github.com/JuliaLang/julia
Tip revision: ac89a4304391ce1fbce922a3846d67554dc1c0ca authored by Keno Fischer on 27 August 2013, 16:10:48 UTC
Make File STDIO use IOStream instead of FS.File
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.