aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2012-08-20Merge branch 'psi/fix-clever-mktime/OTP-10187' into maintFredrik Gustafsson
* psi/fix-clever-mktime/OTP-10187: Fix use of "clever" mktime
2012-08-20Merge branch 'maint'Patrik Nyblom
Conflicts: erts/etc/common/heart.c
2012-08-20Merge branch 'pan/heart_and_times/OTP-10111' into maintPatrik Nyblom
* pan/heart_and_times/OTP-10111: Make heart use clock_gettime when available
2012-08-17Relocate bodies of DTrace probes to the statically-linked VM.Scott Lystig Fritchie
Due to various operating systems (in both the DTrace and SystemTap worlds) not fully supporting DTrace probes (or SystemTap-compatibility mode probes) in shared libraries, we relocate those probes to the statically-linked virtual machine. This could be seen as pollution of the pristine VM by a (yet) experimental feature. However: 1. This code can be eliminated completely by the C preprocessor. 2. Leaving the probes in the dyntrace NIF shared library simply does not work correctly on too many platforms. *Many* thanks to Macneil Shonle at Basho for assisting when my RSI-injured fingers gave out. Tested on: * CentOS 5, SystemTap 1.3 * Solaris 10 (note) * Solaris 11 * OpenIndiana 151 * SmartOS 20120809T221258Z * FreeBSD 9.0-RELEASE (note) I had hoped to be able to test CentOS 6 + SystemTap 1.7, but the details of dealing with all dependencies for a 2.6.32-279.5.1.el6.x86_64 kernel are too time consuming right now. (note: Solaris 10 and FreeBSD 9.0-RELEASE can take a long time to compile)
2012-08-17Remove support for tuple funsBjörn Gustavsson
Tuple funs were deprecated in R15B (in commit a4029940e309518f5500).
2012-08-16Allow mixed IPv4 and IPv6 addresses to sctp_bindxTomas Abrahamsson
Also allow mixed address families to bind, since the first address on a multihomed sctp socket must be bound with bind, while the rest are to be bound using sctp_bindx. At least Linux supports adding address of mixing families. Make inet_set_faddress function available also when HAVE_SCTP is not defined, since we use it to find an address for bind to be able to mix ipv4 and ipv6 addresses.
2012-08-16Add checks for in6addr_any and in6addr_loopbackTomas Abrahamsson
These variables are normally declared by <netinet/in.h>, but for instance not on Windows 7, SDK 7.1. Work around that by using IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT if present, fallback to using :: and ::1.
2012-08-16Fix SCTP multihomingTomas Abrahamsson
Setting several ip addresses for an SCTP socket worked only for IPv4 on Linux. For IPv6 and for other for instance Solaris and FreeBSD, it failed with badarg for both IPv4 and IPv6. For the first address specified to gen_sctp:open, bind is now called, while for any following addresses, sctp_bindx is called, repeatedly, with one address at a time. Previously, sctp_bindx was called for all addresses in one go, with the addresses in reverse order, and bind was not called at all if more than one address was specified. Both Solaris and FreeBSD requires bind to have been called before calling sctp_bindx, and FreeBSD additionally allows at most one address at a time in the call to sctp_bindx. For some versions of Linux, for instance SuSE 10, the port can be 0 only for the call to bind but not for subsequent calls to sctp_bindx, so replace with the port number assigned by the operating system.
2012-08-15Merge branch 'maint'Sverker Eriksson
2012-08-15Merge branch 'sverk/ets-compressed-binary-bug/OTP-10182' into maintSverker Eriksson
* sverk/ets-compressed-binary-bug/OTP-10182: Fix corrupted binaries in compressed ETS tables Make ETS compile with #define DEBUG_CLONE
2012-08-14Teach caret to appear correctly after focus lossPatrik Nyblom
Incorrect window was used to calculate x position.
2012-08-14Add documetation about Unicode in environmentPatrik Nyblom
2012-08-14Make get/putenv and erlexec understand UnicodePatrik Nyblom
Putenv and getenv needs to convert to the proper environment strings in Unicode depending on platform and user settings for filename encoding. Also erlexec needs to pass environment strings in an appropriate way for kernel to pick up. All environment strings on the command line, as well as home directory, is now passed in UTF8 on windows and in whatever encoding you have on Unix, kernel tries to convert all parameters and environments from UTF8 before making strings.
2012-08-14Fix corrupted binaries in compressed ETS tablesSverker Eriksson
2012-08-14Make ETS compile with #define DEBUG_CLONESverker Eriksson
2012-08-14Merge branch 'maint'Fredrik Gustafsson
2012-08-13Merge branch 'mh/doc-now-vs-timestamp/OTP-10180' into maintFredrik Gustafsson
* mh/doc-now-vs-timestamp/OTP-10180: Doc fix: link from erlang:now/0 to os:timestamp/0
2012-08-08Update preloadedSiri Hansen
Changed: erts/preloaded/ebin/erl_prim_loader.beam
2012-08-08Merge branch 'maint'Siri Hansen
Conflicts: erts/preloaded/ebin/erl_prim_loader.beam
2012-08-07Update preloadedSiri Hansen
erl_prim_loader.beam
2012-08-07Fix flattening of paths in erl_prim_loaderSiri Hansen
When correcting OTP-10071, a new error was introduced in erl_prim_loader. In order to improve ability to detect if a file was inside the primary archive, all paths were flattened - i.e. "." and ".." were removed. This implementation had some faults, and it did not take symlinks into account. This has been corrected.
2012-08-03Merge branch 'rickard/tab-unref-thr-prgr/OTP-10167'Rickard Green
* rickard/tab-unref-thr-prgr/OTP-10167: Use thread progress instead of scheduling misc aux work were possible Conflicts: erts/emulator/beam/erl_process.h
2012-08-03Merge branch 'rickard/proc-sched/OTP-9892'Rickard Green
* rickard/proc-sched/OTP-9892: Read message queue lengths while having lock Remove development debug code Fix bug scheduling free processes Conflicts: erts/emulator/beam/erl_message.c
2012-08-02Use thread progress instead of scheduling misc aux work were possibleRickard Green
Functionality for scheduling operations at thread progress later has been introduced. Deallocation of ETS table structures were previously done by scheduling misc aux work. Deallocation of process structures (not released yet) was also implemented this way. Instead of using the misc aux work functionality these implementation now use the newly introduced functionality for scheduling operations at thread progress later. By using this new functionaliy we reduce the amount of memory allocation/deallocation operations needed.
2012-08-02Merge 'rickard/thr-prgr-use/OTP-10116' and 'rickard/proc-sched/OTP-9892'Rickard Green
Conflicts: erts/emulator/beam/erl_process.c
2012-08-02Read message queue lengths while having lockRickard Green
2012-08-02Remove development debug codeRickard Green
2012-08-02Fix bug scheduling free processesRickard Green
2012-08-01Fix support for leap seconds-aware timezonesPiotr Sikora
erlang:universaltime_to_localtime is leap seconds-aware (since 2008), however erlang:localtime_to_universaltime is not, which gives surprising results on systems configured with leap seconds-aware timezones: 1> erlang:universaltime_to_localtime({{2012,1,1},{0,0,0}}). {{2012,1,1},{0,0,0}} 2> erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}}). {{2012,1,1},{0,0,24}} and completely breaks calendar:local_time_to_universal_time_dst: 3> calendar:local_time_to_universal_time_dst({{2011,1,1},{0,0,0}}). [] Signed-off-by: Piotr Sikora <[email protected]>
2012-08-01Fix use of "clever" mktimePiotr Sikora
Commit 1eef765 introduced regression (conditional _always_ evaluates to true) in which erlang:localtime_to_universaltime/2 stopped working on systems configured with timezone without DST (i.e. UTC) on *BSD platforms: 1> erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}}, true). ** exception error: bad argument Signed-off-by: Piotr Sikora <[email protected]>
2012-07-31Merge branch 'maint'Rickard Green
* maint: Use annotate level 1 for 'gdb' with 'emacs' in 'cerl'
2012-07-31Merge branch 'rickard/cerl-emacs-gdb' into maintRickard Green
* rickard/cerl-emacs-gdb: Use annotate level 1 for 'gdb' with 'emacs' in 'cerl'
2012-07-31Merge branch 'maint'Rickard Green
* maint: Use static allocation of process lock queues Conflicts: erts/emulator/beam/erl_process_lock.c erts/emulator/beam/erl_process_lock.h
2012-07-31Merge branch 'rickard/proc-lock-queues/OTP-10163' into maintRickard Green
* rickard/proc-lock-queues/OTP-10163: Use static allocation of process lock queues
2012-07-31Merge branch 'maint'Rickard Green
* maint: Improve the enqueue operation of delayed dealloc Implement delayed aux work wake up Conflicts: erts/emulator/beam/erl_alloc_util.c erts/emulator/beam/erl_process.h
2012-07-31Merge branch 'rickard/dealloc/OTP-10162' into maintRickard Green
* rickard/dealloc/OTP-10162: Improve the enqueue operation of delayed dealloc Implement delayed aux work wake up
2012-07-31erlsrv: gracefully stop emulator on Windows shutdownJan Kloetzke
Windows will send the SERVICE_CONTROL_SHUTDOWN event to the service control handler when shutting down the system. Instead of ignoring the event, erlsrv will now invoke the stop action. Likewise, the Erlang emulator (and it's port drivers) must not quit upon reception of the CTRL_SHUTDOWN_EVENT event in the console control handler.
2012-07-31Use static allocation of process lock queuesRickard Green
By using statically allocated lock queues there is no longer any need for locking corresponding pix lock when process locks have been transferred after a wait. This costs us 3 words extra in process structure, but improves performance during contention.
2012-07-31Improve the enqueue operation of delayed deallocRickard Green
The enqueue operation have been re-written to behave better during heavy contention by spreading writes over multiple locations. This enqueue operation also take advantage of the delayed aux work wake up functionality and can by this omit one memory barrier.
2012-07-31Implement delayed aux work wake upRickard Green
By using a delayed aux work wake up approach, a memory barrier can be omitted in the delayed dealloc enqueue operation. The amount of operations, on the potentially contended, wake up structure is also reduced.
2012-07-27Merge branch 'rickard/fix-warnings/master'Rickard Green
* rickard/fix-warnings/master: Only use "gcc optimizer hack" when needed Silence warnings
2012-07-27Use annotate level 1 for 'gdb' with 'emacs' in 'cerl'Rickard Green
2012-07-25Update preloaded modulesBjörn-Egil Dahlberg
2012-07-25Merge branch 'egil/r16/remove-vxworks-support/OTP-10146'Björn-Egil Dahlberg
* egil/r16/remove-vxworks-support/OTP-10146: (30 commits) erts: Update doc to reflect VxWorks removal erts: Remove VxWorks from documentation Update preloaded erl_prim_loader and prim_file snmp: Remove VxWorks megaco: Remove VxWorks diameter: Remove VxWorks mnesia: Remove VxWorks typer: Remove VxWorks ssh: Remove VxWorks inets: Remove VxWorks hipe: Remove VxWorks cosFileTransfer: Remove VxWorks asn1: Remove VxWorks orber: Remove VxWorks os_mon: Remove VxWorks runtime_tools: Remove VxWorks test_server: Remove VxWorks references in doc test_server: Remove VxWorks stdlib: Remove VxWorks kernel: Remove VxWorks from tests ... Conflicts: erts/emulator/test/Makefile
2012-07-25Doc fix: link from erlang:now/0 to os:timestamp/0Magnus Henoch
Sometimes os:timestamp/0 is more appropriate than erlang:now/0. The documentation for the former has a link to the latter; this patch adds a link in the other direction to make os:timestamp/0 more visible.
2012-07-20Revise the autoconf tests for double middle endianness.Mike Sperber
The previous iteration didn't work for big-endian systems. Now use code very close to what Erts does internally. Also, only warn when the double endianness is unknown - i.e. when we're cross-compiling.
2012-07-19erts: Update doc to reflect VxWorks removalBjörn-Egil Dahlberg
2012-07-19erts: Remove VxWorks from documentationBjörn-Egil Dahlberg
2012-07-19Update preloaded erl_prim_loader and prim_fileBjörn-Egil Dahlberg
2012-07-19erts: Remove VxWorks from preloadedBjörn-Egil Dahlberg