Friday, October 23, 2015

Digest for comp.lang.c++@googlegroups.com - 12 updates in 4 topics

David Brown <david.brown@hesbynett.no>: Oct 23 09:41AM +0200

On 22/10/15 23:10, Lynn McGuire wrote:
>> change the decoder version in a single place.
 
> That would work also. But, I've got 20,000 files in my project. File
> minimization is a goal of mine. My sandbox is 12 GB and growing.
 
That change would mean you'd have 20,001 files - that's not a big
difference. But of course, changing all the files to use the new format
could mean a good deal of effort if you use such computed includes a
lot. You might find that the result makes dependency management faster,
which can lead to significantly faster build times on large projects -
but you won't know that unless you try it!
Lynn McGuire <lmc@winsim.com>: Oct 23 02:28PM -0500

On 10/23/2015 2:41 AM, David Brown wrote:
> lot. You might find that the result makes dependency management faster,
> which can lead to significantly faster build times on large projects -
> but you won't know that unless you try it!
 
The rebuild of my largest exe takes about a minute using MSVS 2005 nowadays. That is about 650K LOC, almost all C++.
 
The biggest improvement that I have ever gotten on building is moving to a SSD drive. I now have a Intel 480 GB SSD. Fastest thing
that I have ever seen. Jeff Atwood says that the new PCI Express SSD drives are even much faster than SATA SSD drives.
http://blog.codinghorror.com/building-a-pc-part-viii-iterating/
 
Thanks,
Lynn
David Brown <david.brown@hesbynett.no>: Oct 24 12:25AM +0200

On 23/10/15 21:28, Lynn McGuire wrote:
>> but you won't know that unless you try it!
 
> The rebuild of my largest exe takes about a minute using MSVS 2005
> nowadays. That is about 650K LOC, almost all C++.
 
OK, so your 20,000 files are not all for the same build (presumably they
are libraries or other exe files in the same project). That's more
manageable!
 
> ever seen. Jeff Atwood says that the new PCI Express SSD drives are
> even much faster than SATA SSD drives.
> http://blog.codinghorror.com/building-a-pc-part-viii-iterating/
 
It's a pity you are stuck on Windows for MSVC - if you were using Linux,
the disk speed would mean almost nothing at all (at least with a little
care in setup). Windows is poor at cache management, and will keep
re-reading files from disk instead of keeping them in memory, and delays
while writing files instead of using write-back cache. A rebuild should
not involve any noticeable disk activity - but Windows still is not good
at disk handling (rumour has it that Win10 has made some improvements
here, but I have no experience with it).
 
The biggest improvement I made on compile speed was moving from Windows
to Linux.
scott@slp53.sl.home (Scott Lurndal): Oct 23 01:01PM


>> Uhm, he's not a professor. He's a troll. Probably the same as Mr. Ramine.
 
>He's a potty mouth. That's the only thing I know
>for sure.
 
Potty mouth? What are you, ten?
 
Grow up and don't try to impose your soi disant
morals on everyone else.
woodbrian77@gmail.com: Oct 23 11:03AM -0700

On Friday, October 23, 2015 at 8:02:19 AM UTC-5, Scott Lurndal wrote:
 
> >He's a potty mouth. That's the only thing I know
> >for sure.
 
> Potty mouth? What are you, ten?
 
I'm a sinner saved by G-d's grace.
 
> Grow up and don't try to impose your soi disant
> morals on everyone else.
 
Sorry if my morals offend you. Believers are called
to help others find faith in G-d. We apologize for
the faith. We are G-d's ambassadors.
 
Brian
Ebenezer Enterprises - Psalms 126:6 - Those who go out weeping,
carrying seed to sow, will return with songs of joy, carrying
sheaves with them.
 
http://webEbenezer.net
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 23 07:21PM +0100


> Sorry if my morals offend you. Believers are called
> to help others find faith in G-d. We apologize for
> the faith. We are G-d's ambassadors.
 
Brian you are clueless about your own religion so how can you call
yourself an ambassador of God? You say "G-d" because you think you are
not allowed to write God's name yet "God" isn't God's name; "God" is
actually a title; your God's name (the theonym) is actually YHWH (Jehova).
 
Either way your Bible is a lie, your god doesn't exist and your
preaching is not welcome here.
 
/Flibble
woodbrian77@gmail.com: Oct 23 12:56PM -0700

On Friday, October 23, 2015 at 1:21:57 PM UTC-5, Mr Flibble wrote:
 
> Either way your Bible is a lie, your god doesn't exist and your
> preaching is not welcome here.
 
> /Flibble
 
Hi Leigh,
 
I was thinking of you today. I'm afraid I have some
bad news for you. There's evidence that sausage and
bacon are harmful to people.
 
http://www.telegraph.co.uk/news/health/news/11950018/Bacon-ham-and-sausages-as-big-a-cancer-threat-as-smoking-WHO-to-warn.html
 
I like bacon and sausage, but I haven't eaten them in years.
legalize+jeeves@mail.xmission.com (Richard): Oct 23 12:04AM

[Please do not mail me a copy of your followup]
 
taylor@audulus.com spake the secret code
>> the former and don't waste any brain cycles on the latter.
 
>Well, if a user can crash my app because they misused the scripting API,
>then that's a bug. That's why I'd like the code to be safe.
 
Agreed. I agree that taking reasonable precautions are worthwhile.
I like the idea of template decorations that compile away but reveal
your intention around the usage of a raw pointer. Can this pointer be
nullptr? Who is the owner of this raw pointer? These are reasonable
things to guard against and I like the idea of the support library
defining these helpers that cost you nothing at runtime but allow
tools to identify mismatched intentions. This is really cool stuff.
 
However, I've been in code reviews where people get themselves all
into a contorted knot because they are imaginging programmers that are
either evil or are doing things that are frankly stupid. Things like
"but if I return a reference to a const object from a function, what if
they store the address of the reference?".
 
This is not a reasonable precuation. This is supposing that the other
members of your team are either outright idiots or are intentionally
writing malicious code. Worrying about this stuff is pointless.
 
There are some "Guru of the Week" questions show ways in which you can
intentionally subvert the type system (void *, anyone?) or do even
more malicious things like sneaking your way past the published class
declaration and subtituting your own so that you can poke into private
member variables. This is the sort of stuff that is abnormal, abusive
or idiotic. Trying to guard against this is not only unreasonable, it
is impossible. Without a virtual machine to play traffic cop, you
have access to all the bytes in the program's address space and can do
whatever malicious things you want.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
The Terminals Wiki <http://terminals.classiccmp.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
woodbrian77@gmail.com: Oct 22 08:36PM -0700

> > <https://www.youtube.com/watch?v=hEx5DNLWGgA>
 
> I appreciate you mentioning that. I've been watching those videos intensely the
> past few days :)
 
Any recommendations? I've watched a few of them. Andrei's
talk on allocators was interesting.
 
https://duckduckgo.com/?q=andrei+allocators++vector&ia=videos&iai=LIb3L4vKZ7U
 
Brian
Ebenezer Enterprises - In G-d we trust.
http://webEbenezer.net
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 23 04:16PM +0100

>> will be passing by value, reference, pointer, or what kind of pointer,
>> but instead decide what you'll be using based on the answers.
 
> Does that help?
 
Hi,
 
You can also use shared_ptr in a non-owning mode which will allow you to
have shared_ptrs to both nodes that patches own and nodes with some
other ownership (e.g. a node on the stack). I do something similar in
my C++ GUI library for widget ownership:
 
http://neogfx.org
 
For more information see the shared_ptr aliasing constructor ((8) in
http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr)
 
HTH.
 
/Leigh
asetofsymbols@gmail.com: Oct 23 12:28AM -0700

1) not have fear in use goto
in a function
because from goto born all
2) use return address and never
exceptions
because library has not stop
the program
3) in class use some variable that
says if each element of the class
has the right memory and are ok
as they are born
and use this at start of function
for see if every object of class
is ok (after they are born)
4) use some memory allocator that
find leak and memory errors
5) for portability use fixed size
types as u8 u32 u64 only
6) use some big num class for
signed unsigned, fixed float
limited only from memory
where from float one can say
number of digit ok after the
point
7) use only class, overload, template
and code as C and no other.
use ra2 almost always.
asetofsymbols@gmail.com: Oct 23 12:33AM -0700

I forget
8) for C like code:
use function for return error
code to the caller
 
for code use class
can be useful to have one variable
that says that object is or not is
the error object.
(error object is one object
that used for build other object
has as result one error object)
 
What do you say?
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: