From bruce@REDACTED Tue Mar 1 21:17:49 2011 From: bruce@REDACTED (Bruce Fitzsimons) Date: Wed, 02 Mar 2011 09:17:49 +1300 Subject: RIPEMD-160 support in crypto Message-ID: <4D6D546D.5030608@fitzsimons.org> Hi list, First time git patch submission. I've added RIPEMD-160 to crypto. It compiles...but I'm having serious problems getting a current dev environment, much less one that will run the test_server. This is less than ideal, so it would be appreciated if someone can take it and ensure the tests run okay? git fetch git://github.com/Bwooce/otp.git crypto_RIPEMD I realise an untested patch is less than ideal, but the nif support won't let me test it with a previous release (1.1 vs 1.0 of the interface) and I'm having issues getting the current release installed. Can anyone help? Style notes on the patch also appreciated :-) ---- Added RIPEMD-160 support to the crypto module Added RIMPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) support to the crypto module in the same style as the existing SHA-1/MD5 functions. It is supported in openssl natively so this was an easy addition. Named ripemd160 as there are other sized variants, and ripemd (the original) is known to be vulnerable. http://homes.esat.kuleuven.be/~bosselae/ripemd160.html appears to be the official page for this algorithm. --- Regards, Bruce From kostis@REDACTED Wed Mar 2 11:47:01 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Wed, 02 Mar 2011 12:47:01 +0200 Subject: Document 'exiting' and 'garbage_collecting' process statuses Message-ID: <4D6E2025.9010108@cs.ntua.gr> After discussions with the OTP team, please fetch the following and include in 'dev' soon: git fetch git://github.com/kostis/otp.git process_status Kostis From tuncer.ayaz@REDACTED Wed Mar 2 18:10:07 2011 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Wed, 2 Mar 2011 18:10:07 +0100 Subject: [erlang-patches] sendfile() In-Reply-To: <4D678A40.9090503@erlang.org> References: <4CFD112B.704@erlang.org> <4D2F27EB.6080109@erlang.org> <4D623AE7.7050501@erlang.org> <4D667CE2.5050805@erlang.org> <4D678A40.9090503@erlang.org> Message-ID: On Fri, Feb 25, 2011 at 11:53 AM, Niclas Axelsson wrote: > Thank you Tuncer, > > Your branch is refetched. Please refetch. Cleaned up error handling and reduced code by 2 lines. From burbas@REDACTED Wed Mar 2 19:54:59 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Wed, 2 Mar 2011 19:54:59 +0100 Subject: [erlang-patches] Document 'exiting' and 'garbage_collecting' process statuses In-Reply-To: <4D6E2025.9010108@cs.ntua.gr> References: <4D6E2025.9010108@cs.ntua.gr> Message-ID: <4D6E9283.1000603@erlang.org> On 03/02/2011 11:47 AM, Kostis Sagonas wrote: > After discussions with the OTP team, please fetch the following and > include in 'dev' soon: > > git fetch git://github.com/kostis/otp.git process_status > > Kostis > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED Thanks Kostis, I will include this in 'opu' and then out to 'dev'. Regards, Niclas Axelsson, Erlang/OTP From burbas@REDACTED Wed Mar 2 20:17:10 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Wed, 2 Mar 2011 20:17:10 +0100 Subject: [erlang-patches] sendfile() In-Reply-To: References: <4CFD112B.704@erlang.org> <4D2F27EB.6080109@erlang.org> <4D623AE7.7050501@erlang.org> <4D667CE2.5050805@erlang.org> <4D678A40.9090503@erlang.org> Message-ID: <4D6E97B6.5050204@erlang.org> On 03/02/2011 06:10 PM, Tuncer Ayaz wrote: > On Fri, Feb 25, 2011 at 11:53 AM, Niclas Axelsson wrote: > >> Thank you Tuncer, >> >> Your branch is refetched. >> > Please refetch. > Cleaned up error handling and reduced code by 2 lines. > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Refetched! Regards, Niclas Axelsson, Erlang/OTP From koops.j@REDACTED Wed Mar 2 23:03:21 2011 From: koops.j@REDACTED (Jeroen Koops) Date: Wed, 2 Mar 2011 23:03:21 +0100 Subject: Patch adding hibernate_after option to ssl:connect and ssl:listen In-Reply-To: <4D6E1F80.30509@erlang.org> References: <4D6E1F80.30509@erlang.org> Message-ID: On Wed, Mar 2, 2011 at 11:44 AM, Niclas Axelsson wrote: > On 02/26/2011 05:23 PM, Jeroen Koops wrote: > > This patch: > > https://github.com/jkoops/otp/commits/ssl_connection_hibernate > > adds a { hibernate_after, int() } to ssl:connect and ssl:listen, and will > make the SSL connection process go into hibernation after the specified > number of milliseconds of inactivity. This is useful since a SSL connection > process normally uses hundreds of kilobytes of memory -- when hibernating > this is reduced to just a few hundred bytes, making systems with tens of > thousands simultaneous SSL connection feasible. > > The patch has been discussed with Ingela Anderton Andin and Niclas > Axelsson, and I would like it to be considered for inclusion in an upcoming > OTP release. > > -- > > Jeroen Koops > > Hi Jeroen, > > Your patch have now been tested and it seems to work :-). However, when we > are running dialyzer on 'pu' branch we receive an error due to a faulty > spec: > > > - *ssl_connection.erl:292: * (extra_range) > The specification for *ssl_connection:init/1* states that the function > might also return *{'ok','abbreviated' | 'certify' | 'cipher' | > 'connection' | > 'hello',{'state',_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_}} > * but the inferred return is *{'stop',_} | > {'ok','hello',{'state','client' | 'server',{reference(),atom() | pid() | > {_,_}},_,_,_,_,_,_,_,{'ssl_options',_,_,_,_,_,_,_,_,_,_,_,'undefined',_,_,_,_,_,_,_,_,_,_,_},_,{'connection_states',{_,_,_,_,_,_,_,_,_},{_,_,_,_,_,_,_,_,_},{_,_,_,_,_,_,_,_,_},{_,_,_,_,_,_,_,_,_}},[],<<>>,<<>>,{{_,_},{_,_}},[],{'session','undefined','undefined',_,'undefined','undefined','undefined','false','undefined'},_,atom(),'undefined','undefined','false','undefined','undefined',_,_,'undefined','undefined',reference(),'undefined',0,<<>>,'true',{'false','first'},'false',queue(),'false'},_} > * > > > Do you have time to solve this? > > Regards, > Niclas Axelsson, Erlang/OTP > Hi Niclas, Please refetch git://github.com/jkoops/otp.git ssl_connection_hibernate the issue with the init-spec should be solved. Regards, Jeroen From burbas@REDACTED Fri Mar 4 10:57:43 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Fri, 4 Mar 2011 10:57:43 +0100 Subject: [erlang-patches] Re: Patch adding hibernate_after option to ssl:connect and ssl:listen In-Reply-To: References: <4D6E1F80.30509@erlang.org> Message-ID: <4D70B797.5090303@erlang.org> On 03/02/2011 11:03 PM, Jeroen Koops wrote: > On Wed, Mar 2, 2011 at 11:44 AM, Niclas Axelsson wrote: > > >> On 02/26/2011 05:23 PM, Jeroen Koops wrote: >> >> This patch: >> >> https://github.com/jkoops/otp/commits/ssl_connection_hibernate >> >> adds a { hibernate_after, int() } to ssl:connect and ssl:listen, and will >> make the SSL connection process go into hibernation after the specified >> number of milliseconds of inactivity. This is useful since a SSL connection >> process normally uses hundreds of kilobytes of memory -- when hibernating >> this is reduced to just a few hundred bytes, making systems with tens of >> thousands simultaneous SSL connection feasible. >> >> The patch has been discussed with Ingela Anderton Andin and Niclas >> Axelsson, and I would like it to be considered for inclusion in an upcoming >> OTP release. >> >> -- >> >> Jeroen Koops >> >> Hi Jeroen, >> >> Your patch have now been tested and it seems to work :-). However, when we >> are running dialyzer on 'pu' branch we receive an error due to a faulty >> spec: >> >> >> - *ssl_connection.erl:292: * (extra_range) >> The specification for *ssl_connection:init/1* states that the function >> might also return *{'ok','abbreviated' | 'certify' | 'cipher' | >> 'connection' | >> 'hello',{'state',_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_}} >> * but the inferred return is *{'stop',_} | >> {'ok','hello',{'state','client' | 'server',{reference(),atom() | pid() | >> {_,_}},_,_,_,_,_,_,_,{'ssl_options',_,_,_,_,_,_,_,_,_,_,_,'undefined',_,_,_,_,_,_,_,_,_,_,_},_,{'connection_states',{_,_,_,_,_,_,_,_,_},{_,_,_,_,_,_,_,_,_},{_,_,_,_,_,_,_,_,_},{_,_,_,_,_,_,_,_,_}},[],<<>>,<<>>,{{_,_},{_,_}},[],{'session','undefined','undefined',_,'undefined','undefined','undefined','false','undefined'},_,atom(),'undefined','undefined','false','undefined','undefined',_,_,'undefined','undefined',reference(),'undefined',0,<<>>,'true',{'false','first'},'false',queue(),'false'},_} >> * >> >> >> Do you have time to solve this? >> >> Regards, >> Niclas Axelsson, Erlang/OTP >> >> > > Hi Niclas, > > Please refetch > > git://github.com/jkoops/otp.git ssl_connection_hibernate > > the issue with the init-spec should be solved. > > > Regards, > > Jeroen > > Thanks Jeroen, Your branch have been refetched. Regards, Niclas Axelsson, Erlang/OTP From burbas@REDACTED Fri Mar 4 17:25:59 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Fri, 4 Mar 2011 17:25:59 +0100 Subject: What's cooking in erlang/otp (2011-03-04) Message-ID: <201103041625.p24GPvQT029563@smaug.otp.ericsson.se> ------------------------------------------------------------ [Graduated] * cr/httpc-docs (inets, kernel) (2010-12-15) 1 commit + inets/httpc: Polish documentation (748dbeb) * fd/httpc-man-page-fixes (inets) (2010-12-16) 1 commit + Grammar and typo fixes for the httpc module documentation (778a608) * fm/dict-man-page (stdlib) (2010-12-13) 2 commits + Fixes to the orddict module documentation (18777e8) + Fixes to the dict module documentation (c537777) * hw/erl-clarify-detached-doc (erts) (2011-01-24) 1 commit + Mention that "-detached" implies "-noinput" (98e954d) * ih/calendar-iso-8601-erl (stdlib) (2010-12-14) 1 commit + Add ISO week number calculation functions to the calendar module in stdlib (7c94e6f) * ks/code-spec-fixes (hipe, kernel) (2011-01-30) 1 commit + Sanitize the specs of the code module (2697ce8) * ks/dialyzer-fullpath (dialyzer) (2011-01-20) 1 commit + Add a --fullpath option to Dialyzer (b4c3711) * ks/hipe-icode-range-fix (hipe) (2011-02-02) 3 commits + Cleanup specs (cc526d2) + Fix bug in the simplification of inexact comparisons (6c9a53e) + Various cleanups and cosmetic changes (b397a5b) * ks/process_status (erts, hipe) (2011-03-02) 1 commit + Document exiting and garbage_collecting process statuses (804bb7f) * sa/dialyzer-fix-guards (dialyzer) (2011-01-14) 3 commits + Fix warnings about guards containing not (271ee93) + Fix errors in the handling of 'and'/'or' guards (02e0f98) + Cosmetic changes (326ec4e) * ta/driver-entry-typos (erts) (2010-12-26) 1 commit + Fix a couple typos in driver_entry(3) (68aed1c) * ta/httpc-typo () (2011-01-09) 0 commits ------------------------------------------------------------ [New topics] * cg/fix-sizeof-array-arg (erl_interface) (2011-02-25) 1 commit - Fix using sizeof() for array given as function argument (6228f21) * jk/ssl_connection_hibernate (ssl) (2011-02-23) 3 commits - Add the option { hibernate_after, int() } to ssl:connect and ssl:listen (0c21eac) - Changed to function-head matching. (ee4d17c) - Added hibernate_after option to ssl:connect and ssl:listen. (6bbca38) * ms/beam-fix-format-specifiers-in-erl_exit-msg (erts) (2011-02-25) 1 commit - Fix format specifiers in erl_exit messages (13f5d59) ------------------------------------------------------------ [Stalled] ------------------------------------------------------------ [Cooking] * bd/mod_esi_binary (inets) (2011-02-23) 1 commit - Modify mod_esi:deliver/2 to accept binary data (73f261d) * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-03-15) 6 commits - Avoid crash by skipping compilation_SUITE:on_load/1 (8592a02) - Inline less aggressively for native-code compilation (e699ad4) - Crudely fix return type for the lists:key{search,find,member}/3 (2b72202) - seq_trace_SUITE: Don't native-compile (2712344) - Disable native code if on_load is used (e8d0ea4) - andor_SUITE: Don't native-compile (e25ef8c) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * bsmr/fix-makefile-in-for-xref-mod-app-escript (otp) (2010-12-10) 1 commit - Fix for Makefile.in invoking xref_mod_app.escript (10d4235) * bw/efile_exists (erts) (2010-10-07) 1 commit - prim_file:exists/{1,2} which is lightweight file existence check (7203932) * bw/tv-render-fix (tv) (2010-10-06) 1 commit - tv: Allow table viewer to display refs, ports and small binaries (5eff630) * cg/fix-pointer-dereference (erts) (2011-02-23) 1 commit - Fix some wrong pointer dereferences (47f9ef2) * cg/fix-prng (stdlib) (2010-10-06) 1 commit - Fix a bug in the implementation of the pseudo-random number generator (863ec4d) * dk/agent-capabilities (snmp) (2010-12-01) 1 commit - AGENT-CAPABILITIES handling added to SNMP mib compiler (17c3b19) * fd/unix-efile-readdir-fix (erts) (2010-12-15) 1 commit - Fix call to strncat, 3rd arg should be of type size_t and not a pointer (78cfdaf) * fm/httpc-upload-body-streaming (inets) (2010-12-01) 1 commit - httpc: added support for streaming the body of an upload request (PUT or POST) (402ce68) * fm/posix-fallocate (erts, kernel) (2011-01-10) 2 commits - Fix build on Solaris (38a922d) - Added file:allocate/2 (9870d9b) * gc/gen-format-status-improvements (stdlib) (2010-06-12) 1 commit - Fix format_status bug for unregistered gen_event processes (95ed86f) * gl/erts-doterlang-docs (erts) (2010-12-19) 1 commit - Add back documentation on .erlang processing (6f9d175) * gl/gen_server-doc (otp) (2011-01-29) 1 commit - Update Handling Other Messages section in gen_server, gen_fsm, gen_events overviews (1fb616d) * hw/call-chmod-without-f (asn1, common_test, compiler, cosFileTransfer, crypto, debugger, docbuilder, edoc, erl_interface, erts, et, inets, inviso, kernel, megaco, mnesia, orber, parsetools, percept, public_key, reltool, runtime_tools, snmp, ssl, stdlib, syntax_tools, test_server, tools) (2010-11-15) 1 commit - Call chmod without the "-f" flag (7ed11a8) * hw/epmd-bind-to-address (erts) (2010-11-10) 1 commit - Allow user to specify the IP address epmd binds to (bcf3b3d) * hw/fix-epmd-perror (erts) (2010-11-13) 1 commit - Fix epmd's dbg_perror() output (b363d7d) * ja/cocci-useless-cast (erts) (2011-02-01) 1 commit - Remove useless casts from the emulator (4163493) * jf/run_erl-disable-flow-control (erts) (2010-03-05) 1 commit - Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control (d0775cd) * jn/gen_stream (stdlib) (2011-01-31) 1 commit - Add gen_stream behaviour (730c7fd) * km/pool_connect-to-running-nodes (stdlib) (2010-09-02) 1 commit - Change pool module to attempt to attach to nodes that are already running (a9f4cbc) * ks/erl_recomment (syntax_tools) (2011-02-23) 1 commit - Fix bug with some comments disappearing (64eb70d) * ks/hipe-ppc64 (erts, hipe, kernel) (2011-02-10) 8 commits - Enable HiPE by default when compiling for PPC64 (577a628) - Translate RTL to PPC code on PPC64 too (6f40a86) - Changes in ppc files for PPC64 (ea5edef) - Additions for the PPC64 backend (861cfc9) - Changes for the PPC64 backend (dbba32b) - Added loader for ppc64 (60826a5) - New files for the 64-bit backends (7c53e28) - Cleanup tags (e34f3a0) * ks/prim_file-fixes (erts) (2011-02-05) 3 commits - New version of the file (ca86ed3) - Driver names should be strings, not atoms (b8ea40c) - Cleanup and cosmetic changes (6adc116) * ks/reltool-spec-fixes (reltool) (2011-01-12) 1 commit - Fix two erroneous specs of reltool.erl (96c81d6) * ks/typer (typer) (2011-02-10) 21 commits - Strengthen some specs (e70b5f1) - Allow for --show_success_typings spelling also (bb66841) - Add '--show_success_typings' option (8376b29) - Fix crash in oveloaded contracts with overlapping domains (752b058) - Fix a type error and do some further cleanup (0ef74b6) - Type cleanups and simplifications (39bf5ad) - Cleanup the analysis record (0b1d045) - Remove typer_annotator.erl and typer.hrl (066368a) - Remove typer_info.erl file (03aa23f) - Remove typer_options.erl file (3683f8d) - Remove typer_preprocess.erl file (f4a8288) - Delete typer_map.erl file, really this time (3c1e906) . . . . . . . . . * mh/eunit-surefire-reports (eunit) (2011-02-25) 1 commit - Don't shorten error messages in Eunit Surefire reports (d0cc2ae) * mk/net-kernel-epmd-return-list (kernel) (2010-12-10) 1 commit - Fix list returned by net_kernel:epmd_module (169d7e4) * ms/epmd-local-access-check (erts) (2010-11-24) 1 commit - epmd: include host address in local access check (5b68030) * ms/file-fix-hang-reading-compressed-files (erts, kernel) (2011-01-30) 1 commit - file: fix hang reading compressed files (292ecd0) * ms/inets-prevent_xss_in_error_pages (inets) (2011-02-21) 1 commit - inets: prevent XSS in error pages (4827d5d) * nox/xmerl-namespace-axis (xmerl) (2010-12-07) 12 commits - Implement namespace axis (27d791f) - Add `#xmlPI` support to xmerl_xpath:write_node/1 (75e67f5) - Fix processing-instruction(name?) (f05e78b) - Fix path filters (610df56) - Support more top-level primary expressions (770d6d9) - Accumulate comments in element nodes (e5b6b3a) - Add `default_attrs` option (18584c5) - Allow whole documents to be returned (aef3dea) - Track parents and namespace in `#xmlAttribute` nodes (dc9b220) - Track parents in `#xmlPI` nodes (5095331) - Set `vsn` field in `#xmlDecl` record (d712331) - Fix namespace-conformance constraints (e062270) * pg/des-cfb-functions (crypto) (2010-10-16) 1 commit - Add DES and Triple DES cipher feedback (CFB) mode functions (2c79ae7) * pg/fix-hibernate-with-hipe (erts, otp) (2010-09-27) 1 commit - Fix several bugs related to hibernate/3 and HiPE (ce00ecb) . Fix several bugs related to hibernate/3 and HiPE (babd761) * pg/hipe-remove-constants-pool (erts) (2011-01-29) 1 commit - Remove hipe constants pool (0c16b09) * pg/honor-start-type-in-rel-files (sasl) (2010-06-06) 1 commit - Honor start type in .rel files when building relup files (7599900) * rc/rpc_pmap-typo (kernel) (2011-02-22) 1 commit - Fix typo in doc of rpc:pmap/3 (ee1ea4c) * sa/callback-attr (compiler, inets, kernel, otp, stdlib) (2010-06-08) 7 commits - Add callback specs into 'application' module in kernel (85ae9d7) - Add callback specs to tftp module following internet documentation (019e6d1) - Add callback specs to inets_service module following possibly deprecated comments (575c7af) - Add '-callback' attributes in stdlib's behaviours (a9da5cc) - Update primary bootstrap (d5d255b) - Automatically generate 'behaviour_info' function from '-callback' attributes (1155c86) - Add '-callback' attribute to language syntax (1a1cc4b) * sa/float_to_list_2 (erts, stdlib) (2011-01-16) 1 commit - Added float_to_list/2 that allows to specify formatting options (ee5a309) * sb/make-files-like-erlc (tools) (2010-05-18) 1 commit - Change make:files to behave more like erlc (5e9d051) * sg/fix-diskless-booted-relup (sasl) (2010-09-19) 1 commit - Remove traces of release_handler reading from filesystem when it has Masters list (54cb5df) * sv/enif_is_exception (erts) (2011-02-22) 1 commit - add support for checking if an ERL_NIF_TERM is an exception (f8cc2b0) * ta/binary-part-typo (stdlib) (2011-01-22) 1 commit - Fix typo in binary:part/2 example (98f51f2) * ta/efficiencyguide-typos (otp) (2011-01-27) 1 commit - Fix typos in efficiency guide (5d62504) * ta/epmd-typo (erts) (2011-01-09) 1 commit - Fix typo in epmd help (ce956a8) * ta/erlsrv-typos (erts) (2010-12-14) 1 commit - Fix two typos in erlsrv log messages (31b82e8) * ta/erts-doc (erts) (2011-02-01) 1 commit - erts: Fix doc typos, duplication and readability (04e81b8) * ta/inet_port-doc (kernel) (2011-02-20) 1 commit - Fix inet:port/1 doc to match implementation/spec (b351d8f) * ta/sendfile (erts, kernel) (2011-01-13) 1 commit - Implement file:sendfile (0b277d9) * ta/zip-doc (stdlib) (2011-02-23) 1 commit - Fix typos in zip manpage (f911632) * ts/cover-with-export_all (tools) (2010-09-23) 1 commit - add user specified compiler options on form reloading (eb02beb) * tv/edoc-loop-fix (edoc) (2011-02-01) 1 commit - Fix infinite loop for malformed edoc input (6ac05e5) * uw/mnesia-majority (mnesia) (2011-01-30) 8 commits - Add documentation text about majority checking (f5b8427) - add mnesia_majority_test suite (9c2f765) - where_to_wlock optimization + change_table_majority/2 (a535b6c) - bug in mnesia_tm:needs_majority/2 (eb81e20) - optimize sticky_lock maj. check (5b304d4) - check majority for sticky locks (ae9e1fa) - Write locks now check majority when needed. (6f02d2e) - Add {majority, boolean()} per-table option. (c3241c0) * vb/shell (erts, kernel, stdlib) (2011-01-21) 6 commits - Add expandfmt_fun option for io:setopts (f139eab) - Correct JCL's help indentation (95672fa) - Handle JCL's "r" command error when no pool started (ba4b196) - Fix tab expansion in remote shell (e2077cb) - edlin_expand: fix matches formatting (838b84a) - Take into account arity len when calculating field's width (ff28c52) ------------------------------------------------------------ [Dropped] * fd/supervisor-delete-child-spec-on-child-termination (stdlib) (2011-01-19) 1 commit . Added supervisor:start_child/3 (bdf27ab) From kostis@REDACTED Sun Mar 6 19:17:20 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Sun, 06 Mar 2011 20:17:20 +0200 Subject: Some spec and type cleanups for kernel Message-ID: <4D73CFB0.30706@cs.ntua.gr> Please fetch: git fetch git://github.com/kostis/otp.git kernel-dialyzer-cleanups Kostis From mikpe@REDACTED Sun Mar 6 21:22:46 2011 From: mikpe@REDACTED (Mikael Pettersson) Date: Sun, 6 Mar 2011 21:22:46 +0100 Subject: [erlang-patches] What's cooking in erlang/otp (2011-03-04) In-Reply-To: <201103041625.p24GPvQT029563@smaug.otp.ericsson.se> References: <201103041625.p24GPvQT029563@smaug.otp.ericsson.se> Message-ID: <19827.60694.83127.484402@pilspetsen.it.uu.se> Niclas Axelsson writes: > * pg/fix-hibernate-with-hipe (erts, otp) (2010-09-27) 1 commit > - Fix several bugs related to hibernate/3 and HiPE (ce00ecb) > > . Fix several bugs related to hibernate/3 and HiPE (babd761) > > * pg/hipe-remove-constants-pool (erts) (2011-01-29) 1 commit > - Remove hipe constants pool (0c16b09) I've reviewed and tested both of these. Please promote them for possible inclusion in the next release. /Mikael (. on behalf of the HiPE group .) From vinoski@REDACTED Mon Mar 7 07:16:28 2011 From: vinoski@REDACTED (Steve Vinoski) Date: Mon, 7 Mar 2011 01:16:28 -0500 Subject: erl_nif doc enhancements Message-ID: This patch enhances the erl_nif documentation for handling resources to try to make it clearer when and where they can be safely released. Reviewed by Sverker Eriksson. git fetch git://github.com/vinoski/otp.git clarify_nif_resource_doc --steve From burbas@REDACTED Mon Mar 7 14:29:38 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Mon, 7 Mar 2011 14:29:38 +0100 Subject: [erlang-patches] Some spec and type cleanups for kernel In-Reply-To: <4D73CFB0.30706@cs.ntua.gr> References: <4D73CFB0.30706@cs.ntua.gr> Message-ID: <4D74DDC2.1080202@erlang.org> On 03/06/2011 07:17 PM, Kostis Sagonas wrote: > Please fetch: > > git fetch git://github.com/kostis/otp.git kernel-dialyzer-cleanups > > Kostis > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED Thanks Kostis, I've merged your branch into 'opu'. Regards, Niclas Axelsson, Erlang/OTP From burbas@REDACTED Mon Mar 7 17:02:58 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Mon, 7 Mar 2011 17:02:58 +0100 Subject: [erlang-patches] erl_nif doc enhancements In-Reply-To: References: Message-ID: <4D7501B2.5060109@erlang.org> On 03/07/2011 07:16 AM, Steve Vinoski wrote: > This patch enhances the erl_nif documentation for handling resources > to try to make it clearer when and where they can be safely released. > Reviewed by Sverker Eriksson. > > git fetch git://github.com/vinoski/otp.git clarify_nif_resource_doc > > --steve > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Thanks Steve! Your branch is merged into 'pu'. Regards, Niclas Axelsson, Erlang/OTP From jon@REDACTED Tue Mar 8 21:13:35 2011 From: jon@REDACTED (Jon Meredith) Date: Tue, 8 Mar 2011 13:13:35 -0700 Subject: Patch for 18 exabyte memory allocation failure Message-ID: Hi list, Over the last few months Basho has been seeing intermittent beam crashes with extremely large out of memory failures. A customer just had a cluster crash with multiple nodes exiting close to the same time with huge allocation requests and we were able to get our hands on the coredumps for the first time. eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type "heap_frag"). eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type "heap_frag"). eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type "heap_frag"). After analyzing using pstack, they all died in the same place ----------------- lwp# 71 / thread# 71 -------------------- fffffd7fff0e1eca _lwp_kill () + a fffffd7fff086fe9 raise () + 19 fffffd7fff065f60 abort () + 90 0000000000473575 erl_exit () + 155 000000000046110e erts_alc_fatal_error () + 1de 0000000000461177 ???????? () 000000000049792d ???????? () 00000000004ddc8c new_binary () + ac 00000000004d77f1 erts_term_to_binary () + 1e1 0000000000538c95 process_main () + 8235 00000000004bae0c ???????? () 00000000005a6c43 ???????? () fffffd7fff0dc39b _thr_setup () + 5b fffffd7fff0dc5c0 _lwp_start () Digging into through the stack, in erts_term_to_binary the size for the result binary is computed as a Unit, then truncated and stored temporarily as a signed int. When new_binary is called it is given a signed int which is then converted back to a Uint for the allocation. We've seen the crash on 64-bit Solaris/Linux systems where sizeof(int) == 4, sizeof(Uint) == 8. When converting from signed int to unsigned long the compiler helpfully sign extends the int to 8 bytes. Any sizes >= 0x8000000 become 0xffffffff80000000 and above triggering the allocation failure. Here's a small fragment to reproduce. Bin = list_to_binary([X rem 256 || X <- lists:seq(1, 65536)]). Blocks = 16#80000000 div size(Bin). BigBin = lists:duplicate(Blocks, Bin). term_to_binary(BigBin). I've attached patches that changes new_binary to take a Uint size and fixed the cases where callers were casting the size argument to an (int). I've also modified the temporary 'size' variable in erts_term_to_binary to be a Uint. The first patch applies to the r13b04 and r14b01 tarballs and the other applies to the 'pu' branch on github as I pulled it today. There were some other places in the code there are still problems but I decided to leave them to people that know more than I do. The most important one is around iolists and bitstrings - io_list_len and bitstr_len both return integer lengths. I also noticed something in the ssl_tls_erl function - I wasn't sure if it was possible to send a very long buffer and prefix length. The code loader also uses ints, but it seems less likely to bite anybody. erts/emulator/beam/binary. 670: bin = new_binary(p, (byte *)NULL, i); // SHOULDFIX - io_list_len returns int 413: bin = new_binary(BIF_P, (byte *)NULL, i); // SHOULDFIX - bitstr_len returns int erts/emulator/beam/erl_bif_port.c 1281: Eterm bin = new_binary(pca->p, NULL, plen+len); SSL TLS - two ints, probably size limited I think there may also be problems checking the length of binaries when creating external binaries - the format only allows for a 32-bit unsigned length and I didn't see a check in enc_term when I glanced at it. Hope it helps somebody, Cheers, Jon Meredith. Basho Technologies. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: t2b_overflow-r13b04_r14b01.patch Type: application/octet-stream Size: 4070 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: t2b_overflow-pu.patch Type: application/octet-stream Size: 3452 bytes Desc: not available URL: From yrashk@REDACTED Tue Mar 8 21:48:29 2011 From: yrashk@REDACTED (Yurii Rashkovskii) Date: Tue, 8 Mar 2011 12:48:29 -0800 Subject: [erlang-patches] Patch for 18 exabyte memory allocation failure In-Reply-To: References: Message-ID: Nice catch. I can reproduce this on Mac OS X as well -- Yurii Rashkovskii http://twitter.com/yrashk On Tuesday, March 8, 2011 at 12:13 PM, Jon Meredith wrote: From rzezeski@REDACTED Tue Mar 8 23:13:26 2011 From: rzezeski@REDACTED (Ryan Zezeski) Date: Tue, 8 Mar 2011 17:13:26 -0500 Subject: [erlang-patches] Patch for 18 exabyte memory allocation failure In-Reply-To: References: Message-ID: I recently saw this in the wild on an about-to-be production system. Nice catch indeed. -Ryan On Tue, Mar 8, 2011 at 3:48 PM, Yurii Rashkovskii wrote: > Nice catch. I can reproduce this on Mac OS X as well > > -- > Yurii Rashkovskii > http://twitter.com/yrashk > On Tuesday, March 8, 2011 at 12:13 PM, Jon Meredith wrote: > > From kostis@REDACTED Wed Mar 9 01:00:35 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Wed, 09 Mar 2011 02:00:35 +0200 Subject: Patch for dialyzer (R14B02) Message-ID: <4D76C323.4020701@cs.ntua.gr> Final touches for R14B02 that only affect dialyzer: git fetch git://github.com/kostis/otp.git dialyzer-r14b02-final-touches Please include in the upcoming release. Kostis From bgustavsson@REDACTED Wed Mar 9 14:28:15 2011 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Wed, 9 Mar 2011 14:28:15 +0100 Subject: [erlang-patches] Patch for 18 exabyte memory allocation failure In-Reply-To: References: Message-ID: On Tue, Mar 8, 2011 at 9:13 PM, Jon Meredith wrote: > Hi list, > Over the last few months Basho has been seeing intermittent beam crashes > with extremely large out of memory failures. A customer just had a cluster > crash with multiple nodes exiting close to the same time with huge > allocation requests and we were able to get our hands on the coredumps for > the first time. > eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type > "heap_frag"). > eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type > "heap_frag"). > eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type > "heap_frag"). Thanks for the patch. We will include it in our daily builds and most probably include it in the R14B02 release. We will address the other problems you mentioned in a future release. Thanks for pointing them out. For future submissions, please review the guidelines for submitting patches: https://github.com/erlang/otp/wiki/Submitting-patches -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From magnus.henoch@REDACTED Wed Mar 9 16:28:49 2011 From: magnus.henoch@REDACTED (Magnus Henoch) Date: Wed, 9 Mar 2011 15:28:49 +0000 (GMT) Subject: Declare Emacs indentation options as safe In-Reply-To: <1302077387.43611299683359315.JavaMail.root@zimbra> Message-ID: <1405921975.43701299684529544.JavaMail.root@zimbra> This patch makes Emacs not ask for confirmation when an Erlang source file specifies custom indentation options (used in Hipe and Rebar): git fetch git://github.com/legoscia/otp.git emacs-indent-variables-are-safe Regards, Magnus From burbas@REDACTED Wed Mar 9 16:55:11 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Wed, 9 Mar 2011 16:55:11 +0100 Subject: [erlang-patches] Declare Emacs indentation options as safe In-Reply-To: <1405921975.43701299684529544.JavaMail.root@zimbra> References: <1405921975.43701299684529544.JavaMail.root@zimbra> Message-ID: <4D77A2DF.7050707@erlang.org> On 03/09/2011 04:28 PM, Magnus Henoch wrote: > This patch makes Emacs not ask for confirmation when an Erlang source > file specifies custom indentation options (used in Hipe and Rebar): > > git fetch git://github.com/legoscia/otp.git emacs-indent-variables-are-safe > > Regards, > Magnus > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Thanks Magnus, Your branch has been merged into 'pu'. Regards, Niclas Axelsson, Erlang/OTP From burbas@REDACTED Wed Mar 9 16:57:25 2011 From: burbas@REDACTED (Niclas Axelsson) Date: Wed, 9 Mar 2011 16:57:25 +0100 Subject: [erlang-patches] Patch for dialyzer (R14B02) In-Reply-To: <4D76C323.4020701@cs.ntua.gr> References: <4D76C323.4020701@cs.ntua.gr> Message-ID: <4D77A365.10803@erlang.org> On 03/09/2011 01:00 AM, Kostis Sagonas wrote: > Final touches for R14B02 that only affect dialyzer: > > git fetch git://github.com/kostis/otp.git dialyzer-r14b02-final-touches > > Please include in the upcoming release. > > Kostis > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED Thanks Kostis One night in 'opu' and then I'll graduate it. Regards, Niclas Axelsson, Erlang/OTP From max.lapshin@REDACTED Wed Mar 9 18:31:04 2011 From: max.lapshin@REDACTED (Max Lapshin) Date: Wed, 9 Mar 2011 20:31:04 +0300 Subject: [erlang-patches] Patch for 18 exabyte memory allocation failure In-Reply-To: References: Message-ID: > Thanks for the patch. We will include it in our daily builds and most probably > include it in the R14B02 release. > > We will address the other problems you mentioned in a future release. > Thanks for pointing them out. Maybe it is a good idea to review all places with int and change to uint where sign is not required by design? From masklinn@REDACTED Wed Mar 9 18:46:54 2011 From: masklinn@REDACTED (Masklinn) Date: Wed, 9 Mar 2011 18:46:54 +0100 Subject: [erlang-patches] Patch for 18 exabyte memory allocation failure In-Reply-To: References: Message-ID: <1B77F42C-5CD0-466D-A3D5-BC7928B4DF35@masklinn.net> On 2011-03-08, at 21:13 , Jon Meredith wrote: > Hi list, > > Over the last few months Basho has been seeing intermittent beam crashes > with extremely large out of memory failures. A customer just had a cluster > crash with multiple nodes exiting close to the same time with huge > allocation requests and we were able to get our hands on the coredumps for > the first time. > > eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type > "heap_frag"). > eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type > "heap_frag"). > eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type > "heap_frag"). > > After analyzing using pstack, they all died in the same place > > ----------------- lwp# 71 / thread# 71 -------------------- > fffffd7fff0e1eca _lwp_kill () + a > fffffd7fff086fe9 raise () + 19 > fffffd7fff065f60 abort () + 90 > 0000000000473575 erl_exit () + 155 > 000000000046110e erts_alc_fatal_error () + 1de > 0000000000461177 ???????? () > 000000000049792d ???????? () > 00000000004ddc8c new_binary () + ac > 00000000004d77f1 erts_term_to_binary () + 1e1 > 0000000000538c95 process_main () + 8235 > 00000000004bae0c ???????? () > 00000000005a6c43 ???????? () > fffffd7fff0dc39b _thr_setup () + 5b > fffffd7fff0dc5c0 _lwp_start () > > Digging into through the stack, in erts_term_to_binary the size for the > result binary is computed as a Unit, then truncated and stored temporarily > as a signed int. When new_binary is called it is given a signed int which is > then converted back to a Uint for the allocation. > > We've seen the crash on 64-bit Solaris/Linux systems where sizeof(int) == 4, > sizeof(Uint) == 8. When converting from signed int to unsigned long the > compiler helpfully sign extends the int to 8 bytes. Any sizes >= 0x8000000 > become 0xffffffff80000000 and above triggering the allocation failure. > > Here's a small fragment to reproduce. > > Bin = list_to_binary([X rem 256 || X <- lists:seq(1, 65536)]). > Blocks = 16#80000000 div size(Bin). > BigBin = lists:duplicate(Blocks, Bin). > term_to_binary(BigBin). > > I've attached patches that changes new_binary to take a Uint size and fixed > the cases where callers were casting the size argument to an (int). I've > also modified the temporary 'size' variable in erts_term_to_binary to be a > Uint. > The first patch applies to the r13b04 and r14b01 tarballs and the other > applies to the 'pu' branch on github as I pulled it today. > > There were some other places in the code there are still problems but I > decided to leave them to people that know more than I do. > > The most important one is around iolists and bitstrings - io_list_len and > bitstr_len both return integer lengths. I also noticed something in the > ssl_tls_erl function - I wasn't sure if it was possible to send a very long > buffer and prefix length. The code loader also uses ints, but it seems less > likely to bite anybody. > > erts/emulator/beam/binary. > 670: bin = new_binary(p, (byte *)NULL, i); > // SHOULDFIX - io_list_len returns int > 413: bin = new_binary(BIF_P, (byte *)NULL, i); // > SHOULDFIX - bitstr_len returns int > > erts/emulator/beam/erl_bif_port.c > 1281: Eterm bin = new_binary(pca->p, NULL, plen+len); > SSL TLS - two ints, probably size limited > > I think there may also be problems checking the length of binaries when > creating external binaries - the format only allows for a 32-bit unsigned > length and I didn't see a check in enc_term when I glanced at it. > > Hope it helps somebody, This might be a stupid query, but shouldn't these kinds of sizes use something like size_t or a similar typedef instead of passing them around as if they were "normal" integers? From mjtruog@REDACTED Wed Mar 9 18:59:54 2011 From: mjtruog@REDACTED (Michael Truog) Date: Wed, 09 Mar 2011 09:59:54 -0800 Subject: [erlang-patches] Patch for 18 exabyte memory allocation failure In-Reply-To: <1B77F42C-5CD0-466D-A3D5-BC7928B4DF35@masklinn.net> References: <1B77F42C-5CD0-466D-A3D5-BC7928B4DF35@masklinn.net> Message-ID: <4D77C01A.5030707@gmail.com> On 03/09/2011 09:46 AM, Masklinn wrote: > On 2011-03-08, at 21:13 , Jon Meredith wrote: >> Hi list, >> >> Over the last few months Basho has been seeing intermittent beam crashes >> with extremely large out of memory failures. A customer just had a cluster >> crash with multiple nodes exiting close to the same time with huge >> allocation requests and we were able to get our hands on the coredumps for >> the first time. >> >> eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type >> "heap_frag"). >> eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type >> "heap_frag"). >> eheap_alloc: Cannot allocate 18446744071662201696 bytes of memory (of type >> "heap_frag"). >> >> After analyzing using pstack, they all died in the same place >> >> ----------------- lwp# 71 / thread# 71 -------------------- >> fffffd7fff0e1eca _lwp_kill () + a >> fffffd7fff086fe9 raise () + 19 >> fffffd7fff065f60 abort () + 90 >> 0000000000473575 erl_exit () + 155 >> 000000000046110e erts_alc_fatal_error () + 1de >> 0000000000461177 ???????? () >> 000000000049792d ???????? () >> 00000000004ddc8c new_binary () + ac >> 00000000004d77f1 erts_term_to_binary () + 1e1 >> 0000000000538c95 process_main () + 8235 >> 00000000004bae0c ???????? () >> 00000000005a6c43 ???????? () >> fffffd7fff0dc39b _thr_setup () + 5b >> fffffd7fff0dc5c0 _lwp_start () >> >> Digging into through the stack, in erts_term_to_binary the size for the >> result binary is computed as a Unit, then truncated and stored temporarily >> as a signed int. When new_binary is called it is given a signed int which is >> then converted back to a Uint for the allocation. >> >> We've seen the crash on 64-bit Solaris/Linux systems where sizeof(int) == 4, >> sizeof(Uint) == 8. When converting from signed int to unsigned long the >> compiler helpfully sign extends the int to 8 bytes. Any sizes >= 0x8000000 >> become 0xffffffff80000000 and above triggering the allocation failure. >> >> Here's a small fragment to reproduce. >> >> Bin = list_to_binary([X rem 256 || X <- lists:seq(1, 65536)]). >> Blocks = 16#80000000 div size(Bin). >> BigBin = lists:duplicate(Blocks, Bin). >> term_to_binary(BigBin). >> >> I've attached patches that changes new_binary to take a Uint size and fixed >> the cases where callers were casting the size argument to an (int). I've >> also modified the temporary 'size' variable in erts_term_to_binary to be a >> Uint. >> The first patch applies to the r13b04 and r14b01 tarballs and the other >> applies to the 'pu' branch on github as I pulled it today. >> >> There were some other places in the code there are still problems but I >> decided to leave them to people that know more than I do. >> >> The most important one is around iolists and bitstrings - io_list_len and >> bitstr_len both return integer lengths. I also noticed something in the >> ssl_tls_erl function - I wasn't sure if it was possible to send a very long >> buffer and prefix length. The code loader also uses ints, but it seems less >> likely to bite anybody. >> >> erts/emulator/beam/binary. >> 670: bin = new_binary(p, (byte *)NULL, i); >> // SHOULDFIX - io_list_len returns int >> 413: bin = new_binary(BIF_P, (byte *)NULL, i); // >> SHOULDFIX - bitstr_len returns int >> >> erts/emulator/beam/erl_bif_port.c >> 1281: Eterm bin = new_binary(pca->p, NULL, plen+len); >> SSL TLS - two ints, probably size limited >> >> I think there may also be problems checking the length of binaries when >> creating external binaries - the format only allows for a 32-bit unsigned >> length and I didn't see a check in enc_term when I glanced at it. >> >> Hope it helps somebody, > This might be a stupid query, but shouldn't these kinds of sizes use something like size_t or a similar typedef instead of passing them around as if they were "normal" integers Most people use the standard include file "stdint.h" http://en.wikipedia.org/wiki/Stdint.h The behavior seems to indicate Uint is an unsigned long. Using the stdint.h types could also help make the ei interface less ambiguous with its integer types. From aronisstav@REDACTED Thu Mar 10 10:26:43 2011 From: aronisstav@REDACTED (Stavros Aronis) Date: Thu, 10 Mar 2011 11:26:43 +0200 Subject: Missing spec in dialyzer Message-ID: Hi! After the latest changes in dialyzer due to the inclusion of its testsuite in OTP I've been notified that a warning was emitted due to a missing spec. This patch provides this spec: git fetch git://github.com/aronisstav/otp.git dialyzer-missing-spec I apologize for this omission. Stavros Aronis From aronisstav@REDACTED Thu Mar 10 11:11:22 2011 From: aronisstav@REDACTED (Stavros Aronis) Date: Thu, 10 Mar 2011 12:11:22 +0200 Subject: [erlang-patches] Patch for dialyzer (R14B02) In-Reply-To: <4D77A365.10803@erlang.org> References: <4D76C323.4020701@cs.ntua.gr> <4D77A365.10803@erlang.org> Message-ID: There was an issue with one of my commits in this patch that was detected by the inclusion of dialyzer tests in dev. I'm terribly sorry for any inconvenience. I have fixed it and rebased the branch. Please refetch. Stavros Aronis 2011/3/9 Niclas Axelsson > On 03/09/2011 01:00 AM, Kostis Sagonas wrote: > >> Final touches for R14B02 that only affect dialyzer: >> >> git fetch git://github.com/kostis/otp.git dialyzer-r14b02-final-touches >> >> Please include in the upcoming release. >> >> Kostis >> >> ________________________________________________________________ >> erlang-patches (at) erlang.org mailing list. >> See http://www.erlang.org/faq.html >> To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED >> > Thanks Kostis > > One night in 'opu' and then I'll graduate it. > > Regards, > Niclas Axelsson, Erlang/OTP > > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > > From jimenezrick@REDACTED Thu Mar 10 15:12:40 2011 From: jimenezrick@REDACTED (=?UTF-8?Q?Ricardo_Catalinas_Jim=C3=A9nez?=) Date: Thu, 10 Mar 2011 15:12:40 +0100 Subject: Fix typo in filelib module doc Message-ID: Please fetch: git fetch git://github.com/jimenezrick/otp.git typo-filelib -- Ricardo From henrik@REDACTED Thu Mar 10 17:27:59 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 10 Mar 2011 17:27:59 +0100 Subject: Missing spec in dialyzer In-Reply-To: References: Message-ID: <4D78FC0F.8040808@erlang.org> On 01/-10/-28163 08:59 PM, Stavros Aronis wrote: > Hi! > > After the latest changes in dialyzer due to the inclusion of its testsuite > in > OTP I've been notified that a warning was emitted due to a missing spec. > > This patch provides this spec: > > git fetch git://github.com/aronisstav/otp.git dialyzer-missing-spec > > I apologize for this omission. > > Stavros Aronis > > Thanks Stavros Your branch is now in 'opu' /Henrik Nord Erlang/OTP From henrik@REDACTED Thu Mar 10 17:30:44 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 10 Mar 2011 17:30:44 +0100 Subject: [erlang-patches] Fix typo in filelib module doc In-Reply-To: References: Message-ID: <4D78FCB4.2000301@erlang.org> On 03/10/2011 03:12 PM, Ricardo Catalinas Jim?nez wrote: > Please fetch: > > git fetch git://github.com/jimenezrick/otp.git typo-filelib > > Thanks! Your branch was selected for inclusion in 'dev', Thank you for your contribution /Henrik Nord, Erlang/OTP From jimenezrick@REDACTED Thu Mar 10 22:49:30 2011 From: jimenezrick@REDACTED (Ricardo Catalinas =?iso-8859-1?Q?Jim=E9nez?=) Date: Thu, 10 Mar 2011 22:49:30 +0100 Subject: Fix TypEr crash when used with several source files Message-ID: <20110310214930.GA5085@viper.server01.org> Already reported bug, see http://www.erlang.org/cgi-bin/ezmlm-cgi/2/1604. Please fetch: git fetch git://github.com/jimenezrick/otp.git fix-typer-delete -- Ricardo From kostis@REDACTED Thu Mar 10 23:21:58 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Fri, 11 Mar 2011 00:21:58 +0200 Subject: [erlang-patches] Fix TypEr crash when used with several source files In-Reply-To: <20110310214930.GA5085@viper.server01.org> References: <20110310214930.GA5085@viper.server01.org> Message-ID: <4D794F06.8060507@cs.ntua.gr> Ricardo Catalinas Jim?nez wrote: > Already reported bug, see http://www.erlang.org/cgi-bin/ezmlm-cgi/2/1604. > > > Please fetch: > > git fetch git://github.com/jimenezrick/otp.git fix-typer-delete There has been a major rewrite of typer for the upcoming R14B02 release. Can you please check whether the problem you/others experienced is still present and if so send me an appropriate test for this? (or re-submit your patch based on the current 'dev') ? Thanks, Kostis From jimenezrick@REDACTED Fri Mar 11 01:06:29 2011 From: jimenezrick@REDACTED (=?UTF-8?Q?Ricardo_Catalinas_Jim=C3=A9nez?=) Date: Fri, 11 Mar 2011 01:06:29 +0100 Subject: [erlang-patches] Fix TypEr crash when used with several source files In-Reply-To: <4D794F06.8060507@cs.ntua.gr> References: <20110310214930.GA5085@viper.server01.org> <4D794F06.8060507@cs.ntua.gr> Message-ID: My patch is based on the new version of TypEr, v0.9, derived from the latest commit on `dev' branch. The problem is present in the old version and the new one, because the same erroneous line of code is there. The fix is the same in both versions (just diferent line number). The commit message explains all the details of the issue: http://github.com/jimenezrick/otp/commit/6d0fa8efb709fa9351e11f99f609919921d256d8 The easiest way to test the bug is to run TypEr on several files in one shot with the directory ` typer_ann' not yet created: typer --plt *.erl Because TypEr will try to remove any old version of .ann.erl files that maybe exist, but in this case any of those file are not present so, this line will crash: ok = file:delete(OldTyperAnnFile), We must let the possibility that there is not old file there: file:delete(OldTyperAnnFile), It's a very little fix. On Thu, Mar 10, 2011 at 11:21 PM, Kostis Sagonas wrote: > Ricardo Catalinas Jim?nez wrote: >> >> Already reported bug, see http://www.erlang.org/cgi-bin/ezmlm-cgi/2/1604. >> >> >> Please fetch: >> >> git fetch git://github.com/jimenezrick/otp.git fix-typer-delete > > There has been a major rewrite of typer for the upcoming R14B02 release. > Can you please check whether the problem you/others experienced is still > present and if so send me an appropriate test for this? (or re-submit your > patch based on the current 'dev') ? > > Thanks, > Kostis > > -- Ricardo From g@REDACTED Sat Mar 12 06:22:38 2011 From: g@REDACTED (Garrett Smith) Date: Fri, 11 Mar 2011 23:22:38 -0600 Subject: mod_security property docs Message-ID: See mod_security_server.erl in inets app for the property names used. -------------- next part -------------- A non-text attachment was scrubbed... Name: mod_security_docs.patch Type: text/x-patch Size: 2039 bytes Desc: not available URL: From tuncer.ayaz@REDACTED Mon Mar 14 17:50:22 2011 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Mon, 14 Mar 2011 17:50:22 +0100 Subject: erts: Remove unused variables Message-ID: git fetch git://github.com/tuncer/otp.git erts-unused-vars From tuncer.ayaz@REDACTED Mon Mar 14 17:55:02 2011 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Mon, 14 Mar 2011 17:55:02 +0100 Subject: [erlang-patches] sendfile() In-Reply-To: <4D6E97B6.5050204@erlang.org> References: <4CFD112B.704@erlang.org> <4D2F27EB.6080109@erlang.org> <4D623AE7.7050501@erlang.org> <4D667CE2.5050805@erlang.org> <4D678A40.9090503@erlang.org> <4D6E97B6.5050204@erlang.org> Message-ID: On Wed, Mar 2, 2011 at 8:17 PM, Niclas Axelsson wrote: > Refetched! Please re-fetch. Adjusted Solaris AC_ check and added DragonflyBSD support. From contact@REDACTED Wed Mar 16 21:41:48 2011 From: contact@REDACTED (Evax Software) Date: Wed, 16 Mar 2011 21:41:48 +0100 Subject: Allow limited pattern matching on magic binaries Message-ID: <1300308108.4579.275.camel@thomas-laptop> Hi, The proposed patch allows limited pattern matching on magic binaries. It tries to be the as non-intrusive as possible. The goal of the patch is to allow matching on NIF resources, but it shouldn't cause problems to other magic binary beam users. git fetch git@REDACTED:evax/otp.git pattern_match_on_magic_binaries Evax From jimenezrick@REDACTED Thu Mar 17 02:13:32 2011 From: jimenezrick@REDACTED (Ricardo Catalinas =?iso-8859-1?Q?Jim=E9nez?=) Date: Thu, 17 Mar 2011 02:13:32 +0100 Subject: Fix log messages formating in httpd Message-ID: <20110317011332.GA26886@viper.server01.org> Add missing spaces between words and colons to keep the same format in all log messages from httpd. Please fetch: git fetch git://github.com/jimenezrick/otp.git fix-httpd-format -- Ricardo From bernie@REDACTED Thu Mar 17 02:26:42 2011 From: bernie@REDACTED (Bernard Duggan) Date: Thu, 17 Mar 2011 12:26:42 +1100 Subject: Fix mod_esi timeout response Message-ID: <4D816352.80001@m5net.com> When a mod_esi operation times out, the response header it generates is invalid: HTTP/1.1 {504,[84,105,109,111,117,116]} Internal Server Error This patch fixes it so that the response is correct: HTTP/1.1 504 Gateway Time-out Assuming I got the git stuff right this time, you should be able to grab it here: git fetch git://github.com/bernardd/otp.git mod_esi_timeout_fix Cheers, Bernard From bernie@REDACTED Thu Mar 17 05:28:37 2011 From: bernie@REDACTED (Bernard Duggan) Date: Thu, 17 Mar 2011 15:28:37 +1100 Subject: Assorted documentation fixes Message-ID: <4D818DF5.3090503@m5net.com> This checkin contains fixes and corrections for a range of documentation errors that I've accumulated in my travels around the Erlang docs. I think I've managed to correctly rebase it - please complain if it's wrong :) git fetch git://github.com/bernardd/otp.git doc_fixes2 Cheers, Bernard From henrik@REDACTED Thu Mar 17 10:50:48 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 10:50:48 +0100 Subject: [erlang-patches] mod_security property docs In-Reply-To: References: Message-ID: <4D81D978.6080908@erlang.org> On 03/12/2011 06:22 AM, Garrett Smith wrote: > See mod_security_server.erl in inets app for the property names used. > > > > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED Hello This patch is now cooking in 'pu' /Henrik Nord, Erlang/OTP From henrik@REDACTED Thu Mar 17 11:13:49 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 11:13:49 +0100 Subject: [erlang-patches] erts: Remove unused variables In-Reply-To: References: Message-ID: <4D81DEDD.2020904@erlang.org> On 03/14/2011 05:50 PM, Tuncer Ayaz wrote: > git fetch git://github.com/tuncer/otp.git erts-unused-vars > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Hello your branch has been merged into 'pu' /Henrik Nord, Erlang/OTP From henrik@REDACTED Thu Mar 17 11:48:11 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 11:48:11 +0100 Subject: [erlang-patches] sendfile() In-Reply-To: References: <4CFD112B.704@erlang.org> <4D2F27EB.6080109@erlang.org> <4D623AE7.7050501@erlang.org> <4D667CE2.5050805@erlang.org> <4D678A40.9090503@erlang.org> <4D6E97B6.5050204@erlang.org> Message-ID: <4D81E6EB.1040109@erlang.org> On 03/14/2011 05:55 PM, Tuncer Ayaz wrote: > On Wed, Mar 2, 2011 at 8:17 PM, Niclas Axelsson wrote: > >> Refetched! >> > Please re-fetch. Adjusted Solaris AC_ check and added DragonflyBSD support. > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > refetched /Henrik From henrik@REDACTED Thu Mar 17 11:59:50 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 11:59:50 +0100 Subject: [erlang-patches] Allow limited pattern matching on magic binaries In-Reply-To: <1300308108.4579.275.camel@thomas-laptop> References: <1300308108.4579.275.camel@thomas-laptop> Message-ID: <4D81E9A6.3040808@erlang.org> On 03/16/2011 09:41 PM, Evax Software wrote: > Hi, > > The proposed patch allows limited pattern matching on magic binaries. > It tries to be the as non-intrusive as possible. > The goal of the patch is to allow matching on NIF resources, but it > shouldn't cause problems to other magic binary beam users. > > git fetch git@REDACTED:evax/otp.git pattern_match_on_magic_binaries > > Evax > > > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Hello I have included this in 'pu' and will let it cook for a while. /Henrik Nord, Erlang/OTP From henrik@REDACTED Thu Mar 17 12:06:21 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 12:06:21 +0100 Subject: [erlang-patches] Fix log messages formating in httpd In-Reply-To: <20110317011332.GA26886@viper.server01.org> References: <20110317011332.GA26886@viper.server01.org> Message-ID: <4D81EB2D.1030601@erlang.org> On 03/17/2011 02:13 AM, Ricardo Catalinas Jim?nez wrote: > Add missing spaces between words and colons to keep the same format in > all log messages from httpd. > > > Please fetch: > > git fetch git://github.com/jimenezrick/otp.git fix-httpd-format > > > Hello I have included this in 'pu' and will let it cook for a while. /Henrik Nord Erlang/OTP From henrik@REDACTED Thu Mar 17 12:14:22 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 12:14:22 +0100 Subject: [erlang-patches] Fix mod_esi timeout response In-Reply-To: <4D816352.80001@m5net.com> References: <4D816352.80001@m5net.com> Message-ID: <4D81ED0E.5090805@erlang.org> On 03/17/2011 02:26 AM, Bernard Duggan wrote: > When a mod_esi operation times out, the response header it generates > is invalid: > > HTTP/1.1 {504,[84,105,109,111,117,116]} Internal Server Error > > This patch fixes it so that the response is correct: > > HTTP/1.1 504 Gateway Time-out > > Assuming I got the git stuff right this time, you should be able to > grab it here: > > git fetch git://github.com/bernardd/otp.git mod_esi_timeout_fix > > Cheers, > > Bernard > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED Hello This branch is now cooking in 'pu' /Henrik Nord, Erlang/OTP From henrik@REDACTED Thu Mar 17 14:13:20 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 14:13:20 +0100 Subject: [erlang-patches] Assorted documentation fixes In-Reply-To: <4D818DF5.3090503@m5net.com> References: <4D818DF5.3090503@m5net.com> Message-ID: <4D8208F0.9010903@erlang.org> On 03/17/2011 05:28 AM, Bernard Duggan wrote: > This checkin contains fixes and corrections for a range of > documentation errors that I've accumulated in my travels around the > Erlang docs. > > I think I've managed to correctly rebase it - please complain if it's > wrong :) > > git fetch git://github.com/bernardd/otp.git doc_fixes2 > > Cheers, > > Bernard > > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED Hi cooking in 'pu' /Henrik Erlang/OTP From henrik@REDACTED Thu Mar 17 17:28:12 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 17 Mar 2011 17:28:12 +0100 Subject: What's cooking in erlang/otp (2011-03-17) Message-ID: <201103171628.p2HGSAif024523@smaug.otp.ericsson.se> ------------------------------------------------------------ [Graduated] * gl/gen_server-doc (otp) (2011-01-29) 1 commit + Update Handling Other Messages section in gen_server, gen_fsm, gen_events overviews (1fb616d) * jk/ssl_connection_hibernate (ssl) (2011-02-08) 1 commit + Add the option { hibernate_after, int() } to ssl:connect and ssl:listen (c034b8c) * ks/dialyzer-r14b02-final-touches (dialyzer) (2011-03-09) 8 commits + Release notes and new version for R14B02 (8c563c8) + More descriptive warning when a tuple pattern matches a typed record (f01ef63) + Better blame assignment when a spec is erroneous (8342fcf) + Generate better warnings for failing guards (31ffea6) + Fix an erroneous warning (8148d9a) + Refactoring so that a flat string() is returned (c639406) + Renamed error/1 function and added specs (6cc382e) + Renamed error/1 function and added specs (070d991) * ks/kernel-dialyzer-cleanups (kernel) (2011-03-06) 6 commits + Add spec for function that does not return (1dbdec7) + Strenghen spec (d520705) + Introduce types to avoid duplication in specs (1c5988e) + Add specs for functions that do not return (ba13517) + Add specs for behaviour callbacks (247aaa6) + Simplify two specs (2d10435) * ks/reltool-spec-fixes (reltool, stdlib) (2011-03-06) 8 commits + Fix erroneous types (d44c5c5) + Eliminate two dialyzer warnings (31587d4) + Cleanup (5752f7a) + Code cleanups and simplifications (4219d73) + Fix a bug in the calculation of circular dependencies (d3a8a31) + Use lists:foreach/2 when the return is not needed (5ed0324) + Put files alphabetically (54902e4) + Fix two erroneous specs of reltool.erl (0e99c96) * ks/typer (typer) (2011-03-09) 22 commits + Add release notes and up version (3752c71) + Strengthen some specs (4d7ada2) + Allow for --show_success_typings spelling also (179fff8) + Add '--show_success_typings' option (405342e) + Fix crash in oveloaded contracts with overlapping domains (d8aca1e) + Fix a type error and do some further cleanup (28af829) + Type cleanups and simplifications (fde7e1e) + Cleanup the analysis record (df725fd) + Remove typer_annotator.erl and typer.hrl (a3e7c43) + Remove typer_info.erl file (b5bfd43) + Remove typer_options.erl file (0e14138) + Remove typer_preprocess.erl file (3562e3b) . . . * mh/emacs-indent-variables-are-safe (tools) (2011-03-09) 1 commit + Declare indentation options as "safe" in erlang-mode for Emacs (ebbcdf5) * pg/fix-hibernate-with-hipe (erts, otp) (2011-03-10) 3 commits + Update copyright years (5cddff3) + Fix NULL-free bug in hibernate on debug emulator (6bc5b70) + Fix several bugs related to hibernate/3 and HiPE (ce00ecb) * pg/hipe-remove-constants-pool (erts) (2011-01-29) 1 commit + Remove hipe constants pool (0c16b09) * pg/honor-start-type-in-rel-files (sasl) (2010-06-06) 1 commit + Honor start type in .rel files when building relup files (49d011c) * rj/filelib-typo () (2011-03-10) 0 commits * sa/dialyzer-missing-spec (dialyzer) (2011-03-10) 1 commit + Add spec to dialyzer_cl_parse:get_lib_dir/1 (91316cc) * sv/clarify_nif_resource_doc (erts) (2011-03-03) 1 commit + clarify NIF resource object deallocation documentation (f7af5e5) ------------------------------------------------------------ [New topics] * bd/doc_fixes2 (crypto, inets, stdlib, webtool) (2011-02-23) 1 commit - Various small documentation fixes (9a319db) * bd/mod_esi_timeout_fix (inets) (2011-03-17) 1 commit - Fix timeout message generated by mod_esi (eea0a7b) * es/pattern_match_on_magic_binaries (erts) (2011-03-16) 1 commit - Allow some limited pattern matching on magic binaries (e994db4) * gs/mod_security-property-docs (inets) (2011-03-11) 1 commit - mod_security property docs (208b1bc) * rj/fix-httpd-format (inets) (2011-03-17) 1 commit - Fix log messages formating in httpd (cbe8b2e) * ta/erts-unused-vars (erts) (2011-03-10) 1 commit - erts: Remove unused variables (345454e) ------------------------------------------------------------ [Stalled] ------------------------------------------------------------ [Cooking] * bd/mod_esi_binary (inets) (2011-02-23) 1 commit - Modify mod_esi:deliver/2 to accept binary data (73f261d) * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-03-15) 6 commits - Avoid crash by skipping compilation_SUITE:on_load/1 (8592a02) - Inline less aggressively for native-code compilation (e699ad4) - Crudely fix return type for the lists:key{search,find,member}/3 (2b72202) - seq_trace_SUITE: Don't native-compile (2712344) - Disable native code if on_load is used (e8d0ea4) - andor_SUITE: Don't native-compile (e25ef8c) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * bsmr/fix-makefile-in-for-xref-mod-app-escript (otp) (2010-12-10) 1 commit - Fix for Makefile.in invoking xref_mod_app.escript (10d4235) * bw/efile_exists (erts) (2010-10-07) 1 commit - prim_file:exists/{1,2} which is lightweight file existence check (7203932) * bw/tv-render-fix (tv) (2010-10-06) 1 commit - tv: Allow table viewer to display refs, ports and small binaries (5eff630) * cg/fix-pointer-dereference (erts) (2011-02-23) 1 commit - Fix some wrong pointer dereferences (47f9ef2) * cg/fix-prng (stdlib) (2010-10-06) 1 commit - Fix a bug in the implementation of the pseudo-random number generator (863ec4d) * cg/fix-sizeof-array-arg (erl_interface) (2011-02-25) 1 commit - Fix using sizeof() for array given as function argument (6228f21) * fd/unix-efile-readdir-fix (erts) (2010-12-15) 1 commit - Fix call to strncat, 3rd arg should be of type size_t and not a pointer (78cfdaf) * fm/httpc-upload-body-streaming (inets) (2010-12-01) 1 commit - httpc: added support for streaming the body of an upload request (PUT or POST) (402ce68) * fm/posix-fallocate (erts, kernel) (2011-01-10) 2 commits - Fix build on Solaris (38a922d) - Added file:allocate/2 (9870d9b) * gc/gen-format-status-improvements (stdlib) (2010-06-12) 1 commit - Fix format_status bug for unregistered gen_event processes (95ed86f) * gl/erts-doterlang-docs (erts) (2010-12-19) 1 commit - Add back documentation on .erlang processing (6f9d175) * hw/call-chmod-without-f (asn1, common_test, compiler, cosFileTransfer, crypto, debugger, docbuilder, edoc, erl_interface, erts, et, inets, inviso, kernel, megaco, mnesia, orber, parsetools, percept, public_key, reltool, runtime_tools, snmp, ssl, stdlib, syntax_tools, test_server, tools) (2010-11-15) 1 commit - Call chmod without the "-f" flag (7ed11a8) * hw/epmd-bind-to-address (erts) (2010-11-10) 1 commit - Allow user to specify the IP address epmd binds to (bcf3b3d) * hw/fix-epmd-perror (erts) (2010-11-13) 1 commit - Fix epmd's dbg_perror() output (b363d7d) * ja/cocci-useless-cast (erts) (2011-02-01) 1 commit - Remove useless casts from the emulator (4163493) * jf/run_erl-disable-flow-control (erts) (2010-03-05) 1 commit - Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control (d0775cd) * jn/gen_stream (stdlib) (2011-01-31) 1 commit - Add gen_stream behaviour (730c7fd) * km/pool_connect-to-running-nodes (stdlib) (2010-09-02) 1 commit - Change pool module to attempt to attach to nodes that are already running (a9f4cbc) * ks/erl_recomment (syntax_tools) (2011-02-23) 1 commit - Fix bug with some comments disappearing (64eb70d) * ks/hipe-ppc64 (erts, hipe, kernel) (2011-02-10) 8 commits - Enable HiPE by default when compiling for PPC64 (577a628) - Translate RTL to PPC code on PPC64 too (6f40a86) - Changes in ppc files for PPC64 (ea5edef) - Additions for the PPC64 backend (861cfc9) - Changes for the PPC64 backend (dbba32b) - Added loader for ppc64 (60826a5) - New files for the 64-bit backends (7c53e28) - Cleanup tags (e34f3a0) * ks/prim_file-fixes (erts) (2011-02-05) 3 commits - New version of the file (ca86ed3) - Driver names should be strings, not atoms (b8ea40c) - Cleanup and cosmetic changes (6adc116) * mh/eunit-surefire-reports (eunit) (2011-02-25) 1 commit - Don't shorten error messages in Eunit Surefire reports (d0cc2ae) * mk/net-kernel-epmd-return-list (kernel) (2010-12-10) 1 commit - Fix list returned by net_kernel:epmd_module (169d7e4) * ms/beam-fix-format-specifiers-in-erl_exit-msg (erts) (2011-02-25) 1 commit - Fix format specifiers in erl_exit messages (13f5d59) * ms/epmd-local-access-check (erts) (2010-11-24) 1 commit - epmd: include host address in local access check (5b68030) * ms/file-fix-hang-reading-compressed-files (erts, kernel) (2011-01-30) 1 commit - file: fix hang reading compressed files (292ecd0) * ms/inets-prevent_xss_in_error_pages (inets) (2011-02-21) 1 commit - inets: prevent XSS in error pages (4827d5d) * nox/xmerl-namespace-axis (xmerl) (2010-12-07) 12 commits - Implement namespace axis (27d791f) - Add `#xmlPI` support to xmerl_xpath:write_node/1 (75e67f5) - Fix processing-instruction(name?) (f05e78b) - Fix path filters (610df56) - Support more top-level primary expressions (770d6d9) - Accumulate comments in element nodes (e5b6b3a) - Add `default_attrs` option (18584c5) - Allow whole documents to be returned (aef3dea) - Track parents and namespace in `#xmlAttribute` nodes (dc9b220) - Track parents in `#xmlPI` nodes (5095331) - Set `vsn` field in `#xmlDecl` record (d712331) - Fix namespace-conformance constraints (e062270) * pg/des-cfb-functions (crypto) (2010-10-16) 1 commit - Add DES and Triple DES cipher feedback (CFB) mode functions (2c79ae7) * rc/rpc_pmap-typo (kernel) (2011-02-22) 1 commit - Fix typo in doc of rpc:pmap/3 (ee1ea4c) * sa/callback-attr (compiler, inets, kernel, otp, stdlib) (2010-06-08) 7 commits - Add callback specs into 'application' module in kernel (5bc22af) - Add callback specs to tftp module following internet documentation (81b0ab1) - Add callback specs to inets_service module following possibly deprecated comments (b814c24) - Add '-callback' attributes in stdlib's behaviours (a720d8e) - Update primary bootstrap (42fc2bf) - Automatically generate 'behaviour_info' function from '-callback' attributes (e57f9ce) - Add '-callback' attribute to language syntax (361fe07) * sa/float_to_list_2 (erts, stdlib) (2011-01-16) 1 commit - Added float_to_list/2 that allows to specify formatting options (ee5a309) * sb/make-files-like-erlc (tools) (2010-05-18) 1 commit - Change make:files to behave more like erlc (5e9d051) * sg/fix-diskless-booted-relup (sasl) (2010-09-19) 1 commit - Remove traces of release_handler reading from filesystem when it has Masters list (54cb5df) * sv/enif_is_exception (erts) (2011-02-22) 1 commit - add support for checking if an ERL_NIF_TERM is an exception (f8cc2b0) * ta/binary-part-typo (stdlib) (2011-01-22) 1 commit - Fix typo in binary:part/2 example (98f51f2) * ta/efficiencyguide-typos (otp) (2011-01-27) 1 commit - Fix typos in efficiency guide (5d62504) * ta/epmd-typo (erts) (2011-01-09) 1 commit - Fix typo in epmd help (ce956a8) * ta/erlsrv-typos (erts) (2010-12-14) 1 commit - Fix two typos in erlsrv log messages (31b82e8) * ta/erts-doc (erts) (2011-02-01) 1 commit - erts: Fix doc typos, duplication and readability (04e81b8) * ta/inet_port-doc (kernel) (2011-02-20) 1 commit - Fix inet:port/1 doc to match implementation/spec (b351d8f) * ta/sendfile (erts, kernel, test_server) (2011-01-13) 1 commit - Implement file:sendfile (0c13435) * ta/zip-doc (stdlib) (2011-02-23) 1 commit - Fix typos in zip manpage (f911632) * ts/cover-with-export_all (tools) (2010-09-23) 1 commit - add user specified compiler options on form reloading (eb02beb) * tv/edoc-loop-fix (edoc) (2011-02-01) 1 commit - Fix infinite loop for malformed edoc input (6ac05e5) * uw/mnesia-majority (mnesia) (2011-01-30) 8 commits - Add documentation text about majority checking (f5b8427) - add mnesia_majority_test suite (9c2f765) - where_to_wlock optimization + change_table_majority/2 (a535b6c) - bug in mnesia_tm:needs_majority/2 (eb81e20) - optimize sticky_lock maj. check (5b304d4) - check majority for sticky locks (ae9e1fa) - Write locks now check majority when needed. (6f02d2e) - Add {majority, boolean()} per-table option. (c3241c0) * vb/shell (erts, kernel, stdlib) (2011-01-21) 6 commits - Add expandfmt_fun option for io:setopts (f139eab) - Correct JCL's help indentation (95672fa) - Handle JCL's "r" command error when no pool started (ba4b196) - Fix tab expansion in remote shell (e2077cb) - edlin_expand: fix matches formatting (838b84a) - Take into account arity len when calculating field's width (ff28c52) ------------------------------------------------------------ [Dropped] * dk/agent-capabilities (snmp) (2010-12-01) 1 commit . AGENT-CAPABILITIES handling added to SNMP mib compiler (17c3b19) * fd/supervisor-delete-child-spec-on-child-termination (stdlib) (2011-01-19) 1 commit . Added supervisor:start_child/3 (bdf27ab) From dave@REDACTED Fri Mar 18 11:59:09 2011 From: dave@REDACTED (Dave Cottlehuber) Date: Fri, 18 Mar 2011 23:59:09 +1300 Subject: [windows] improve searching for MS VC runtime redistributables Message-ID: Hi, The proposed patch adds support for the 2 most recent MS SDKs to find_redist.sh, and a workaround to look in $ERL_TOP or $ERL_TOP/.. If there's a better approach for the workarounds please let me know; find_redist.sh was not intuitive for me. git fetch git@REDACTED:dch/otp.git improved_find_redist A+ Dave From luc.tanguay@REDACTED Fri Mar 18 20:23:49 2011 From: luc.tanguay@REDACTED (luc.tanguay@REDACTED) Date: Fri, 18 Mar 2011 15:23:49 -0400 Subject: simple fix to ET contents viewer on Windows 2008 Message-ID: <462990D3EDDFE5458F928506D32D40C95CBD02EFD6@MBX05.bell.corp.bce.ca> Using R14B02 on Windows 2008 64-bit, I saw that ET contents viewer window was not displayed correctly when first opened. A simple fix is to force the size of the TextCtrl inside the frame: *** c:/eddc-0.3/src/et_wx_contents_viewer.erl 2011-03-18 10:19:57.002512400 -0400 --- c:/erl5.8.3/lib/et-1.4.2/src/et_wx_contents_viewer.erl 2011-03-14 16:29:18.000000000 -0400 *************** *** 463,470 **** Bar = wxMenuBar:new(), wxFrame:setMenuBar(Frame,Bar), create_file_menu(Bar), ! Editor = wxTextCtrl:new(Panel, ?wxID_ANY, [{size,{W,H}}, ! {style, 0 bor ?wxDEFAULT bor ?wxTE_MULTILINE bor ?wxTE_READONLY --- 463,469 ---- Bar = wxMenuBar:new(), wxFrame:setMenuBar(Frame,Bar), create_file_menu(Bar), ! Editor = wxTextCtrl:new(Panel, ?wxID_ANY, [{style, 0 bor ?wxDEFAULT bor ?wxTE_MULTILINE bor ?wxTE_READONLY --- N'allez pas o? le chemin peut mener, allez l? o? il n'y a pas de chemin et laissez une trace. Ralph Waldo Emerson --- Luc Tanguay, ing./Eng. Bell Canada 671 De La Gaucheti?re 4e ?tage, Montr?al H3B 2M8 514-786-6440 cell: 514-229-7585 From tomas.abrahamsson@REDACTED Sun Mar 20 17:14:37 2011 From: tomas.abrahamsson@REDACTED (Tomas Abrahamsson) Date: Sun, 20 Mar 2011 17:14:37 +0100 Subject: [PATCH] Add options -pa Dir and -pz Dir to TypEr Message-ID: <1300637678-14837-1-git-send-email-tomas.abrahamsson@gmail.com> Setting code path options is useful e.g. when analyzing programs that use parse transforms. --- lib/typer/src/typer.erl | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl index fc8caa4..424472f 100644 --- a/lib/typer/src/typer.erl +++ b/lib/typer/src/typer.erl @@ -628,6 +628,8 @@ cl(["-T"|Opts]) -> cl(["-r"|Opts]) -> {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), {{files_r, Files}, RestOpts}; +cl(["-pa",Dir|Opts]) -> {{pa,Dir}, Opts}; +cl(["-pz",Dir|Opts]) -> {{pz,Dir}, Opts}; cl(["-"++H|_]) -> fatal_error("unknown option -"++H); cl(Opts) -> {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), @@ -672,7 +674,13 @@ analyze_result({plt, Plt}, Args, Analysis) -> analyze_result(show_succ, Args, Analysis) -> {Args, Analysis#analysis{show_succ = true}}; analyze_result(no_spec, Args, Analysis) -> - {Args, Analysis#analysis{no_spec = true}}. + {Args, Analysis#analysis{no_spec = true}}; +analyze_result({pa, Dir}, Args, Analysis) -> + code:add_patha(Dir), + {Args, Analysis}; +analyze_result({pz, Dir}, Args, Analysis) -> + code:add_pathz(Dir), + {Args, Analysis}. %%-------------------------------------------------------------------- %% File processing. @@ -1039,6 +1047,10 @@ help_message() -> -I include_dir pass the include_dir to TypEr (The syntax of includes is the same as that used by \"erlc\".) + -pa dir + -pz dir + Set code path options to TypEr + (This is useful for files that use parse tranforms.) --version (or -v) prints the Typer version and exits --help (or -h) -- 1.7.4.1 From tomas.abrahamsson@REDACTED Sun Mar 20 17:14:38 2011 From: tomas.abrahamsson@REDACTED (Tomas Abrahamsson) Date: Sun, 20 Mar 2011 17:14:38 +0100 Subject: [PATCH] Quote atoms if necessary in types Message-ID: <1300637678-14837-2-git-send-email-tomas.abrahamsson@gmail.com> Atoms in some occurrences were not correctly quoted when formatted to strings, for instance by the typer program. Example: -module(tb). -export(['UPPERCASE-FUNCTION-NAME'/0, f1/0, f2/0, f3/0]). -record('UPPERCASE-RECORD-NAME', {x}). -record(r2, {'UPPERCASE-FIELD-NAME'}). -type 'UPPERCASE-TYPE-NAME'() :: integer(). 'UPPERCASE-FUNCTION-NAME'() -> ok. f1() -> #'UPPERCASE-RECORD-NAME'{x=1}. f2() -> #r2{'UPPERCASE-FIELD-NAME'=1}. -spec f3() -> 'UPPERCASE-TYPE-NAME'(). f3() -> 1. Given the program above, the output from typer --plt some.plt tb.erl resulted in the following specs being printed: -spec UPPERCASE-FUNCTION-NAME() -> 'ok'. -spec f1() -> #UPPERCASE-RECORD-NAME{x::1}. -spec f2() -> #r2{UPPERCASE-FIELD-NAME::1}. -spec f3() -> UPPERCASE-TYPE-NAME(). This commit changes the output to become the following: -spec 'UPPERCASE-FUNCTION-NAME'() -> 'ok'. -spec f1() -> #'UPPERCASE-RECORD-NAME'{x::1}. -spec f2() -> #r2{'UPPERCASE-FIELD-NAME'::1}. -spec f3() -> 'UPPERCASE-TYPE-NAME'(). --- lib/hipe/cerl/erl_types.erl | 11 +++++++---- lib/typer/src/typer.erl | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/hipe/cerl/erl_types.erl b/lib/hipe/cerl/erl_types.erl index 080d693..a8159c7 100644 --- a/lib/hipe/cerl/erl_types.erl +++ b/lib/hipe/cerl/erl_types.erl @@ -3350,14 +3350,14 @@ t_to_string(?var(Id), _RecDict) when is_integer(Id) -> record_to_string(Tag, [_|Fields], FieldNames, RecDict) -> FieldStrings = record_fields_to_string(Fields, FieldNames, RecDict, []), - "#" ++ atom_to_list(Tag) ++ "{" ++ sequence(FieldStrings, [], ",") ++ "}". + "#" ++ atom_to_string(Tag) ++ "{" ++ sequence(FieldStrings, [], ",") ++ "}". record_fields_to_string([F|Fs], [{FName, _DefType}|FDefs], RecDict, Acc) -> NewAcc = case t_is_any(F) orelse t_is_atom('undefined', F) of true -> Acc; false -> - StrFV = atom_to_list(FName) ++ "::" ++ t_to_string(F, RecDict), + StrFV = atom_to_string(FName) ++ "::" ++ t_to_string(F, RecDict), %% ActualDefType = t_subtract(DefType, t_atom('undefined')), %% Str = case t_is_any(ActualDefType) of %% true -> StrFV; @@ -3383,7 +3383,7 @@ field_diffs([F|Fs], [{FName, DefType}|FDefs], RecDict, Acc) -> case t_is_subtype(F, DefType) of true -> Acc; false -> - Str = atom_to_list(FName) ++ "::" ++ t_to_string(DefType, RecDict), + Str = atom_to_string(FName) ++ "::" ++ t_to_string(DefType, RecDict), [Str|Acc] end, field_diffs(Fs, FDefs, RecDict, NewAcc); @@ -3894,7 +3894,7 @@ t_form_to_string({type, _L, union, Args}) -> sequence(t_form_to_string_list(Args), " | "); t_form_to_string({type, _L, Name, []} = T) -> try t_to_string(t_from_form(T)) - catch throw:{error, _} -> atom_to_list(Name) ++ "()" + catch throw:{error, _} -> atom_to_string(Name) ++ "()" end; t_form_to_string({type, _L, binary, [X,Y]} = Type) -> case {erl_eval:partial_eval(X), erl_eval:partial_eval(Y)} of @@ -3919,6 +3919,9 @@ t_form_to_string_list([H|T], Acc) -> t_form_to_string_list([], Acc) -> lists:reverse(Acc). +atom_to_string(Atom) -> + io_lib:format("~w", [Atom]). + %%============================================================================= %% %% Utilities diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl index fc8caa4..3a3bb26 100644 --- a/lib/typer/src/typer.erl +++ b/lib/typer/src/typer.erl @@ -539,7 +539,7 @@ get_type_string(F, A, Info, Mode) -> case {Mode, Type} of {file, {contract, _}} -> ""; _ -> - Prefix = lists:concat(["-spec ", F]), + Prefix = lists:concat(["-spec ", atom_to_string(F)]), lists:concat([Prefix, TypeStr, "."]) end; true -> @@ -547,6 +547,9 @@ get_type_string(F, A, Info, Mode) -> lists:concat([Prefix, TypeStr, "."]) end. +atom_to_string(Atom) -> + lists:flatten(io_lib:format("~w", [Atom])). + show_type_info(File, Info) -> io:format("\n%% File: ~p\n%% ", [File]), OutputString = lists:concat(["~.", length(File)+8, "c~n"]), -- 1.7.4.1 From chlorophil@REDACTED Mon Mar 21 03:38:10 2011 From: chlorophil@REDACTED (Philip Robinson) Date: Mon, 21 Mar 2011 12:38:10 +1000 Subject: mnesia_frag_hash key_to_frag_number optimisation(?) Message-ID: I was poking around in mnesia_frag_hash.erl and noticed that it might be possible to reduce the number of calls to phash by tweaking key_to_frag_number/2 a little bit. I have attached a test file that I used to see if my changes break anything, and a diff for mnesia_frag_hash.erl itself. Everything looks fine to me, but I am not an mnesia guru by any stretch of the imagination. Does this change seem reasonable? Thanks, Philip -------------- next part -------------- 104,106c104,106 < key_to_frag_number(#hash_state{function = phash, next_n_to_split = SplitN, n_doubles = L}, Key) -> < P = SplitN, < A = erlang:phash(Key, power2(L)), --- > key_to_frag_number(#hash_state{function = phash, next_n_to_split = P, n_doubles = L}, Key) -> > D = power2(L + 1), > A = erlang:phash(Key, D), 108,111c108,111 < A < P -> < erlang:phash(Key, power2(L + 1)); < true -> < A --- > A >= (D + P) -> > A - D; > true -> > A 113,115c113,115 < key_to_frag_number(#hash_state{function = phash2, next_n_to_split = SplitN, n_doubles = L}, Key) -> < P = SplitN, < A = erlang:phash2(Key, power2(L)) + 1, --- > key_to_frag_number(#hash_state{function = phash2, next_n_to_split = P, n_doubles = L}, Key) -> > D = power2(L + 1), > A = erlang:phash2(Key, D) + 1, 117,120c117,120 < A < P -> < erlang:phash2(Key, power2(L + 1)) + 1; < true -> < A --- > A >= (D + P) -> > A - D; > true -> > A -------------- next part -------------- A non-text attachment was scrubbed... Name: mnesia_frag_hash_test.erl Type: application/octet-stream Size: 1723 bytes Desc: not available URL: From henrik@REDACTED Mon Mar 21 11:20:36 2011 From: henrik@REDACTED (Henrik Nord) Date: Mon, 21 Mar 2011 11:20:36 +0100 Subject: [erlang-patches] [windows] improve searching for MS VC runtime redistributables In-Reply-To: References: Message-ID: <4D872674.7010301@erlang.org> On 03/18/2011 11:59 AM, Dave Cottlehuber wrote: > Hi, > > The proposed patch adds support for the 2 most recent MS SDKs to find_redist.sh, > and a workaround to look in $ERL_TOP or $ERL_TOP/.. > > If there's a better approach for the workarounds please let me know; > find_redist.sh > was not intuitive for me. > > git fetch git@REDACTED:dch/otp.git improved_find_redist > > A+ > Dave > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Hi Your branch is included in 'pu' where it will simmer for a while. /Henrik Nord, Erlang/OTP From henrik@REDACTED Mon Mar 21 11:49:32 2011 From: henrik@REDACTED (Henrik Nord) Date: Mon, 21 Mar 2011 11:49:32 +0100 Subject: [erlang-patches] simple fix to ET contents viewer on Windows 2008 In-Reply-To: <462990D3EDDFE5458F928506D32D40C95CBD02EFD6@MBX05.bell.corp.bce.ca> References: <462990D3EDDFE5458F928506D32D40C95CBD02EFD6@MBX05.bell.corp.bce.ca> Message-ID: <4D872D3C.4010900@erlang.org> On 03/18/2011 08:23 PM, luc.tanguay@REDACTED wrote: > Using R14B02 on Windows 2008 64-bit, I saw that ET contents viewer window was not displayed correctly when first opened. A simple fix is to force the size of the TextCtrl inside the frame: > > *** c:/eddc-0.3/src/et_wx_contents_viewer.erl 2011-03-18 10:19:57.002512400 -0400 > --- c:/erl5.8.3/lib/et-1.4.2/src/et_wx_contents_viewer.erl 2011-03-14 16:29:18.000000000 -0400 > *************** > *** 463,470 **** > Bar = wxMenuBar:new(), > wxFrame:setMenuBar(Frame,Bar), > create_file_menu(Bar), > ! Editor = wxTextCtrl:new(Panel, ?wxID_ANY, [{size,{W,H}}, > ! {style, 0 > bor ?wxDEFAULT > bor ?wxTE_MULTILINE > bor ?wxTE_READONLY > --- 463,469 ---- > Bar = wxMenuBar:new(), > wxFrame:setMenuBar(Frame,Bar), > create_file_menu(Bar), > ! Editor = wxTextCtrl:new(Panel, ?wxID_ANY, [{style, 0 > bor ?wxDEFAULT > bor ?wxTE_MULTILINE > bor ?wxTE_READONLY > > > --- > N'allez pas o? le chemin peut mener, allez l? o? il n'y a pas de chemin et laissez une trace. > Ralph Waldo Emerson > --- > Luc Tanguay, ing./Eng. > Bell Canada > 671 De La Gaucheti?re 4e ?tage, > Montr?al H3B 2M8 > 514-786-6440 > cell: 514-229-7585 > > > Hello It would be appreciated if you could submit this as a proper patch. Please refer to The wiki on how to submit patches Thank you /Henrik Nord, Erlang/OTP From henrik@REDACTED Mon Mar 21 11:57:53 2011 From: henrik@REDACTED (Henrik Nord) Date: Mon, 21 Mar 2011 11:57:53 +0100 Subject: [erlang-patches] [PATCH] Add options -pa Dir and -pz Dir to TypEr In-Reply-To: <1300637678-14837-1-git-send-email-tomas.abrahamsson@gmail.com> References: <1300637678-14837-1-git-send-email-tomas.abrahamsson@gmail.com> Message-ID: <4D872F31.3060005@erlang.org> On 03/20/2011 05:14 PM, Tomas Abrahamsson wrote: > Setting code path options is useful e.g. when analyzing programs that > use parse transforms. > --- > lib/typer/src/typer.erl | 14 +++++++++++++- > 1 files changed, 13 insertions(+), 1 deletions(-) > > diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl > index fc8caa4..424472f 100644 > --- a/lib/typer/src/typer.erl > +++ b/lib/typer/src/typer.erl > @@ -628,6 +628,8 @@ cl(["-T"|Opts]) -> > cl(["-r"|Opts]) -> > {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), > {{files_r, Files}, RestOpts}; > +cl(["-pa",Dir|Opts]) -> {{pa,Dir}, Opts}; > +cl(["-pz",Dir|Opts]) -> {{pz,Dir}, Opts}; > cl(["-"++H|_]) -> fatal_error("unknown option -"++H); > cl(Opts) -> > {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), > @@ -672,7 +674,13 @@ analyze_result({plt, Plt}, Args, Analysis) -> > analyze_result(show_succ, Args, Analysis) -> > {Args, Analysis#analysis{show_succ = true}}; > analyze_result(no_spec, Args, Analysis) -> > - {Args, Analysis#analysis{no_spec = true}}. > + {Args, Analysis#analysis{no_spec = true}}; > +analyze_result({pa, Dir}, Args, Analysis) -> > + code:add_patha(Dir), > + {Args, Analysis}; > +analyze_result({pz, Dir}, Args, Analysis) -> > + code:add_pathz(Dir), > + {Args, Analysis}. > > %%-------------------------------------------------------------------- > %% File processing. > @@ -1039,6 +1047,10 @@ help_message() -> > -I include_dir > pass the include_dir to TypEr > (The syntax of includes is the same as that used by \"erlc\".) > + -pa dir > + -pz dir > + Set code path options to TypEr > + (This is useful for files that use parse tranforms.) > --version (or -v) > prints the Typer version and exits > --help (or -h) > Hi Patch included in 'pu' Thanks /Henrik Nord, Erlang/OTP From kostis@REDACTED Mon Mar 21 11:57:07 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Mon, 21 Mar 2011 12:57:07 +0200 Subject: [erlang-patches] [PATCH] Add options -pa Dir and -pz Dir to TypEr In-Reply-To: <1300637678-14837-1-git-send-email-tomas.abrahamsson@gmail.com> References: <1300637678-14837-1-git-send-email-tomas.abrahamsson@gmail.com> Message-ID: <4D872F03.2090702@cs.ntua.gr> Tomas Abrahamsson wrote: > Setting code path options is useful e.g. when analyzing programs that > use parse transforms. Thank you for this patch! Can you please also add these options in the "Usage: typer [--help] ...." slogan of the help message (in their proper place) and send a mail to re-fetch this patch once you have done this? Kostis From henrik@REDACTED Mon Mar 21 12:02:40 2011 From: henrik@REDACTED (Henrik Nord) Date: Mon, 21 Mar 2011 12:02:40 +0100 Subject: [erlang-patches] [PATCH] Quote atoms if necessary in types In-Reply-To: <1300637678-14837-2-git-send-email-tomas.abrahamsson@gmail.com> References: <1300637678-14837-2-git-send-email-tomas.abrahamsson@gmail.com> Message-ID: <4D873050.204@erlang.org> On 03/20/2011 05:14 PM, Tomas Abrahamsson wrote: > Atoms in some occurrences were not correctly quoted when formatted to > strings, for instance by the typer program. Example: > > -module(tb). > -export(['UPPERCASE-FUNCTION-NAME'/0, f1/0, f2/0, f3/0]). > -record('UPPERCASE-RECORD-NAME', {x}). > -record(r2, {'UPPERCASE-FIELD-NAME'}). > -type 'UPPERCASE-TYPE-NAME'() :: integer(). > > 'UPPERCASE-FUNCTION-NAME'() -> ok. > > f1() -> #'UPPERCASE-RECORD-NAME'{x=1}. > > f2() -> #r2{'UPPERCASE-FIELD-NAME'=1}. > > -spec f3() -> 'UPPERCASE-TYPE-NAME'(). > f3() -> 1. > > Given the program above, the output from typer --plt some.plt tb.erl > resulted in the following specs being printed: > > -spec UPPERCASE-FUNCTION-NAME() -> 'ok'. > -spec f1() -> #UPPERCASE-RECORD-NAME{x::1}. > -spec f2() -> #r2{UPPERCASE-FIELD-NAME::1}. > -spec f3() -> UPPERCASE-TYPE-NAME(). > > This commit changes the output to become the following: > > -spec 'UPPERCASE-FUNCTION-NAME'() -> 'ok'. > -spec f1() -> #'UPPERCASE-RECORD-NAME'{x::1}. > -spec f2() -> #r2{'UPPERCASE-FIELD-NAME'::1}. > -spec f3() -> 'UPPERCASE-TYPE-NAME'(). > --- > lib/hipe/cerl/erl_types.erl | 11 +++++++---- > lib/typer/src/typer.erl | 5 ++++- > 2 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/lib/hipe/cerl/erl_types.erl b/lib/hipe/cerl/erl_types.erl > index 080d693..a8159c7 100644 > --- a/lib/hipe/cerl/erl_types.erl > +++ b/lib/hipe/cerl/erl_types.erl > @@ -3350,14 +3350,14 @@ t_to_string(?var(Id), _RecDict) when is_integer(Id) -> > > record_to_string(Tag, [_|Fields], FieldNames, RecDict) -> > FieldStrings = record_fields_to_string(Fields, FieldNames, RecDict, []), > - "#" ++ atom_to_list(Tag) ++ "{" ++ sequence(FieldStrings, [], ",") ++ "}". > + "#" ++ atom_to_string(Tag) ++ "{" ++ sequence(FieldStrings, [], ",") ++ "}". > > record_fields_to_string([F|Fs], [{FName, _DefType}|FDefs], RecDict, Acc) -> > NewAcc = > case t_is_any(F) orelse t_is_atom('undefined', F) of > true -> Acc; > false -> > - StrFV = atom_to_list(FName) ++ "::" ++ t_to_string(F, RecDict), > + StrFV = atom_to_string(FName) ++ "::" ++ t_to_string(F, RecDict), > %% ActualDefType = t_subtract(DefType, t_atom('undefined')), > %% Str = case t_is_any(ActualDefType) of > %% true -> StrFV; > @@ -3383,7 +3383,7 @@ field_diffs([F|Fs], [{FName, DefType}|FDefs], RecDict, Acc) -> > case t_is_subtype(F, DefType) of > true -> Acc; > false -> > - Str = atom_to_list(FName) ++ "::" ++ t_to_string(DefType, RecDict), > + Str = atom_to_string(FName) ++ "::" ++ t_to_string(DefType, RecDict), > [Str|Acc] > end, > field_diffs(Fs, FDefs, RecDict, NewAcc); > @@ -3894,7 +3894,7 @@ t_form_to_string({type, _L, union, Args}) -> > sequence(t_form_to_string_list(Args), " | "); > t_form_to_string({type, _L, Name, []} = T) -> > try t_to_string(t_from_form(T)) > - catch throw:{error, _} -> atom_to_list(Name) ++ "()" > + catch throw:{error, _} -> atom_to_string(Name) ++ "()" > end; > t_form_to_string({type, _L, binary, [X,Y]} = Type) -> > case {erl_eval:partial_eval(X), erl_eval:partial_eval(Y)} of > @@ -3919,6 +3919,9 @@ t_form_to_string_list([H|T], Acc) -> > t_form_to_string_list([], Acc) -> > lists:reverse(Acc). > > +atom_to_string(Atom) -> > + io_lib:format("~w", [Atom]). > + > %%============================================================================= > %% > %% Utilities > diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl > index fc8caa4..3a3bb26 100644 > --- a/lib/typer/src/typer.erl > +++ b/lib/typer/src/typer.erl > @@ -539,7 +539,7 @@ get_type_string(F, A, Info, Mode) -> > case {Mode, Type} of > {file, {contract, _}} -> ""; > _ -> > - Prefix = lists:concat(["-spec ", F]), > + Prefix = lists:concat(["-spec ", atom_to_string(F)]), > lists:concat([Prefix, TypeStr, "."]) > end; > true -> > @@ -547,6 +547,9 @@ get_type_string(F, A, Info, Mode) -> > lists:concat([Prefix, TypeStr, "."]) > end. > > +atom_to_string(Atom) -> > + lists:flatten(io_lib:format("~w", [Atom])). > + > show_type_info(File, Info) -> > io:format("\n%% File: ~p\n%% ", [File]), > OutputString = lists:concat(["~.", length(File)+8, "c~n"]), > Hi Patch included in 'pu' Thanks /Henrik Nord, Erlang/OTP From henrik@REDACTED Mon Mar 21 12:31:33 2011 From: henrik@REDACTED (Henrik Nord) Date: Mon, 21 Mar 2011 12:31:33 +0100 Subject: [erlang-patches] Fix TypEr crash when used with several source files In-Reply-To: <20110310214930.GA5085@viper.server01.org> References: <20110310214930.GA5085@viper.server01.org> Message-ID: <4D873715.5010207@erlang.org> On 03/10/2011 10:49 PM, Ricardo Catalinas Jim?nez wrote: > Already reported bug, see http://www.erlang.org/cgi-bin/ezmlm-cgi/2/1604. > > > Please fetch: > > git fetch git://github.com/jimenezrick/otp.git fix-typer-delete > > Hi Branch included in 'pu' /Henrik Nord, Erlang/OTP From raimo+erlang-patches@REDACTED Tue Mar 22 14:04:23 2011 From: raimo+erlang-patches@REDACTED (Raimo Niskanen) Date: Tue, 22 Mar 2011 14:04:23 +0100 Subject: Mailing list software change Message-ID: <20110322130423.GD12691@erix.ericsson.se> Hi all. We will change servers and mailing list software from the old-fashion ezmlm to GNU Mailman on Thu Mar 24 afternoon (CET). All subscribtions will be transferred into the corresponding Mailman settings. The Mailman web interface is probably not up and running at first, we'll see about that until later. -- / Raimo Niskanen, Erlang/OTP, Ericsson AB From tomas.abrahamsson@REDACTED Tue Mar 22 23:07:07 2011 From: tomas.abrahamsson@REDACTED (Tomas Abrahamsson) Date: Tue, 22 Mar 2011 23:07:07 +0100 Subject: [erlang-patches] [PATCH] Add options -pa Dir and -pz Dir to TypEr In-Reply-To: <4D872F03.2090702@cs.ntua.gr> References: <4D872F03.2090702@cs.ntua.gr> Message-ID: <1300831628-32301-1-git-send-email-tomas.abrahamsson@gmail.com> >> Setting code path options is useful e.g. when analyzing programs that >> use parse transforms. > Can you please also add these options in the > "Usage: typer [--help] ...." > slogan of the help message (in their proper place) Yes, of course, thanks for pointing this out. The reply to this message will be the entire patch again with the options included in the usage slogan (if git send-email works like I think it does :) ) BRs Tomas From tomas.abrahamsson@REDACTED Tue Mar 22 23:07:08 2011 From: tomas.abrahamsson@REDACTED (Tomas Abrahamsson) Date: Tue, 22 Mar 2011 23:07:08 +0100 Subject: [PATCH] Add options -pa Dir and -pz Dir to TypEr In-Reply-To: <1300831628-32301-1-git-send-email-tomas.abrahamsson@gmail.com> References: <4D872F03.2090702@cs.ntua.gr> <1300831628-32301-1-git-send-email-tomas.abrahamsson@gmail.com> Message-ID: <1300831628-32301-2-git-send-email-tomas.abrahamsson@gmail.com> Setting code path options is useful e.g. when analyzing programs that use parse transforms. --- lib/typer/src/typer.erl | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl index fc8caa4..e40c4f3 100644 --- a/lib/typer/src/typer.erl +++ b/lib/typer/src/typer.erl @@ -628,6 +628,8 @@ cl(["-T"|Opts]) -> cl(["-r"|Opts]) -> {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), {{files_r, Files}, RestOpts}; +cl(["-pa",Dir|Opts]) -> {{pa,Dir}, Opts}; +cl(["-pz",Dir|Opts]) -> {{pz,Dir}, Opts}; cl(["-"++H|_]) -> fatal_error("unknown option -"++H); cl(Opts) -> {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), @@ -672,7 +674,13 @@ analyze_result({plt, Plt}, Args, Analysis) -> analyze_result(show_succ, Args, Analysis) -> {Args, Analysis#analysis{show_succ = true}}; analyze_result(no_spec, Args, Analysis) -> - {Args, Analysis#analysis{no_spec = true}}. + {Args, Analysis#analysis{no_spec = true}}; +analyze_result({pa, Dir}, Args, Analysis) -> + code:add_patha(Dir), + {Args, Analysis}; +analyze_result({pz, Dir}, Args, Analysis) -> + code:add_pathz(Dir), + {Args, Analysis}. %%-------------------------------------------------------------------- %% File processing. @@ -1009,7 +1017,8 @@ version_message() -> help_message() -> S = <<" Usage: typer [--help] [--version] [--plt PLT] [--edoc] [--show | --show-exported | --annotate | --annotate-inc-files] - [-Ddefine]* [-I include_dir]* [-T application]* [-r] file* + [-Ddefine]* [-I include_dir]* [-pa dir]* [-pz dir]* + [-T application]* [-r] file* Options: -r dir* @@ -1039,6 +1048,10 @@ help_message() -> -I include_dir pass the include_dir to TypEr (The syntax of includes is the same as that used by \"erlc\".) + -pa dir + -pz dir + Set code path options to TypEr + (This is useful for files that use parse tranforms.) --version (or -v) prints the Typer version and exits --help (or -h) -- 1.7.4.1 From henrik@REDACTED Wed Mar 23 09:44:41 2011 From: henrik@REDACTED (Henrik Nord) Date: Wed, 23 Mar 2011 09:44:41 +0100 Subject: [erlang-patches] [PATCH] Add options -pa Dir and -pz Dir to TypEr In-Reply-To: <1300831628-32301-2-git-send-email-tomas.abrahamsson@gmail.com> References: <4D872F03.2090702@cs.ntua.gr> <1300831628-32301-1-git-send-email-tomas.abrahamsson@gmail.com> <1300831628-32301-2-git-send-email-tomas.abrahamsson@gmail.com> Message-ID: <4D89B2F9.1000505@erlang.org> On 03/22/2011 11:07 PM, Tomas Abrahamsson wrote: > Setting code path options is useful e.g. when analyzing programs that > use parse transforms. > --- > lib/typer/src/typer.erl | 17 +++++++++++++++-- > 1 files changed, 15 insertions(+), 2 deletions(-) > > diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl > index fc8caa4..e40c4f3 100644 > --- a/lib/typer/src/typer.erl > +++ b/lib/typer/src/typer.erl > @@ -628,6 +628,8 @@ cl(["-T"|Opts]) -> > cl(["-r"|Opts]) -> > {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), > {{files_r, Files}, RestOpts}; > +cl(["-pa",Dir|Opts]) -> {{pa,Dir}, Opts}; > +cl(["-pz",Dir|Opts]) -> {{pz,Dir}, Opts}; > cl(["-"++H|_]) -> fatal_error("unknown option -"++H); > cl(Opts) -> > {Files, RestOpts} = dialyzer_cl_parse:collect_args(Opts), > @@ -672,7 +674,13 @@ analyze_result({plt, Plt}, Args, Analysis) -> > analyze_result(show_succ, Args, Analysis) -> > {Args, Analysis#analysis{show_succ = true}}; > analyze_result(no_spec, Args, Analysis) -> > - {Args, Analysis#analysis{no_spec = true}}. > + {Args, Analysis#analysis{no_spec = true}}; > +analyze_result({pa, Dir}, Args, Analysis) -> > + code:add_patha(Dir), > + {Args, Analysis}; > +analyze_result({pz, Dir}, Args, Analysis) -> > + code:add_pathz(Dir), > + {Args, Analysis}. > > %%-------------------------------------------------------------------- > %% File processing. > @@ -1009,7 +1017,8 @@ version_message() -> > help_message() -> > S =<<" Usage: typer [--help] [--version] [--plt PLT] [--edoc] > [--show | --show-exported | --annotate | --annotate-inc-files] > - [-Ddefine]* [-I include_dir]* [-T application]* [-r] file* > + [-Ddefine]* [-I include_dir]* [-pa dir]* [-pz dir]* > + [-T application]* [-r] file* > > Options: > -r dir* > @@ -1039,6 +1048,10 @@ help_message() -> > -I include_dir > pass the include_dir to TypEr > (The syntax of includes is the same as that used by \"erlc\".) > + -pa dir > + -pz dir > + Set code path options to TypEr > + (This is useful for files that use parse tranforms.) > --version (or -v) > prints the Typer version and exits > --help (or -h) > Thank you Refetched and cooking /Henrik From henrik@REDACTED Mon Mar 28 17:13:53 2011 From: henrik@REDACTED (Henrik Nord) Date: Mon, 28 Mar 2011 17:13:53 +0200 Subject: [erlang-patches] What's cooking in erlang/otp (2011-03-28) Message-ID: <201103281513.p2SFDo2u026094@smaug.otp.ericsson.se> ------------------------------------------------------------ [Graduated] * bw/tv-render-fix (tv) (2010-10-06) 1 commit + tv: Allow table viewer to display refs, ports and small binaries (5eff630) * cg/fix-sizeof-array-arg (erl_interface) (2011-02-25) 1 commit + Fix using sizeof() for array given as function argument (6228f21) * sg/fix-diskless-booted-relup (sasl) (2010-09-19) 1 commit + Remove traces of release_handler reading from filesystem when it has Masters list (c425230) * ta/binary-part-typo () (2011-01-22) 0 commits * ta/efficiencyguide-typos () (2011-01-27) 0 commits * ta/epmd-typo () (2011-01-09) 0 commits * ta/erlsrv-typos (erts, kernel, otp, stdlib) (2010-12-14) 7 commits + Fix two typos in erlsrv log messages (179de7d) + Fix typo in epmd help (0094f95) + Fix typo in binary:part/2 example (75bde02) + Fix typos in efficiency guide (e2ad0e6) + erts: Fix doc typos, duplication and readability (b2f3b6b) + Fix inet:port/1 doc to match implementation/spec (aeb8dc0) + Fix typos in zip manpage (2fb83f9) * ta/doc-fixes (erts) (2010-12-14) 1 commit . Fix two typos in erlsrv log messages (cef1bb0) * ta/erts-doc () (2011-02-01) 0 commits * ta/inet_port-doc () (2011-02-20) 0 commits * ta/zip-doc () (2011-02-23) 0 commits ------------------------------------------------------------ [New topics] * dc/improved_find_redist (erts) (2011-03-18) 1 commit - support new SDKs in find_redist.sh and fallback to $ERL_TOP as last resort (f4f35aa) * ta/typer-add-pa-pz (typer) (2011-03-22) 1 commit - Add options -pa Dir and -pz Dir to TypEr (4240cf0) * ta/typer-quote-atoms (hipe, typer) (2011-03-20) 1 commit - Quote atoms if necessary in types (254e21e) ------------------------------------------------------------ [Stalled] ------------------------------------------------------------ [Cooking] * bd/doc_fixes2 (crypto, inets, stdlib, webtool) (2011-02-23) 1 commit - Various small documentation fixes (f7cd7a2) * bd/mod_esi_binary (inets) (2011-02-23) 1 commit - Modify mod_esi:deliver/2 to accept binary data (73f261d) * bd/mod_esi_timeout_fix (inets) (2011-03-17) 1 commit - Fix timeout message generated by mod_esi (eea0a7b) * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-03-15) 6 commits - Avoid crash by skipping compilation_SUITE:on_load/1 (8592a02) - Inline less aggressively for native-code compilation (e699ad4) - Crudely fix return type for the lists:key{search,find,member}/3 (2b72202) - seq_trace_SUITE: Don't native-compile (2712344) - Disable native code if on_load is used (e8d0ea4) - andor_SUITE: Don't native-compile (e25ef8c) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * bsmr/fix-makefile-in-for-xref-mod-app-escript (otp) (2010-12-10) 1 commit - Fix for Makefile.in invoking xref_mod_app.escript (10d4235) * bw/efile_exists (erts) (2010-10-07) 1 commit - prim_file:exists/{1,2} which is lightweight file existence check (7203932) * cg/fix-pointer-dereference (erts) (2011-02-23) 1 commit - Fix some wrong pointer dereferences (47f9ef2) * cg/fix-prng (stdlib) (2010-10-06) 1 commit - Fix a bug in the implementation of the pseudo-random number generator (863ec4d) * es/pattern_match_on_magic_binaries (erts) (2011-03-16) 1 commit - Allow some limited pattern matching on magic binaries (e994db4) * fd/unix-efile-readdir-fix (erts) (2010-12-15) 1 commit - Fix call to strncat, 3rd arg should be of type size_t and not a pointer (78cfdaf) * fm/httpc-upload-body-streaming (inets) (2010-12-01) 1 commit - httpc: added support for streaming the body of an upload request (PUT or POST) (402ce68) * fm/posix-fallocate (erts, kernel) (2011-01-10) 2 commits - Fix build on Solaris (38a922d) - Added file:allocate/2 (9870d9b) * gc/gen-format-status-improvements (stdlib) (2010-06-12) 1 commit - Fix format_status bug for unregistered gen_event processes (95ed86f) * gl/erts-doterlang-docs (erts) (2010-12-19) 1 commit - Add back documentation on .erlang processing (6f9d175) * gs/mod_security-property-docs (inets) (2011-03-11) 1 commit - mod_security property docs (208b1bc) * hw/call-chmod-without-f (asn1, common_test, compiler, cosFileTransfer, crypto, debugger, docbuilder, edoc, erl_interface, erts, et, inets, inviso, kernel, megaco, mnesia, orber, parsetools, percept, public_key, reltool, runtime_tools, snmp, ssl, stdlib, syntax_tools, test_server, tools) (2010-11-15) 1 commit - Call chmod without the "-f" flag (7ed11a8) * hw/epmd-bind-to-address (erts) (2010-11-10) 1 commit - Allow user to specify the IP address epmd binds to (bcf3b3d) * hw/fix-epmd-perror (erts) (2010-11-13) 1 commit - Fix epmd's dbg_perror() output (b363d7d) * ja/cocci-useless-cast (erts) (2011-02-01) 1 commit - Remove useless casts from the emulator (4163493) * jf/run_erl-disable-flow-control (erts) (2010-03-05) 1 commit - Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control (d0775cd) * jn/gen_stream (stdlib) (2011-01-31) 1 commit - Add gen_stream behaviour (730c7fd) * km/pool_connect-to-running-nodes (stdlib) (2010-09-02) 1 commit - Change pool module to attempt to attach to nodes that are already running (a9f4cbc) * ks/erl_recomment (syntax_tools) (2011-02-23) 1 commit - Fix bug with some comments disappearing (64eb70d) * ks/hipe-ppc64 (erts, hipe, kernel) (2011-02-10) 8 commits - Enable HiPE by default when compiling for PPC64 (577a628) - Translate RTL to PPC code on PPC64 too (6f40a86) - Changes in ppc files for PPC64 (ea5edef) - Additions for the PPC64 backend (861cfc9) - Changes for the PPC64 backend (dbba32b) - Added loader for ppc64 (60826a5) - New files for the 64-bit backends (7c53e28) - Cleanup tags (e34f3a0) * ks/prim_file-fixes (erts) (2011-02-05) 3 commits - New version of the file (ca86ed3) - Driver names should be strings, not atoms (b8ea40c) - Cleanup and cosmetic changes (6adc116) * mh/eunit-surefire-reports (eunit) (2011-02-25) 1 commit - Don't shorten error messages in Eunit Surefire reports (d0cc2ae) * mk/net-kernel-epmd-return-list (kernel) (2010-12-10) 1 commit - Fix list returned by net_kernel:epmd_module (169d7e4) * ms/beam-fix-format-specifiers-in-erl_exit-msg (erts) (2011-02-25) 1 commit - Fix format specifiers in erl_exit messages (13f5d59) * ms/epmd-local-access-check (erts) (2010-11-24) 1 commit - epmd: include host address in local access check (5b68030) * ms/file-fix-hang-reading-compressed-files (erts, kernel) (2011-01-30) 1 commit - file: fix hang reading compressed files (292ecd0) * ms/inets-prevent_xss_in_error_pages (inets) (2011-02-21) 1 commit - inets: prevent XSS in error pages (4827d5d) * nox/xmerl-namespace-axis (xmerl) (2010-12-07) 12 commits - Implement namespace axis (27d791f) - Add `#xmlPI` support to xmerl_xpath:write_node/1 (75e67f5) - Fix processing-instruction(name?) (f05e78b) - Fix path filters (610df56) - Support more top-level primary expressions (770d6d9) - Accumulate comments in element nodes (e5b6b3a) - Add `default_attrs` option (18584c5) - Allow whole documents to be returned (aef3dea) - Track parents and namespace in `#xmlAttribute` nodes (dc9b220) - Track parents in `#xmlPI` nodes (5095331) - Set `vsn` field in `#xmlDecl` record (d712331) - Fix namespace-conformance constraints (e062270) * pg/des-cfb-functions (crypto) (2010-10-16) 1 commit - Add DES and Triple DES cipher feedback (CFB) mode functions (2c79ae7) * rc/rpc_pmap-typo (kernel) (2011-02-22) 1 commit - Fix typo in doc of rpc:pmap/3 (ee1ea4c) * rj/fix-httpd-format (inets) (2011-03-17) 1 commit - Fix log messages formating in httpd (cbe8b2e) * sa/callback-attr (compiler, inets, kernel, orber, otp, stdlib) (2010-06-08) 7 commits - Add callback specs into 'application' module in kernel (1934c3c) - Add callback specs to tftp module following internet documentation (8ab4c9e) - Add callback specs to inets_service module following possibly deprecated comments (2d430fb) - Add '-callback' attributes in stdlib's behaviours (0e453c2) - Update primary bootstrap (537084b) - Automatically generate 'behaviour_info' function from '-callback' attributes (361863c) - Add '-callback' attribute to language syntax (4f8bf7a) * sa/float_to_list_2 (erts, stdlib) (2011-01-16) 1 commit - Added float_to_list/2 that allows to specify formatting options (ee5a309) * sb/make-files-like-erlc (tools) (2010-05-18) 1 commit - Change make:files to behave more like erlc (5e9d051) * sv/enif_is_exception (erts) (2011-02-22) 1 commit - add support for checking if an ERL_NIF_TERM is an exception (f8cc2b0) * ta/erts-unused-vars (erts) (2011-03-10) 1 commit - erts: Remove unused variables (345454e) * ta/sendfile (erts, kernel, test_server) (2011-03-21) 3 commits - sendfile: try Win32 autoconf changes (84a604d) - sendfile: try Solaris autoconf changes (a527bad) - Implement file:sendfile (0c13435) * ts/cover-with-export_all (tools) (2010-09-23) 1 commit - add user specified compiler options on form reloading (eb02beb) * tv/edoc-loop-fix (edoc) (2011-02-01) 1 commit - Fix infinite loop for malformed edoc input (6ac05e5) * uw/mnesia-majority (mnesia) (2011-01-30) 8 commits - Add documentation text about majority checking (f5b8427) - add mnesia_majority_test suite (9c2f765) - where_to_wlock optimization + change_table_majority/2 (a535b6c) - bug in mnesia_tm:needs_majority/2 (eb81e20) - optimize sticky_lock maj. check (5b304d4) - check majority for sticky locks (ae9e1fa) - Write locks now check majority when needed. (6f02d2e) - Add {majority, boolean()} per-table option. (c3241c0) * vb/shell (erts, kernel, stdlib) (2011-01-21) 6 commits - Add expandfmt_fun option for io:setopts (f139eab) - Correct JCL's help indentation (95672fa) - Handle JCL's "r" command error when no pool started (ba4b196) - Fix tab expansion in remote shell (e2077cb) - edlin_expand: fix matches formatting (838b84a) - Take into account arity len when calculating field's width (ff28c52) ------------------------------------------------------------ [Dropped] * dk/agent-capabilities (snmp) (2010-12-01) 1 commit . AGENT-CAPABILITIES handling added to SNMP mib compiler (17c3b19) * fd/supervisor-delete-child-spec-on-child-termination (stdlib) (2011-01-19) 1 commit . Added supervisor:start_child/3 (bdf27ab) * rj/fix-typer-delete (typer) (2011-03-10) 1 commit . Fix TypEr crash when used with several source files (6d0fa8e) From mchris@REDACTED Tue Mar 29 19:13:05 2011 From: mchris@REDACTED (Maria Christakis) Date: Tue, 29 Mar 2011 20:13:05 +0300 Subject: [erlang-patches] Dialyzer crash fix Message-ID: <4D921321.7030601@mail.ntua.gr> Hello, This patch fixes a dialyzer crash in an error function. Please fetch: git fetch git://github.com/mariachris/otp.git disjoint-plt-msg Thank you, Maria From luc.tanguay@REDACTED Tue Mar 29 20:44:59 2011 From: luc.tanguay@REDACTED (luc.tanguay@REDACTED) Date: Tue, 29 Mar 2011 14:44:59 -0400 Subject: [erlang-patches] simple fix to ET contents viewer Message-ID: <462990D3EDDFE5458F928506D32D40C95CBD2D7758@MBX05.bell.corp.bce.ca> Hello, the fix can be fetch with: git fetch git://github.com/tanguay65/otp.git et_fix Regards, Luc Tanguay --- N'allez pas o? le chemin peut mener, allez l? o? il n'y a pas de chemin et laissez une trace. Ralph Waldo Emerson --- Luc Tanguay, ing./Eng. Bell Canada 671 De La Gaucheti?re 4e ?tage, Montr?al H3B 2M8 514-786-6440 cell: 514-229-7585 -------------- next part -------------- An HTML attachment was scrubbed... URL: From nem@REDACTED Wed Mar 30 03:19:59 2011 From: nem@REDACTED (Geoff Cant) Date: Tue, 29 Mar 2011 18:19:59 -0700 Subject: [erlang-patches] gen:call({global, Name}, ...) Message-ID: Hi all, I discovered today that gen:call({global, Name}, Label, Request, Timeout) calls global:safe_whereis_name(Name) to determine the Pid to look up globally registered names. global:safe_whereis_name/1 doesn't seem to offer any particular safety and more importantly, serializes all global name lookups on a node. (Using global:whereis_name/1 instead is just an ets lookup). Can we safely make a change like https://github.com/archaelus/otp/commit/4f6e8a147b3c600eef2dd05f8ce0d51cf9c35383 in gen.erl and improve call time and reduce the load on global_name_server at a stroke? This git repo contains the patch I'm thinking of: git fetch git://github.com/archaelus/otp.git gen_where Cheers, -- Geoff Cant From kostis@REDACTED Wed Mar 30 04:29:50 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Wed, 30 Mar 2011 05:29:50 +0300 Subject: [erlang-patches] Re: Dialyzer crash fix In-Reply-To: <4D921321.7030601@mail.ntua.gr> References: <4D921321.7030601@mail.ntua.gr> Message-ID: <4D92959E.2030208@cs.ntua.gr> Maria Christakis wrote: > Hello, > > This patch fixes a dialyzer crash in an error function. > > Please fetch: > > git fetch git://github.com/mariachris/otp.git disjoint-plt-msg Fixes an issue reported by a user and is obviously correct. Please include directly into 'dev'. Kostis From kostis@REDACTED Wed Mar 30 13:06:21 2011 From: kostis@REDACTED (Kostis Sagonas) Date: Wed, 30 Mar 2011 14:06:21 +0300 Subject: [erlang-patches] Fix translation of fun((...) -> T) type Message-ID: <4D930EAD.2020200@cs.ntua.gr> Fix the translation of fun((...) -> T) type so that it can be processed by type manipulating tools that rely on erl_types.erl git fetch git://github.com/kostis/otp.git any-arity-fun Thanks to Andreas Hohw?-Christensen for reporting this! Kostis From aronisstav@REDACTED Wed Mar 30 14:40:19 2011 From: aronisstav@REDACTED (Stavros Aronis) Date: Wed, 30 Mar 2011 15:40:19 +0300 Subject: [erlang-patches] Re: Fix translation of fun((...) -> T) type In-Reply-To: <4D930EAD.2020200@cs.ntua.gr> References: <4D930EAD.2020200@cs.ntua.gr> Message-ID: I've updated Kostis' patch to comply with the guidelines in the wiki. The new patch requires ./otp-build update_primary to be run, but if I've understood correctly this should be performed by OTP. Stavros Aronis On Wed, Mar 30, 2011 at 2:06 PM, Kostis Sagonas wrote: > Fix the translation of fun((...) -> T) type so that it can be processed by > type manipulating tools that rely on erl_types.erl > > git fetch git://github.com/kostis/otp.git any-arity-fun > > Thanks to Andreas Hohw?-Christensen for reporting this! > > Kostis > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches > -------------- next part -------------- An HTML attachment was scrubbed... URL: From henrik@REDACTED Thu Mar 31 11:34:25 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 31 Mar 2011 11:34:25 +0200 Subject: [erlang-patches] Re: Fix translation of fun((...) -> T) type In-Reply-To: References: <4D930EAD.2020200@cs.ntua.gr> Message-ID: <4D944AA1.8070807@erlang.org> On 03/30/2011 02:40 PM, Stavros Aronis wrote: > I've updated Kostis' patch to comply with the guidelines in the wiki. > > The new patch requires ./otp-build update_primary to be run, but if > I've understood correctly this should be performed by OTP. > > Stavros Aronis > > On Wed, Mar 30, 2011 at 2:06 PM, Kostis Sagonas > wrote: > > Fix the translation of fun((...) -> T) type so that it can be > processed by type manipulating tools that rely on erl_types.erl > > git fetch git://github.com/kostis/otp.git > any-arity-fun > > Thanks to Andreas Hohw?-Christensen for reporting this! > > Kostis > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches > > > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches > Hello This is now cooking in 'pu' Thank you -- /Henrik Nord Erlang/OTP -------------- next part -------------- An HTML attachment was scrubbed... URL: From henrik@REDACTED Thu Mar 31 11:38:38 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 31 Mar 2011 11:38:38 +0200 Subject: [erlang-patches] Re: Dialyzer crash fix In-Reply-To: <4D921321.7030601@mail.ntua.gr> References: <4D921321.7030601@mail.ntua.gr> Message-ID: <4D944B9E.7060806@erlang.org> On 03/29/2011 07:13 PM, Maria Christakis wrote: > Hello, > > This patch fixes a dialyzer crash in an error function. > > Please fetch: > > git fetch git://github.com/mariachris/otp.git disjoint-plt-msg > > > Thank you, > Maria > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Thank you! This will go into 'dev' today -- /Henrik Nord Erlang/OTP From henrik@REDACTED Thu Mar 31 12:28:21 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 31 Mar 2011 12:28:21 +0200 Subject: [erlang-patches] Re: gen:call({global, Name}, ...) In-Reply-To: References: Message-ID: <4D945745.6020600@erlang.org> On 03/30/2011 03:19 AM, Geoff Cant wrote: > Hi all, I discovered today that gen:call({global, Name}, Label, Request, > Timeout) calls global:safe_whereis_name(Name) to determine the Pid to > look up globally registered names. > > global:safe_whereis_name/1 doesn't seem to offer any particular safety > and more importantly, serializes all global name lookups on a node. (Using > global:whereis_name/1 instead is just an ets lookup). > > Can we safely make a change like > https://github.com/archaelus/otp/commit/4f6e8a147b3c600eef2dd05f8ce0d51cf9c35383 > in gen.erl and improve call time and reduce the load on > global_name_server at a stroke? > > This git repo contains the patch I'm thinking of: > git fetch git://github.com/archaelus/otp.git gen_where > > Cheers, > Hello Thank you! This branch is now cooking in 'pu' -- /Henrik Nord Erlang/OTP From henrik@REDACTED Thu Mar 31 14:57:15 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 31 Mar 2011 14:57:15 +0200 Subject: [erlang-patches] Re: gen:call({global, Name}, ...) In-Reply-To: <4D945745.6020600@erlang.org> References: <4D945745.6020600@erlang.org> Message-ID: <4D947A2B.5060905@erlang.org> On 03/31/2011 12:28 PM, Henrik Nord wrote: > On 03/30/2011 03:19 AM, Geoff Cant wrote: >> Hi all, I discovered today that gen:call({global, Name}, Label, Request, >> Timeout) calls global:safe_whereis_name(Name) to determine the Pid to >> look up globally registered names. >> >> global:safe_whereis_name/1 doesn't seem to offer any particular safety >> and more importantly, serializes all global name lookups on a node. >> (Using >> global:whereis_name/1 instead is just an ets lookup). >> >> Can we safely make a change like >> https://github.com/archaelus/otp/commit/4f6e8a147b3c600eef2dd05f8ce0d51cf9c35383 >> >> in gen.erl and improve call time and reduce the load on >> global_name_server at a stroke? >> >> This git repo contains the patch I'm thinking of: >> git fetch git://github.com/archaelus/otp.git gen_where >> >> Cheers, > Hello > > Thank you! > This branch is now cooking in 'pu' > Hello This has apparently been tested before, and found to be unsafe. So im pulling it out. Thank you -- /Henrik Nord Erlang/OTP From aronisstav@REDACTED Thu Mar 31 17:06:26 2011 From: aronisstav@REDACTED (Stavros Aronis) Date: Thu, 31 Mar 2011 18:06:26 +0300 Subject: [erlang-patches] Fix Dialyzer's crash related with invalid specs Message-ID: This patch contains a fix for Dialyzer. The commit message contains the details. git fetch git://github.com/aronisstav/otp.git dialyzer-invalid-spec-fix Stavros Aronis -------------- next part -------------- An HTML attachment was scrubbed... URL: From henrik@REDACTED Thu Mar 31 17:29:38 2011 From: henrik@REDACTED (Henrik Nord) Date: Thu, 31 Mar 2011 17:29:38 +0200 Subject: [erlang-patches] Re: Fix Dialyzer's crash related with invalid specs In-Reply-To: References: Message-ID: <4D949DE2.9040409@erlang.org> On 03/31/2011 05:06 PM, Stavros Aronis wrote: > This patch contains a fix for Dialyzer. The commit message contains > the details. > > git fetch git://github.com/aronisstav/otp.git > dialyzer-invalid-spec-fix > > Stavros Aronis > > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches > Thank you Stavros Ill put it in 'pu' for now -- /Henrik Nord Erlang/OTP -------------- next part -------------- An HTML attachment was scrubbed... URL: From nem@REDACTED Thu Mar 31 20:16:16 2011 From: nem@REDACTED (Geoff Cant) Date: Thu, 31 Mar 2011 11:16:16 -0700 Subject: [erlang-patches] Re: gen:call({global, Name}, ...) In-Reply-To: <4D947A2B.5060905@erlang.org> (Henrik Nord's message of "Thu, 31 Mar 2011 14:57:15 +0200") References: <4D945745.6020600@erlang.org> <4D947A2B.5060905@erlang.org> Message-ID: Henrik Nord writes: > On 03/31/2011 12:28 PM, Henrik Nord wrote: >> On 03/30/2011 03:19 AM, Geoff Cant wrote: >>> Hi all, I discovered today that gen:call({global, Name}, Label, Request, >>> Timeout) calls global:safe_whereis_name(Name) to determine the Pid to >>> look up globally registered names. >>> >>> global:safe_whereis_name/1 doesn't seem to offer any particular safety >>> and more importantly, serializes all global name lookups on a >>> node. (Using >>> global:whereis_name/1 instead is just an ets lookup). >>> >>> Can we safely make a change like >>> https://github.com/archaelus/otp/commit/4f6e8a147b3c600eef2dd05f8ce0d51cf9c35383 >>> >>> in gen.erl and improve call time and reduce the load on >>> global_name_server at a stroke? >>> >>> This git repo contains the patch I'm thinking of: >>> git fetch git://github.com/archaelus/otp.git gen_where >>> >>> Cheers, >> Hello >> >> Thank you! >> This branch is now cooking in 'pu' >> > > Hello > This has apparently been tested before, and found to be unsafe. > So im pulling it out. Hi Henrik, thanks for looking at this patch. It would be great if the OTP team could explain this a little further. gen.erl is using the undocumented function global:safe_whereis_name/1. This function seems to retry (an unbounded number of times) to do the same thing as global:whereis_name/1, but ensuring that the global lock is not set. This will make sure that name registrations are not being created, deleted or changed while the safe_whereis_name lookup occurs. To my mind, this doesn't seem to add much safety. The whereis_name/1 operation is a single ets:lookup, and ets guarantees us that this read is atomic, so the result of the lookup can't be affected by operations that require the global lock anyway. We could easily get stale results from global - a Pid for a name that is immediately changed after the call, a Pid that was just unregistered on another node, and probably a host of other things, but safe_whereis_name doesn't appear to protect us from these situations either. Is there an important edge case I'm missing here? I'd love to know because I'm trying a patch similar in effect to this one at work as we can't afford to serialize all process name lookups through global (gen:call({global, Name}, ...) is the dominant part of the call time here and it's getting up to 100+ms). Cheers, -- Geoff Cant From ulf.wiger@REDACTED Thu Mar 31 21:05:43 2011 From: ulf.wiger@REDACTED (Ulf Wiger) Date: Thu, 31 Mar 2011 21:05:43 +0200 Subject: [erlang-patches] Re: gen:call({global, Name}, ...) In-Reply-To: References: <4D945745.6020600@erlang.org> <4D947A2B.5060905@erlang.org> Message-ID: <519BCD92-8A0B-4261-A1B9-B2F1D7879125@erlang-solutions.com> Hi Geoff, I agree. Safe_whereis_name/1 doesn't really protect against anything. It does, perhaps reduce the window of some unwanted events, but it doesn't eliminate them. We did some interesting tests with QuickCheck PULSE on a predecessor of Gproc. Basically, with true concurrency, and even more so in a distributed setting, these sorts of races are not possible to eliminate - at least not without exorbitant costs. For this reason, gproc:where/1 simply does an ets:lookup(), even in the global case. BR, Ulf W On 31 Mar 2011, at 20:16, Geoff Cant wrote: > To my mind, this doesn't seem to add much safety. The whereis_name/1 > operation is a single ets:lookup, and ets guarantees us that this read > is atomic, so the result of the lookup can't be affected by operations > that require the global lock anyway. Ulf Wiger, CTO, Erlang Solutions, Ltd. http://erlang-solutions.com