Commit Graph
8499 Commits
Author SHA1 Message Date
Eric Meadows-Jönsson 2e13e5d8a4 Add --profile time flag to profile compilation steps (#9519) 2019-11-13 12:57:49 +01:00
Eric Meadows-Jönsson a3fc4b3f9e Add variable version to expanded meta (#9520) 2019-11-13 12:57:21 +01:00
Tomasz Marek Sulima b108d3cfd7 Remove struct/0 from the basic types in the typespecs docs (#9523)
[ci skip]

Closes #9522.
2019-11-13 00:53:21 +01:00
José Valim 08d6fe8cb8 Add parens to static remote nullary calls
test/erlang/module_test.erl have also been removed
as they have been ported elsewhere.
2019-11-08 17:59:08 +01:00
Tomasz Marek Sulima 7ae8a96702 Fix for default leftover in Enum.chunk/3 (#9507)
Closes #9506.
2019-11-08 14:51:30 +01:00
Eksperimental 73eb15dd07 Improvements to Calendar docs, specs and guards (#9493) 2019-11-08 14:40:43 +01:00
José Valim c87b6307cd Traverse args of remote functions when looking for undefined/deprecation warnings 2019-11-08 14:32:30 +01:00
José Valim 1c864fca7d Do deprecation of Supervise.Spec in steps 2019-11-07 09:37:43 +01:00
Eksperimental ef5b0fb9ef Use type-check when it's an adjective (#9502)
[ci skip]
2019-11-07 09:09:32 +01:00
Eksperimental 8c72af6478 Copyedit the guards page (#9500) 2019-11-07 00:36:41 +01:00
Wojtek Mach d6666caa12 Link defguard/1 and defguardp/1 (#9501) 2019-11-06 23:18:17 +01:00
Eksperimental d4b0680f35 Minor corrections to recently introduced changes in Guards page (#9499)
[ci skip]
2019-11-06 19:03:14 +01:00
José Valim b423b9e2b9 Ensure reassigned variables are properly carried forward 2019-11-06 19:00:36 +01:00
Vladimir Gorej d814f09c1c Fix a typo in Calendar docs (#9498) 2019-11-06 17:47:54 +01:00
Eric Meadows-Jönsson 24cab18d2f Make distinction of guard expressions and functions/operators (#9497)
* Clarify distinction of guard expressions and functions and operators.
* Recommend using type-check guard functions.
* Reorder sections such that the "multiple guards" section immediately follows the "errors in guards" section.
2019-11-06 16:46:42 +01:00
Devon Estes 0e1dfc4edf Improve documentation around guards (#9496)
@eksperimental was right that while this was hinted at, this was never
specifically stated, so I added an explicit example since this functions
differently from other boolean checks (like `if` and such) in the
language.

Resolves #9495
2019-11-06 10:21:55 +01:00
José Valim f78841ae09 Clarify evaluation rules for guards, closes #9495 2019-11-06 08:45:21 +01:00
Cleidiano Oliveira a8b948c308 Fix a typo on System.build_info docs (#9491) 2019-11-05 13:43:25 +01:00
Eksperimental f92e36904f Updates on DynamicSupervisor.start_child/2 (#9434)
- Updates specs to include old_erlang_child_spec.
- Improve docs.
2019-11-05 08:55:09 +01:00
Wojtek Mach d13feb831c Add missing doc annotations (#9489) 2019-11-05 08:46:48 +01:00
Lau Taarnskov 7a6e421054 Add NaiveDateTime.local_now (#9472) 2019-11-04 22:51:20 +01:00
José Valim 37d0931fd1 Improve error messages on keywords, closes #9467 2019-11-04 14:51:39 +01:00
José Valim c33baba3a8 Add Kernel.is_map_key/2 2019-11-04 12:47:26 +01:00
Eksperimental 194dec268a Standardize use of "#=>" for return values in Kernel (#9483) 2019-11-03 23:43:22 +01:00
Eksperimental d93e354965 Improve module docs in Kernel and Kernel.SpecialForms (#9486)
[ci skip]
2019-11-03 23:42:33 +01:00
Eksperimental 24fa58f7fb Clean up some minor things in the docs
[ci skip]
2019-11-03 23:38:02 +01:00
Eksperimental 175eaec96e Remove comment arrows from Exception messages (#9485) 2019-11-03 23:10:14 +01:00
Eksperimental ed005ea3a1 is_struct/1 fixes (#9481)
* Remove duplicate test

* Simplify name of private function in is_struct/1 test script
2019-11-03 19:07:07 +01:00
Eksperimental c86711f41f Add Examples section to Kernel.is_struct/1 (#9482) 2019-11-03 18:48:49 +01:00
José Valim 68ad061f06 Update CHANGELOG 2019-11-03 18:01:56 +01:00
Fernando Tapia Rico 7e0e754e40 Add @doc :since to is_struct/1 (#9479) 2019-11-03 17:31:00 +01:00
José Valim 3d0a56ec9a Improve coverage for non-integers in split/drop/take 2019-11-03 17:30:01 +01:00
Quentin DANJOU c6653b52ab Add more strict guards on Enum.split/2 (#9436) 2019-11-03 17:25:13 +01:00
Łukasz Jan Niemier 1cee776f3a Add is_struct/1 to Kernel (#9470) 2019-11-03 17:22:33 +01:00
Łukasz Jan Niemier a7c74e2545 Remove calls to error_logger (#9469) 2019-11-03 16:45:51 +01:00
José Valim fe2f36877a Simplify emission of rescue clauses to avoid duplicate generation 2019-11-03 16:44:49 +01:00
José Valim 345403c05d Refactor Erlang try code 2019-11-03 16:22:20 +01:00
José Valim 5944706239 No need to track stacktrace usage 2019-11-03 13:56:39 +01:00
José Valim 7648c0f3a8 elif to else 2019-11-03 13:06:30 +01:00
Łukasz Jan Niemier 9fca33e09f Cleanup TODOs for OTP 21+ (#9477) 2019-11-03 13:05:18 +01:00
Parker Selbert 61a0bb43aa Improve MapSet comparison performance (#9381)
This changes the implementation of none_in?/2 from using a pattern match
to the :erlang.is_map_set/2 BIF. The result is 1.70x faster according to
benchmarks. Due to the use of `is_map_key` this change only works in
Erlang 21.0+.

Operating System: macOS
CPU Information: Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Number of Available Cores: 4
Available memory: 8 GB
Elixir 1.9.1
Erlang 22.0

Benchmark suite executing with the following configuration:
warmup: 1 s
time: 4 s
memory time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 10 s

Benchmarking CustomMapSet...
Benchmarking MapSet...

Name                        ips        average  deviation         median         99th %
CustomMapSet             3.57 M      279.76 ns  ±2024.07%           0 ns        1000 ns
MapSet                   2.10 M      475.19 ns  ±4493.05%           0 ns        1000 ns

Comparison:
CustomMapSet             3.57 M
MapSet                   2.10 M - 1.70x slower +195.43 ns
2019-11-03 11:25:49 +01:00
José Valim 90546b8976 Clarify escaping rules in sigils, closes #9471 2019-11-03 11:14:32 +01:00
Eksperimental d8127cca79 Fix typo in comment on Module.Types.Infer (#9475)
[ci skip]
2019-11-03 09:32:56 +01:00
José Valim 64a9fec64b Also handle parens in binary patterns 2019-11-02 18:02:30 +01:00
José Valim 0a0c4fb5e2 Handle binaries without specifiers 2019-11-02 17:28:58 +01:00
José Valim 43daa41c11 Remove redundant rewrite as it has been optimized in the VM 2019-11-02 17:12:27 +01:00
José Valim 97b167885b Avoid multiple passes on binary specifier 2019-11-02 16:38:53 +01:00
José Valim cf881389cf Remove unecessary Erlang macro 2019-11-01 19:19:54 +01:00
Łukasz Jan Niemier f128ae3d7a Use Erlang's logger as main logging implementation (#9333) 2019-11-01 15:53:05 +01:00
Glauber Campinho c363d7e4d0 Avoid second calculation of arity in expand_local/4 (#9463) 2019-10-31 20:49:23 +01:00