Age | Commit message (Collapse) | Author |
|
OTP-13147
* sverk/cpool_fetch-dc_list-fix:
erts: Reduce alloc_SUITE:rbtree runtime for valgrind
erts: Remove double free in efile_drv
erts: Improve alloc_SUITE:migration test
erts: Pass free mem and build type to alloc_SUITE tests
erts: Fix snprintf in alloc_SUITE for windows
erts: Workaround for strange crash on win64 in alloc_SUITE test code
erts: Refactor alloc_SUITE to use NIFs instead of drivers
erts: Add enif_getenv
erts: Make key argument constant for erl_drv_{get|put}env
erts: Add alloc_SUITE:migration
erts: Add TEST allocator
erts: Fix confusion of callbacks destroying_mbc() vs remove_mbc()
erts: Fix resurrection of carriers from dc_list
|
|
to read OS environment variables in a safe and portable way.
|
|
* maint:
erl_prim_loader doc: Remove description of custom loaders
|
|
This info request returns greater details about the current
gc state. This info is not included in the default process_info/1
as it would clutter the default printout with too much information.
|
|
Custom loaders have not been supported for several releases.
Remove the documentation for custom loaders.
|
|
* rickard/ohmq/OTP-13047:
Fragmented young heap generation and off_heap_message_queue option
Refactor GC
Introduce literal tag
Conflicts:
erts/doc/src/erlang.xml
erts/emulator/beam/erl_gc.c
|
|
* The youngest generation of the heap can now consist of multiple
blocks. Heap fragments and message fragments are added to the
youngest generation when needed without triggering a GC. After
a GC the youngest generation is contained in one single block.
* The off_heap_message_queue process flag has been added. When
enabled all message data in the queue is kept off heap. When
a message is selected from the queue, the message fragment (or
heap fragment) containing the actual message is attached to the
youngest generation. Messages stored off heap is not part of GC.
|
|
|
|
* gomoripeti/tracedoc_fix:
Fix typo in trace gc_start doc
OTP-13094
|
|
This should be a harmless and compatible API change.
|
|
|
|
|
|
* maint:
[erl_docgen] Correct documentation
[dialyzer] Correct documentation
[hipe] Correct documentation
[test_server] Correct documentation
[tools] Correct documentation
[erts] Correct documentation
[stdlib] Correct documentation
[kernel] Correct documentation
Conflicts:
lib/stdlib/doc/src/erl_scan.xml
|
|
Fix mistakes found by 'xmllint'.
|
|
Conflicts:
erts/doc/src/erlang.xml
|
|
|
|
A new {line_delimiter, byte()} option allows line-oriented TCP-based
protocols to use a custom line delimiting character. It is to be
used in conjunction with {packet, line}.
This option also works with erlang:decode_packet/3 when its first argument
is 'line'.
|
|
|
|
|
|
A new {line_delimiter, byte()} option allows line-oriented TCP-based protocols
to use a custom line delimiting character. It is to be used in conjunction
with {packet, line}.
This option also works with erlang:decode_packet/3 when its first argument
is 'line'.
|
|
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.
|
|
|
|
* sverk/erts/doc-review:
erts: Spell-check erlang.xml
erts: Review newer additions to erlang.xml
erts: Review module erlang docs
erts: Update module erlang docs
erts: Review time correction docs
erts: Update erts time correction docs
|
|
|
|
|
|
* essen/missing-behavior-absform:
Add missing behavior/behaviours to absform docs
|
|
Trying to adopt same style as done by xsipewe in e17e236cd1661bc
for later additions.
|
|
|
|
Rebased 6ac77046b05cd3cb7b117 on OTP-18.1
Conflicts:
erts/doc/src/erlang.xml
|
|
|
|
|
|
|
|
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/vsn.mk
lib/debugger/doc/src/notes.xml
lib/debugger/vsn.mk
otp_versions.table
|
|
|
|
* c-rack/fix-list_to_bitstring-example:
Typos in documentation example of list_to_bitstring/1
OTP-13017
|
|
=== OTP-18.1 ===
Changed Applications:
- compiler-6.0.1
- crypto-3.6.1
- debugger-4.1.1
- dialyzer-2.8.1
- diameter-1.11
- erts-7.1
- eunit-2.2.11
- hipe-3.13
- inets-6.0.1
- kernel-4.1
- mnesia-4.13.1
- odbc-2.11.1
- public_key-1.0.1
- sasl-2.6
- ssh-4.1
- ssl-7.1
- stdlib-2.6
- tools-2.8.1
- wx-1.5
Unchanged Applications:
- asn1-4.0
- common_test-1.11
- cosEvent-2.2
- cosEventDomain-1.2
- cosFileTransfer-1.2
- cosNotification-1.2
- cosProperty-1.2
- cosTime-1.2
- cosTransactions-1.3
- edoc-0.7.17
- eldap-1.2
- erl_docgen-0.4
- erl_interface-3.8
- et-1.5.1
- gs-1.6
- ic-4.4
- jinterface-1.6
- megaco-3.18
- observer-2.1
- orber-3.8
- os_mon-2.4
- ose-1.1
- otp_mibs-1.1
- parsetools-2.1
- percept-0.8.11
- reltool-0.7
- runtime_tools-1.9.1
- snmp-5.2
- syntax_tools-1.7
- test_server-3.9
- typer-0.9.9
- webtool-0.9
- xmerl-1.3.8
Conflicts:
OTP_VERSION
erts/vsn.mk
|
|
|
|
|
|
|
|
|
|
Conflicts:
OTP_VERSION
erts/vsn.mk
|
|
|
|
* lukas/ose/remove/OTP-12573:
Remove OSE from erl_interface
ose: Remove all code related to the OSE port
|
|
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
|
|
|
|
|
|
|
|
|
|
|
|
* vinoski/driver-doc-fix/OTP-12855:
Fix documentation of ERL_DRV_ERROR_ERRNO
|