From fredrik@REDACTED Mon Sep 2 09:50:20 2013 From: fredrik@REDACTED (Fredrik) Date: Mon, 2 Sep 2013 09:50:20 +0200 Subject: [erlang-patches] Fix httpd config option 'erl_script_nocache' In-Reply-To: <20130831022128.GA788@molb.org> References: <20130622183700.GA8171@molb.org> <521342B3.1080002@erlang.org> <20130831022128.GA788@molb.org> Message-ID: <5224433C.2030701@erlang.org> On 08/31/2013 04:21 AM, Johannes Wei?l wrote: > Hello Fredrik, > >> Could you please provide a testcase for this particular issue in your patch? > I wrote a test which checks the functionality of the nocache directives, > and also that they can be used independently (mod_cgi<-> mod_esi). I > pushed the commit on the branch of the fix and also opened a pull > request. > > https://github.com/erlang/otp/pull/64 > > git fetch git://github.com/weisslj/otp.git fix-httpd-erl-script-nocache > > https://github.com/weisslj/otp/compare/erlang:maint...fix-httpd-erl-script-nocache > https://github.com/weisslj/otp/compare/erlang:maint...fix-httpd-erl-script-nocache.patch > > > Greetings, > > Johannes Wei?l > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Re-fetched. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team From kostis@REDACTED Wed Sep 4 10:43:42 2013 From: kostis@REDACTED (Kostis Sagonas) Date: Wed, 04 Sep 2013 10:43:42 +0200 Subject: [erlang-patches] Small cleanup of hipe_unified_loader Message-ID: <5226F2BE.6000204@cs.ntua.gr> Cleanup of the file Consisting of three items: - Eliminate uses of is_subtype/2 in specs - Change module-local void functions to return 'ok' instead of [] - Make sure there are no dialyzer warnings with --Wunmatched_returns ========================================================================= Please include: git fetch git://github.com/kostis/otp.git hipe_unified_loader-cleanup Kostis From fredrik@REDACTED Wed Sep 4 11:05:20 2013 From: fredrik@REDACTED (Fredrik) Date: Wed, 4 Sep 2013 11:05:20 +0200 Subject: [erlang-patches] Small cleanup of hipe_unified_loader In-Reply-To: <5226F2BE.6000204@cs.ntua.gr> References: <5226F2BE.6000204@cs.ntua.gr> Message-ID: <5226F7D0.2050902@erlang.org> On 09/04/2013 10:43 AM, Kostis Sagonas wrote: > Cleanup of the file > > Consisting of three items: > - Eliminate uses of is_subtype/2 in specs > - Change module-local void functions to return 'ok' instead of [] > - Make sure there are no dialyzer warnings with --Wunmatched_returns > > ========================================================================= > > Please include: > > git fetch git://github.com/kostis/otp.git hipe_unified_loader-cleanup > > Kostis > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hi Kostis, I've assigned it to be reviewed and if this turns out OK it will be included in the nightly tests and builds. -- BR Fredrik Gustafsson Erlang OTP Team From magnus@REDACTED Wed Sep 4 16:13:48 2013 From: magnus@REDACTED (Magnus Henoch) Date: Wed, 04 Sep 2013 15:13:48 +0100 Subject: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 Message-ID: This patch adds the functions dict:is_empty/1 and orddict:is_empty/1. For dict, comparing the size against 0 runs in constant time, but not for orddict. My new functions are an attempt to relieve users from having to know such implementation details. git fetch git://github.com/legoscia/otp.git dict_orddict_is_empty https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty.patch Regards, Magnus From fredrik@REDACTED Wed Sep 4 16:22:14 2013 From: fredrik@REDACTED (Fredrik) Date: Wed, 4 Sep 2013 16:22:14 +0200 Subject: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 In-Reply-To: References: Message-ID: <52274216.3070603@erlang.org> On 09/04/2013 04:13 PM, Magnus Henoch wrote: > This patch adds the functions dict:is_empty/1 and orddict:is_empty/1. > For dict, comparing the size against 0 runs in constant time, but not > for orddict. My new functions are an attempt to relieve users from > having to know such implementation details. > > git fetch git://github.com/legoscia/otp.git dict_orddict_is_empty > > https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty > https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty.patch > > Regards, > Magnus > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello Magnus, I've fetched your patch and assigned it to be reviewed by responsible developers. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team From vinoski@REDACTED Wed Sep 4 16:48:12 2013 From: vinoski@REDACTED (Steve Vinoski) Date: Wed, 4 Sep 2013 10:48:12 -0400 Subject: [erlang-patches] add {active,N} support for sockets Message-ID: This pull request adds support for an {active,N} option for TCP, UDP, and SCTP sockets. It's similar to {active,true} except the socket enters passive mode once N messages have been sent to the controlling process, similar to what the {active,once} mode does after 1 message. The commit message contains more details: https://github.com/vinoski/otp/commit/abd3703840ff9395b40e38aa7c7648171a9adc82 The pull request is here: https://github.com/erlang/otp/pull/66 --steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From fredrik@REDACTED Wed Sep 4 16:49:47 2013 From: fredrik@REDACTED (Fredrik) Date: Wed, 4 Sep 2013 16:49:47 +0200 Subject: [erlang-patches] add {active,N} support for sockets In-Reply-To: References: Message-ID: <5227488B.8050004@erlang.org> On 09/04/2013 04:48 PM, Steve Vinoski wrote: > This pull request adds support for an {active,N} option for TCP, UDP, > and SCTP sockets. It's similar to {active,true} except the socket > enters passive mode once N messages have been sent to the controlling > process, similar to what the {active,once} mode does after 1 message. > The commit message contains more details: > > https://github.com/vinoski/otp/commit/abd3703840ff9395b40e38aa7c7648171a9adc82 > > The pull request is here: > > https://github.com/erlang/otp/pull/66 > > --steve > > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello Steve, The pull-request machinery will pick this patch up tonight and run some initial testing on it, if that goes well I'll assign it to the responsible team tomorrow. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team -------------- next part -------------- An HTML attachment was scrubbed... URL: From magnus@REDACTED Wed Sep 4 19:56:52 2013 From: magnus@REDACTED (Magnus Henoch) Date: Wed, 04 Sep 2013 18:56:52 +0100 Subject: [erlang-patches] Fix UTF-8 errors in documentation Message-ID: When running "make docs" on the master branch, xsltproc gave the error "parser error : Input is not proper UTF-8, indicate encoding !" for a few files. These files are declared to be encoded in UTF-8, but contain Latin-1 characters. This patch converts them to proper UTF-8. Note that this patch only applies to the master branch. On maint, these files are declared to be encoded in Latin-1, so this doesn't cause problems there. git fetch git://github.com/legoscia/otp.git latin-1-doc-fix https://github.com/legoscia/otp/compare/erlang:master...legoscia:latin-1-doc-fix https://github.com/legoscia/otp/compare/erlang:master...legoscia:latin-1-doc-fix.patch Regards, Magnus From vinoski@REDACTED Wed Sep 4 21:20:03 2013 From: vinoski@REDACTED (Steve Vinoski) Date: Wed, 4 Sep 2013 15:20:03 -0400 Subject: [erlang-patches] add system_info(ets_limit) Message-ID: Add system_info(ets_limit) to provide a way to get the system's maximum number of ETS tables. https://github.com/erlang/otp/pull/67 --steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From fredrik@REDACTED Thu Sep 5 09:52:45 2013 From: fredrik@REDACTED (Fredrik) Date: Thu, 5 Sep 2013 09:52:45 +0200 Subject: [erlang-patches] Fix UTF-8 errors in documentation In-Reply-To: References: Message-ID: <5228384D.8050707@erlang.org> On 09/04/2013 07:56 PM, Magnus Henoch wrote: > When running "make docs" on the master branch, xsltproc gave the error > "parser error : Input is not proper UTF-8, indicate encoding !" for a > few files. These files are declared to be encoded in UTF-8, but contain > Latin-1 characters. This patch converts them to proper UTF-8. > > Note that this patch only applies to the master branch. On maint, these > files are declared to be encoded in Latin-1, so this doesn't cause > problems there. > > git fetch git://github.com/legoscia/otp.git latin-1-doc-fix > > https://github.com/legoscia/otp/compare/erlang:master...legoscia:latin-1-doc-fix > https://github.com/legoscia/otp/compare/erlang:master...legoscia:latin-1-doc-fix.patch > > Regards, > Magnus > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello Magnus, Thanks for the patch, -- BR Fredrik Gustafsson Erlang OTP Team From n.oxyde@REDACTED Thu Sep 5 11:56:33 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Thu, 5 Sep 2013 11:56:33 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> Message-ID: <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> Ping? -- Anthony Ramine Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : > Did you discuss it yet? :) > > -- > Anthony Ramine > > Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : > >> The OTP Technical Board will discuss EEP37 >> at its next meeting. >> >> >> On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine wrote: >> Ping? >> >> -- >> Anthony Ramine >> >> Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : >> >>> Hello, >>> >>> Any ETA for a review? >>> >>> Regards, >>> >>> On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: >>>> On 03/20/2013 03:30 PM, Anthony Ramine wrote: >>>>> >>>>> Rebased! :) >>>>> >>>>> Does it mean it may be included before R17? Branch maint is for minor >>>>> releases, right? >>>>> >>>> Right now im collecting all the patches active at the moment in pu. That >>>> does not mean it will be included in a minor release. :) >>>> >>>> -- >>>> >>>> BR Fredrik Gustafsson >>>> Erlang OTP Team >>>> >> >> _______________________________________________ >> eeps mailing list >> eeps@REDACTED >> http://erlang.org/mailman/listinfo/eeps >> >> >> >> -- >> Bj?rn Gustavsson, Erlang/OTP, Ericsson AB > From kenneth.lundin@REDACTED Thu Sep 5 16:50:53 2013 From: kenneth.lundin@REDACTED (Kenneth Lundin) Date: Thu, 5 Sep 2013 16:50:53 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> Message-ID: Hi, Yes, we have dicussed this on our technical board, I don't have the exact outcome at hand but can give more info tomorrow. As far as I remember it was a positive verdict. /Kenneth, Erlang/OTP Ericsson Den 5 sep 2013 11:56 skrev "Anthony Ramine" : > Ping? > > -- > Anthony Ramine > > Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : > > > Did you discuss it yet? :) > > > > -- > > Anthony Ramine > > > > Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : > > > >> The OTP Technical Board will discuss EEP37 > >> at its next meeting. > >> > >> > >> On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine > wrote: > >> Ping? > >> > >> -- > >> Anthony Ramine > >> > >> Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : > >> > >>> Hello, > >>> > >>> Any ETA for a review? > >>> > >>> Regards, > >>> > >>> On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: > >>>> On 03/20/2013 03:30 PM, Anthony Ramine wrote: > >>>>> > >>>>> Rebased! :) > >>>>> > >>>>> Does it mean it may be included before R17? Branch maint is for minor > >>>>> releases, right? > >>>>> > >>>> Right now im collecting all the patches active at the moment in pu. > That > >>>> does not mean it will be included in a minor release. :) > >>>> > >>>> -- > >>>> > >>>> BR Fredrik Gustafsson > >>>> Erlang OTP Team > >>>> > >> > >> _______________________________________________ > >> eeps mailing list > >> eeps@REDACTED > >> http://erlang.org/mailman/listinfo/eeps > >> > >> > >> > >> -- > >> Bj?rn Gustavsson, Erlang/OTP, Ericsson AB > > > > _______________________________________________ > eeps mailing list > eeps@REDACTED > http://erlang.org/mailman/listinfo/eeps > -------------- next part -------------- An HTML attachment was scrubbed... URL: From n.oxyde@REDACTED Thu Sep 5 17:40:05 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Thu, 5 Sep 2013 17:40:05 +0200 Subject: [erlang-patches] Optimize handling of local fun variables in v3_kernel In-Reply-To: References: <50B87C69.1030406@erlang.org> <9FE06E4A-CFF9-4542-B22F-687F7D43CE7B@gmail.com> <50ED920E.5060706@erlang.org> <8D1C563A-E65D-4544-9635-78F0B7A3596D@gmail.com> <50F52480.9040100@erlang.org> <50F5325B.4010005@erlang.org> <39C10C4B-C8C6-4331-B7DD-43E8E0F23751@gmail.com> <50FE512C.8020905@erlang.org> <185EEAD8-2C06-4BCB-8863-B6F8CC79460D@gmail.com> <5195E2BE.4060104@erlang.org> <406DB238-CBC1-4CCD-9AFF-1AC9DBFDA62B@gmail.com> <637F7FCA-3360-4F81-AFB1-C3D41A6E4139@gmail.com> <5199D1BA.6010206@erlang.org> <5B7E1490-0301-4BF7-B6E4-FBD792B3ECD1@gmail.com> Message-ID: What happened to that patch? Le 20 mai 2013 ? 17:05, Anthony Ramine a ?crit : > Still no problem. What was the actual error or crash? > > -- > Anthony Ramine > > Le 20 mai 2013 ? 13:35, Anthony Ramine a ?crit : > >> Just native-libs. Will try those now. >> >> -- >> Anthony Ramine >> >> Le 20 mai 2013 ? 09:33, Fredrik a ?crit : >> >>> On 05/17/2013 06:50 PM, Anthony Ramine wrote: >>>> I can't reproduce any crash with diameter_dict_parse, could you give me more details about it? >>>> >>> Hello Anthony, >>> ./configure flags are: >>> --enable-hipe --enable-smp-support --enable-native-libs >>> Did you try with those? >>> >>> -- >>> >>> BR Fredrik Gustafsson >>> Erlang OTP Team >>> >> > From robert.virding@REDACTED Fri Sep 6 13:05:24 2013 From: robert.virding@REDACTED (Robert Virding) Date: Fri, 6 Sep 2013 13:05:24 +0200 (CEST) Subject: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 In-Reply-To: <52274216.3070603@erlang.org> References: <52274216.3070603@erlang.org> Message-ID: <1579634888.109190.1378465524035.JavaMail.zimbra@erlang-solutions.com> I just want to comment that I think this is a reasonable and useful externsion of the dict/orddict API. Robert ----- Original Message ----- > From: "Fredrik" > To: "Magnus Henoch" > Cc: erlang-patches@REDACTED > Sent: Wednesday, 4 September, 2013 4:22:14 PM > Subject: Re: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 > > On 09/04/2013 04:13 PM, Magnus Henoch wrote: > > This patch adds the functions dict:is_empty/1 and orddict:is_empty/1. > > For dict, comparing the size against 0 runs in constant time, but not > > for orddict. My new functions are an attempt to relieve users from > > having to know such implementation details. > > > > git fetch git://github.com/legoscia/otp.git dict_orddict_is_empty > > > > https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty > > https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty.patch > > > > Regards, > > Magnus > > _______________________________________________ > > erlang-patches mailing list > > erlang-patches@REDACTED > > http://erlang.org/mailman/listinfo/erlang-patches > Hello Magnus, > I've fetched your patch and assigned it to be reviewed by responsible > developers. > Thanks, > > -- > > BR Fredrik Gustafsson > Erlang OTP Team > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches > From carlsson.richard@REDACTED Fri Sep 6 13:20:39 2013 From: carlsson.richard@REDACTED (Richard Carlsson) Date: Fri, 06 Sep 2013 13:20:39 +0200 Subject: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 In-Reply-To: <1579634888.109190.1378465524035.JavaMail.zimbra@erlang-solutions.com> References: <52274216.3070603@erlang.org> <1579634888.109190.1378465524035.JavaMail.zimbra@erlang-solutions.com> Message-ID: <5229BA87.1020908@gmail.com> Perhaps I should mention my attempt at a complete unified dict-API, that I tried to rouse some interest in about a couple of years ago. (This change would be compatible with my suggestions.) See http://erlang.org/pipermail/erlang-questions/2011-December/063430.html and https://github.com/richcarl/otp/tree/dict-api /Richard On 2013-09-06 13:05 , Robert Virding wrote: > I just want to comment that I think this is a reasonable and useful externsion of the dict/orddict API. > > Robert > > ----- Original Message ----- >> From: "Fredrik" >> To: "Magnus Henoch" >> Cc: erlang-patches@REDACTED >> Sent: Wednesday, 4 September, 2013 4:22:14 PM >> Subject: Re: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 >> >> On 09/04/2013 04:13 PM, Magnus Henoch wrote: >>> This patch adds the functions dict:is_empty/1 and orddict:is_empty/1. >>> For dict, comparing the size against 0 runs in constant time, but not >>> for orddict. My new functions are an attempt to relieve users from >>> having to know such implementation details. >>> >>> git fetch git://github.com/legoscia/otp.git dict_orddict_is_empty >>> >>> https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty >>> https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty.patch >>> >>> Regards, >>> Magnus >>> _______________________________________________ >>> erlang-patches mailing list >>> erlang-patches@REDACTED >>> http://erlang.org/mailman/listinfo/erlang-patches >> Hello Magnus, >> I've fetched your patch and assigned it to be reviewed by responsible >> developers. >> Thanks, >> >> -- >> >> BR Fredrik Gustafsson >> Erlang OTP Team >> >> _______________________________________________ >> 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 > From olgeni@REDACTED Sun Sep 8 10:18:27 2013 From: olgeni@REDACTED (Jimmy Olgeni) Date: Sun, 8 Sep 2013 10:18:27 +0200 (CEST) Subject: [erlang-patches] [patch] Remove mnesia_session(3) reference Message-ID: Hello, A quick patch to remove an obsolete reference to mnesia_session(3) from mnesia(3): git fetch git://github.com/olgeni/otp.git mnesia-man-fixes https://github.com/olgeni/otp/compare/erlang:maint...mnesia-man-fixes https://github.com/olgeni/otp/compare/erlang:maint...mnesia-man-fixes.patch -- jimmy From Aleksander.Nycz@REDACTED Mon Sep 9 14:49:27 2013 From: Aleksander.Nycz@REDACTED (Aleksander Nycz) Date: Mon, 09 Sep 2013 14:49:27 +0200 Subject: [erlang-patches] New index type in mnesia (new feature) In-Reply-To: <522D79A9.1070805@erlang.org> References: <51C1E19C.2070000@comarch.pl> <51CD63FF.1070303@erlang.org> <52171BB2.3030909@comarch.pl> <52282D46.7020409@comarch.pl> <52282F48.6060308@erlang.org> <522D712C.1010900@erlang.org> <522D7693.6050908@comarch.pl> <522D79A9.1070805@erlang.org> Message-ID: <522DC3D7.90008@comarch.pl> W dniu 2013-09-09 09:32, Fredrik pisze: > On 09/09/2013 09:19 AM, Aleksander Nycz wrote: >> W dniu 2013-09-09 08:56, Fredrik pisze: >>> On 09/05/2013 09:14 AM, Fredrik wrote: >>>> On 09/05/2013 09:05 AM, Aleksander Nycz wrote: >>>>> W dniu 2013-08-23 10:22, Aleksander Nycz pisze: >>>>>> W dniu 2013-06-28 12:22, Fredrik pisze: >>>>>>> On 06/19/2013 06:51 PM, Aleksander Nycz wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> Mnesia gives possibility to create table indexes, when >>>>>>>> the user wants to frequently use some other field >>>>>>>> than the key field to look up records. >>>>>>>> >>>>>>>> Current index solution in mnesia uses ets table (type bag or >>>>>>>> duplicated_bag) to maintain mapping: >>>>>>>> Indexed field value -> Primary key value. >>>>>>>> >>>>>>>> Unfortunatelly current solution has very significant disadvantage: >>>>>>>> operation performance (loading table, insert new records, >>>>>>>> delete records, etc.) is very low when index is set on >>>>>>>> 'Low-cardinality column' >>>>>>>> >>>>>>>> http://en.wikipedia.org/wiki/Cardinality_%28SQL_statements%29 >>>>>>>> >>>>>>>> In such case operation complexity is O(n) when n is number >>>>>>>> of Primary Key Values. For small n performance can be >>>>>>>> acceptable for some application, >>>>>>>> but when n is the hundreds, thousands or even more such index >>>>>>>> are useless. New index type provides O(1) complexity. >>>>>>>> >>>>>>>> This patch introduces new index type in mnesia database. >>>>>>>> Main concept is to maintain all Primary Key Values not direcly in >>>>>>>> bag/duplicated_bag ets but in set of ets. >>>>>>>> For each Indexed field value new ets is created >>>>>>>> and Primary Key Values are strored in this ets. >>>>>>>> For 'Low-cardinality column' there is only a few Indexed key >>>>>>>> value (eg. isActive (true/false), state >>>>>>>> (new/pending/suspended/active), ...) >>>>>>>> so memory overhead for ets is not significant. >>>>>>>> >>>>>>>> Standard index: >>>>>>>> Indexed field value -> [Primary key value] >>>>>>>> >>>>>>>> New index based on ets: >>>>>>>> Indexed field value -> ets, that contains Primary key value >>>>>>>> >>>>>>>> Restrictions: >>>>>>>> >>>>>>>> 1. New index can be created on disc_copies or ram_copies tables >>>>>>>> only. Tables disc_only_copies are not supported. >>>>>>>> 2. Index type can't be changed. The only way to change existing >>>>>>>> index idx_list to idx_ets and vice versa >>>>>>>> is to delete existing index and create new one by >>>>>>>> mnesia:add_table_index/3 (new function, see below) >>>>>>>> >>>>>>>> >>>>>>>> New API: >>>>>>>> >>>>>>>> 1. Define index type when table is created: >>>>>>>> >>>>>>>> create_table(Name, TabDef) -> {atomic, ok} | {aborted, Reason} >>>>>>>> >>>>>>>> New TabDef value: >>>>>>>> {index_type, [{atom() | int(), 'idx_std' | 'idx_ets'}]} - >>>>>>>> 'idx_std' is default when index is created >>>>>>>> >>>>>>>> Example: >>>>>>>> >>>>>>>> -type(poolId() :: integer()). >>>>>>>> -type(bucketId() :: integer()). >>>>>>>> -type(resourceState() :: free | reserved | gracePeriod). >>>>>>>> >>>>>>>> -record(rmResource, {id :: >>>>>>>> {poolId(), any()} >>>>>>>> ,state :: {poolId(), bucketId(), >>>>>>>> resourceState()} >>>>>>>> ,availableFrom :: integer() >>>>>>>> ,availableTo :: integer() >>>>>>>> ,requestorId :: any() >>>>>>>> ,reservedFrom :: integer() >>>>>>>> ,reservedTo :: integer() >>>>>>>> ,isDeleted = false :: >>>>>>>> boolean() >>>>>>>> ,mTime :: integer()}). >>>>>>>> >>>>>>>> {atomic,ok} = mnesia:create_table(tRMResources >>>>>>>> ,[ >>>>>>>> {disc_copies, []} >>>>>>>> ,{ram_copies, [node()]} >>>>>>>> ,{type,set} >>>>>>>> ,{attributes,record_info(fields, rmResource)} >>>>>>>> ,{record_name, rmResource} >>>>>>>> ,{index, [state, >>>>>>>> requestorId, mTime]} >>>>>>>> ,{index_type, [{state, idx_ets}, {requestorId, idx_std}]} >>>>>>>> ]), >>>>>>>> >>>>>>>> 2. Add new index to existing table: >>>>>>>> >>>>>>>> mnesia:add_table_index(Tab, AttrName, IndexOpts) -> {aborted, >>>>>>>> R} | {atomic, ok} >>>>>>>> >>>>>>>> This function creates a index on Mnesia table called Tab on >>>>>>>> AttrName >>>>>>>> field according to the argument IndexOpts. >>>>>>>> This list must be a list of {Item, Value} tuples, currently >>>>>>>> only one >>>>>>>> option is allowed: >>>>>>>> {index_type, 'idx_std' | 'idx_ets'} >>>>>>>> >>>>>>>> Example: >>>>>>>> >>>>>>>> mnesia:add_table_index(tRMResources, isDeleted, [{index_type, >>>>>>>> 'idx_ets'}]) >>>>>>>> >>>>>>>> 3. New match_object/4, dirty_match_object/3 functions: >>>>>>>> >>>>>>>> match_object(Tab, Pat, Limit, LockKind) -> [Record] | >>>>>>>> transaction abort. >>>>>>>> dirty_match_object(Tab, Pat, Limit) -> [Record] | >>>>>>>> exit({aborted, Reason}). >>>>>>>> >>>>>>>> Similar to match_object/3 and dirty_match_object/2, but returns >>>>>>>> no more than Limit records. >>>>>>>> >>>>>>>> >>>>>>>> 4. New index_match_object/5, dirty_index_match_object/4 functions: >>>>>>>> >>>>>>>> index_match_object(Tab, Pat, Attr, Limit, LockKind) -> [Record] >>>>>>>> | transaction abort. >>>>>>>> dirty_index_match_object(Tab, Pat, Attr, Limit) -> [Record] | >>>>>>>> exit({aborted, Reason}). >>>>>>>> >>>>>>>> Similar to index_match_object/4, dirty_index_match_object/3 but >>>>>>>> returns no more than Limit records. >>>>>>>> >>>>>>>> >>>>>>>> 5. New index_read/4, dirty_index_read/4 functions: >>>>>>>> >>>>>>>> index_read(Tab, Key, Attr, Limit) -> [Record] | transaction abort. >>>>>>>> dirty_index_read(Tab, Key, Attr, Limit) -> [Record] | >>>>>>>> exit({aborted, Reason}). >>>>>>>> >>>>>>>> Similar to index_read/3, dirty_index_read/3 but returns no more >>>>>>>> than Limit records. >>>>>>>> >>>>>>>> >>>>>>>> 6. New select_limit/3, select_limit/4, dirty_select/3 functions; >>>>>>>> >>>>>>>> select_limit(Tab, MatchSpec, NObjects [, Lock]) -> [Object] | >>>>>>>> transaction abort. >>>>>>>> >>>>>>>> Similar to select(Tab, MatchSpec [, Lock]) but returns maximum >>>>>>>> NObjects >>>>>>>> records, of course empty list can also be returned. >>>>>>>> Continuation (see select/4) is not possible. This function can >>>>>>>> also use >>>>>>>> indexes to find matching records >>>>>>>> as contrasted with select/4. >>>>>>>> >>>>>>>> dirty_select(Tab, Spec, Limit) -> [Object] | exit({aborted, >>>>>>>> Reason}. >>>>>>>> >>>>>>>> Similar to dirty_select/2 but returns no more than Limit records. >>>>>>>> >>>>>>>> And git links: >>>>>>>> >>>>>>>> git fetch git://github.com/nyczol/otp.git mnesia_new_index >>>>>>>> >>>>>>>> https://github.com/nyczol/otp/compare/erlang:master...mnesia_new_index >>>>>>>> >>>>>>>> https://github.com/nyczol/otp/compare/erlang:master...mnesia_new_index.patch >>>>>>>> >>>>>>>> >>>>>>>> Regards, >>>>>>>> Aleksander Nycz >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> erlang-patches mailing list >>>>>>>> erlang-patches@REDACTED >>>>>>>> http://erlang.org/mailman/listinfo/erlang-patches >>>>>>> Hello, >>>>>>> Please rebase this patch upon current maint. No mergeing ;) >>>>>>> Thanks, >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> BR Fredrik Gustafsson >>>>>>> Erlang OTP Team >>>>>> >>>>>> Hello, >>>>>> >>>>>> It lasts quite long but finally is done. >>>>>> I move mnesia_new_index functionality to maint. >>>>>> >>>>>> Below git links: >>>>>> >>>>>> git fetch git://github.com/nyczol/otp.git mnesia_new_index2 >>>>>> >>>>>> https://github.com/nyczol/otp/compare/erlang:maint...mnesia_new_index2 >>>>>> https://github.com/nyczol/otp/compare/erlang:maint...mnesia_new_index2.patch >>>>>> >>>>>> Best regards >>>>>> Aleksadner Nycz >>>>>> >>>>>> -- >>>>>> Aleksander Nycz >>>>>> Senior Software Engineer >>>>>> Telco_021 BSS R&D >>>>>> Comarch SA >>>>>> Phone: +48 12 646 1216 >>>>>> Mobile: +48 691 464 275 >>>>>> website:www.comarch.pl >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> erlang-patches mailing list >>>>>> erlang-patches@REDACTED >>>>>> http://erlang.org/mailman/listinfo/erlang-patches >>>>> Hello, >>>>> >>>>> Fredrik are you going to add this functionality to maint branch? >>>>> >>>>> I ask because we use it in production system and we must merge it >>>>> every time we change otp version. >>>>> >>>>> Best regards >>>>> Aleksander Nycz >>>>> >>>>> -- >>>>> Aleksander Nycz >>>>> Senior Software Engineer >>>>> Telco_021 BSS R&D >>>>> Comarch SA >>>>> Phone: +48 12 646 1216 >>>>> Mobile: +48 691 464 275 >>>>> website:www.comarch.pl >>>> Hello, >>>> It is still in review state i.e the responsible team hasn't decided >>>> if they want it yet. >>>> >>>> -- >>>> >>>> BR Fredrik Gustafsson >>>> Erlang OTP Team >>> The responsible dropped this feature. I.e it will not be merged to maint >>> >>> -- >>> >>> BR Fredrik Gustafsson >>> Erlang OTP Team >> Can you suggest other solution, how to cope with 'Low-cardinality >> column' in mnesia? >> >> Are you going to add different solution? >> >> Regards >> Aleksander Nycz >> >> -- >> Aleksander Nycz >> Senior Software Engineer >> Telco_021 BSS R&D >> Comarch SA >> Phone: +48 12 646 1216 >> Mobile: +48 691 464 275 >> website:www.comarch.pl > We don't have another solution right now, our stance is that you > shouldn't design your system so that you need that. You can still use > select to get the functionality without an index. Otherwise we need > some help from the erts guys and something built in ets for indecies. > > -- > > BR Fredrik Gustafsson > Erlang OTP Team Unfortunately using mnesia:select with big table is not acceptable, because of performance. It looks, that using mnesia was not good design chioce. Regards Aleksander Nycz -- Aleksander Nycz Senior Software Engineer Telco_021 BSS R&D Comarch SA Phone: +48 12 646 1216 Mobile: +48 691 464 275 website: www.comarch.pl -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2182 bytes Desc: Kryptograficzna sygnatura S/MIME URL: From juanjo@REDACTED Mon Sep 9 19:23:05 2013 From: juanjo@REDACTED (Juan Jose Comellas) Date: Mon, 9 Sep 2013 14:23:05 -0300 Subject: [erlang-patches] integer_to_binary/2 returns incorrect values or crashes with bases other than 10 Message-ID: The integer_to_binary/2 function works perfectly with base 10 (because it just calls integer_to_binary/1), but when used with other bases it fails when 0 or a negative number are passed as the number to convert. e.g.: 1> integer_to_binary(0, 16). <<>> 2> integer_to_binary(-1, 16). ** exception error: bad argument in function byte_size/1 called as byte_size([]) in call from erlang:integer_to_binary/3 in call from integer_to_binary/2 The expected results are: 1> integer_to_binary(0, 16). <<"0">> 2> integer_to_binary(-1, 16). <<"-1">> I've sent this change as a pull request, but on this branch there's the patch to fix this problem and some tests to cover these cases. git fetch git://github.com/jcomellas/otp.git jc-integer_to_binary2 https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2 https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2.patch -------------- next part -------------- An HTML attachment was scrubbed... URL: From juanjo@REDACTED Mon Sep 9 19:38:12 2013 From: juanjo@REDACTED (Juan Jose Comellas) Date: Mon, 9 Sep 2013 14:38:12 -0300 Subject: [erlang-patches] integer_to_binary/2 returns incorrect values or crashes with bases other than 10 In-Reply-To: References: Message-ID: Sorry, there was a mistake in the commit message for the fix I had previously sent. I've canceled the original pull request and created a new one. The correct branch is in: git fetch git://github.com/jcomellas/otp.git jc-integer-to-binary2_1 https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer-to-binary2_1 https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer-to-binary2_1.patch On Mon, Sep 9, 2013 at 2:23 PM, Juan Jose Comellas wrote: > The integer_to_binary/2 function works perfectly with base 10 (because it > just calls integer_to_binary/1), but when used with other bases it fails > when 0 or a negative number are passed as the number to convert. e.g.: > > 1> integer_to_binary(0, 16). > <<>> > > 2> integer_to_binary(-1, 16). > ** exception error: bad argument > in function byte_size/1 > called as byte_size([]) > in call from erlang:integer_to_binary/3 > in call from integer_to_binary/2 > > The expected results are: > > 1> integer_to_binary(0, 16). > <<"0">> > > 2> integer_to_binary(-1, 16). > <<"-1">> > > I've sent this change as a pull request, but on this branch there's the > patch to fix this problem and some tests to cover these cases. > > git fetch git://github.com/jcomellas/otp.git jc-integer_to_binary2 > > > https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2 > > https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2.patch > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fredrik@REDACTED Tue Sep 10 08:49:52 2013 From: fredrik@REDACTED (Fredrik) Date: Tue, 10 Sep 2013 08:49:52 +0200 Subject: [erlang-patches] integer_to_binary/2 returns incorrect values or crashes with bases other than 10 In-Reply-To: References: Message-ID: <522EC110.6060100@erlang.org> On 09/09/2013 07:38 PM, Juan Jose Comellas wrote: > Sorry, there was a mistake in the commit message for the fix I had > previously sent. I've canceled the original pull request and created a > new one. The correct branch is in: > > git fetch git://github.com/jcomellas/otp.git > jc-integer-to-binary2_1 > > https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer-to-binary2_1 > https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer-to-binary2_1.patch > > > On Mon, Sep 9, 2013 at 2:23 PM, Juan Jose Comellas > > wrote: > > The integer_to_binary/2 function works perfectly with base 10 > (because it just calls integer_to_binary/1), but when used with > other bases it fails when 0 or a negative number are passed as the > number to convert. e.g.: > > 1> integer_to_binary(0, 16). > <<>> > > 2> integer_to_binary(-1, 16). > ** exception error: bad argument > in function byte_size/1 > called as byte_size([]) > in call from erlang:integer_to_binary/3 > in call from integer_to_binary/2 > > The expected results are: > > 1> integer_to_binary(0, 16). > <<"0">> > > 2> integer_to_binary(-1, 16). > <<"-1">> > > I've sent this change as a pull request, but on this branch > there's the patch to fix this problem and some tests to cover > these cases. > > git fetch git://github.com/jcomellas/otp.git > jc-integer_to_binary2 > > https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2 > https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2.patch > > > > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello, The patch will be running in the nightly builds and tests. Thanks for contributing, -- BR Fredrik Gustafsson Erlang OTP Team -------------- next part -------------- An HTML attachment was scrubbed... URL: From n.oxyde@REDACTED Tue Sep 10 10:28:07 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Tue, 10 Sep 2013 10:28:07 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> Message-ID: <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> And of which today this tomorrow is supposed to be? :p Le 5 sept. 2013 ? 16:50, Kenneth Lundin a ?crit : > Hi, > > Yes, we have dicussed this on our technical board, I don't have the exact outcome > at hand but can give more info tomorrow. As far as I remember it was a positive verdict. > > /Kenneth, Erlang/OTP Ericsson > > Den 5 sep 2013 11:56 skrev "Anthony Ramine" : > Ping? > > -- > Anthony Ramine > > Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : > > > Did you discuss it yet? :) > > > > -- > > Anthony Ramine > > > > Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : > > > >> The OTP Technical Board will discuss EEP37 > >> at its next meeting. > >> > >> > >> On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine wrote: > >> Ping? > >> > >> -- > >> Anthony Ramine > >> > >> Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : > >> > >>> Hello, > >>> > >>> Any ETA for a review? > >>> > >>> Regards, > >>> > >>> On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: > >>>> On 03/20/2013 03:30 PM, Anthony Ramine wrote: > >>>>> > >>>>> Rebased! :) > >>>>> > >>>>> Does it mean it may be included before R17? Branch maint is for minor > >>>>> releases, right? > >>>>> > >>>> Right now im collecting all the patches active at the moment in pu. That > >>>> does not mean it will be included in a minor release. :) > >>>> > >>>> -- > >>>> > >>>> BR Fredrik Gustafsson > >>>> Erlang OTP Team > >>>> > >> > >> _______________________________________________ > >> eeps mailing list > >> eeps@REDACTED > >> http://erlang.org/mailman/listinfo/eeps > >> > >> > >> > >> -- > >> Bj?rn Gustavsson, Erlang/OTP, Ericsson AB > > > > _______________________________________________ > eeps mailing list > eeps@REDACTED > http://erlang.org/mailman/listinfo/eeps From max.lapshin@REDACTED Tue Sep 10 10:45:34 2013 From: max.lapshin@REDACTED (Max Lapshin) Date: Tue, 10 Sep 2013 12:45:34 +0400 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> Message-ID: I'm also very interested if this patch would be accepted. I think it may be very convenient to write local recursive functions. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kenneth.lundin@REDACTED Tue Sep 10 14:41:36 2013 From: kenneth.lundin@REDACTED (Kenneth Lundin) Date: Tue, 10 Sep 2013 14:41:36 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> Message-ID: Sorry for the delay. Anyway , we decided that the Fun with names implementation can be included in the R17 release which is scheduled for Q1 2014. We have to look into the impact on tools. The additional syntax might confuse some of the tools working on source code. /Kenneth, Erlang/OTP, Ericsson On Tue, Sep 10, 2013 at 10:52 AM, Tony Rogvall wrote: > Give the dog his bone ;-) > > /Tony > > On 10 sep 2013, at 10:28, Anthony Ramine wrote: > > And of which today this tomorrow is supposed to be? :p > > Le 5 sept. 2013 ? 16:50, Kenneth Lundin a ?crit : > > Hi, > > Yes, we have dicussed this on our technical board, I don't have the exact > outcome > at hand but can give more info tomorrow. As far as I remember it was a > positive verdict. > > /Kenneth, Erlang/OTP Ericsson > > Den 5 sep 2013 11:56 skrev "Anthony Ramine" : > Ping? > > -- > Anthony Ramine > > Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : > > Did you discuss it yet? :) > > -- > Anthony Ramine > > Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : > > The OTP Technical Board will discuss EEP37 > at its next meeting. > > > On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine wrote: > Ping? > > -- > Anthony Ramine > > Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : > > Hello, > > Any ETA for a review? > > Regards, > > On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: > > On 03/20/2013 03:30 PM, Anthony Ramine wrote: > > > Rebased! :) > > Does it mean it may be included before R17? Branch maint is for minor > releases, right? > > Right now im collecting all the patches active at the moment in pu. That > does not mean it will be included in a minor release. :) > > -- > > BR Fredrik Gustafsson > Erlang OTP Team > > > _______________________________________________ > eeps mailing list > eeps@REDACTED > http://erlang.org/mailman/listinfo/eeps > > > > -- > Bj?rn Gustavsson, Erlang/OTP, Ericsson AB > > > > _______________________________________________ > eeps mailing list > eeps@REDACTED > http://erlang.org/mailman/listinfo/eeps > > > _______________________________________________ > eeps mailing list > eeps@REDACTED > http://erlang.org/mailman/listinfo/eeps > > > "Installing applications can lead to corruption over time. Applications > gradually write over each other's libraries, partial upgrades occur, user > and system errors happen, and minute changes may be unnoticeable and > difficult to fix" > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From n.oxyde@REDACTED Tue Sep 10 16:59:48 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Tue, 10 Sep 2013 16:59:48 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> Message-ID: Sweet. Maybe that's a good occasion to compile a list of community tools operating on code? -- Anthony Ramine Le 10 sept. 2013 ? 14:41, Kenneth Lundin a ?crit : > Sorry for the delay. > > Anyway , we decided that the Fun with names implementation can be included in the R17 release which is > scheduled for Q1 2014. > > We have to look into the impact on tools. The additional syntax might confuse some of the tools working on source code. > > /Kenneth, Erlang/OTP, Ericsson > > > On Tue, Sep 10, 2013 at 10:52 AM, Tony Rogvall wrote: >> Give the dog his bone ;-) >> >> /Tony >> >> On 10 sep 2013, at 10:28, Anthony Ramine wrote: >> >>> And of which today this tomorrow is supposed to be? :p >>> >>> Le 5 sept. 2013 ? 16:50, Kenneth Lundin a ?crit : >>> >>>> Hi, >>>> >>>> Yes, we have dicussed this on our technical board, I don't have the exact outcome >>>> at hand but can give more info tomorrow. As far as I remember it was a positive verdict. >>>> >>>> /Kenneth, Erlang/OTP Ericsson >>>> >>>> Den 5 sep 2013 11:56 skrev "Anthony Ramine" : >>>> Ping? >>>> >>>> -- >>>> Anthony Ramine >>>> >>>> Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : >>>> >>>>> Did you discuss it yet? :) >>>>> >>>>> -- >>>>> Anthony Ramine >>>>> >>>>> Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : >>>>> >>>>>> The OTP Technical Board will discuss EEP37 >>>>>> at its next meeting. >>>>>> >>>>>> >>>>>> On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine wrote: >>>>>> Ping? >>>>>> >>>>>> -- >>>>>> Anthony Ramine >>>>>> >>>>>> Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> Any ETA for a review? >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: >>>>>>>> On 03/20/2013 03:30 PM, Anthony Ramine wrote: >>>>>>>>> >>>>>>>>> Rebased! :) >>>>>>>>> >>>>>>>>> Does it mean it may be included before R17? Branch maint is for minor >>>>>>>>> releases, right? >>>>>>>> Right now im collecting all the patches active at the moment in pu. That >>>>>>>> does not mean it will be included in a minor release. :) >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> BR Fredrik Gustafsson >>>>>>>> Erlang OTP Team >>>>>> >>>>>> _______________________________________________ >>>>>> eeps mailing list >>>>>> eeps@REDACTED >>>>>> http://erlang.org/mailman/listinfo/eeps >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Bj?rn Gustavsson, Erlang/OTP, Ericsson AB >>>> >>>> _______________________________________________ >>>> eeps mailing list >>>> eeps@REDACTED >>>> http://erlang.org/mailman/listinfo/eeps >>> >>> _______________________________________________ >>> eeps mailing list >>> eeps@REDACTED >>> http://erlang.org/mailman/listinfo/eeps >> >> "Installing applications can lead to corruption over time. Applications gradually write over each other's libraries, partial upgrades occur, user and system errors happen, and minute changes may be unnoticeable and difficult to fix" > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gomoripeti@REDACTED Tue Sep 10 21:51:45 2013 From: gomoripeti@REDACTED (=?ISO-8859-1?Q?Peti_G=F6m=F6ri?=) Date: Tue, 10 Sep 2013 20:51:45 +0100 Subject: [erlang-patches] [erlang-questions] cover & export_all In-Reply-To: References: <51DD171D.2090802@erlang.org> Message-ID: Hi Yuri, apparently the fix got a bit forgotten because of my typo, I created the below pull request to avoid further confusion https://github.com/erlang/otp/pull/74 Fredrik, could you consider it for inclusion? thanks Peter On Fri, Aug 30, 2013 at 7:50 AM, Yuri Lukyanov wrote: > Hi Peti, > > Did you have a chance to push your fix to the main repo? > > On Wed, Jul 10, 2013 at 12:34 PM, Peti G?m?ri > wrote: > > Hi Fredrik, > > > > sorry, what about this one (maybe it was a wrong ?) > > > > git fetch git://github.com/gomoripeti/otp.git pg?-cover-export-all > > > > On Wed, Jul 10, 2013 at 9:11 AM, Fredrik wrote: > >> > >> On 07/10/2013 03:19 AM, Peti G?m?ri wrote: > >> > >> Hi OTP team, > >> > >> here is a patch that addresses the problem Yuri described. > >> (I haven't added any tests or docs though) > >> > >> is it true that now you also accept pull requests? > >> > >> > >> > >> git fetch git://github.com/gomoripeti/otp.git pg?-cover-export-all > >> > >> > >> > https://github.com/gomoripeti/otp/compare/erlang:maint...pg?-cover-export-all > >> > >> > https://github.com/gomoripeti/otp/compare/erlang:maint...pg?-cover-export-all.patch > >> > >> > >> br > >> Peter > >> > >> On Wed, Jul 10, 2013 at 12:34 AM, Peti G?m?ri > >> wrote: > >>> > >>> Hi Yuri, > >>> > >>> You are right, while cover compiling from source works (you can use > this > >>> as a workaround): > >>> > cover:compile(cover_test, UserOptions = [export_all, debug_info]). > >>> {ok,cover_test} > >>> > cover_test:test(). > >>> ok > >>> > >>> (because UserOptions from the arguments is taken when cover recompiles > >>> the instrumented forms) > >>> when cover compiling from beam UserOptions = [] is taken. > >>> This could be fixed in cover by taking the compile options from the > beam > >>> file as you assumed how it works. > >>> > >>> Actually the documentation still says that "Only options defining > include > >>> file directories and macros are passed to compile:file/2, everything > else is > >>> ignored." apparently a patch from Tobias Schlager added export_all to > the > >>> allowed options of cover:compile for the exact same use case as you > had. But > >>> this is missing from cover:compile_beam. > >>> > >>> May be I try to come up with a patch > >>> > >>> br > >>> Peter > >>> > >>> > >>> > >>> On Tue, Jul 9, 2013 at 11:56 AM, Yuri Lukyanov > wrote: > >>>> > >>>> It seems that there is no way to cover-compile modules with > export_all. > >>>> Here is a simple example: > >>>> > >>>> cover_test.erl: > >>>> > >>>> -module(cover_test). > >>>> test() -> ok. > >>>> > >>>> > >>>> $ erl > >>>> Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] > >>>> [async-threads:0] [hipe] [kernel-poll:false] > >>>> > >>>> Eshell V5.9.1 (abort with ^G) > >>>> 1> c(cover_test, [debug_info,export_all]). > >>>> {ok,cover_test} > >>>> 2> cover_test:test(). > >>>> ok > >>>> 3> cover:compile_beam(cover_test). > >>>> {ok,cover_test} > >>>> 4> cover_test:test(). > >>>> ** exception error: undefined function cover_test:test/0 > >>>> 5> > >>>> > >>>> > >>>> Could someone explain why it is like this? Is it done on purpose? > >>>> Maybe it's a bug? > >>>> The reason I want modules to be cover-compiled with +export_all is > >>>> that it is sometimes convinient to have unit tests outside of a > >>>> module. Before unit tests are run the modules get compiled with > >>>> +export_all for tests to be able to access private functions. But the > >>>> situation is that it is not possibe in this case to enable coverage > >>>> analysys. > >>>> _______________________________________________ > >>>> erlang-questions mailing list > >>>> erlang-questions@REDACTED > >>>> http://erlang.org/mailman/listinfo/erlang-questions > >>> > >>> > >> > >> > >> > >> _______________________________________________ > >> erlang-patches mailing list > >> erlang-patches@REDACTED > >> http://erlang.org/mailman/listinfo/erlang-patches > >> > >> Hello Peti, > >> I am getting, fatal: Couldn't find remote ref pg?-cover-export-all when > I > >> am trying to fetch. > >> Yes pull requests are accepted. > >> > >> -- > >> > >> BR Fredrik Gustafsson > >> Erlang OTP Team > > > > > > > > _______________________________________________ > > erlang-questions mailing list > > erlang-questions@REDACTED > > http://erlang.org/mailman/listinfo/erlang-questions > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From francesco.lattanzio@REDACTED Tue Sep 10 12:22:35 2013 From: francesco.lattanzio@REDACTED (Francesco Lattanzio) Date: Tue, 10 Sep 2013 12:22:35 +0200 Subject: [erlang-patches] Improving ETS performances Message-ID: <20130910102235.GA4812@wagner.intra.a-tono.com> G'day people, I would like to share with you an "improvement" patch, in the hope that some day it will be included in the official releases. For this is going to be a long e-mail, I have split it into two section, a brief one for those in a hurry and a detailed one (an EEPlight) for those who want/need to know more. NOTE: This e-mail contain some ASCII graphics, please read it using a constant width font. BRIEF SECTION The patch targets ETS tables of the 'bag' and 'duplicate_bag' types, improving performances of deletion by objects (i.e., ets:delete_object/2 not ets:delete/2) and insertion when working with many object sharing the same key. The patch is available at: git fetch https://github.com/fltt/otp.git ets_nested_lht https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht.patch To get a feel of the performance gain you can run the following snippet of code both before and after applying the patch: -module(ets_hash_test). -export([test2/1]). write_loop(N, Tab) when N > 0 -> ok=mnesia:activity(sync_dirty, fun() -> mnesia:write(Tab, {Tab, N, erlang:integer_to_list(N), N rem 10}, write) end, mnesia_frag), write_loop(N-1, Tab); write_loop(_, _) -> ok. verify_loop(N, Tab) when N > 0 -> Expected={Tab, N, erlang:integer_to_list(N), N rem 10}, [Expected]= mnesia:activity(sync_dirty, fun() -> mnesia:read(Tab, N, read) end, mnesia_frag), verify_loop(N-1, Tab); verify_loop(_, _) -> ok. test2(TabSize) -> TabName=frag_test, ThisNode=erlang:node(), ok=mnesia:start(), {atomic, ok}= mnesia:create_table(TabName, [{type, set}, {attributes, [key, datum1, datum2]}, {frag_properties, [{n_fragments, 1}, {node_pool, [ThisNode]}]}]), ok=write_loop(TabSize, TabName), {Time, {atomic, ok}}= timer:tc(fun() -> mnesia:change_table_frag(TabName, {add_frag, [ThisNode]}) end), ok=verify_loop(TabSize, TabName), stopped=mnesia:stop(), {ok, Time}. On my own PC I obtain the following results: Before: test2(10000) -> {ok, 1691416} test2(100000) -> {ok, 538015238} After: test2(10000) -> {ok, 55239} test2(100000) -> {ok, 745721} A last note: THIS IS EXPERIMENTAL CODE, USE IT AT YOUR OWN RISK. In other words, this patch is still a work in progress and not production ready. For more details read on. DETAILED SECTION (EPPlight) Why this new feature? First of all this is not a new feature -- from the point of view of the developer there are no new modules, functions, language constructs nor options. It all started by the need to dynamically add fragments to a NON-EMPTY fragmented table (using the mnesia_frag access module). As you know, a fragment with as little as 100000 takes far more than tollerable to be split. Analyzing mnesia's source code, it came out that the culprit is the temporary storage of all the write operations under the same key in an ETS table of the bag type. ETS of the set, bag and duplicate_bag types use linear hashing to store objects, thus inserting objects _with different keys_ in an ETS has O(1) time complexity. However, if all the objects inserted have the same key then time complexity changes to O(k), where k is the number of objects sharing the same key. This is so for, in the current implementation, objects with the same keys are all put in a simply linked list and when looking for duplicates the whole list must be traversed. Risks/uncertain artifacts None, as far I can tell _now_. However this patch is still experimental and I have tested it only under Linux (ArchLinux). Moreover, it should be optimized to reduce memory consuption, and some code clean-up wouldn't harm. How did I solve it? Nested linear hash tables. But first some internal data structures must be reorganized. Reorganization is achieved by use of "bidimensional lists", i.e., something like this: NULL NULL NULL ^ kprevious ^ kprevious ^ kprevious | | | ----------+ +------+ next +------+ next +------+ next bucket[i] |-->| Obj1 |------->| Obj3 |------->| Obj4 |----->NULL ----------+ +------+ +------+ +------+ ^ | knext knext | ^ | knext kprevious | V V kprevious | V +------+ NULL +------+ | Obj2 | | Obj5 | +------+ +------+ | knext | knext V V NULL NULL All the ObjXs use the same data structure (a modified HashDbTerm). Obj1 and Obj2 share the same key, as well as Obj4 and Obj5 do. Obj2 and Obj5's next pointers are unused. In the code Obj1, Obj3 and Obj4 are also referenced as "root nodes". Why the doubly linked list? As the "next chain" is traversed sequentially, adding and removing objects is easy thing. Whereas, to achieve the O(1) complexity, the "kprevious/knext chain" must be accessible randomly (we'll see how in a moment). Also, the order of insertion must be preserved, thus we cannot throw away the linked list and substitute it with a hash table. Now we are ready to introduce the nested linear hash table. When the kprevious/knext chain reach some minimum length (DB_BAG_LHT_LEN, which I arbitrarily set at 128), an empty linear hash table is created and a pointer to it is installed in the root node (Obj1 or Obj4, not Obj2 nor Obj5). Then it is filled with references to the objects of the kprevious/knext chain, keyed with the hash value of the whole objects (Obj1 and Obj2 in Obj1's nested LHT or Obj4 and Obj5 in Obj4's nested LHT). By now it should be clear how things work: whenever an object is looked for, first the next chain is traversed to find the key, then, if a nested LHT is installed in the root node found, a lookup is performed on the hash value of the object. If there's no nested LHT, a sequential traversal is performed. Sorry, I exceeded the 200 words limit, but I thing that that is the minimum required to understand the whys and hows of this patch. There is more to be said, however the source code is more appropriate to describe all the minute details of the implementation. Also, note that the patch introduces some specially marked comments, like this: /* ??? some question ??? */ These are questions and doubts I couldn't answer by myself and that I ask you to find an appropriate answer. Comments are welcome, especially on how to optimize for speed and memory consumption. Please, don't hesitate to contact me for further details. Have a nice day. -- FRANCESCO LATTANZIO : SYSTEM & SOFTWARE A-TONO TECHNOLOGY : VIA DEL CHIESINO, 10 - 56025 PONTEDERA (PI) : T +39 0587 59221 : F +39 0587 59221 : SKYPE franz.lattanzio a-tono.com : twitter.com/ATonoOfficial : facebook.com/ATonoOfficial Information in this email is confidential and may be privileged. It is intended for the addresses only. If you have received it in error, please notify the sender immediately and delete it from your system. You should not otherwise copy it, retransmit it or use or disclose its content to anyone. Thank you for your co-operation. From fredrik@REDACTED Wed Sep 11 09:24:37 2013 From: fredrik@REDACTED (Fredrik) Date: Wed, 11 Sep 2013 09:24:37 +0200 Subject: [erlang-patches] Improving ETS performances In-Reply-To: <20130910102235.GA4812@wagner.intra.a-tono.com> References: <20130910102235.GA4812@wagner.intra.a-tono.com> Message-ID: <52301AB5.9050506@erlang.org> On 09/10/2013 12:22 PM, Francesco Lattanzio wrote: > G'day people, > I would like to share with you an "improvement" patch, in the hope > that some day it will be included in the official releases. > For this is going to be a long e-mail, I have split it into two section, > a brief one for those in a hurry and a detailed one (an EEPlight) for > those who want/need to know more. > > NOTE: This e-mail contain some ASCII graphics, please read it using a > constant width font. > > BRIEF SECTION > > The patch targets ETS tables of the 'bag' and 'duplicate_bag' types, > improving performances of deletion by objects (i.e., ets:delete_object/2 > not ets:delete/2) and insertion when working with many object sharing > the same key. > > The patch is available at: > > git fetch https://github.com/fltt/otp.git ets_nested_lht > > https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht > https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht.patch > > To get a feel of the performance gain you can run the following snippet > of code both before and after applying the patch: > > > -module(ets_hash_test). > -export([test2/1]). > > write_loop(N, Tab) > when N> 0 -> > ok=mnesia:activity(sync_dirty, > fun() -> > mnesia:write(Tab, {Tab, N, erlang:integer_to_list(N), N rem 10}, write) > end, > mnesia_frag), > write_loop(N-1, Tab); > write_loop(_, _) -> > ok. > > verify_loop(N, Tab) > when N> 0 -> > Expected={Tab, N, erlang:integer_to_list(N), N rem 10}, > [Expected]= > mnesia:activity(sync_dirty, > fun() -> > mnesia:read(Tab, N, read) > end, > mnesia_frag), > verify_loop(N-1, Tab); > verify_loop(_, _) -> > ok. > > test2(TabSize) -> > TabName=frag_test, > ThisNode=erlang:node(), > ok=mnesia:start(), > {atomic, ok}= > mnesia:create_table(TabName, [{type, set}, > {attributes, [key, datum1, datum2]}, > {frag_properties, [{n_fragments, 1}, > {node_pool, [ThisNode]}]}]), > ok=write_loop(TabSize, TabName), > {Time, {atomic, ok}}= > timer:tc(fun() -> > mnesia:change_table_frag(TabName, {add_frag, [ThisNode]}) > end), > ok=verify_loop(TabSize, TabName), > stopped=mnesia:stop(), > {ok, Time}. > > > On my own PC I obtain the following results: > > Before: > test2(10000) -> {ok, 1691416} > test2(100000) -> {ok, 538015238} > > After: > test2(10000) -> {ok, 55239} > test2(100000) -> {ok, 745721} > > A last note: THIS IS EXPERIMENTAL CODE, USE IT AT YOUR OWN RISK. > In other words, this patch is still a work in progress and not > production ready. > For more details read on. > > DETAILED SECTION (EPPlight) > > Why this new feature? > > First of all this is not a new feature -- from the point of view of the > developer there are no new modules, functions, language constructs nor > options. > > It all started by the need to dynamically add fragments to a NON-EMPTY > fragmented table (using the mnesia_frag access module). > As you know, a fragment with as little as 100000 takes far more than > tollerable to be split. > > Analyzing mnesia's source code, it came out that the culprit is the > temporary storage of all the write operations under the same key in an > ETS table of the bag type. > ETS of the set, bag and duplicate_bag types use linear hashing to store > objects, thus inserting objects _with different keys_ in an ETS has O(1) > time complexity. > However, if all the objects inserted have the same key then time > complexity changes to O(k), where k is the number of objects sharing the > same key. > This is so for, in the current implementation, objects with the same > keys are all put in a simply linked list and when looking for duplicates > the whole list must be traversed. > > Risks/uncertain artifacts > > None, as far I can tell _now_. > However this patch is still experimental and I have tested it only under > Linux (ArchLinux). > Moreover, it should be optimized to reduce memory consuption, and some > code clean-up wouldn't harm. > > How did I solve it? > > Nested linear hash tables. But first some internal data structures must > be reorganized. > Reorganization is achieved by use of "bidimensional lists", i.e., > something like this: > > NULL NULL NULL > ^ kprevious ^ kprevious ^ > kprevious | | | > ----------+ +------+ next +------+ next +------+ next > bucket[i] |-->| Obj1 |------->| Obj3 |------->| Obj4 |----->NULL > ----------+ +------+ +------+ +------+ > ^ | knext knext | ^ | knext > kprevious | V V kprevious | V > +------+ NULL +------+ > | Obj2 | | Obj5 | > +------+ +------+ > | knext | knext > V V > NULL NULL > > All the ObjXs use the same data structure (a modified HashDbTerm). > Obj1 and Obj2 share the same key, as well as Obj4 and Obj5 do. > Obj2 and Obj5's next pointers are unused. > In the code Obj1, Obj3 and Obj4 are also referenced as "root nodes". > > Why the doubly linked list? As the "next chain" is traversed > sequentially, adding and removing objects is easy thing. > Whereas, to achieve the O(1) complexity, the "kprevious/knext chain" > must be accessible randomly (we'll see how in a moment). > Also, the order of insertion must be preserved, thus we cannot throw > away the linked list and substitute it with a hash table. > > Now we are ready to introduce the nested linear hash table. > When the kprevious/knext chain reach some minimum length > (DB_BAG_LHT_LEN, which I arbitrarily set at 128), an empty linear hash > table is created and a pointer to it is installed in the root node (Obj1 > or Obj4, not Obj2 nor Obj5). > Then it is filled with references to the objects of the kprevious/knext > chain, keyed with the hash value of the whole objects (Obj1 and Obj2 in > Obj1's nested LHT or Obj4 and Obj5 in Obj4's nested LHT). > > By now it should be clear how things work: whenever an object is looked > for, first the next chain is traversed to find the key, then, if a > nested LHT is installed in the root node found, a lookup is performed on > the hash value of the object. > If there's no nested LHT, a sequential traversal is performed. > > Sorry, I exceeded the 200 words limit, but I thing that that is the > minimum required to understand the whys and hows of this patch. > > There is more to be said, however the source code is more appropriate to > describe all the minute details of the implementation. > Also, note that the patch introduces some specially marked comments, like > this: > > /* ??? some question ??? */ > > These are questions and doubts I couldn't answer by myself and that I > ask you to find an appropriate answer. > > Comments are welcome, especially on how to optimize for speed and > memory consumption. > Please, don't hesitate to contact me for further details. > > Have a nice day. > Hello Francesco, I've fetched your patch and assigned it to be reviewed by the responsible team. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team From n.oxyde@REDACTED Wed Sep 11 11:33:45 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Wed, 11 Sep 2013 11:33:45 +0200 Subject: [erlang-patches] Print column numbers when compiling In-Reply-To: <9EB6A04F-AB90-480F-B2FB-E1A8B7CBCC1F@gmail.com> References: <4FCE3186.3000202@erlang.org> <5034FB10.7090804@erlang.org> <503CC79B.2020009@erlang.org> <50471240.3060005@erlang.org> <504DF309.2040900@erlang.org> <415229C2-452E-45FF-A207-69BD2212E2F5@gmail.com> <50519F42.7000109@erlang.org> <50598C38.8060506@erlang.org> <77306113-0789-4B6F-A45D-8304FFED5C39@gmail.com> <513DE767.90700@erlang.org> <9EB6A04F-AB90-480F-B2FB-E1A8B7CBCC1F@gmail.com> Message-ID: <6FFF00A1-0745-4B22-9A94-4A9C154B6BC6@gmail.com> Ping? -- Anthony Ramine Le 22 avr. 2013 ? 13:38, Anthony Ramine a ?crit : > Ping? > > -- > Anthony Ramine > > Le 18 mars 2013 ? 14:07, Anthony Ramine a ?crit : > >> Hi, >> >> Just rebased against latest maint. >> >> Please refetch. >> >> -- >> Anthony Ramine >> >> Le 11 mars 2013 ? 15:17, Fredrik a ?crit : >> >>> On 12/02/2012 11:07 AM, Anthony Ramine wrote: >>>> Hi, >>>> >>>> I've made column numbers a non-optional thing in compile but still an >>>> option in epp; so that tools like edoc which don't need the full >>>> locations can get only the line numbers. >>>> >>>> Please refetch. >>>> >>>> -- >>>> Anthony Ramine >>>> _______________________________________________ >>>> erlang-patches mailing list >>>> erlang-patches@REDACTED >>>> http://erlang.org/mailman/listinfo/erlang-patches >>> Hello, >>> Could you please rebase this patch upon the current 'maint' branch? >>> Thanks. >>> >>> -- >>> >>> BR Fredrik Gustafsson >>> Erlang OTP Team > From matt@REDACTED Thu Sep 12 08:45:24 2013 From: matt@REDACTED (Matt Lewandowsky) Date: Wed, 11 Sep 2013 23:45:24 -0700 Subject: [erlang-patches] Fix build on systems without syslog.h Message-ID: Hello, I have fixed the build for systems which lack syslog.h. I have no way to test the changes on VxWorks, but considering that the change is identical for Windows and VxWorks, I can't foresee any breakage there. Specifically, the issue is that configure generates a config.h which defines a standard HAVE_SYSLOG_H if syslog.h is available, but the current approach in the source is to look for the absence of a NO_SYSLOG define. As the logic of HAVE_SYSLOG_H is cleaner, and less work than testing configure.in changes on various platforms, I opted for that approach. Additionally, I noticed that LOG_ERR is used and is obviously undefined if there is no syslog.h. This causes the build to fail on a standard POSIX-like system without syslog.h. As LOG_ERR isn't used in the case of a system without syslog.h, a simple define to NULL corrects the issue. https://github.com/erlang/otp/pull/76 git fetch git://github.com/lewellyn/otp.git nosyslog https://github.com/lewellyn/otp/compare/erlang:maint...nosyslog https://github.com/lewellyn/otp/compare/erlang:maint...nosyslog.patch Thanks, --Matt -- Matt Lewandowsky Big Geek Greenviolet matt@REDACTED http://www.greenviolet.net +1 415 578 5782 (US) +44 844 484 8254 (UK) From daniel@REDACTED Thu Sep 12 18:52:22 2013 From: daniel@REDACTED (Daniel White) Date: Fri, 13 Sep 2013 02:52:22 +1000 Subject: [erlang-patches] [PATCH] Teach xmerl_xpath to resolve context namespaces in more cases Message-ID: These patches teach attribute name tests and node prefix (wildcard) name tests to behave like element name tests. Assuming the following document has been scanned with `{namespace_conformant, true}`: The current behaviour is as such: > [#xmlElement{}] = xmerl_xpath:string("/root/ns1:child", Doc). > [#xmlAttribute{}] = xmerl_xpath:string("/root/ns1:child/@ns1:attr", Doc). > [#xmlElement{}] = xmerl_xpath:string("/root/t:child", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). > [] = xmerl_xpath:string("/root/t:child/@t:attr", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). The latter case here is surprising, and should return the attribute as it can be resolved by the provided namespace. git fetch git://github.com/danielwhite/otp.git xmerl-xpath-resolve-context-namespaces https://github.com/danielwhite/otp/compare/xmerl-xpath-resolve-context-namespaces https://github.com/danielwhite/otp/compare/xmerl-xpath-resolve-context-namespaces.patch Cheers, -- Daniel White From fredrik@REDACTED Fri Sep 13 08:44:53 2013 From: fredrik@REDACTED (Fredrik) Date: Fri, 13 Sep 2013 08:44:53 +0200 Subject: [erlang-patches] [PATCH] Teach xmerl_xpath to resolve context namespaces in more cases In-Reply-To: References: Message-ID: <5232B465.702@erlang.org> On 09/12/2013 06:52 PM, Daniel White wrote: > These patches teach attribute name tests and node prefix (wildcard) > name tests to behave like element name tests. > > Assuming the following document has been scanned with > `{namespace_conformant, true}`: > > > > > > The current behaviour is as such: > >> [#xmlElement{}] = xmerl_xpath:string("/root/ns1:child", Doc). >> [#xmlAttribute{}] = xmerl_xpath:string("/root/ns1:child/@ns1:attr", Doc). >> [#xmlElement{}] = xmerl_xpath:string("/root/t:child", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). >> [] = xmerl_xpath:string("/root/t:child/@t:attr", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). > The latter case here is surprising, and should return the attribute as > it can be resolved by the provided namespace. > > > git fetch git://github.com/danielwhite/otp.git > xmerl-xpath-resolve-context-namespaces > > https://github.com/danielwhite/otp/compare/xmerl-xpath-resolve-context-namespaces > https://github.com/danielwhite/otp/compare/xmerl-xpath-resolve-context-namespaces.patch > > Cheers, > > -- > Daniel White > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello Daniel, I've fetched your patch and assigned it to be reviewed by the responsible team. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team From dangud@REDACTED Fri Sep 13 10:39:06 2013 From: dangud@REDACTED (Dan Gudmundsson) Date: Fri, 13 Sep 2013 10:39:06 +0200 Subject: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 In-Reply-To: <5229BA87.1020908@gmail.com> References: <52274216.3070603@erlang.org> <1579634888.109190.1378465524035.JavaMail.zimbra@erlang-solutions.com> <5229BA87.1020908@gmail.com> Message-ID: Looks good, for completeness can you add a test where it returns false too. On Fri, Sep 6, 2013 at 1:20 PM, Richard Carlsson wrote: > Perhaps I should mention my attempt at a complete unified dict-API, that I > tried to rouse some interest in about a couple of years ago. (This change > would be compatible with my suggestions.) > > See > > http://erlang.org/pipermail/**erlang-questions/2011-**December/063430.html > > and > > https://github.com/richcarl/**otp/tree/dict-api > > /Richard > > > On 2013-09-06 13:05 , Robert Virding wrote: > >> I just want to comment that I think this is a reasonable and useful >> externsion of the dict/orddict API. >> >> Robert >> >> ----- Original Message ----- >> >>> From: "Fredrik" >>> To: "Magnus Henoch" >>> Cc: erlang-patches@REDACTED >>> Sent: Wednesday, 4 September, 2013 4:22:14 PM >>> Subject: Re: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 >>> >>> On 09/04/2013 04:13 PM, Magnus Henoch wrote: >>> >>>> This patch adds the functions dict:is_empty/1 and orddict:is_empty/1. >>>> For dict, comparing the size against 0 runs in constant time, but not >>>> for orddict. My new functions are an attempt to relieve users from >>>> having to know such implementation details. >>>> >>>> git fetch git://github.com/legoscia/otp.**gitdict_orddict_is_empty >>>> >>>> https://github.com/legoscia/**otp/compare/erlang:master...** >>>> legoscia:dict_orddict_is_empty >>>> https://github.com/legoscia/**otp/compare/erlang:master...** >>>> legoscia:dict_orddict_is_**empty.patch >>>> >>>> Regards, >>>> Magnus >>>> ______________________________**_________________ >>>> erlang-patches mailing list >>>> erlang-patches@REDACTED >>>> http://erlang.org/mailman/**listinfo/erlang-patches >>>> >>> Hello Magnus, >>> I've fetched your patch and assigned it to be reviewed by responsible >>> developers. >>> Thanks, >>> >>> -- >>> >>> BR Fredrik Gustafsson >>> Erlang OTP Team >>> >>> ______________________________**_________________ >>> 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 >> >> > ______________________________**_________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/**listinfo/erlang-patches > -------------- next part -------------- An HTML attachment was scrubbed... URL: From magnus@REDACTED Fri Sep 13 11:46:56 2013 From: magnus@REDACTED (Magnus Henoch) Date: Fri, 13 Sep 2013 10:46:56 +0100 Subject: [erlang-patches] Add dict:is_empty/1 and orddict:is_empty/1 In-Reply-To: (Dan Gudmundsson's message of "Fri, 13 Sep 2013 10:39:06 +0200") References: <52274216.3070603@erlang.org> <1579634888.109190.1378465524035.JavaMail.zimbra@erlang-solutions.com> <5229BA87.1020908@gmail.com> Message-ID: <87txhpuk8f.fsf@mia.config> Dan Gudmundsson writes: > Looks good, for completeness can you add a test where it returns false > too. I updated the branch: git fetch git://github.com/legoscia/otp.git dict_orddict_is_empty https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty https://github.com/legoscia/otp/compare/erlang:master...legoscia:dict_orddict_is_empty.patch Regards, Magnus From n.oxyde@REDACTED Fri Sep 13 11:57:37 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Fri, 13 Sep 2013 11:57:37 +0200 Subject: [erlang-patches] [PATCH] Teach xmerl_xpath to resolve context namespaces in more cases In-Reply-To: References: Message-ID: <7A894AF5-CA8B-46F5-AD1F-756CC0025B1D@gmail.com> Isn't that case wrong too? The element isn't in the http://www.example.com/ns namespace, right? Le 12 sept. 2013 ? 18:52, Daniel White a ?crit : >> [#xmlElement{}] = xmerl_xpath:string("/root/t:child", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). From n.oxyde@REDACTED Fri Sep 13 12:47:11 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Fri, 13 Sep 2013 12:47:11 +0200 Subject: [erlang-patches] [PATCH] Teach xmerl_xpath to resolve context namespaces in more cases In-Reply-To: References: <7A894AF5-CA8B-46F5-AD1F-756CC0025B1D@gmail.com> Message-ID: Well, good news, that's one less bug to fix :) Le 13 sept. 2013 ? 12:45, Daniel White a ?crit : > D'oh, that was a mistake when transcribing it from my console. The > example above should have read: > > > > > > On Fri, Sep 13, 2013 at 7:57 PM, Anthony Ramine wrote: >> Isn't that case wrong too? >> >> The element isn't in the http://www.example.com/ns namespace, right? >> >> Le 12 sept. 2013 ? 18:52, Daniel White a ?crit : >> >>>> [#xmlElement{}] = xmerl_xpath:string("/root/t:child", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). From daniel@REDACTED Fri Sep 13 12:47:59 2013 From: daniel@REDACTED (Daniel White) Date: Fri, 13 Sep 2013 20:47:59 +1000 Subject: [erlang-patches] [PATCH] Teach xmerl_xpath to resolve context namespaces in more cases In-Reply-To: <7A894AF5-CA8B-46F5-AD1F-756CC0025B1D@gmail.com> References: <7A894AF5-CA8B-46F5-AD1F-756CC0025B1D@gmail.com> Message-ID: D'oh, that was a mistake when transcribing it from my console. The example above should have read: On Fri, Sep 13, 2013 at 7:57 PM, Anthony Ramine wrote: > Isn't that case wrong too? > > The element isn't in the http://www.example.com/ns namespace, right? > > Le 12 sept. 2013 ? 18:52, Daniel White a ?crit : > >>> [#xmlElement{}] = xmerl_xpath:string("/root/t:child", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). From n.oxyde@REDACTED Fri Sep 13 12:49:20 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Fri, 13 Sep 2013 12:49:20 +0200 Subject: [erlang-patches] [PATCH] Teach xmerl_xpath to resolve context namespaces in more cases In-Reply-To: References: <7A894AF5-CA8B-46F5-AD1F-756CC0025B1D@gmail.com> Message-ID: <364F4E6E-1C16-4413-9B90-A342F400945F@gmail.com> Btw 3 years ago when I implemented the namespace axis in xmerl_xpath I had to fix a few things beforehand, but I left a todo in that commit: https://github.com/nox/otp/commit/770d6d9aaf4ebad18b1247911c5c3c23d688364a You may be interested in actually completing it. Regards, Le 13 sept. 2013 ? 12:47, Anthony Ramine a ?crit : > Well, good news, that's one less bug to fix :) > > Le 13 sept. 2013 ? 12:45, Daniel White a ?crit : > >> D'oh, that was a mistake when transcribing it from my console. The >> example above should have read: >> >> >> >> >> >> On Fri, Sep 13, 2013 at 7:57 PM, Anthony Ramine wrote: >>> Isn't that case wrong too? >>> >>> The element isn't in the http://www.example.com/ns namespace, right? >>> >>> Le 12 sept. 2013 ? 18:52, Daniel White a ?crit : >>> >>>>> [#xmlElement{}] = xmerl_xpath:string("/root/t:child", Doc, [{namespace, [{"t", "http://www.example.com/ns"}]}]). > From n.oxyde@REDACTED Sat Sep 14 13:44:31 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Sat, 14 Sep 2013 13:44:31 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> Message-ID: <561FE8B2-352F-4D3F-8B99-C8133CB753B3@gmail.com> Hello, A quick review of tool support for EEP37: * Editors Emacs: Steve Vinoski patched erlang.el and I added his commit to my branch, thank you Steve! [1] Sublime Text: Sublime-Erlang has been patched by myself a long time ago. [2] Vim: requires patching, but I have no idea which syntax files are used by the community. * Parse transforms syntax_tools and every tool using it: any parse transform using erl_syntax and erl_syntax_lib does not need to be patched. lager: its parse transform does a dirty hack using `tuple_to_list/1` to traverse unknown AST nodes, no patch needed. [3] Wrangler and other refactoring tools: needs patching and could probably use a few new transformations related to named funs. * OTP tools My implementation teaches the following tools about named funs: - the compiler stack (obviously) - cover - QLC - xref - the shell Dialyzer does not need to be patched as it operates on the Core Erlang AST which already had named funs. [1] https://github.com/nox/otp/commit/405c0e7a111d5debc693c61ed8c2d311fc0201ca [2] https://github.com/fjl/Sublime-Erlang/pull/19 [3] https://github.com/basho/lager/blob/2965c23f46301afeb7d62f6fbac99b3ab367f6b2/src/lager_transform.erl#L196-199 Regards, Le 10 sept. 2013 ? 16:59, Anthony Ramine a ?crit : > Sweet. Maybe that's a good occasion to compile a list of community tools operating on code? > > -- > Anthony Ramine > > Le 10 sept. 2013 ? 14:41, Kenneth Lundin a ?crit : > >> Sorry for the delay. >> >> Anyway , we decided that the Fun with names implementation can be included in the R17 release which is >> scheduled for Q1 2014. >> >> We have to look into the impact on tools. The additional syntax might confuse some of the tools working on source code. >> >> /Kenneth, Erlang/OTP, Ericsson >> >> >> On Tue, Sep 10, 2013 at 10:52 AM, Tony Rogvall wrote: >> Give the dog his bone ;-) >> >> /Tony >> >> On 10 sep 2013, at 10:28, Anthony Ramine wrote: >> >>> And of which today this tomorrow is supposed to be? :p >>> >>> Le 5 sept. 2013 ? 16:50, Kenneth Lundin a ?crit : >>> >>>> Hi, >>>> >>>> Yes, we have dicussed this on our technical board, I don't have the exact outcome >>>> at hand but can give more info tomorrow. As far as I remember it was a positive verdict. >>>> >>>> /Kenneth, Erlang/OTP Ericsson >>>> >>>> Den 5 sep 2013 11:56 skrev "Anthony Ramine" : >>>> Ping? >>>> >>>> -- >>>> Anthony Ramine >>>> >>>> Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : >>>> >>>>> Did you discuss it yet? :) >>>>> >>>>> -- >>>>> Anthony Ramine >>>>> >>>>> Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : >>>>> >>>>>> The OTP Technical Board will discuss EEP37 >>>>>> at its next meeting. >>>>>> >>>>>> >>>>>> On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine wrote: >>>>>> Ping? >>>>>> >>>>>> -- >>>>>> Anthony Ramine >>>>>> >>>>>> Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> Any ETA for a review? >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: >>>>>>>> On 03/20/2013 03:30 PM, Anthony Ramine wrote: >>>>>>>>> >>>>>>>>> Rebased! :) >>>>>>>>> >>>>>>>>> Does it mean it may be included before R17? Branch maint is for minor >>>>>>>>> releases, right? >>>>>>>>> >>>>>>>> Right now im collecting all the patches active at the moment in pu. That >>>>>>>> does not mean it will be included in a minor release. :) >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> BR Fredrik Gustafsson >>>>>>>> Erlang OTP Team >>>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> eeps mailing list >>>>>> eeps@REDACTED >>>>>> http://erlang.org/mailman/listinfo/eeps >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Bj?rn Gustavsson, Erlang/OTP, Ericsson AB >>>>> >>>> >>>> _______________________________________________ >>>> eeps mailing list >>>> eeps@REDACTED >>>> http://erlang.org/mailman/listinfo/eeps >>> >>> _______________________________________________ >>> eeps mailing list >>> eeps@REDACTED >>> http://erlang.org/mailman/listinfo/eeps >> >> "Installing applications can lead to corruption over time. Applications gradually write over each other's libraries, partial upgrades occur, user and system errors happen, and minute changes may be unnoticeable and difficult to fix" >> >> >> >> From n.oxyde@REDACTED Sun Sep 15 13:34:54 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Sun, 15 Sep 2013 13:34:54 +0200 Subject: [erlang-patches] [eeps] EEP37: Funs with names In-Reply-To: <561FE8B2-352F-4D3F-8B99-C8133CB753B3@gmail.com> References: <50A4FAA9.1070706@erlang.org> <466D4B3A-8B3C-4AA7-9A2B-B85EA5EA2A90@gmail.com> <819C7547-3B43-4F8E-A4E0-91B77C547600@gmail.com> <514981E0.9030209@erlang.org> <806DFCE7-CC09-46F9-8B71-F97CE9E04A39@gmail.com> <5149C8AE.8030509@erlang.org> <14F3108F-0268-4597-83CE-A2D610C2A5A6@gmail.com> <48B3401B-EAD7-442B-BA36-395E9B510B06@gmail.com> <561FE8B2-352F-4D3F-8B99-C8133CB753B3@gmail.com> Message-ID: <9A6A53FE-D926-464D-BAFA-97F2C54EAF84@gmail.com> Hello, I've opened two issues at wrangler and erlide: https://github.com/RefactoringTools/wrangler/issues/48 https://github.com/erlide/erlide/issues/121 I've also patched pmod_transform (I feel sullied) to make it support named funs: git fetch https://github.com/nox/pmod_transform eep37 https://github.com/nox/pmod_transform/compare/erlang:master...eep37 https://github.com/nox/pmod_transform/compare/erlang:master...eep37.patch Regards, Le 14 sept. 2013 ? 13:44, Anthony Ramine a ?crit : > Hello, > > A quick review of tool support for EEP37: > > * Editors > > Emacs: Steve Vinoski patched erlang.el and I added his commit to my branch, thank you Steve! [1] > Sublime Text: Sublime-Erlang has been patched by myself a long time ago. [2] > Vim: requires patching, but I have no idea which syntax files are used by the community. > > * Parse transforms > > syntax_tools and every tool using it: any parse transform using erl_syntax and erl_syntax_lib does not need to be patched. > lager: its parse transform does a dirty hack using `tuple_to_list/1` to traverse unknown AST nodes, no patch needed. [3] > Wrangler and other refactoring tools: needs patching and could probably use a few new transformations related to named funs. > > * OTP tools > > My implementation teaches the following tools about named funs: > > - the compiler stack (obviously) > - cover > - QLC > - xref > - the shell > > Dialyzer does not need to be patched as it operates on the Core Erlang AST which already had named funs. > > [1] https://github.com/nox/otp/commit/405c0e7a111d5debc693c61ed8c2d311fc0201ca > [2] https://github.com/fjl/Sublime-Erlang/pull/19 > [3] https://github.com/basho/lager/blob/2965c23f46301afeb7d62f6fbac99b3ab367f6b2/src/lager_transform.erl#L196-199 > > Regards, > > Le 10 sept. 2013 ? 16:59, Anthony Ramine a ?crit : > >> Sweet. Maybe that's a good occasion to compile a list of community tools operating on code? >> >> -- >> Anthony Ramine >> >> Le 10 sept. 2013 ? 14:41, Kenneth Lundin a ?crit : >> >>> Sorry for the delay. >>> >>> Anyway , we decided that the Fun with names implementation can be included in the R17 release which is >>> scheduled for Q1 2014. >>> >>> We have to look into the impact on tools. The additional syntax might confuse some of the tools working on source code. >>> >>> /Kenneth, Erlang/OTP, Ericsson >>> >>> >>> On Tue, Sep 10, 2013 at 10:52 AM, Tony Rogvall wrote: >>> Give the dog his bone ;-) >>> >>> /Tony >>> >>> On 10 sep 2013, at 10:28, Anthony Ramine wrote: >>> >>>> And of which today this tomorrow is supposed to be? :p >>>> >>>> Le 5 sept. 2013 ? 16:50, Kenneth Lundin a ?crit : >>>> >>>>> Hi, >>>>> >>>>> Yes, we have dicussed this on our technical board, I don't have the exact outcome >>>>> at hand but can give more info tomorrow. As far as I remember it was a positive verdict. >>>>> >>>>> /Kenneth, Erlang/OTP Ericsson >>>>> >>>>> Den 5 sep 2013 11:56 skrev "Anthony Ramine" : >>>>> Ping? >>>>> >>>>> -- >>>>> Anthony Ramine >>>>> >>>>> Le 2 juil. 2013 ? 10:12, Anthony Ramine a ?crit : >>>>> >>>>>> Did you discuss it yet? :) >>>>>> >>>>>> -- >>>>>> Anthony Ramine >>>>>> >>>>>> Le 19 juin 2013 ? 15:16, Bj?rn Gustavsson a ?crit : >>>>>> >>>>>>> The OTP Technical Board will discuss EEP37 >>>>>>> at its next meeting. >>>>>>> >>>>>>> >>>>>>> On Fri, Jun 7, 2013 at 6:24 PM, Anthony Ramine wrote: >>>>>>> Ping? >>>>>>> >>>>>>> -- >>>>>>> Anthony Ramine >>>>>>> >>>>>>> Le 21 avr. 2013 ? 22:17, Anthony Ramine a ?crit : >>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> Any ETA for a review? >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> On Wed, Mar 20, 2013 at 3:33 PM, Fredrik wrote: >>>>>>>>> On 03/20/2013 03:30 PM, Anthony Ramine wrote: >>>>>>>>>> >>>>>>>>>> Rebased! :) >>>>>>>>>> >>>>>>>>>> Does it mean it may be included before R17? Branch maint is for minor >>>>>>>>>> releases, right? >>>>>>>>>> >>>>>>>>> Right now im collecting all the patches active at the moment in pu. That >>>>>>>>> does not mean it will be included in a minor release. :) >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> BR Fredrik Gustafsson >>>>>>>>> Erlang OTP Team >>>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> eeps mailing list >>>>>>> eeps@REDACTED >>>>>>> http://erlang.org/mailman/listinfo/eeps >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Bj?rn Gustavsson, Erlang/OTP, Ericsson AB >>>>>> >>>>> >>>>> _______________________________________________ >>>>> eeps mailing list >>>>> eeps@REDACTED >>>>> http://erlang.org/mailman/listinfo/eeps >>>> >>>> _______________________________________________ >>>> eeps mailing list >>>> eeps@REDACTED >>>> http://erlang.org/mailman/listinfo/eeps >>> >>> "Installing applications can lead to corruption over time. Applications gradually write over each other's libraries, partial upgrades occur, user and system errors happen, and minute changes may be unnoticeable and difficult to fix" >>> >>> >>> >>> > From n.oxyde@REDACTED Sun Sep 15 14:12:31 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Sun, 15 Sep 2013 14:12:31 +0200 Subject: [erlang-patches] Optimize handling of local fun variables in v3_kernel In-Reply-To: References: <50B87C69.1030406@erlang.org> <9FE06E4A-CFF9-4542-B22F-687F7D43CE7B@gmail.com> <50ED920E.5060706@erlang.org> <8D1C563A-E65D-4544-9635-78F0B7A3596D@gmail.com> <50F52480.9040100@erlang.org> <50F5325B.4010005@erlang.org> <39C10C4B-C8C6-4331-B7DD-43E8E0F23751@gmail.com> <50FE512C.8020905@erlang.org> <185EEAD8-2C06-4BCB-8863-B6F8CC79460D@gmail.com> <5195E2BE.4060104@erlang.org> <406DB238-CBC1-4CCD-9AFF-1AC9DBFDA62B@gmail.com> <637F7FCA-3360-4F81-AFB1-C3D41A6E4139@gmail.com> <5199D1BA.6010206@erlang.org> <5B7E1490-0301-4BF7-B6E4-FBD792B3ECD1@gmail.com> Message-ID: <8BBBCFB9-8917-456D-B21B-558C163D09C8@gmail.com> Ping? This patch will be important in the context of named funs to reduce user surprise with some convoluted snippets of code, e.g.: F = fun Self() -> Self end, true = F =:= F(). F = fun IsMe(G) when IsMe =:= G -> ok end, F(F). Regards, Le 5 sept. 2013 ? 17:40, Anthony Ramine a ?crit : > What happened to that patch? > > Le 20 mai 2013 ? 17:05, Anthony Ramine a ?crit : > >> Still no problem. What was the actual error or crash? >> >> -- >> Anthony Ramine >> >> Le 20 mai 2013 ? 13:35, Anthony Ramine a ?crit : >> >>> Just native-libs. Will try those now. >>> >>> -- >>> Anthony Ramine >>> >>> Le 20 mai 2013 ? 09:33, Fredrik a ?crit : >>> >>>> On 05/17/2013 06:50 PM, Anthony Ramine wrote: >>>>> I can't reproduce any crash with diameter_dict_parse, could you give me more details about it? >>>>> >>>> Hello Anthony, >>>> ./configure flags are: >>>> --enable-hipe --enable-smp-support --enable-native-libs >>>> Did you try with those? >>>> >>>> -- >>>> >>>> BR Fredrik Gustafsson >>>> Erlang OTP Team >>>> >>> >> > From fredrik@REDACTED Mon Sep 16 11:08:54 2013 From: fredrik@REDACTED (Fredrik) Date: Mon, 16 Sep 2013 11:08:54 +0200 Subject: [erlang-patches] Optimize handling of local fun variables in v3_kernel In-Reply-To: <8BBBCFB9-8917-456D-B21B-558C163D09C8@gmail.com> References: <9FE06E4A-CFF9-4542-B22F-687F7D43CE7B@gmail.com> <50ED920E.5060706@erlang.org> <8D1C563A-E65D-4544-9635-78F0B7A3596D@gmail.com> <50F52480.9040100@erlang.org> <50F5325B.4010005@erlang.org> <39C10C4B-C8C6-4331-B7DD-43E8E0F23751@gmail.com> <50FE512C.8020905@erlang.org> <185EEAD8-2C06-4BCB-8863-B6F8CC79460D@gmail.com> <5195E2BE.4060104@erlang.org> <406DB238-CBC1-4CCD-9AFF-1AC9DBFDA62B@gmail.com> <637F7FCA-3360-4F81-AFB1-C3D41A6E4139@gmail.com> <5199D1BA.6010206@erlang.org> <5B7E1490-0301-4BF7-B6E4-FBD792B3ECD1@gmail.com> <8BBBCFB9-8917-456D-B21B-558C163D09C8@gmail.com> Message-ID: <5236CAA6.7050609@erlang.org> On 09/15/2013 02:12 PM, Anthony Ramine wrote: > Ping? > > This patch will be important in the context of named funs to reduce user surprise with some convoluted snippets of code, e.g.: > > F = fun Self() -> Self end, true = F =:= F(). > F = fun IsMe(G) when IsMe =:= G -> ok end, F(F). > > Regards, > > Le 5 sept. 2013 ? 17:40, Anthony Ramine a ?crit : > >> What happened to that patch? >> >> Le 20 mai 2013 ? 17:05, Anthony Ramine a ?crit : >> >>> Still no problem. What was the actual error or crash? >>> >>> -- >>> Anthony Ramine >>> >>> Le 20 mai 2013 ? 13:35, Anthony Ramine a ?crit : >>> >>>> Just native-libs. Will try those now. >>>> >>>> -- >>>> Anthony Ramine >>>> >>>> Le 20 mai 2013 ? 09:33, Fredrik a ?crit : >>>> >>>>> On 05/17/2013 06:50 PM, Anthony Ramine wrote: >>>>>> I can't reproduce any crash with diameter_dict_parse, could you give me more details about it? >>>>>> >>>>> Hello Anthony, >>>>> ./configure flags are: >>>>> --enable-hipe --enable-smp-support --enable-native-libs >>>>> Did you try with those? >>>>> >>>>> -- >>>>> >>>>> BR Fredrik Gustafsson >>>>> Erlang OTP Team >>>>> Hello Anthony, Afaik the same issue is remaining as we discussed in private conversation i.e with these flags the build aborts: CONFIG_FLAGS = --enable-hipe --enable-smp-support --enable-native-libs -- BR Fredrik Gustafsson Erlang OTP Team From roberto.aloi@REDACTED Mon Sep 16 11:13:28 2013 From: roberto.aloi@REDACTED (Roberto Aloi) Date: Mon, 16 Sep 2013 11:13:28 +0200 (CEST) Subject: [erlang-patches] Fix bug in cth_log_redirect:terminate/2 In-Reply-To: <1587222843.152173.1379322585654.JavaMail.zimbra@erlang-solutions.com> Message-ID: <78097056.152332.1379322808632.JavaMail.zimbra@erlang-solutions.com> Hi all, The gen_event callback module expects terminate/2, not terminate/1. Try to run a ct suite using ct:run_test/1 enabling tracing for error_logger and you should get something like: (<0.1206.0>) call error_logger:delete_report_handler(cth_log_redirect) (<0.1206.0>) returned from error_logger:delete_report_handler/1 -> {'EXIT', {undef, [{cth_log_redirect, terminate, [[], tc_log_async], []}, {gen_event, do_terminate, 7, [{file, "gen_event.erl"}, {line, 636}]}, {gen_event, server_delete_handler, 4, [{file, "gen_event.erl"}, {line, 431}]}, {gen_event, handle_msg, 5, [{file, "gen_event.erl"}, {line, 270}]}, {proc_lib, init_p_do_apply, 3, [{file, "proc_lib.erl"}, {line, 227}]}]}} To fetch the patch: git fetch git://github.com/robertoaloi/otp.git cth_fix_terminate https://github.com/robertoaloi/otp/compare/erlang:maint...cth_fix_terminate https://github.com/robertoaloi/otp/compare/erlang:maint...cth_fix_terminate.patch Kind regards, Roberto Aloi --- Erlang Solutions Ltd. www.erlang-solutions.com From n.oxyde@REDACTED Mon Sep 16 11:37:56 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Mon, 16 Sep 2013 11:37:56 +0200 Subject: [erlang-patches] Optimize handling of local fun variables in v3_kernel In-Reply-To: <5236CAA6.7050609@erlang.org> References: <9FE06E4A-CFF9-4542-B22F-687F7D43CE7B@gmail.com> <50ED920E.5060706@erlang.org> <8D1C563A-E65D-4544-9635-78F0B7A3596D@gmail.com> <50F52480.9040100@erlang.org> <50F5325B.4010005@erlang.org> <39C10C4B-C8C6-4331-B7DD-43E8E0F23751@gmail.com> <50FE512C.8020905@erlang.org> <185EEAD8-2C06-4BCB-8863-B6F8CC79460D@gmail.com> <5195E2BE.4060104@erlang.org> <406DB238-CBC1-4CCD-9AFF-1AC9DBFDA62B@gmail.com> <637F7FCA-3360-4F81-AFB1-C3D41A6E4139@gmail.com> <5199D1BA.6010206@erlang.org> <5B7E1490-0301-4BF7-B6E4-FBD792B3ECD1@gmail.com> <8BBBCFB9-8917-456D-B21B-558C163D09C8@gmail.com> <5236CAA6.7050609@erlang.org> Message-ID: <7ED437FD-45EA-4079-A381-AFC9F566F89E@gmail.com> I can't reproduce the issue, you were supposed to give me a core dump or something by "tomorrow", that was May 27th :) Le 16 sept. 2013 ? 11:08, Fredrik a ?crit : > Hello Anthony, > Afaik the same issue is remaining as we discussed in private conversation i.e > with these flags the build aborts: > CONFIG_FLAGS = --enable-hipe --enable-smp-support --enable-native-libs From fredrik@REDACTED Mon Sep 16 16:39:31 2013 From: fredrik@REDACTED (Fredrik) Date: Mon, 16 Sep 2013 16:39:31 +0200 Subject: [erlang-patches] Fix bug in cth_log_redirect:terminate/2 In-Reply-To: <78097056.152332.1379322808632.JavaMail.zimbra@erlang-solutions.com> References: <78097056.152332.1379322808632.JavaMail.zimbra@erlang-solutions.com> Message-ID: <52371823.3080806@erlang.org> On 09/16/2013 11:13 AM, Roberto Aloi wrote: > Hi all, > > The gen_event callback module expects terminate/2, not terminate/1. > Try to run a ct suite using ct:run_test/1 enabling tracing for error_logger and you should get something like: > > (<0.1206.0>) call error_logger:delete_report_handler(cth_log_redirect) > (<0.1206.0>) returned from error_logger:delete_report_handler/1 -> {'EXIT', > {undef, > [{cth_log_redirect, > terminate, > [[], > tc_log_async], > []}, > {gen_event, > do_terminate, > 7, > [{file, > "gen_event.erl"}, > {line, > 636}]}, > {gen_event, > server_delete_handler, > 4, > [{file, > "gen_event.erl"}, > {line, > 431}]}, > {gen_event, > handle_msg, > 5, > [{file, > "gen_event.erl"}, > {line, > 270}]}, > {proc_lib, > init_p_do_apply, > 3, > [{file, > "proc_lib.erl"}, > {line, > 227}]}]}} > > To fetch the patch: > > git fetch git://github.com/robertoaloi/otp.git cth_fix_terminate > > https://github.com/robertoaloi/otp/compare/erlang:maint...cth_fix_terminate > https://github.com/robertoaloi/otp/compare/erlang:maint...cth_fix_terminate.patch > > Kind regards, > > Roberto Aloi > --- > Erlang Solutions Ltd. > www.erlang-solutions.com > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello Roberto, I've fetched your patch and assigned it to be reviewed by responsible developer. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team From n.oxyde@REDACTED Thu Sep 19 15:18:12 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Thu, 19 Sep 2013 15:18:12 +0200 Subject: [erlang-patches] Optimize handling of local fun variables in v3_kernel In-Reply-To: <7ED437FD-45EA-4079-A381-AFC9F566F89E@gmail.com> References: <9FE06E4A-CFF9-4542-B22F-687F7D43CE7B@gmail.com> <50ED920E.5060706@erlang.org> <8D1C563A-E65D-4544-9635-78F0B7A3596D@gmail.com> <50F52480.9040100@erlang.org> <50F5325B.4010005@erlang.org> <39C10C4B-C8C6-4331-B7DD-43E8E0F23751@gmail.com> <50FE512C.8020905@erlang.org> <185EEAD8-2C06-4BCB-8863-B6F8CC79460D@gmail.com> <5195E2BE.4060104@erlang.org> <406DB238-CBC1-4CCD-9AFF-1AC9DBFDA62B@gmail.com> <637F7FCA-3360-4F81-AFB1-C3D41A6E4139@gmail.com> <5199D1BA.6010206@erlang.org> <5B7E1490-0301-4BF7-B6E4-FBD792B3ECD1@gmail.com> <8BBBCFB9-8917-456D-B21B-558C163D09C8@gmail.com> <5236CAA6.7050609@erlang.org> <7ED437FD-45EA-4079-A381-AFC9F566F89E@gmail.com> Message-ID: <9587CB66-B48E-42EC-AEB2-7EA8B383714D@gmail.com> Received the core dump. In this GDB session (https://gist.github.com/nox/6623009) you can notice at the end that HiPE tries to patch a LOT of fun entries for the same erl_prettypr:lay/2 function. This is because I forgot to strip the eta-abstracted id annotations when compiling local fun references to Core Erlang in v3_core. I amended the first commit of that branch to fix that. Please refetch. Regards, Le 16 sept. 2013 ? 11:37, Anthony Ramine a ?crit : > I can't reproduce the issue, you were supposed to give me a core dump or something by "tomorrow", that was May 27th :) > > Le 16 sept. 2013 ? 11:08, Fredrik a ?crit : > >> Hello Anthony, >> Afaik the same issue is remaining as we discussed in private conversation i.e >> with these flags the build aborts: >> CONFIG_FLAGS = --enable-hipe --enable-smp-support --enable-native-libs > From msassak@REDACTED Sat Sep 21 04:35:12 2013 From: msassak@REDACTED (Mike Sassak) Date: Fri, 20 Sep 2013 19:35:12 -0700 Subject: [erlang-patches] Fix bug in argument checking in binary:matches/2 Message-ID: Hi erlang-patches, Including an empty binary as one of multiple patterns to binary:matches/2 crashes BEAM: binary:matches(<<"foo">>, [<<>>, <<"f">>]). % -> Crash Passing just an empty binary, or a list containing only the empty binary throws a badarg as expected: binary:matches(<<"foo">>, <<>>) % -> badarg binary:matches(<<"foo">>, [<<>>]) % -> badarg My patch ensures all patterns passed to binary:matches/2 are checked for validity and throws badarg if one is not valid. You can fetch the patch with: git fetch git://github.com/msassak/otp.git empty-pattern-badarg And check out diff views here: https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg.patch Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: From n.oxyde@REDACTED Sat Sep 21 13:11:30 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Sat, 21 Sep 2013 13:11:30 +0200 Subject: [erlang-patches] Fix two small silent rules omission Message-ID: <27548A74-294B-405F-AD6E-77259990A464@gmail.com> Hello, This commit fixes two silent rules in erts/etc/unix/ and lib/ic/ where the full command were printed even with silent rules enabled. git fetch https://github.com/nox/otp silent-rules-fixes https://github.com/nox/otp/compare/erlang:maint...silent-rules-fixes https://github.com/nox/otp/compare/erlang:maint...silent-rules-fixes.patch Regards, -- Anthony Ramine From henrik@REDACTED Mon Sep 23 09:35:52 2013 From: henrik@REDACTED (Henrik Nord) Date: Mon, 23 Sep 2013 09:35:52 +0200 Subject: [erlang-patches] Fix bug in argument checking in binary:matches/2 In-Reply-To: References: Message-ID: <523FEF58.2040800@erlang.org> On 2013-09-21 04:35, Mike Sassak wrote: > Hi erlang-patches, > > Including an empty binary as one of multiple patterns to > binary:matches/2 crashes BEAM: > > binary:matches(<<"foo">>, [<<>>, <<"f">>]). % -> Crash > > Passing just an empty binary, or a list containing only the empty > binary throws a badarg as expected: > > binary:matches(<<"foo">>, <<>>) % -> badarg > binary:matches(<<"foo">>, [<<>>]) % -> badarg > > My patch ensures all patterns passed to binary:matches/2 are checked > for validity and throws badarg if one is not valid. > > You can fetch the patch with: > > git fetch git://github.com/msassak/otp.git > empty-pattern-badarg > > And check out diff views here: > > https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg > https://github.com/msassak/otp/compare/erlang:maint...empty-pattern-badarg.patch > > Mike > > > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hi Mike! I have created a pull request from your patch. Thank you for your contribution! -- /Henrik Nord Erlang/OTP -------------- next part -------------- An HTML attachment was scrubbed... URL: From henrik@REDACTED Mon Sep 23 09:40:05 2013 From: henrik@REDACTED (Henrik Nord) Date: Mon, 23 Sep 2013 09:40:05 +0200 Subject: [erlang-patches] Fix two small silent rules omission In-Reply-To: <27548A74-294B-405F-AD6E-77259990A464@gmail.com> References: <27548A74-294B-405F-AD6E-77259990A464@gmail.com> Message-ID: <523FF055.2020206@erlang.org> On 2013-09-21 13:11, Anthony Ramine wrote: > Hello, > > This commit fixes two silent rules in erts/etc/unix/ and lib/ic/ where the full command were printed even with silent rules enabled. > > git fetch https://github.com/nox/otp silent-rules-fixes > > https://github.com/nox/otp/compare/erlang:maint...silent-rules-fixes > https://github.com/nox/otp/compare/erlang:maint...silent-rules-fixes.patch > > Regards, > Hi Created pull request. Thank you for your contribution! -- /Henrik Nord Erlang/OTP From vinoski@REDACTED Mon Sep 23 14:26:24 2013 From: vinoski@REDACTED (Steve Vinoski) Date: Mon, 23 Sep 2013 08:26:24 -0400 Subject: [erlang-patches] enable SNMP to create database parent dirs Message-ID: This patch adds a new choice to the db_init_error option for the SNMP manager and agent named create_db_and_dir. Using this causes it to create any missing parent directories for the db_dir rather than treating missing parent dirs as a fatal error. The pull request is here: https://github.com/erlang/otp/pull/83 Many thanks to Micael Karlberg for reviewing the idea and the patch. --steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From juanjo@REDACTED Mon Sep 23 19:50:06 2013 From: juanjo@REDACTED (Juan Jose Comellas) Date: Mon, 23 Sep 2013 14:50:06 -0300 Subject: [erlang-patches] The diameter_sctp module uses the incorrect type gen_sctp:open_option/0 Message-ID: The diameter_sctp module uses the incorrect type gen_sctp:open_option/0 but its correct name is gen_sctp:open_option/0. This patch fixes this problem and has also been sent as a pull request. git fetch git://github.com/jcomellas/otp.git jc-gen_sctp-option https://github.com/jcomellas/otp/compare/erlang:maint...jc-gen_sctp-option https://github.com/jcomellas/otp/compare/erlang:maint...jc-gen_sctp-option.patch -------------- next part -------------- An HTML attachment was scrubbed... URL: From anders.otp@REDACTED Tue Sep 24 12:07:33 2013 From: anders.otp@REDACTED (Anders Svensson) Date: Tue, 24 Sep 2013 12:07:33 +0200 Subject: [erlang-patches] The diameter_sctp module uses the incorrect type gen_sctp:open_option/0 In-Reply-To: References: Message-ID: gen_sctp:option() is not the type diameter_sctp wants. What it wants is everything that gen_sctp:open/1 accepts; that is: -type open_option() :: {ip | ifaddr, inet:ip_address() | any | loopback} | inet:address_family() | {port, inet:port_number()} | {type, socket_type()} | option(). The non-trivial bit is updating the documentation accordingly. /Anders, Erlang/OTP On Mon, Sep 23, 2013 at 7:50 PM, Juan Jose Comellas wrote: > The diameter_sctp module uses the incorrect type gen_sctp:open_option/0 but > its correct name is gen_sctp:open_option/0. This patch fixes this problem > and has also been sent as a pull request. > > git fetch git://github.com/jcomellas/otp.git jc-gen_sctp-option > > https://github.com/jcomellas/otp/compare/erlang:maint...jc-gen_sctp-option > https://github.com/jcomellas/otp/compare/erlang:maint...jc-gen_sctp-option.patch > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches > From larshesel@REDACTED Tue Sep 24 11:41:57 2013 From: larshesel@REDACTED (Lars Hesel Christensen) Date: Tue, 24 Sep 2013 11:41:57 +0200 Subject: [erlang-patches] Fix for bsr bug with huge numbers Message-ID: Thus pull request fixes a bug in the bsr function, which manifests when a huge number is shifted a huge number of bits to the right. It simply returns the number unshifted: 1> 1183140560213014108063589658350 bsr 146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935. 1183140560213014108063589658350 The commit messages contain more information. The pull request is here: https://github.com/erlang/otp/pull/86 This bug was brought to my attention by Kresten Krab Thorup. Best regards, Lars Hesel Christensen -------------- next part -------------- An HTML attachment was scrubbed... URL: From larshesel@REDACTED Wed Sep 25 21:06:35 2013 From: larshesel@REDACTED (Lars Hesel Christensen) Date: Wed, 25 Sep 2013 21:06:35 +0200 Subject: [erlang-patches] Fwd: Fix for bsr bug with huge numbers In-Reply-To: References: Message-ID: As this didn't seem to get through the first time, I try again. Best regards, Lars ---------- Forwarded message ---------- From: Lars Hesel Christensen Date: 2013/9/24 Subject: Fix for bsr bug with huge numbers To: erlang-patches@REDACTED Thus pull request fixes a bug in the bsr function, which manifests when a huge number is shifted a huge number of bits to the right. It simply returns the number unshifted: 1> 1183140560213014108063589658350 bsr 146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935. 1183140560213014108063589658350 The commit messages contain more information. The pull request is here: https://github.com/erlang/otp/pull/86 This bug was brought to my attention by Kresten Krab Thorup. Best regards, Lars Hesel Christensen -------------- next part -------------- An HTML attachment was scrubbed... URL: From henrik@REDACTED Thu Sep 26 09:04:43 2013 From: henrik@REDACTED (Henrik Nord) Date: Thu, 26 Sep 2013 09:04:43 +0200 Subject: [erlang-patches] Fwd: Fix for bsr bug with huge numbers In-Reply-To: References: Message-ID: <5243DC8B.2080405@erlang.org> Your pull request is being handled. Thank you for your contributions! On 2013-09-25 21:06, Lars Hesel Christensen wrote: > As this didn't seem to get through the first time, I try again. > > Best regards, > Lars > > ---------- Forwarded message ---------- > From: *Lars Hesel Christensen* > > Date: 2013/9/24 > Subject: Fix for bsr bug with huge numbers > To: erlang-patches@REDACTED > > > Thus pull request fixes a bug in the bsr function, which manifests > when a huge number is shifted a huge number of bits to the right. It > simply returns the number unshifted: > > 1> 1183140560213014108063589658350 bsr > 146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935. > > 1183140560213014108063589658350 > > The commit messages contain more information. > > The pull request is here: > > https://github.com/erlang/otp/pull/86 > > This bug was brought to my attention by Kresten Krab Thorup. > > Best regards, > Lars Hesel Christensen > > > > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches -- /Henrik Nord Erlang/OTP -------------- next part -------------- An HTML attachment was scrubbed... URL: From messinguelethomas@REDACTED Thu Sep 26 17:24:42 2013 From: messinguelethomas@REDACTED (=?UTF-8?B?VGhvbWFzIE1lc3NpIE5ndcOpbMOp?=) Date: Thu, 26 Sep 2013 16:24:42 +0100 Subject: [erlang-patches] Erlang library for SNA (Social Network Analysis) Message-ID: Numerous complex systems such as social networks can be modeled using graphs. Graphs used in social network mining are generally made up of numerous nodes (Facebook 1.15 billion, YouTube 1 billion on September 2013) and/or have very low densities. If the available architectures are not efficiently exploited, certain algorithms (like katz score in links prediction) will have very long execution times. However, the evolution of architectures from mono-core through multi-cores to many-cores makes them complex thus rendering difficult the task of writing programs to be run on these machines. In the quest for a language that can associate both ease-of-use and efficiency, we start by proposing a DSL (Domain Specific Library) written and embedded in Erlang. This DSL should facilitate the programming of algorithms (in social network mining for example) on multi-core and many-core platforms such that writing parallel code on these platforms should be an easy task. In this patch (git@REDACTED:messinguelethomas/otp.git, in dsl_graph.erl), we give some functions that should be useful for a social network analyzer (load_graph_gml, convert_csv_to_gml ...). We propose an extra-operator (parallel_op) that helps him to easily write parallel code without specifying messages and processes. We reuse the digraph module of erlang to write our module. We will be happy to know that the Erlang community will accept and continue and extend this project: do social network analyzing with erlang. Note that this kind of project is already implemented in Python. But because of its GIL (Global Interpreter Lock), Python doesn't take advantage to the available multi/many-core to reduce execution time. Thomas Messi Ngu?l?. -------------- next part -------------- An HTML attachment was scrubbed... URL: From carlsson.richard@REDACTED Fri Sep 27 13:49:36 2013 From: carlsson.richard@REDACTED (Richard Carlsson) Date: Fri, 27 Sep 2013 13:49:36 +0200 Subject: [erlang-patches] Fix serialization problem in xmerl export Message-ID: <524570D0.9040605@gmail.com> The inheritance mechanism in xmerl uses 'catch apply(M,F,Args)' to try different modules M until one was found that had a function F/A. However, when M:F/A does not exist, apply/3 will trap to error_handler:undefined_function/3, which will call code:ensure_loaded(M), making a synchronous request to the code server process. If many processes tried to use xmerl:export() concurrently, they would get serialized waiting for the code server process. This patch uses erlang:function_exported/3 instead to check if M:F/A exists. If M exists, it should already have been loaded at that point due to the inheritance checking in the xmerl:callbacks/1 function. git fetch git@REDACTED:richcarl/otp.git xmerl-avoid-code-server-serialization https://github.com/richcarl/otp/tree/xmerl-avoid-code-server-serialization /Richard From fredrik@REDACTED Fri Sep 27 14:32:19 2013 From: fredrik@REDACTED (Fredrik) Date: Fri, 27 Sep 2013 14:32:19 +0200 Subject: [erlang-patches] Fix serialization problem in xmerl export In-Reply-To: <524570D0.9040605@gmail.com> References: <524570D0.9040605@gmail.com> Message-ID: <52457AD3.80405@erlang.org> On 09/27/2013 01:49 PM, Richard Carlsson wrote: > The inheritance mechanism in xmerl uses 'catch apply(M,F,Args)' > to try different modules M until one was found that had a function > F/A. However, when M:F/A does not exist, apply/3 will trap to > error_handler:undefined_function/3, which will call > code:ensure_loaded(M), making a synchronous request to the code > server process. If many processes tried to use xmerl:export() > concurrently, they would get serialized waiting for the code server > process. > > This patch uses erlang:function_exported/3 instead to check if M:F/A > exists. If M exists, it should already have been loaded at that point > due to the inheritance checking in the xmerl:callbacks/1 function. > > git fetch git@REDACTED:richcarl/otp.git > xmerl-avoid-code-server-serialization > > https://github.com/richcarl/otp/tree/xmerl-avoid-code-server-serialization > > > > /Richard > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches Hello Richard, I've created a pullrequest for your patch, which you can follow here: https://github.com/erlang/otp/pull/87 The patch will be run through initial tests and then be assigned to be reviewed by responsible developers. Thanks, -- BR Fredrik Gustafsson Erlang OTP Team -------------- next part -------------- An HTML attachment was scrubbed... URL: From aschultz@REDACTED Sun Sep 29 13:33:08 2013 From: aschultz@REDACTED (Andreas Schultz) Date: Sun, 29 Sep 2013 13:33:08 +0200 (CEST) Subject: [erlang-patches] ssl: fix initialization of DTLS fragment reassembler In-Reply-To: <1960166038.205.1380453575597.JavaMail.zimbra@tpip.net> Message-ID: <11749491.226.1380454388609.JavaMail.zimbra@tpip.net> Hi, Ingela imported my DTLS fragment reassembler almost unmodified. In the meantime, I have found a small problem in it that cause it to fail if the first fragment is reordered. Change: The DTLS fragment reassembler use a list [{Start, End}] for the fragments. When the first received fragment was not the starting fragment, that list got initialized with [{Start, Length}], causing the merge of following fragment to fail. pull request: https://github.com/erlang/otp/pull/88 And the usual: git fetch git://github.com/RoadRunnr/otp.git fix_dtls_fragment_decoder https://github.com/RoadRunnr/otp/compare/erlang:master...fix_dtls_fragment_decoder https://github.com/RoadRunnr/otp/compare/erlang:master...fix_dtls_fragment_decoder.patch Andreas From vinoski@REDACTED Mon Sep 30 09:38:52 2013 From: vinoski@REDACTED (Steve Vinoski) Date: Mon, 30 Sep 2013 03:38:52 -0400 Subject: [erlang-patches] improved orddict performance Message-ID: This patch improves the performance of some orddict functions by reimplementing them using the lists module: https://github.com/erlang/otp/pull/91 The commit message at the link above is very detailed and includes performance measurements, so please read it to know more about the changes. --steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From n.oxyde@REDACTED Mon Sep 30 10:00:37 2013 From: n.oxyde@REDACTED (Anthony Ramine) Date: Mon, 30 Sep 2013 10:00:37 +0200 Subject: [erlang-patches] improved orddict performance In-Reply-To: References: Message-ID: <472B4FA4-81D6-4123-917B-28009B7BD1BC@gmail.com> Hello Steve, Great patch, I added a few comments about some edge cases. Regards, Le 30 sept. 2013 ? 09:38, Steve Vinoski a ?crit : > This patch improves the performance of some orddict functions by reimplementing them using the lists module: > > https://github.com/erlang/otp/pull/91 > > The commit message at the link above is very detailed and includes performance measurements, so please read it to know more about the changes. > > --steve > _______________________________________________ > erlang-patches mailing list > erlang-patches@REDACTED > http://erlang.org/mailman/listinfo/erlang-patches -- Anthony Ramine From vinoski@REDACTED Mon Sep 30 11:32:52 2013 From: vinoski@REDACTED (Steve Vinoski) Date: Mon, 30 Sep 2013 05:32:52 -0400 Subject: [erlang-patches] improved orddict performance In-Reply-To: <472B4FA4-81D6-4123-917B-28009B7BD1BC@gmail.com> References: <472B4FA4-81D6-4123-917B-28009B7BD1BC@gmail.com> Message-ID: Great feedback, Anthony -- thanks very much. Clearly there are more backward compatibility issues I need to address. --steve On Mon, Sep 30, 2013 at 4:00 AM, Anthony Ramine wrote: > Hello Steve, > > Great patch, I added a few comments about some edge cases. > > Regards, > > Le 30 sept. 2013 ? 09:38, Steve Vinoski a ?crit : > > > This patch improves the performance of some orddict functions by > reimplementing them using the lists module: > > > > https://github.com/erlang/otp/pull/91 > > > > The commit message at the link above is very detailed and includes > performance measurements, so please read it to know more about the changes. > > > > --steve > > _______________________________________________ > > erlang-patches mailing list > > erlang-patches@REDACTED > > http://erlang.org/mailman/listinfo/erlang-patches > > -- > Anthony Ramine > > -------------- next part -------------- An HTML attachment was scrubbed... URL: