aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
AgeCommit message (Collapse)Author
2017-09-14Document that the compiler may optimize away atomsBjörn Gustavsson
The following code could fail in the call to list_existing_atom/1: String = atom_to_list(some_atom), Atom = list_to_existing_atom(String) because the compiler will rewrite the code to: String = "some_atom", Atom = list_to_existing_atom(String) If some_atom is not used in another place, it will not exist. The compiler could be updated to preserve the atom in this simple case, but it would be hard to make sure that the compiler never loses atoms that exist in the source text. It also difficult to imagine a real world use case where this would be a problem. If an atom is mentioned only in a way that the compiler can optimize away, is there really any need to create the atom at all in list_to_existing_atom/1? Therefore, it is better to place the responsibility that the atom exists on the user of list_to_existing_atom/1. Update the documentation to mention that the compiler may optimize away atoms. https://bugs.erlang.org/browse/ERL-453
2017-09-13Update release notesErlang/OTP
2017-09-07Merge branch 'sverker/nif-resource-doc' into maintSverker Eriksson
* sverker/nif-resource-doc: erts: Update docs for enif_make_resource
2017-09-06Merge branch 'john/erts/zlib-nif/OTP-14185' into maintJohn Högberg
OTP-14527
2017-09-06Merge branch 'lukas/erts/nif_vector_q/OTP-14598' into maintJohn Högberg
OTP-14520
2017-09-05Improve zlib error messages and update test suite to fitJohn Högberg
OTP-14527
2017-09-05Replace the zlib driver with a NIFJohn Högberg
All operations will now yield appropriately, allowing them to be used freely in concurrent applications. This commit also deprecates the functions listed below, although they won't raise deprecation warnings until OTP 21: zlib:adler32 zlib:crc32 zlib:inflateChunk zlib:getBufSize zlib:setBufSize The behavior of throwing an error when a dictionary is required for decompression has also been deprecated.
2017-09-05erts: Add erlang:iolist_to_iovecLukas Larsson
OTP-14520
2017-09-05erts: Update docs for enif_make_resourceSverker Eriksson
to include new defined properties in OTP-20 regarding comparison and serialization.
2017-09-05erts: Add nif ioqLukas Larsson
2017-08-25Merge branch 'maint-20' into maintHenrik Nord
* maint-20: Updated OTP version Prepare release dialyzer: Fix a bug where merging PLT:s could lose info
2017-08-25Prepare releaseErlang/OTP
2017-08-24Merge branch 'maint-20' into maintRaimo Niskanen
* maint-20: Updated OTP version Prepare release Accept non-binary options as socket-options Bump version Fix broken handling of default values in extensions for PER compiler: Fix live regs update on allocate in validator Take fail labels into account when determining liveness in block ops Check for overflow when appending binaries, and error out with system_limit
2017-08-23Merge branch 'sverker/halt-unicode-slogan/OTP-14553' into maintSverker Eriksson
* sverker/halt-unicode-slogan/OTP-14553: erts: Allow any unicode string as crash dump slogan erts: Generate crash_dump slogan string as UTF8 erts: Refactor erts_unicode_list_to_buf
2017-08-23erts: Allow any unicode string as crash dump sloganSverker Eriksson
i.e the first argument to erlang:halt
2017-08-23Prepare releaseErlang/OTP
2017-07-27Merge branch 'maint-20' into maintJohn Högberg
* maint-20: Updated OTP version Update release notes Update version numbers Fix doc for the 'quiet' option; it defaults to false asn1: Fix missing quotes of external encoding call Add a dedicated close function for TCP ports to prevent issues like ERL-430/448 Close TCP ports properly on send timeout erts: Add missing release note
2017-07-26Update release notesErlang/OTP
2017-07-25Update release notesErlang/OTP
2017-07-04erts: Add missing release noteSverker Eriksson
2017-07-04Merge branch 'maint-20' into maintJohn Högberg
* maint-20: Updated OTP version Update release notes Update version numbers erts: Fix bug in quick alloc Fix old length usage in string stdlib: Fix bug in proc_lib Support arbitrary crash report in proc_lib.
2017-06-30Update release notesErlang/OTP
2017-06-30Merge branch 'rickard/statistics/OTP-14484' into maint-20Erlang/OTP
* rickard/statistics/OTP-14484: Fix statistics(wall_clock) and statistics(runtime) implementation
2017-06-27Merge branch 'maint-19' into maintJohn Högberg
* maint-19: Updated OTP version Update release notes Update version numbers Fix statistics(wall_clock) and statistics(runtime) implementation fixup! erts: Cleanup dropped port tasks correctly erts: Add tests to detect port close race Add a testcase for OTP-13939/ERL-193 erts: Cleanup dropped port tasks correctly Mark socket disconnected on tcp_send_or_shutdown_error
2017-06-26Update release notesErlang/OTP
2017-06-26Merge branch 'rickard/statistics/OTP-14484' into maint-19Erlang/OTP
* rickard/statistics/OTP-14484: Fix statistics(wall_clock) and statistics(runtime) implementation
2017-06-22Fix statistics(wall_clock) and statistics(runtime) implementationRickard Green
2017-06-21Prepare releaseErlang/OTP
2017-06-15Merge branch 'hans/otp/update_copyright'Hans Nilsson
2017-06-14Update copyright yearHans Nilsson
2017-06-14Introduce minor vsn 2 in term_to_binary/2Rickard Green
2017-06-09Merge pull request #1400 from tburghart/trb/erts/enif_whereisRickard Green
Add enif_whereis_pid() and enif_whereis_port() functions OTP-14453
2017-06-08Merge branch 'maint'Rickard Green
* maint: Updated OTP version Update release notes Update version numbers erts: Fix so that 81b628 (sigterm=kill) works Updated OTP version Prepare release Unconditionally clear IO buffers on send/shutdown errors Conflicts: OTP_VERSION erts/emulator/sys/unix/sys.c erts/vsn.mk
2017-06-08Merge branch 'maint-19' into maintRickard Green
* maint-19: Updated OTP version Update release notes Update version numbers erts: Fix so that 81b628 (sigterm=kill) works Updated OTP version Prepare release Update testcase to check that purge handle hibernated process correct Do not GC hibernated process from other processes Fix check_process_code() on hibernated process Unconditionally clear IO buffers on send/shutdown errors
2017-06-08Merge tag 'OTP-19.1.6.1' into maint-19Rickard Green
=== OTP-19.1.6.1 === Changed Applications: - erts-8.1.1.1 Unchanged Applications: - asn1-4.0.4 - common_test-1.12.3 - compiler-7.0.2 - cosEvent-2.2.1 - cosEventDomain-1.2.1 - cosFileTransfer-1.2.1 - cosNotification-1.2.2 - cosProperty-1.2.1 - cosTime-1.2.2 - cosTransactions-1.3.2 - crypto-3.7.1 - debugger-4.2.1 - dialyzer-3.0.2 - diameter-1.12.1 - edoc-0.8 - eldap-1.2.2 - erl_docgen-0.6 - erl_interface-3.9.1 - et-1.6 - eunit-2.3.1 - gs-1.6.2 - hipe-3.15.2 - ic-4.4.2 - inets-6.3.3 - jinterface-1.7.1 - kernel-5.1 - megaco-3.18.1 - mnesia-4.14.1 - observer-2.2.2 - odbc-2.11.3 - orber-3.8.2 - os_mon-2.4.1 - otp_mibs-1.1.1 - parsetools-2.1.3 - percept-0.9 - public_key-1.2 - reltool-0.7.2 - runtime_tools-1.10.1 - sasl-3.0.1 - snmp-5.2.4 - ssh-4.3.6 - ssl-8.0.3 - stdlib-3.1 - syntax_tools-2.1 - tools-2.8.6 - typer-0.9.11 - wx-1.7.1 - xmerl-1.3.12 * tag 'OTP-19.1.6.1': Updated OTP version Prepare release Conflicts: OTP_VERSION erts/vsn.mk otp_versions.table
2017-06-07Update release notesErlang/OTP
2017-06-05Merge branch 'maint'Lars Thorsen
Conflicts: OTP_VERSION erts/vsn.mk
2017-06-05Merge branch 'maint-19' into maintLars Thorsen
2017-06-02Merge pull request #1471 from gomoripeti/fix_erl_tracer_exampleLukas Larsson
Update erl_msg_tracer example
2017-06-02Prepare releaseRickard Green
2017-06-02Update release notesErlang/OTP
2017-05-31Revert "Prepare release"Hans Nilsson
This reverts commit eaf8ca41dfa4850437ad270d3897399c9358ced0.
2017-05-30Prepare releaseErlang/OTP
2017-05-24erts: Clarify ERL_CRASH_DUMP_SECONDS docsSverker Eriksson
especially default behavior without -heart, which is wait indefinitely for crash dump.
2017-05-23Merge branch 'lukas/doc/extend-secure-distr-warn/OTP-14425'Lukas Larsson
* lukas/doc/extend-secure-distr-warn/OTP-14425: otp: Extend secure distribution docs warnings
2017-05-23otp: Extend secure distribution docs warningsLukas Larsson
Warnings have been added to the relevant documentation about not using un-secure distributed nodes in exposed environments.
2017-05-22Add enif_whereis_...() functionsTed Burghart
#### Why do we need this new feature? There are cases when a NIF needs to send a message, using `enif_send()`, to a long-lived process with a registered name. A common use-case is logging, where asynchronous fire-and-forget messages are the norm. There can also be cases where a yielding or dirty NIF or background thread may request a callback from a service with additional information it needs to complete its operation, yielding or waiting (with suitable timeouts, etc) until its state has been updated through the NIF module's API. NIFs can only send messages to pids, and the lack of name resolution leaves a complicated dance between separate monitoring processes and the NIF as the only way to keep a NIF informed of the whereabouts of such long-lived processes. Providing a reliable, built-in facility for NIFs to resolve process (or port) names simplifies these use cases considerably. #### Risks or uncertain artifacts? Testing has not exposed any significant risk. The implementation behaves as expected on regular and dirty scheduler threads as well as non-scheduler threads. By constraining the `enif_whereis_...()` functions to their minimal scopes and using patterns consistent with related functions, the implementation, testing, and maintenance burden is low. The API and behavior of existing functions is unchanged. #### How did you solve it? While extending `enif_send()` to operate on a pid or an atom (as `erlang:send/2` does) was attractive, it would have entailed changing the type of its `to_pid` parameter and thereby breaking backward compatibility. The same consideration applies to `enif_port_command()`. That leaves a choice between 1, 2, or 3 new functions: 1. `enif_whereis()` 2. `enif_whereis_pid()` and `enif_whereis_port()` 3. All of the above. While option (1), directly mimicking the behavior of `erlang:whereis/1`, is appealing, it poses potential problems if `pid()` or `port()` are subsequently implemented as non-integral types that must be bound to an owning `ErlNifEnv` instance. Therefore, option (2) has been chosen to use `ErlNifPid`/`ErlNifPort` structures in the API to maintain proper term ownership semantics.
2017-05-21Update erl_msg_tracer examplePéter Gömöri
After "Move tracer SecondTraceTerm to Opts map" in commit 115f0ba7 getting the receipient has to be done on a bit different way.
2017-05-19Merge branch 'sverker/nif-docs'Sverker Eriksson
* sverker/nif-docs: erts: Improve erl_nif docs
2017-05-19Merge branch 'rickard/ds-runqs'Rickard Green
OTP-14152 * rickard/ds-runqs: Make statistics/1 aware of dirty run-queues and tasks