aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
AgeCommit message (Collapse)Author
2015-03-24Better OS system time implementationRickard Green
2015-03-24Documentation adjustmentsRickard Green
2015-03-23Better support for poor os monotonic sourcesRickard Green
2015-03-20Introduce a new time APIRickard Green
The old time API is based on erlang:now/0. The major issue with erlang:now/0 is that it was intended to be used for so many unrelated things. This tied these unrelated operations together and unnecessarily caused performance, scalability as well as accuracy, and precision issues for operations that do not need to have such issues. The new API spreads different functionality over multiple functions in order to improve on this. The new API consists of a number of new BIFs: - erlang:convert_time_unit/3 - erlang:monotonic_time/0 - erlang:monotonic_time/1 - erlang:system_time/0 - erlang:system_time/1 - erlang:time_offset/0 - erlang:time_offset/1 - erlang:timestamp/0 - erlang:unique_integer/0 - erlang:unique_integer/1 - os:system_time/0 - os:system_time/1 and a number of extensions of existing BIFs: - erlang:monitor(time_offset, clock_service) - erlang:system_flag(time_offset, finalize) - erlang:system_info(os_monotonic_time_source) - erlang:system_info(time_offset) - erlang:system_info(time_warp_mode) - erlang:system_info(time_correction) - erlang:system_info(start_time) See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.
2014-12-09Prepare releaseErlang/OTP
2014-11-18Merge branch 'siri/no-unicode-atoms/OTP-12172' into maintSiri Hansen
* siri/no-unicode-atoms/OTP-12172: Remove comments about unicode atoms in OTP 18
2014-11-11Remove comments about unicode atoms in OTP 18Siri Hansen
There was once a plan to implement support for unicode atoms in OTP 18. This plan has been stopped until further notice, and the information about this is now removed from the documentation.
2014-11-10Fix a typo in the zlib documentationSina Samavati
2014-11-07Merge branch 'lemenkov/expose_nif_version' into maintBruce Yinhe
OTP-12298 * lemenkov/expose_nif_version: Expose NIF version
2014-11-05Merge branch 'maint-17' into maintMarcus Arendt
Conflicts: OTP_VERSION
2014-11-04Prepare releaseErlang/OTP
2014-11-02Expose NIF versionPeter Lemenkov
This patch allows checking for NIF API version in a way similar to driver version. E.g. by calling erlang:system_info(nif_version). Signed-off-by: Peter Lemenkov <[email protected]>
2014-10-23Merge branch 'rickard/maint-17/eager-check-io/OTP-12117' into maintRickard Green
* rickard/maint-17/eager-check-io/OTP-12117: No eager check I/O on OSE Introduce support for eager check I/O scheduling
2014-10-22Merge branch 'vinoski/crashdump-sigusr1' into maintBruce Yinhe
* vinoski/crashdump-sigusr1: Clarify the use of SIGUSR1 for forcing crash dumps
2014-10-17Clarify the use of SIGUSR1 for forcing crash dumpsSteve Vinoski
The crash_dump document mentions indirectly that delivering a SIGUSR1 to a running emulator process can force it to crash dump. Clarify that text to make it clear SIGUSR1 can be used for that purpose, and also add a similar note about using SIGUSR1 to the erl documentation.
2014-10-17Clarify docs for driver_async() return valueSteve Vinoski
The documentation for driver_async() still referred to the return value of the function as a "handle", which is no longer meaningful since driver_async_cancel() was deprecated and removed. Modify the documentation to simply indicate that the driver_async() return value will be -1 if it fails.
2014-09-25Merge branch 'rickard/eager-check-io/OTP-12117' into ↵Rickard Green
rickard/maint-17/eager-check-io/OTP-12117 * rickard/eager-check-io/OTP-12117: Introduce support for eager check I/O scheduling Conflicts: erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_process.c erts/preloaded/ebin/erlang.beam
2014-09-25Introduce support for eager check I/O schedulingRickard Green
2014-09-15Update release notesErlang/OTP
2014-09-12erts: Remove enif_have_dirty_schedulers()Sverker Eriksson
and add 'dirty_scheduler_support' to ErlNifSysInfo
2014-08-28add enif_schedule_nif() to NIF APISteve Vinoski
In the #erlang IRC channel Anthony Ramine once mentioned the idea of allowing a NIF to use an emulator trap, similar to a BIF trap, to schedule another NIF for execution. This is exactly how dirty NIFs were implemented for Erlang/OTP 17.0, so this commit refactors and generalizes that dirty NIF code to support a new enif_schedule_nif() API function. The enif_schedule_nif() function allows a long-running NIF to be broken into separate NIF invocations. The NIF first executes part of the long-running task, then calls enif_schedule_nif() to schedule a NIF for later execution to continue the task. Any number of NIFs can be scheduled in this manner, one after another. Since the emulator regains control between invocations, this helps avoid problems caused by native code tying up scheduler threads for too long. The enif_schedule_nif() function also replaces the original experimental dirty NIF API. The function takes a flags parameter that a caller can use to indicate the NIF should be scheduled onto either a dirty CPU scheduler thread, a dirty I/O scheduler thread, or scheduled as a regular NIF on a regular scheduler thread. With this change, the original experimental enif_schedule_dirty_nif(), enif_schedule_dirty_nif_finalizer() and enif_dirty_nif_finalizer() API functions are no longer needed and have been removed. Explicit scheduling of a dirty NIF finalization function is no longer necessary; if an application wants similar functionality, it can have a dirty NIF just invoke enif_schedule_nif() to schedule a non-dirty NIF to complete its task. Lift the restriction that dirty NIFs can't call enif_make_badarg() to raise an exception. This was a problem with the original dirty NIF API because it forced developers to get and check all incoming arguments in a regular NIF, and then schedule the dirty NIF which then had to get all the arguments again. Now, the argument checking can be done in the dirty NIF and it can call enif_make_badarg() itself to flag incorrect arguments. Extend the ErlNifFunc struct with a new flags field that allows NIFs to be declared as dirty. The default value for this field is 0, indicating a regular NIF, so it's backwards compatible with all existing statically initialized ErlNifFunc struct instances, and so such instances require no code changes. Defining the flags field with a value of ERL_NIF_DIRTY_JOB_CPU_BOUND indicates that the NIF should execute on a dirty CPU scheduler thread, or defining it with a value of ERL_NIF_DIRTY_JOB_IO_BOUND indicates that the NIF should execute on a dirty I/O scheduler thread. Any other flags field value causes a NIF library loading error. Extend the ErlNifEntry struct with a new options field that indicates whether a NIF library was built with support for optional features such as dirty NIFs. When a NIF library is loaded, the runtime checks the options field to ensure compatibility. If a NIF library built with dirty NIF support is loaded into a runtime that does not support dirty NIFs, and the library defines one or more ErlNifFunc entries with non-zero flags fields indicating dirty NIFs, a NIF library loading error results. There is no error if a NIF library built with dirty NIF support is loaded into a runtime that does not support dirty NIFs but the library does not have any dirty NIFs. It is also not an error if a library without dirty NIF support is loaded into a runtime built with dirty NIF support. Add documentation and tests for enif_schedule_nif().
2014-08-21Merge branch 'nox/reedr-logging/OTP-12115' into maintLukas Larsson
* nox/reedr-logging/OTP-12115: Add number of entries to mnesia copy debug message Add thread index to allocator enomem dump slogan Add run queue index to process dump info Add missing error string to syslog logging in epmd Demote rare debug slogan of message discarding to debug build
2014-08-14Fix +swct docRickard Green
2014-08-05Merge branch 'derek121/epmd-docs-2' into maintBruce Yinhe
OTP-12052 * derek121/epmd-docs-2: Fix minor grammatical errors in epmd docs
2014-07-25fix xml file merge messupHenrik Nord
2014-07-24Merge branch 'maint-r16' into maintHenrik Nord
Conflicts: erts/doc/src/notes.xml erts/preloaded/ebin/prim_inet.beam erts/vsn.mk lib/kernel/doc/src/notes.xml lib/kernel/vsn.mk
2014-07-22Update release notesErlang/OTP
2014-07-21Fix minor grammatical errors in epmd docsDerek Brown
Small grammar changes.
2014-07-11Merge branch 'vinoski/vinoski/erl-sdio-option' into maintBruce Yinhe
OTP-12052 * vinoski/vinoski/erl-sdio-option: add missing description for erl +SDio option
2014-07-11Merge branch 'maint-17' into maintErland Schönbeck
2014-07-10Prepare releaseErlang/OTP
2014-07-10Merge branch 'nox/filelib-wildcard-broken-link' into maint-17Erlang/OTP
* nox/filelib-wildcard-broken-link: Update stdlib appup file Update runtime dependencies Update preloaded Add tests of filelib and symlinks Fix handling of broken symlinks in filelib Conflicts: erts/preloaded/ebin/erl_prim_loader.beam
2014-07-09Fix handling of broken symlinks in filelibAnthony Ramine
This fixes a bug introduced in f11aabdc9fec593c31e6c4f3fa25c1707e9c35df where filelib:eval_read_file_info/2 was made to use file:read_link_info/1 to never follow symlinks. This fixed wildcard/1 but broke every other function using eval_read_file_info/2. Reported-by: Louis-Philippe Gauthier Reported-by: Danil Zagoskin
2014-07-02erlang:statistics(runtime) returns millisecondsMagnus Henoch
Specify in the documentation that erlang:statistics(runtime) returns milliseconds.
2014-07-01Prepare releaseErlang/OTP
2014-06-21add missing description for erl +SDio optionSteve Vinoski
Add explanatory text for the erl +SDio option, which is used to set the number of dirty I/O schedulers.
2014-06-19Prepare releaseErlang/OTP
2014-06-17doc: Fix broken links in Installation GuideBjörn-Egil Dahlberg
2014-06-17doc: Fix broken linksBjörn-Egil Dahlberg
2014-06-12Merge branch 'sverk/etp-alloc-stats' into maintSverker Eriksson
* sverk/etp-alloc-stats: erts: Fix documentation for no of default allocator instances erts: Add etp-alloc-stats and etp-alloc-instances
2014-06-12erts: Fix documentation for no of default allocator instancesSverker Eriksson
ll_alloc does not default to single instance since 17.0
2014-06-05Merge branch 'etsukata/system_info_tolerant_timeofday/OTP-11970' into maintLukas Larsson
* etsukata/system_info_tolerant_timeofday/OTP-11970: Add erlang:system_info(tolerant_timeofday)
2014-05-08Merge branch 'bjorn/erts/spawn_opt-doc/OTP-11849' into maintBjörn Gustavsson
* bjorn/erts/spawn_opt-doc/OTP-11849: Document that spawn_opt/5 does not support the 'monitor' option
2014-04-28Add erlang:system_info(tolerant_timeofday)Eiichi Tsukata
Add erlang:system_info(tolerant_timeofday), an API to check whether compensation for sudden changes of system time is enabled or not.
2014-04-23Document that spawn_opt/5 does not support the 'monitor' optionBjörn Gustavsson
2014-04-10Prepare releaseErlang/OTP
2014-04-07Update release notesErlang/OTP
2014-04-01Merge branch 'egil/maps-doc'Björn-Egil Dahlberg
* egil/maps-doc: doc: Add Maps example for sequential programming doc: Mention map expressions and map guards doc: Add maps to reference manual edoc: Add map/0 as a new predefined type doc: Descripe Maps type syntax doc: Clearify language of user-defined attributes doc: Document Maps datatype in reference manual erts: Document map guard functions erts: Fix is_map/1 spec
2014-03-27Merge branch 'pf/document-escript-feature-only-present-in-examples/OTP-11827'Lukas Larsson
* pf/document-escript-feature-only-present-in-examples/OTP-11827: Document an escript:create/2 hidden feature
2014-03-27Document an escript:create/2 hidden featurePierre Fenoll
escript:create/2 accepts a 3-elements tuple containing files and zip:create/3 options to build a zip file. Also had to update zip typespecs to allow referral from escript docs.