From hannes.hauswedell@fu-berlin.de Mon Aug 10 13:01:35 2020 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.93) for seqan-dev@lists.fu-berlin.de with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (envelope-from ) id 1k55YZ-003SrF-BM; Mon, 10 Aug 2020 13:01:31 +0200 Received: from einhorn-mail.in-berlin.de ([217.197.80.20]) by relay1.zedat.fu-berlin.de (Exim 4.93) for seqan-dev@lists.fu-berlin.de with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (envelope-from ) id 1k55YZ-003zLq-7g; Mon, 10 Aug 2020 13:01:31 +0200 X-Envelope-From: hannes.hauswedell@fu-berlin.de X-Envelope-To: Received: from authenticated.user (localhost [127.0.0.1]) by einhorn.in-berlin.de with ESMTPSA id 07AB1TGg004061 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Mon, 10 Aug 2020 13:01:29 +0200 References: <85524d3c-5582-09d1-3f70-e846be6c56a7@zbh.uni-hamburg.de> To: "seqan-dev@lists.fu-berlin.de" From: Hannes Hauswedell X-Forwarded-Message-Id: <85524d3c-5582-09d1-3f70-e846be6c56a7@zbh.uni-hamburg.de> Message-ID: <95f523d4-dee5-805a-3569-4bebbbf0c1bf@fu-berlin.de> Date: Mon, 10 Aug 2020 13:01:28 +0200 MIME-Version: 1.0 In-Reply-To: <85524d3c-5582-09d1-3f70-e846be6c56a7@zbh.uni-hamburg.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: 217.197.80.20 X-purgate: clean X-purgate-type: clean X-purgate-ID: 151147::1597057291-0009624F-21A87892/0/0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.326785, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=0.7 required=5.0 tests=SPF_HELO_NONE,SPF_NEUTRAL, T_FILL_THIS_FORM_SHORT X-Spam-Checker-Version: SpamAssassin 3.4.4 on Tuvalu.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: [Seqan-dev] Fwd: Fwd: cmake default without -O3 and order of args/options in cmake call X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Aug 2020 11:01:35 -0000 -------- Forwarded Message -------- Subject: Fwd: cmake default without -O3 and order of args/options in cmake call Date: Sun, 9 Aug 2020 18:03:47 +0200 From: Stefan Kurtz Reply-To: kurtz@zbh.uni-hamburg.de Organization: Universitaet Hamburg To: eqan-dev-owner@lists.fu-berlin.de CC: Hannes Hauswedell As suggested on the seqan web pages I had send an E-mail to eqan-dev@lists.fu-berlin.de, but I received the following message: --- Your message has been rejected, probably because you are not subscribed to the mailing list and the list's policy is to prohibit non-members from posting to it. If you think that your messages are being rejected in error, contact the mailing list owner at seqan-dev-owner@lists.fu-berlin.de. -- Please forward the message to the Seqan developers. Kind regards, Stefan Kurtz -------- Forwarded Message -------- Reply-To: kurtz@zbh.uni-hamburg.de To: seqan-dev@lists.fu-berlin.de From: Stefan Kurtz Subject: cmake default without -O3 and order of args/options in cmake call Organization: Universitaet Hamburg Message-ID: Date: Sun, 9 Aug 2020 17:56:49 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------6508A45FC9F37F3913E7BE76" Content-Language: en-US Dear Seqan3-developers, this email refers to the 'Quick Setup (Cmake)' section of SeqAn3 3.0.2. 1) I followed the description for the Cmake-setup and noticed in the example CMakeList.txt shown at the end of https://docs.seqan.de/seqan/3-master-user/setup.html that compiler optimization options such as -O3 is missing, which will lead to poor performance for users who do not recognize it. I know use add_compile_options(-DNDEBUG -Wall -Wextra -Wunused-parameter -Wunused-variable -pedantic -Werror -O3) in CmakeLists.txt. 2) The cmake-setup specifies that one has to call cmake ../source -DCMAKE_CXX_COMPILER=/path/to/executable/g++-7 The help pages of cmake version 3.16.3 on macOS and cmake version 3.10.2 on Linux state that options come before arguments, but only the macOS version enforces this. So on my macOS system only cmake -DCMAKE_CXX_COMPILER=/path/to/executable/g++-7 ../source works. To simplify the use for macOS, it is probably better use this order in the cmake-setup section (and elsewhere) which works on both platforms. Kind regards, Stefan Kurtz -- Prof. Dr. Stefan Kurtz Zentrum fuer Bioinformatik Universitaet Hamburg Bundesstrasse 43 20146 Hamburg Germany Email: kurtz@zbh.uni-hamburg.de URL: http://www.zbh.uni-hamburg.de/kurtz Phone: +49 (40) 42838 7311 FAX: +49 (40) 42838 7312 From marehr@zedat.fu-berlin.de Mon Aug 10 13:39:47 2020 Received: from outpost1.zedat.fu-berlin.de ([130.133.4.66]) by list1.zedat.fu-berlin.de (Exim 4.93) for seqan-dev@lists.fu-berlin.de with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (envelope-from ) id 1k569b-003VXW-4V; Mon, 10 Aug 2020 13:39:47 +0200 Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost.zedat.fu-berlin.de (Exim 4.93) for seqan-dev@lists.fu-berlin.de with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (envelope-from ) id 1k569b-003sGT-1e; Mon, 10 Aug 2020 13:39:47 +0200 Received: from ip5b401aac.dynamic.kabel-deutschland.de ([91.64.26.172] helo=[192.168.1.205]) by inpost2.zedat.fu-berlin.de (Exim 4.93) for seqan-dev@lists.fu-berlin.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (envelope-from ) id 1k569a-002gDg-RS; Mon, 10 Aug 2020 13:39:47 +0200 To: seqan-dev@lists.fu-berlin.de References: <85524d3c-5582-09d1-3f70-e846be6c56a7@zbh.uni-hamburg.de> <95f523d4-dee5-805a-3569-4bebbbf0c1bf@fu-berlin.de> From: Marcel Ehrhardt Message-ID: Date: Mon, 10 Aug 2020 13:39:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <95f523d4-dee5-805a-3569-4bebbbf0c1bf@fu-berlin.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Original-Sender: marehr2@zedat.fu-berlin.de X-Originating-IP: 91.64.26.172 X-purgate: suspect X-purgate-type: suspect X-purgate-ID: 151147::1597059587-0009624F-8248094E/2/35373307126 X-Bogosity: Ham, tests=bogofilter, spamicity=0.319580, version=1.2.4 X-Spam-Flag: NO X-Spam-Status: No, score=-49.0 required=5.0 tests=ALL_TRUSTED, FU_XPURGATE_SUSP, NICE_REPLY_A X-Spam-Checker-Version: SpamAssassin 3.4.4 on Vanuatu.ZEDAT.FU-Berlin.DE X-Spam-Level: Subject: Re: [Seqan-dev] Fwd: Fwd: cmake default without -O3 and order of args/options in cmake call X-BeenThere: seqan-dev@lists.fu-berlin.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: SeqAn Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Aug 2020 11:39:47 -0000 Dear Stefan, thank you for writing us! (I'll answer below) On 8/10/20 1:01 PM, Hannes Hauswedell wrote: > > -------- Forwarded Message -------- > Subject: Fwd: cmake default without -O3 and order of args/options in > cmake call > Date: Sun, 9 Aug 2020 18:03:47 +0200 > From: Stefan Kurtz > Reply-To: kurtz@zbh.uni-hamburg.de > Organization: Universitaet Hamburg > To: eqan-dev-owner@lists.fu-berlin.de > CC: Hannes Hauswedell > > As suggested on the seqan web pages I had send an E-mail to > eqan-dev@lists.fu-berlin.de, but > I received the following message: > --- > Your message has been rejected, probably because you are not > subscribed to the mailing list and the list's policy is to prohibit > non-members from posting to it. If you think that your messages are > being rejected in error, contact the mailing list owner at > seqan-dev-owner@lists.fu-berlin.de. > -- > > Please forward the message to the Seqan developers. Kind regards, Stefan > Kurtz > > > -------- Forwarded Message -------- > Reply-To: kurtz@zbh.uni-hamburg.de > To: seqan-dev@lists.fu-berlin.de > From: Stefan Kurtz > Subject: cmake default without -O3 and order of args/options in cmake call > Organization: Universitaet Hamburg > Message-ID: > Date: Sun, 9 Aug 2020 17:56:49 +0200 > User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) > Gecko/20100101 Thunderbird/68.11.0 > MIME-Version: 1.0 > Content-Type: multipart/mixed; > boundary="------------6508A45FC9F37F3913E7BE76" > Content-Language: en-US > > Dear Seqan3-developers, > > this email refers to the 'Quick Setup (Cmake)' section of SeqAn3 3.0.2. > > 1) I followed the description for the Cmake-setup and noticed in the > example CMakeList.txt > shown at the end of https://docs.seqan.de/seqan/3-master-user/setup.html > that compiler optimization options such as -O3 is missing, which will > lead to poor performance for users who do not recognize it. > I know use > add_compile_options(-DNDEBUG -Wall -Wextra -Wunused-parameter > -Wunused-variable -pedantic -Werror -O3) > > in CmakeLists.txt. Thank you for pointing this out. It is a known fact / best practice in the CMake community that `-DCMAKE_BUILD_TYPE=Release` must be specified to enable optimized builds, e.g. `cmake -DCMAKE_BUILD_TYPE=Release `, but since our documentations should be accessible for "new"  C++ programmers or "new" CMake users, we should add a section that teaches how to enable Release builds. The best-practice in CMake for header-only libraries, like SeqAn2 or SeqAn3, is to specify only the minimal required flags that are needed to compile any given source that uses SeqAn. Additional flags, like hardening options or performance options is up to the application developer and/or package maintainer. The rational is simple, if we would add the `-O3` flag to our cmake export, no-one could do a debug-build any more, because we then would dictate you to always have the `-O3` flag in your Makefile. > > 2) The cmake-setup specifies that one has to call > cmake ../source -DCMAKE_CXX_COMPILER=/path/to/executable/g++-7 > > The help pages of cmake version 3.16.3 on macOS and > cmake version 3.10.2 on Linux state that options come before > arguments, but only the macOS version enforces this. So on my > macOS system only > cmake -DCMAKE_CXX_COMPILER=/path/to/executable/g++-7 ../source > works. To simplify the use for macOS, it is probably better > use this order in the cmake-setup section (and elsewhere) which > works on both platforms. Thank you for this, too :) I created this issue: https://github.com/seqan/seqan3/issues/2017 So if you have a github account, we could move any further discussion there. > > Kind regards, Stefan Kurtz >