aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2015-10-14Merge branch 'maint'Henrik Nord
Conflicts: OTP_VERSION
2015-10-14Merge branch 'maint-18' into maintHenrik Nord
Conflicts: lib/ssh/vsn.mk
2015-10-13Merge branch 'maint'Hans Nilsson
2015-10-13Merge branch 'hans/ssh/cuddle_tests' into maintHans Nilsson
2015-10-13Merge branch 'hans/ssh/cuddle_spec' into maintHans Nilsson
2015-10-13Update release notesErlang/OTP
2015-10-13Merge branch 'maint'Henrik Nord
2015-10-13Fixed typo in ets documentationRiccardo
2015-10-13Merge branch 'maint'Henrik Nord
2015-10-13Merge branch 'RichMorin/patch-1' into maintHenrik Nord
* RichMorin/patch-1: fix capitalization of headings OTP-13044
2015-10-13Merge branch 'maint'Henrik Nord
2015-10-13Small misprintKirill Zaborsky
2015-10-13Merge branch 'maint'Henrik Nord
2015-10-13Merge branch 'legoscia/callback-arrow-no-newline' into maintHenrik Nord
* legoscia/callback-arrow-no-newline: Don't add newline after arrow on -callback lines OTP-13042
2015-10-12Merge branch 'maint'Zandra
2015-10-12Merge branch 'stolen/unified_dist' into maintZandra
OTP-13040 * stolen/unified_dist: kernel: inet6_tcp_dist: reuse inet_tcp_dist code Conflicts: lib/kernel/src/inet_tcp_dist.erl
2015-10-12Merge branch 'maint'Hans Nilsson
2015-10-12ssh: polished ssh.xmlHans Nilsson
Some changes in the SSH section at top (supported algorithms). Added links to default_algorithms and preferred_algorithms in the SSH section.
2015-10-12Merge branch 'bjorn/erts/builtin/OTP-13034'Björn Gustavsson
* bjorn/erts/builtin/OTP-13034: Teach erlang:is_builtin/3 that erlang:apply/3 is built-in
2015-10-12ssh: set dh_gex default to group14Hans Nilsson
2015-10-12ssh: add info on GEX algos in ssh_alghoritms:init_suiteHans Nilsson
2015-10-12ssh: updatated spec for ssh:daemonHans Nilsson
2015-10-09ssh: added 'after' to receive stmts in test/Hans Nilsson
2015-10-09Merge branch 'ks/dialyzer/undefined_record_fields/OTP-12719'Hans Bolinder
* ks/dialyzer/undefined_record_fields/OTP-12719: Update Debugger Update Diameter Update Eunit Update Inets Update Reltool Update SSL Update Test Server Update Syntax Tools Update Tools Update and cleanup HiPE records Fix errors in dialyzer_{coordinator,worker} specs Update Dialyzer Update Compiler stdlib: Refactor the supervisor module's state Update Kernel and STDLIB Take out automatic insertion of 'undefined' from typed record fields
2015-10-09Update DebuggerHans Bolinder
The update was motivated by commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update DiameterHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update EunitHans Bolinder
A record field type has been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update InetsHans Bolinder
A record field type has been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update ReltoolHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update SSLHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update Test ServerHans Bolinder
A record field type has been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update Syntax ToolsHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update ToolsHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update and cleanup HiPE recordsKostis Sagonas
The bulk of the changes concerns cleanups and code refactorings concerning record constructions that assigned 'undefined' to record fields whose type did not contain this value. See commit 8ce35b2. While at it, some new type definitions were introduced and type names were used instead of record type notation. Minor code cleaups were also done.
2015-10-09Fix errors in dialyzer_{coordinator,worker} specsStavros Aronis
2015-10-09Update DialyzerHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Update CompilerHans Bolinder
A record field type has been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-09Teach erlang:is_builtin/3 that erlang:apply/3 is built-inBjörn Gustavsson
erlang:is_builtin(erlang, apply, 3) returns 'false'. That seems to be an oversight in the implementation of erlang:is_builtin/3 rather than a conscious design decision. Part of apply/3 is implemented in C (as a special instruction), and part of it in Erlang (only used if apply/3 is used recursively). That makes apply/3 special compared to all other BIFs. From the viewpoint of the user, apply/3 is a built-in function, since it cannot possibly be implemented in pure Erlang. Noticed-by: Stavros Aronis
2015-10-08ssh: update vsn.mkHans Nilsson
2015-10-08ssh: Option max_channels added.Hans Nilsson
It actually counts the number of subsystem alive. Allocating a channel does not consume any resources (except some cpu cycles), but the subsystem start spawns processes.
2015-10-08Merge branch 'maint'Hans Nilsson
2015-10-08Merge branch 'hans/ssh/option_dh_gex_limits_ignored/OTP-13029' into maintHans Nilsson
2015-10-08ssh: document new pub key algorithmsHans Nilsson
2015-10-08ssh: ECDSA public key implementedHans Nilsson
2015-10-08public_key: Add ssh2 ECDSA pub key handling + test caseHans Nilsson
Added encode/decode for ecdsa public keys in openssh and rfc4716 format. This is for the ssh public key algorithm ecdsa-sha2-*.
2015-10-08ssh: Tests updated for ecdsaHans Nilsson
2015-10-08stdlib: Refactor the supervisor module's stateHans Bolinder
The field 'dynamics' in #state{} is a union of two opaque types, which is possibly problematic. Tagging the types should make the code safe for warnings from future versions of Dialyzer.
2015-10-08Update Kernel and STDLIBHans Bolinder
Record field types have been modified due to commit 8ce35b2: "Take out automatic insertion of 'undefined' from typed record fields".
2015-10-08Take out automatic insertion of 'undefined' from typed record fieldsKostis Sagonas
Background ----------- In record fields with a type declaration but without an initializer, the Erlang parser inserted automatically the singleton type 'undefined' to the list of declared types, if that value was not present there. I.e. the record declaration: -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 :: some_mod:some_typ()}). was translated by the parser to: -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: integer(), f3 :: some_mod:some_typ() | 'undefined'}). The rationale for this was that creation of a "dummy" #rec{} record should not result in a warning from dialyzer that e.g. the implicit initialization of the #rec.f1 field violates its type declaration. Problems --------- This seemingly innocent action has some unforeseen consequences. For starters, there is no way for programmers to declare that e.g. only floats make sense for the f1 field of #rec{} records when there is no `obvious' default initializer for this field. (This also affects tools like PropEr that use these declarations produced by the Erlang parser to generate random instances of records for testing purposes.) It also means that dialyzer does not warn if e.g. an is_atom/1 test or something more exotic like an atom_to_list/1 call is performed on the value of the f1 field. Similarly, there is no way to extend dialyzer to warn if it finds record constructions where f1 is not initialized to some float. Last but not least, it is semantically problematic when the type of the field is an opaque type: creating a union of an opaque and a structured type is very problematic for analysis because it fundamentally breaks the opacity of the term at that point. Change ------- To solve these problems the parser will not automatically insert the 'undefined' value anymore; instead the user has the option to choose the places where this value makes sense (for the field) and where it does not and insert the | 'undefined' there manually. Consequences of this change ---------------------------- This change means that dialyzer will issue a warning for all places where records with uninitialized fields are created and those fields have a declared type that is incompatible with 'undefined' (e.g. float()). This warning can be suppressed easily by adding | 'undefined' to the type of this field. This also adds documentation that the user really intends to create records where this field is uninitialized.
2015-10-08Merge branch 'maint'Zandra