Commit Graph
4494 Commits
Author SHA1 Message Date
José Valim 6bcb7adeb4 Clean up DictTest implementation
Before this commit, DictTest used too many helper functions
and  used assertions in the opposite order.
2014-01-19 15:25:35 +01:00
José Valim d311e10bea Change HashDict implementation to use tries with compound nodes
The new implementation is basically a tree of tuples (tries) but
they allow compond nodes (a node with a key-value pair and a
sub-tree). This removes the need for node-expansion and also simplifies
the design structure to not require multiple stages nor buckets.

The end result is a faster HashDict implementation (about 10% faster
on access, 30% on updates), which is still small for small dicts
but about 30% bigger for large dicts (in terms of memory) and with
a much simpler implementation.
2014-01-19 13:58:45 +01:00
José Valim adf7834529 Ensure ExUnit doesn't hang on linked failures
Thanks to @pminten for reporting this issue.
2014-01-18 19:41:19 +01:00
Ryan Coppolo ce61c60af5 Deprecates binary_to_term and term_to_binary in Kernel. 2014-01-17 16:08:15 -08:00
José Valim dc0dd43406 Simplify diverge/override mechanism in Mix.Deps 2014-01-17 17:47:13 +01:00
Eric Meadows-Jönsson 6c2744d373 Add index reflection to private records
Example:
defrecordp :user, [:name, age]
user(:age) #=> 2
2014-01-17 01:24:43 +01:00
José Valim f671e1204c Change precedence of <- to be the same as other generators 2014-01-16 20:08:55 +01:00
José Valim c0af2622af List iex -S mix at the bottom of mix help 2014-01-16 13:20:30 +01:00
José Valim 6b511cc844 Remove @hidden in mix tasks
Instead, we can use the presence or abscence of @shortdoc
to specify if the task should be shown or not.
2014-01-16 12:58:48 +01:00
José Valim 4ade0f98aa Remove deprecated code 2014-01-16 10:26:48 +01:00
José Valim 67a672e6ed Guarantee nullary funs/macros are allowed in guards, closes #1997 2014-01-16 10:00:39 +01:00
José Valim 54e8ea13f4 Ensure heredocs are allowed in calls, closes #1998 2014-01-16 09:49:13 +01:00
José Valim 5a2e838def Deprecate <-/2 in favor of send/2 2014-01-14 18:27:41 +01:00
José Valim 42fc70a0eb Deprecate Enum.first/1 in favor of Enum.at/2 and List.first/1
The main reason for this change is because `Enum.first/1` does
not communicate that enumeration will happen, in contrast to
functions like Enum.at/2 and Enum.fetch/2 which are meant to
be used with non-indexed collections and the need for enumeration
is made a bit more obvious.

Closes #1983
2014-01-14 16:26:32 +01:00
José Valim 87fee37711 Change String.next_grapheme/1 and String.next_codepoint/1 to return nil on string end
This is more composable in the sense can use in in if/cond constructs
and also makes it easy to build streams. Closes #1721.
2014-01-14 16:15:54 +01:00
José Valim 4870351d2f Deprecate continuable heredocs, closes #1986 2014-01-14 16:03:14 +01:00
José Valim aba387c526 Ensure git scm does not take lock into account when comparing deps, closes #1992 2014-01-14 11:55:23 +01:00
John Warwick 68c9a28d06 Cleaning up Module docs 2014-01-14 17:31:28 +08:00
José Valim 30c9af3631 Merge pull request #1994 from devinus/eex-assigns-dict
Allow EEx.AssignsEngine to accept any Dict.t
2014-01-13 13:30:55 -08:00
Devin Torres f42055be57 Allow EEx.AssignsEngine to accept any Dict.t 2014-01-13 15:21:26 -06:00
Chris McCord 8c45982cc6 Fix Module.definitions_in documentation typo. 2014-01-13 11:52:07 -05:00
Chas Lemley 94812b4242 fix error with float midpoint rounding
- remove midpoint rounding option from Float.round/2
- always midpoint round away from 0
2014-01-12 12:17:50 -05:00
John Warwick 7ea4b02460 Dict.Behaviour doc cleanup 2014-01-12 07:46:23 +08:00
José Valim 11423af777 Add missing fixture file for previous commit 2014-01-11 19:11:08 +01:00
José Valim 23c67ac47c Add a test to ensure no hanging in ParallelCompiler 2014-01-11 19:10:43 +01:00
José Valim 3ae00072ae Remove unecessary protocol in IEx.Autocomplete 2014-01-11 17:08:31 +01:00
José Valim b4b9ecccb4 Remove :[] as a valid atom and do not allow remote container calls 2014-01-11 17:02:45 +01:00
José Valim 53b68887b6 Invert the precedence of | and when
Although this adds some drawbacks when it comes to typespecs,
it prepares us for when we have named patterns.
2014-01-11 16:52:46 +01:00
José Valim 407427f627 Take into get_rev_info command may fail when not in a git repository 2014-01-11 10:33:18 +01:00
Eric Meadows-Jönsson b4ad1ff5bc Fix bootstrapping issue in previous commit 2014-01-11 00:36:31 +01:00
Eric Meadows-Jönsson ab538670d3 Add :records, :binaries and :char_lists options to inspect/2
Deprecate :raw in favor of :records
2014-01-11 00:25:23 +01:00
José Valim ee3fcdb96a Ensure recursive copy takes into account the proper target directory 2014-01-10 22:48:52 +01:00
José Valim ba88ee7c92 Improve binary handling to properly consider chars and bitstring with specifiers
Closes #1963
2014-01-10 22:25:08 +01:00
José Valim 9cd5a47bbe Improve docs for Dict.Behaviour 2014-01-10 14:29:47 +01:00
Eric Meadows-Jönsson be3ab7d13d Fix test race condition 2014-01-10 02:48:58 +01:00
José Valim cdbd480f4d Path dependencies can only be used with mix projects, closes #1967 2014-01-09 20:56:02 +01:00
José Valim 0538e46023 Compile unicode modules in parallel 2014-01-09 20:12:20 +01:00
José Valim ebf84037cc Kernel.inspect/2 with Inspect.Opts[] is deprecated
In favor of `Inspect.Algebra.to_doc/2`. Closes #1965.
2014-01-09 20:12:20 +01:00
José Valim 1b3cdbc7fb Merge pull request #1981 from christhekeele/patch-1
Add Keyword.delete/3 for deleting explicit values.
2014-01-09 09:37:09 -08:00
José Valim 1d13d189c1 Document that ^ always points to the previous value 2014-01-09 16:22:33 +01:00
José Valim 7fcdecde95 Turn off dependency tracking for compilation on release, closes #1982 2014-01-09 15:50:48 +01:00
José Valim bc852a6fba Add Enum.flat_map_reduce/3 2014-01-09 15:38:27 +01:00
José Valim b0e1c09579 Add Stream.transform/3
Note: the function name may be modified before the next release.
2014-01-09 13:54:45 +01:00
Christopher Keele d3a5cd22a6 Add Keyword.delete/3 for deleting explicit values. 2014-01-09 00:59:38 -06:00
José Valim 96a1628033 Unify precedence of ++, --, **, .., <> ops 2014-01-09 01:06:34 +01:00
José Valim d6de0979fb Ensure Elixir own .app files include all lib modules 2014-01-08 15:04:19 +01:00
José Valim 19301b9005 Small improvements to records and others 2014-01-08 14:55:28 +01:00
José Valim 02c76da51a Add a test for multiple vars in IEx for the previous commit 2014-01-08 11:30:56 +01:00
Eric Meadows-Jonsson 435597286f Give erl_eval bindings as an orddict
Fixes error where in IEx when referencing the ~10th defined variable.
2014-01-08 05:55:31 +01:00
John Warwick 9fcab6e881 Fixing doc typos in Kernel.Typespec 2014-01-07 23:13:56 -05:00