aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2010-06-02Fixing compiler warnings regarding max/2Niclas Eklund
2010-06-02Merge branch 'bg/compiler' into devErlang/OTP
* bg/compiler: beam_peep: Remove optimization already done by beam_dead beam_dead: Combine is_eq_exact instructions into select_val instructions Evaluate is_record/3 at compile-time using type information Evaluate element/2 at compile-time using type information erl_expand_records: Replace is_record() with matching OTP-8668 bg/compiler The compiler optimizes record operations better.
2010-06-02Merge branch 'am/net_kernel_catchall' into devErlang/OTP
* am/net_kernel_catchall: Add catch all handle_call to net_kernel
2010-06-02Merge branch 'jl/windows-file-share-delete' into devErlang/OTP
* jl/windows-file-share-delete: Windows: Open files with FILE_SHARE_DELETE to get closer to UNIX semantics OTP-8667 jl/windows-file-share-delete On Windows, files are now opened with FILE_SHARE_DELETE to get closer to Unix semantics.
2010-06-02Windows: Open files with FILE_SHARE_DELETE to get closer to UNIX semanticsJan Lehnardt
See dwShareMode on http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
2010-06-02beam_peep: Remove optimization already done by beam_deadBjörn Gustavsson
2010-06-02beam_dead: Combine is_eq_exact instructions into select_val instructionsBjörn Gustavsson
Combine a sequence of chained is_eq_exact instructions into a select_val instruction.
2010-06-02Evaluate is_record/3 at compile-time using type informationBjörn Gustavsson
2010-06-02Evaluate element/2 at compile-time using type informationBjörn Gustavsson
The erl_expand_records compiler pass translates the following code: h(X) when X#r1.a =:= 1 -> ok. to (essentially): h({r1,V1,V2}=X) when element(2, X) =:= 1 -> ok. Since the guard can only be executed when the pattern matching has succeeded, we know that the second element in the tuple X must have been bound to V2. Thus we can eliminate the call to element/2 like this: h({r1,V1,V2}=X) when V1 =:= 1 -> ok.
2010-06-02erl_expand_records: Replace is_record() with matchingBjörn Gustavsson
The compiler currently generates better code for: f(#r1{}) -> r1; f(#r2{}) -> r2; f(#r3{}) -> r3. than for: g(X) when is_record(X, r1) -> r1; g(X) when is_record(X, r2) -> r2; g(X) when is_record(X, r3) -> r3. The compiler generates good code for pattern matching (as in f/1), but in g/1 there are no patterns to match, and the clause to be executed must be chosen by evaluating the guards sequentially until one succeeds. Make the compiler generate better code by replacing calls to is_record() with matching in the function head (basically, g/1 will automatically be rewritten to do pattern matching as in f/1). Note that this rewrite will also benefit code such as: h(X) when X#r1.a =:= 1 -> ok. because it would have been rewritten to: h(X) when (is_record(X, r1, 3) orelse fail) and (element(2, X) =:= 1) -> ok. which in turn will be rewritten to: h({r1,_,_}=X) when (true orelse fail) and (element(2, X) =:= 1) -> ok. (That will be further simplified in later compiler passes.)
2010-06-02Merge branch 'rn/resolver-leaking-ports' into devErlang/OTP
* rn/resolver-leaking-ports: Resolver: make inet_dns decode ugly truncated reply Resolver: stop inet_res leaking ports OTP-8652 inet_res leaking ports The kernel DNS resolver was leaking one or two ports if the DNS reply could not be parsed or if the resolver(s) caused noconnection type errors. Bug now fixed. A DNS specification borderline truncated reply triggering the port leakage bug has also been fixed.
2010-06-01Add catch all handle_call to net_kernelAntonio SJ Musumeci
Of the core networking apps only net_kernel fails to have a catchall for unknown gen_server:call messages causing it to exit and eventually bring down kernal_sup and beam if it had not been manually started. For stability and consistancy it has been altered to include a catchall which does not reply.
2010-06-01Merge branch 'dgud/emacs-catch-improvements' into devErlang/OTP
* dgud/emacs-catch-improvements: Improved indentation of old catch. Added more type highlighting and fixed record indentation with types.
2010-06-01Merge branch 'kj/emacs-erlang-flymake' into devErlang/OTP
* kj/emacs-erlang-flymake: erlang-flymake: Document in README erlang-flymake: Make the syntax check command configurable erlang-flymake: By default pass <app>/include and <app>/ebin to compiler erlang-flymake: Include in Makefile erlang-flymake: Syntax check erlang code on the fly (using flymake)
2010-06-01OTP-8643 Improvements of net_kernelHans Bolinder
Under certain circumstances the net kernel could hang. (Thanks to Scott Lystig Fritchie.)
2010-06-01OTP-8541 Add erl-xcomp-mips-linux.confRickard Green
Added cross configuration file for mips-linux. (Thanks to Matthias Lang for the configuration)
2010-06-01OTP-8662 Fix ethr_rwmutex_tryrlockRickard Green
ethr_rwmutex_tryrlock() acquired and refused to acquire a lock with inverted logic. The lock was however never acquired in a thread unsafe manner. (Thanks to JR Zhang for noting this issue)
2010-06-01OTP-8661 Enable writer preferred pthread read/write locks on LinuxRickard Green
Writer preferred pthread read/write locks has been enabled on Linux.
2010-06-01OTP-8660 Increase atomic fallback locksRickard Green
The number of spinlocks used when implementing atomic fall-backs when no native atomic implementation is available has been increased from 16 to 1024.
2010-06-01OTP-8612 Fix potential premature destruction of port locksRickard Green
Port locks could be prematurely destroyed.
2010-06-01OTP-8659 Add ethread support for gcc atomicsRickard Green
Support for using gcc's built-in functions for atomic memory access has been added. This functionallity will be used if available and no other native atomic implementation in ERTS is available.
2010-06-01OTP-8658 Add missing memory barriers in erts_poll()Rickard Green
Missing memory barriers in erts_poll() could cause the runtime system to hang indefinitely.
2010-06-01Merge branch 'bg/remove-stray-sae-support' into devErlang/OTP
* bg/remove-stray-sae-support: Remove unsupported erlang:blocking_read_file/1 Remove stray SAE support
2010-06-01Merge branch 'bg/dist_utils' into devErlang/OTP
* bg/dist_utils: dist_utils: Eliminate crash when list_to_existing_atom/1 fails
2010-06-01Improved indentation of old catch.Dan Gudmundsson
An example that didn't work previously. case Foo of {ok, X} -> ok; _ -> catch file:close(FD) end.
2010-06-01Added more type highlighting and fixed record indentation with types.Dan Gudmundsson
Type highlighting reported by Jay Nelson non_neg_integer() will highlight purple but pos_integer() does not. Closing record indentation problem reported by Maxim Treskin: -record(state, { sequence_number = 1 :: integer() }).
2010-06-01erlang-flymake: Document in READMEKlas Johansson
2010-06-01erlang-flymake: Make the syntax check command configurableKlas Johansson
2010-06-01erlang-flymake: By default pass <app>/include and <app>/ebin to compilerKlas Johansson
Hopefully this covers at least some of the common cases and makes the flymake support more usable as is. The purpose of including the ebin directory is to support things like behaviours and parse transforms.
2010-06-01erlang-flymake: Include in MakefileKlas Johansson
2010-06-01erlang-flymake: Syntax check erlang code on the fly (using flymake)Klas Johansson
2010-06-01Resolver: make inet_dns decode ugly truncated replyRaimo Niskanen
Bugfix: a DNS reply with the truncation bit set containing misleading section length (i.e header claimed length greater than what was actually in the reply section) in the header caused decode error in inet_dns.
2010-06-01Resolver: stop inet_res leaking portsRaimo Niskanen
Bugfix: when all nameservers return a reply causing decode errors or when errors enetunreach or econnrefused occured while contacting them, one or two UDP ports was leaked i.e left open and forgotten.
2010-06-01Remove unsupported erlang:blocking_read_file/1Björn Gustavsson
This BIF was only used by the now broken SAE support.
2010-06-01Remove stray SAE supportBjörn Gustavsson
The experimental Standalone Erlang (SAE) support based on Joe Armstrong's work has long been broken. Remove the remaining code and Makefile rules.
2010-06-01dist_utils: Eliminate crash when list_to_existing_atom/1 failsBjörn Gustavsson
In the following scenario list_to_existing_atom/1 may crash during handshake: Start a node in one window: erl -sname adam@localhost Start another node in another window: erl -sname bertil In this node, ping the first node (use the actual hostname in the command): net:ping(adam@hostname). There will be an error report similar to: =ERROR REPORT==== 27-May-2010::15:03:14 === Error in process <0.40.0> on node 'bertil@hostname' with exit value: {badarg,[{erlang,list_to_existing_atom, ["adam@localhost"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]} Eliminate the crash and the error report by catching the call to list_to_existing_atom/1 and do a clean shutdown if it fails.
2010-06-01Added workaround for tcp delivery problemIngela Anderton Andin
2010-06-01OTP-8649 dg/public_key-test-coverageRaimo Niskanen
2010-05-31OTP-8657 New Erlang scanner tokens: '..' and '...'Hans Bolinder
The Erlang scanner has been augmented with two new tokens: .. and ....
2010-05-31OTP-8653 pg2: bug fixHans Bolinder
When exchanging groups between nodes pg2 did not remove duplicated members. This bug was introduced in R13B03 (kernel-2.13.4).
2010-05-28Merge branch 'sv/format_status-name-handling' into devErlang/OTP
* sv/format_status-name-handling: handle {global, term()} names in format_status/2 OTP-8656 sv/format_status-name-handling Calling sys:get_status() for processes that have globally registered names that were not atoms would cause a crash. Corrected. (Thanks to Steve Vinoski.)
2010-05-28Merge branch 'ks/cleanup-leex' into devErlang/OTP
* ks/cleanup-leex: leex: Clean up as suggested by tidier OTP-8655 ks/cleanup-leex
2010-05-28Merge branch 'sv/socket-error-portability' into devErlang/OTP
* sv/socket-error-portability: inet_drv.c: Remove red herring use macro to portably test for socket system call errors OTP-8654 sv/socket-error-portability On some combination of Montavista Linux on Cavium Octeon processors, some socket-related system calls returned other numbers than -1 for errors. This caused a core dump in inet_drv.c. Now the code works around this problem.
2010-05-28odbc: Relese test suitesIngela Anderton Andin
2010-05-28Cleaned codeIngela Anderton Andin
2010-05-28OTP-8647 Xref adds calls to operators when {builtins,true}Hans Bolinder
When given the option {builtins,true} Xref now adds calls to operators.
2010-05-28Hoops too quick to check in previous version, changed . to ;, compiled inIngela Anderton Andin
wrong shell!
2010-05-28Added misssing version check for client.Ingela Anderton Andin
2010-05-28Added missing padding check.Ingela Anderton Andin
2010-05-28Added missing Mac check.Ingela Anderton Andin