From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1Ws7r8-000610-GB for bitcoin-development@lists.sourceforge.net; Wed, 04 Jun 2014 09:51:38 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.219.46 as permitted sender) client-ip=209.85.219.46; envelope-from=mh.in.england@gmail.com; helo=mail-oa0-f46.google.com; Received: from mail-oa0-f46.google.com ([209.85.219.46]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1Ws7r7-0004wO-AK for bitcoin-development@lists.sourceforge.net; Wed, 04 Jun 2014 09:51:38 +0000 Received: by mail-oa0-f46.google.com with SMTP id g18so7592865oah.33 for ; Wed, 04 Jun 2014 02:51:31 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.47.77 with SMTP id b13mr55206865oen.40.1401875491541; Wed, 04 Jun 2014 02:51:31 -0700 (PDT) Sender: mh.in.england@gmail.com Received: by 10.76.71.162 with HTTP; Wed, 4 Jun 2014 02:51:31 -0700 (PDT) In-Reply-To: <1401822421.27942.YahooMailNeo@web124505.mail.ne1.yahoo.com> References: <1401822421.27942.YahooMailNeo@web124505.mail.ne1.yahoo.com> Date: Wed, 4 Jun 2014 17:51:31 +0800 X-Google-Sender-Auth: 6TGsjyQ372gB_-4q4S10JqJ2aDI Message-ID: From: Mike Hearn To: Ron Content-Type: multipart/alternative; boundary=001a11c21116b15a7e04faff92d8 X-Spam-Score: -0.5 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (mh.in.england[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1Ws7r7-0004wO-AK Cc: "bitcoin-development@lists.sourceforge.net" Subject: Re: [Bitcoin-development] # error "Bitcoin cannot be compiled without assertions." <<< List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2014 09:51:38 -0000 --001a11c21116b15a7e04faff92d8 Content-Type: text/plain; charset=UTF-8 Hi Ron, FYI your mail is being spamfoldered due to Yahoo's DMARC policy and the brokenness of the SF.net mailing list software. I would not expect to get replies reliably whilst this is the case. I think we should move away from SF.net for hosting mailing lists personally, because it's this list that's at fault not Yahoo, but until then you may wish to send to the list with a different email address. As to your question, assert() should have *no* side effects, that is the problem. > > See > > http://books.google.com/books?id=L5ZbzVnpkXAC&pg=PA72&lpg=PA72&dq=Gotcha+%2328+Side+Effects&source=bl&ots=Rn15TlPmje&sig=tymHqta0aSANwaM2GaXC-1Di_tk&hl=en&sa=X&ei=uVKNU47fCcvTsAT6goHIBA&ved=0CCAQ6AEwAA#v=onepage&q=Gotcha%20%2328%20Side%20Effects&f=false > > a great book, BTW. Everyone who thinks they know what they are doing when > they write C++ should read this book! They will realize that they don't > know Jack [image: Roll Eyes] > > Why weren't these and all the other examples of amateur, i.e., > non-professional, software fixed way back in version 0.3.0 in 2010, before > any more releases were done? And why were these and other sub-standard > coding practices continued and expanded in later releases, right up until > the present? > Back in 2010 most code was still being written by Satoshi so perhaps you should ask him. Regardless, it's very common for professional codebases to require assertions be enabled. For example the entire Google C++ codebase uses always-on assertions that have side effects liberally: it's convenient and safe, when you have the guarantee the code will always run, and the performance benefits of compiling out assertions are usually non-existent. So for this reason I think Bitcoin Core currently will fail to build if assertions are disabled, and that seems OK to me. --001a11c21116b15a7e04faff92d8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Ron,

FYI your mail is being spamfold= ered due to Yahoo's DMARC policy and the brokenness of the SF.net maili= ng list software. I would not expect to get replies reliably whilst this is= the case. I think we should move away from SF.net for hosting mailing list= s personally, because it's this list that's at fault not Yahoo, but= until then you may wish to send to the list with a different email address= .

As to your question,

assert() should have = no side effects, that is the problem.

See
http://boo= ks.google.com/books?id=3DL5ZbzVnpkXAC&pg=3DPA72&lpg=3DPA72&dq= =3DGotcha+%2328+Side+Effects&source=3Dbl&ots=3DRn15TlPmje&sig= =3DtymHqta0aSANwaM2GaXC-1Di_tk&hl=3Den&sa=3DX&ei=3DuVKNU47fCcvT= sAT6goHIBA&ved=3D0CCAQ6AEwAA#v=3Donepage&q=3DGotcha%20%2328%20Side%= 20Effects&f=3Dfalse

a great book, BTW.=C2=A0 Everyone who thinks they know what they are doing= =20 when they write C++ should read this book!=C2=A0 They will realize that the= y=20 don't know Jack 3D"Roll

Why weren't these and all the other examples of amat= eur, i.e., non-professional, software fixed way back in version 0.3.0 in 20= 10, before any more releases were done?=C2=A0 And why were these and other = sub-standard coding practices continued and expanded in later releases, right up until the present?

Back in 2010 most code was still being= written by Satoshi so perhaps you should ask him. Regardless, it's ver= y common for professional codebases to require assertions be enabled. For e= xample the entire Google C++ codebase uses always-on assertions that have s= ide effects liberally: it's convenient and safe, when you have the guar= antee the code will always run, and the performance benefits of compiling o= ut assertions are usually non-existent.

So for this reason I think Bitcoin Core currently will = fail to build if assertions are disabled, and that seems OK to me.
--001a11c21116b15a7e04faff92d8--