aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-09-28Disable debug functionRaimo Niskanen
2017-09-28[edoc] Remove unused module otpsgml_layout.erlLars Thorsen
This module was used when the OTP documentation was written in SGML. It's now replaced by code in erl_docgen and therefor removed. The option trigging the call of this module has also been removed from the script edoc_generate.
2017-09-28Remove unused files from the documentation buildLars Thorsen
2017-09-28erlc: Do not load .erlangDan Gudmundsson
Use 'no_dot_erlang' start script for tools. Options and paths should be stated on the command line, via a Makefile, rebar.config etc.
2017-09-28escript: Do not load .erlangDan Gudmundsson
Previously you could not opt out on loading .erlang, change the default to not load the resource file. The escript author can invoke c:erlangrc(PathList) to find and load .erlang if needed.
2017-09-28dialyzer: Do not load .erlangDan Gudmundsson
Use 'no_dot_erlang' start script for tools. Options and paths should be stated on the command line.
2017-09-28reltool: Add no_dot_erlang bootfilesDan Gudmundsson
Needed by escript and tools
2017-09-28Eliminate MY_IS_SSMALL()Björn Gustavsson
For a long time, there has been the two macros IS_SSMALL() and MY_IS_SSMALL() that do exactly the same thing. There should only be one, and it should be called IS_SSMALL(). However, we must decide which implementation to use. When MY_IS_SSMALL() was introduced a long time ago, it was the most efficient. In a modern C compiler, there might not be any difference. To find out, I used the following small C program to examine the code generation: #include <stdio.h> typedef unsigned int Uint32; typedef unsigned long Uint64; typedef long Sint; #define SWORD_CONSTANT(Const) Const##L #define SMALL_BITS (64-4) #define MAX_SMALL ((SWORD_CONSTANT(1) << (SMALL_BITS-1))-1) #define MIN_SMALL (-(SWORD_CONSTANT(1) << (SMALL_BITS-1))) #define MY_IS_SSMALL32(x) (((Uint32) ((((x)) >> (SMALL_BITS-1)) + 1)) < 2) #define MY_IS_SSMALL64(x) (((Uint64) ((((x)) >> (SMALL_BITS-1)) + 1)) < 2) #define MY_IS_SSMALL(x) (sizeof(x) == sizeof(Uint32) ? MY_IS_SSMALL32(x) : MY_IS_SSMALL64(x)) #define IS_SSMALL(x) (((x) >= MIN_SMALL) && ((x) <= MAX_SMALL)) void original(Sint n) { if (IS_SSMALL(n)) { printf("yes\n"); } } void enhanced(Sint n) { if (MY_IS_SSMALL(n)) { printf("yes\n"); } } gcc 7.2 produced the following code for the original() function: .LC0: .string "yes" original(long): movabs rax, 576460752303423488 add rdi, rax movabs rax, 1152921504606846975 cmp rdi, rax jbe .L4 rep ret .L4: mov edi, OFFSET FLAT:.LC0 jmp puts clang 5.0.0 produced the following code which is slightly better: original(long): movabs rax, 576460752303423488 add rax, rdi shr rax, 60 jne .LBB0_1 mov edi, .Lstr jmp puts # TAILCALL .LBB0_1: ret .Lstr: .asciz "yes" However, in the context of beam_emu.c, clang could produce similar to what gcc produced. gcc 7.2 produced the following code when MY_IS_SSMALL() was used: .LC0: .string "yes" enhanced(long): sar rdi, 59 add rdi, 1 cmp rdi, 1 jbe .L4 rep ret .L4: mov edi, OFFSET FLAT:.LC0 jmp puts clang produced similar code. This code seems to be the cheapest. There are four instructions, and there is no loading of huge integer constants.
2017-09-27Don't allow null in filenamesRickard Green
2017-09-27Merge branch 'maint'Sverker Eriksson
2017-09-27Add git pre-push hookSverker Eriksson
2017-09-27Enable usage of no_dot_erlang in bootstrapDan Gudmundsson
2017-09-27Do not load .erlang from current dirDan Gudmundsson
It may be confusing that "hidden" .erlang is loaded from the current working directory. Use c:erlangrc([Dir1,..]) to search and load .erlang from other places than "$HOME/.erlang". Implies that c:erlangrc() needs to be documented.
2017-09-27Merge branch 'lukas/erts/fix_threads_error_printout'Lukas Larsson
* lukas/erts/fix_threads_error_printout: erts: Print the error reason when threads fail to start
2017-09-27Merge branch 'kvakvs/zero-size-read_file/ERL-327/PR-1524/OTP-14637'Lukas Larsson
* kvakvs/zero-size-read_file/ERL-327/PR-1524/OTP-14637: erts: On zero-size files attempt to read until EOF
2017-09-27erts: On zero-size files attempt to read until EOFDmytro Lytovchenko
2017-09-27erts: Add makefile target to check emu register allocationLukas Larsson
2017-09-27Pass all info's to the ssl_connection state functionRaimo Niskanen
2017-09-27Remove ssl_tls_dist_ctrl moduleRaimo Niskanen
2017-09-26Remove ssl_tls_dist_ctrl processRaimo Niskanen
2017-09-26Merge branch 'maint'Henrik Nord
2017-09-26Merge branch 'dgud/stdlib/unicode-string-bench'Dan Gudmundsson
* dgud/stdlib/unicode-string-bench: stdlib: Add unicode string benchmarks
2017-09-26stdlib: Add unicode string benchmarksDan Gudmundsson
2017-09-25base64:decode(Binary) optimized reimplementationMikael Pettersson
2017-09-25Merge pull request #1572 from gregors/update_docsRickard Green
fix off by one error in docs
2017-09-25Update primary bootstrapBjörn Gustavsson
2017-09-25Merge branch 'bjorn/speed-up-disassembler'Björn Gustavsson
* bjorn/speed-up-disassembler: Add testing of erts_debug:df() to the emulator smoke tests Speed up erts_debug:df()
2017-09-24Document crypto rand cacheRaimo Niskanen
2017-09-24base64:decode(List) put the List parameter first for improved performanceMikael Pettersson
2017-09-22Updated OTP versionOTP-20.1Erlang/OTP
2017-09-22Update release notesErlang/OTP
2017-09-22Update version numbersErlang/OTP
2017-09-22Merge branch 'maint'John Högberg
2017-09-22Correctly append sub-binaries in iolist_to_iovecJohn Högberg
The byte_offset of sub-binaries wasn't taken into account for ProcBins, subtly ruining the results. The test suite didn't catch it since it didn't check for sub-binaries in particular, and only checked for equality between variations -- not whether the output was equal to the input.
2017-09-22Merge branch 'maint'Dan Gudmundsson
* maint: stdlib: Remove gs removed warning
2017-09-22Merge branch 'dgud/stdlib/remove-gs-depr' into maintDan Gudmundsson
* dgud/stdlib/remove-gs-depr: stdlib: Remove gs removed warning
2017-09-22Merge branch 'maint'Hans Nilsson
2017-09-22Merge branch 'hans/public_key/fix_broken_marker' into maintHans Nilsson
2017-09-22public_key: Add app (ssl) to marker in seelalso tagHans Nilsson
2017-09-22stdlib: Remove gs removed warningDan Gudmundsson
Caused warnings which could not be suppressed, if old 'gs' application was compiled and used together with otp-20, which is fair usage even if OTP does not support the application anymore.
2017-09-22Add testing of erts_debug:df() to the emulator smoke testsBjörn Gustavsson
It is too easy to break the disassembler. Make sure that we notice.
2017-09-22Speed up erts_debug:df()Björn Gustavsson
The test case erts_debug_SUITE:df/1 in the emulator test suite is about 4 times faster with this change.
2017-09-21erts: Print the error reason when threads fail to startLukas Larsson
2017-09-21Merge branch 'siri/observer/dont-use-old-string-api'Siri Hansen
* siri/observer/dont-use-old-string-api: [cdv] Don't use old string API
2017-09-21Merge branch 'maint'Henrik Nord
2017-09-21Update copyright yearHenrik Nord
2017-09-21Merge branch 'maint'Anders Svensson
2017-09-21Merge branch 'anders/diameter/doc/OTP-14561' into maintAnders Svensson
* anders/diameter/doc/OTP-14561: Document new(ish) options in diameter_tcp/sctp
2017-09-21Merge branch 'anders/diameter/SoC/OTP-10927' into maintAnders Svensson
* anders/diameter/SoC/OTP-10927: Simplify/complete Standards Compliance doc
2017-09-21Merge branch 'maint'Lars Thorsen