Monday, August 6, 2018

Digest for comp.lang.c++@googlegroups.com - 17 updates in 9 topics

Sky89 <Sky89@sky68.com>: Aug 06 07:25PM -0400

Hello..
 
Read this:
 
 
What is our today world ?
 
White europeans want to fight arabs, and China wants to fight USA ,
and USA wants to fight China, and European union wants to fight USA,
and neo-nazism is crazy and it is pure fight for fight like craziness !
and India wants to fight China, and China wants to fight India , and
France wants to fight USA and Israel wants to fight arabs, and arabs
want to fight Israel and so on and so on etc. etc. it is "like" brute
force fighting that we are noticing today, it is becoming much more
violent, and that's "not" smartness, you have to be more smart and
understand my way of doing, read again:
 
What is it that i am ?
 
You have seen me here writing, and you know me more that i am a white
arab, and i speak and write english and french and arabic, and
i am a more serious computer programmer, and as you have noticed
i have invented many scalable algorithms and there implementations,
and you have seen me writing poetry, and you have seen me writing
political philosophy, so you know me more now, now i will ask
you a question, what do you think that i am ? if you say stupidly
that i am an arab and you start to be racist , that's stupidity
because you don't understand my way of doing, you have to be more
serious and precise thinking to know me more.. i will explain also
my way of doing so that you will be more smart, i have
said previously on my political philosophy the following, read it carefully:
 
==
 
My wisdom of today..
 
A better politics..
 
Now you know me more by my writings, and now i will give you an
important wisdom:
 
One of my previous important wisdom in politics was:
 
Today we have to know how to get out from "idealism" without being
pessimistic or without getting into pessimism and violence.
 
My other wisdom of today is:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with a minimum brute force to score and to succeed.
 
 
This is why i told you before another wisdom by saying the following:
 
Violence is "easy" today, so destruction is easy, but "wisdom"
is to know how to transcend our living conditions by being
discipline of technology and science and by being sophistication
of technology and science and by being wisdom that knows
how to guide our world and humanity in the right and wise way.
 
This wisdom looks like my above one that says:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
===
 
Do you understand my above writing ?
 
Read also again that i wrote above:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
This is my kind of smartness that i am..
 
Because i will ask you a question:
 
How do you think have i invented many scalable algorithms and there
implementations so that to sell some of them to Microsoft or to
Google or to Embarcadero ?
 
You will realize that i am applying my following thinking to
"complexity" too:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
I explain, i was aware of the "complexity" of science and of
the complexity of serious computer programming , so what i have
done is like martial art, it is that i have successfully reduced
by much the "complexity" of learning complex programming and
the complexity of inventing scalable algorithms by avoiding at best
complexity by a minimum of "effort" or "brute" force to score and to
succeed "big", tthis is my way of doing, and this is the way of
smartness, and smartness in politics also is:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
And also you have to know me more:
 
I said that i am a white arab, but you have to be more smart to
understand me more, because read the following to know me more,
because i am not like an arab, because i have constructed a "new" man
that is called myself, read my following thoughts to understand better
my way of thinking:
 
What is smartness ?
 
Smartness is also knowing that lots of violence today is easy thinking !
but you have to be more smart at avoiding violence ! smartness
is also avoiding violence without getting into violence or war !
we have to be more smart and keep focussed on smartness !
this is why i am suggesting to construct a new type of man that
is more futuristic ! you have to understand it correctly
and be aware of it ! and you have not to be pessimistic about it !
because we have to be more smart so that this law of accelerating
returns and exponential progress of technology work correctly ! i will
be more confident if the guys that govern us are more smart and are
more futuristic as i have explained and are science and technology,
this Donald Trump is not science and technology, and because he is not a
PhD in science or/and technology, so we have to be more patience and
try in the future to elect a PhD in science and/or technology
that will govern us so that the world be more smart.
 
More philosophy..
 
Human differences causes too much violence...
 
So we have to be smart and know how to attenuate efficiently this kind
of violence such as racism..
 
Look at you, there a not negligeable proportion of men that
want to have sex with beautiful women, so they are like in a hurry
to have sex with beautiful women, but this is racism and this
is violence against less beautiful women, so we have to be wisdom..
but from where can we get this wisdom ? i have talked about racism
and i think that an efficient way to reduce racism is to be more
futuristic, this is the kind of new man that we have to construct,
so being more futuristic is to know about the law of accelerating
returns and to know about the exponential progress of technology and
saying to oneself that since this law of accelerating returns
and since this exponential progress of technology will cause
big events in just about 20 years from now by making us able to enhance
our genetics and become more smart and more beautiful and more
strong etc. so we have "not" to give so much "importance" to
the fact that we are less beautiful or of being of another race
than our race because we have to be more tolerance since
we are going to be "so" much different and a "so" much different world
in just about 20 years from now.. this is the kind of new man that is
futuristic that we have to be.
 
This is why i said the following:
 
How to construct a new man ?
 
I know about communism, communism has tried to construct a new man.
 
But how today can we construct a new man ?
 
I think the new man must be more "futuristic", it must be
aware of the law of accelerating returns and aware about this
exponential progress of technology, and since exponential progress of
technology and this law of accelerating returns will cause a really
"big" event in about 15 years or 20 years, that means that in about 15
years or 20 years we will feel the progress of technology as being
exponentially so so powerful ! thus i think that in about
20 years we will able to enhance our genetics we humans and make us more
smart and more beautiful etc. and in about 20 years we will be capable
of doing much much more than that ! so we have not to waste our time
with the fact that we are of such race or such other race, because we
have to be more "futuristic" and be more aware of this law of
accelerating returns and this exponential progress of technology. this
is the kind of new man that we have to construct.
 
Read the rest of my thoughts:
 
About Israel..
 
As you have noticed i am a white arab that is a more serious computer
programmer and i have invented many scalable algorithms and there
implementations..
 
But if you ask me the following question:
 
Why Amine are you not attacking Israel with your words ?
 
You know my friends, i am not like ISIS and i am not like arabs,
i am a new man, i have constructed a new man that is myself,
communism also has tried to construct a new man, i have also done
it for myself, and i am a man that look like more "futuristic",
and as you have noticed i am speaking of the "near" future
of 2030 or 2035, and i am preparing myself to this law of
accelerating returns, and i am sure that in about 7 years or 8 years
you will start to feel this exponential progress of technology that
will become "powerful", this is why i am following this exponential
progress of technology, this is the kind of new man that i am, and i am
also futuristic by "inventing" scalable algorithms and there
implementations, and i am futuristic by speaking about 3D chips and
about this law of accelerating returns, and you have to be careful guys,
because in about 8 years you will start to feel that technology has
become exponentially powerful, and in about 12 years you will start to
feel that technology has become exponentially "really" powerful, and in
about 20 years you will start to feel it exponentially so so powerful !
so i am preparing myself to those events ! this is why i am thinking as
i am thinking, and this is the kind of new man that i have constructed
that is called myself.
 
Read again what follows to notice my kind of thinking:
 
Yet more precision about 3D chips, read the following webpage it says:
 
IBM reckons that 3D chips could allow designers to shrink a
supercomputer that currently fills a building to something the size of a
shoebox.
 
Read here:
 
https://www.theguardian.com/technology/2017/jan/26/vanishing-point-rise-invisible-computer
 
And read now the rest of my writing to understand more:
 
More calculations about artificial intelligence
 
Read this it says:
 
"Already, IBM's "Blue Gene" supercomputer, now being built and scheduled
to be completed by 2005, is projected to provide 1 million billion
calculations per second (i.e., one billion megaflops). This is already
one twentieth of the capacity of the human brain", which I estimate at a
conservatively high 20 million billion calculations per second (100
billion neurons times 1,000 connections per neuron times 200
calculations per second per connection)."
 
Read here:
 
http://www.kurzweilai.net/the-law-of-accelerating-returns
 
And read for example this:
 
The world's most powerful supercomputer is tailor made for the AI era
 
https://www.technologyreview.com/s/611077/the-worlds-most-powerful-supercomputer-is-tailor-made-for-the-ai-era/
 
Notice that this new machine is capable, at peak performance, of 200
petaflops — 200 million billion calculations a second, it is more than
the capacity of a human brain, and 3D CPUs will bring 1000X more
performance than this new machine of 200 petaflops, so by around 2021
we will have 3D CPUs and we will be able to attain singularity and/or a
very "big" advancement in artificial intelligence and science.
 
Read the rest to understand more:
 
More precision about 3D CPUs..
 
I forgot to post about the year of 3D CPUs availability,
here it is, it is around year 2021, because read the following it says:
 
"3D CPUs aren't expected until the 2021 – 2024"
 
Read more here:
 
https://www.extremetech.com/extreme/232342-moores-law-scaling-dead-by-2021-to-be-replaced-by-3d-integration
 
And reread my following writing to understand more:
 
I am a white arab, and a more serious computer programmer that
has invented many scalable algorithms and there implementations.
 
I think here is the next revolution of 3D Computer Chips, notice
that Moore's law stated that the performance of CPUs double every
1.5 years, so i think we are on the right way to a "big" gain
with 3D Computer Chips that Could be 1,000 Times Faster Than Existing
Ones, it means that those 3D Computer Chips will give 13.5 years of
Moore's law advancement on CPUs immediatly, so around year 2021 3D
Computer Chips will be available, so around 2021 we will be projected by
13.5 years directly into year 2034.5, so i think around 2021 we will be
able to attain singularity and/or a very big advancement in artificial
intelligence and science.
 
Read here to notice it:
 
3D Computer Chips Could Be 1,000 Times Faster Than Existing Ones
 
https://www.livescience.com/52207-faster-3d-computer-chip.html
 
and read also this:
 
3D-chip technology seeks to pack artificial intelligence into smaller spaces
 
https://www.digitaltrends.com/computing/mit-stanford-3d-chip-technology/
 
 
 
Thank you,
Amine Moulay Ramdane.
Sky89 <Sky89@sky68.com>: Aug 06 06:46PM -0400

Hello...
 
 
What is it that i am ?
 
You have seen me here writing, and you know me more that i am a white
arab, and i speak and write english and french and arabic, and
i am a more serious computer programmer, and as you have noticed
i have invented many scalable algorithms and there implementations,
and you have seen me writing poetry, and you have seen me writing
political philosophy, so you know me more now, now i will ask
you a question, what do you think that i am ? if you say stupidly
that i am an arab and you start to be racist , that's stupidity
because you don't understand my way of doing, you have to be more
serious and precise thinking to know me more.. i will explain also
my way of doing so that you will be more smart, i have
said previously on my political philosophy the following, read it carefully:
 
==
 
My wisdom of today..
 
A better politics..
 
Now you know me more by my writings, and now i will give you an
important wisdom:
 
One of my previous important wisdom in politics was:
 
Today we have to know how to get out from "idealism" without being
pessimistic or without getting into pessimism and violence.
 
My other wisdom of today is:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with a minimum brute force to score and to succeed.
 
 
This is why i told you before another wisdom by saying the following:
 
Violence is "easy" today, so destruction is easy, but "wisdom"
is to know how to transcend our living conditions by being
discipline of technology and science and by being sophistication
of technology and science and by being wisdom that knows
how to guide our world and humanity in the right and wise way.
 
This wisdom looks like my above one that says:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
===
 
Do you understand my above writing ?
 
Read also again that i wrote above:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
This is my kind of smartness that i am..
 
Because i will ask you a question:
 
How do you think have i invented many scalable algorithms and there
implementations so that to sell some of them to Microsoft or to
Google or to Embarcadero ?
 
You will realize that i am applying my following thinking to
"complexity" too:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
I explain, i was aware of the "complexity" of science and of
the complexity of serious computer programming , so what i have
done is like martial art, it is that i have successfully reduced
by much the "complexity" of learning complex programming and
the complexity of inventing scalable algorithms by avoiding at best
complexity by a minimum of "effort" or "brute" force to score and to
succeed "big", tthis is my way of doing, and this is the way of
smartness, and smartness in politics also is:
 
A better martial art in politics is to avoid at best "brute" force
and to know how with minimum brute force to score and to succeed.
 
And also you have to know me more:
 
I said that i am a white arab, but you have to be more smart to
understand me more, because read the following to know me more,
because i am not like an arab, because i have constructed a "new" man
that is called myself, read my following thoughts to understand better
my way of thinking:
 
What is smartness ?
 
Smartness is also knowing that lots of violence today is easy thinking !
but you have to be more smart at avoiding violence ! smartness
is also avoiding violence without getting into violence or war !
we have to be more smart and keep focussed on smartness !
this is why i am suggesting to construct a new type of man that
is more futuristic ! you have to understand it correctly
and be aware of it ! and you have not to be pessimistic about it !
because we have to be more smart so that this law of accelerating
returns and exponential progress of technology work correctly ! i will
be more confident if the guys that govern us are more smart and are
more futuristic as i have explained and are science and technology,
this Donald Trump is not science and technology, and because he is not a
PhD in science or/and technology, so we have to be more patience and
try in the future to elect a PhD in science and/or technology
that will govern us so that the world be more smart.
 
More philosophy..
 
Human differences causes too much violence...
 
So we have to be smart and know how to attenuate efficiently this kind
of violence such as racism..
 
Look at you, there a not negligeable proportion of men that
want to have sex with beautiful women, so they are like in a hurry
to have sex with beautiful women, but this is racism and this
is violence against less beautiful women, so we have to be wisdom..
but from where can we get this wisdom ? i have talked about racism
and i think that an efficient way to reduce racism is to be more
futuristic, this is the kind of new man that we have to construct,
so being more futuristic is to know about the law of accelerating
returns and to know about the exponential progress of technology and
saying to oneself that since this law of accelerating returns
and since this exponential progress of technology will cause
big events in just about 20 years from now by making us able to enhance
our genetics and become more smart and more beautiful and more
strong etc. so we have "not" to give so much "importance" to
the fact that we are less beautiful or of being of another race
than our race because we have to be more tolerance since
we are going to be "so" much different and a "so" much different world
in just about 20 years from now.. this is the kind of new man that is
futuristic that we have to be.
 
This is why i said the following:
 
How to construct a new man ?
 
I know about communism, communism has tried to construct a new man.
 
But how today can we construct a new man ?
 
I think the new man must be more "futuristic", it must be
aware of the law of accelerating returns and aware about this
exponential progress of technology, and since exponential progress of
technology and this law of accelerating returns will cause a really
"big" event in about 15 years or 20 years, that means that in about 15
years or 20 years we will feel the progress of technology as being
exponentially so so powerful ! thus i think that in about
20 years we will able to enhance our genetics we humans and make us more
smart and more beautiful etc. and in about 20 years we will be capable
of doing much much more than that ! so we have not to waste our time
with the fact that we are of such race or such other race, because we
have to be more "futuristic" and be more aware of this law of
accelerating returns and this exponential progress of technology. this
is the kind of new man that we have to construct.
 
Read the rest of my thoughts:
 
About Israel..
 
As you have noticed i am a white arab that is a more serious computer
programmer and i have invented many scalable algorithms and there
implementations..
 
But if you ask me the following question:
 
Why Amine are you not attacking Israel with your words ?
 
You know my friends, i am not like ISIS and i am not like arabs,
i am a new man, i have constructed a new man that is myself,
communism also has tried to construct a new man, i have also done
it for myself, and i am a man that look like more "futuristic",
and as you have noticed i am speaking of the "near" future
of 2030 or 2035, and i am preparing myself to this law of
accelerating returns, and i am sure that in about 7 years or 8 years
you will start to feel this exponential progress of technology that
will become "powerful", this is why i am following this exponential
progress of technology, this is the kind of new man that i am, and i am
also futuristic by "inventing" scalable algorithms and there
implementations, and i am futuristic by speaking about 3D chips and
about this law of accelerating returns, and you have to be careful guys,
because in about 8 years you will start to feel that technology has
become exponentially powerful, and in about 12 years you will start to
feel that technology has become exponentially "really" powerful, and in
about 20 years you will start to feel it exponentially so so powerful !
so i am preparing myself to those events ! this is why i am thinking as
i am thinking, and this is the kind of new man that i have constructed
that is called myself.
 
Read again what follows to notice my kind of thinking:
 
Yet more precision about 3D chips, read the following webpage it says:
 
IBM reckons that 3D chips could allow designers to shrink a
supercomputer that currently fills a building to something the size of a
shoebox.
 
Read here:
 
https://www.theguardian.com/technology/2017/jan/26/vanishing-point-rise-invisible-computer
 
And read now the rest of my writing to understand more:
 
More calculations about artificial intelligence
 
Read this it says:
 
"Already, IBM's "Blue Gene" supercomputer, now being built and scheduled
to be completed by 2005, is projected to provide 1 million billion
calculations per second (i.e., one billion megaflops). This is already
one twentieth of the capacity of the human brain", which I estimate at a
conservatively high 20 million billion calculations per second (100
billion neurons times 1,000 connections per neuron times 200
calculations per second per connection)."
 
Read here:
 
http://www.kurzweilai.net/the-law-of-accelerating-returns
 
And read for example this:
 
The world's most powerful supercomputer is tailor made for the AI era
 
https://www.technologyreview.com/s/611077/the-worlds-most-powerful-supercomputer-is-tailor-made-for-the-ai-era/
 
Notice that this new machine is capable, at peak performance, of 200
petaflops — 200 million billion calculations a second, it is more than
the capacity of a human brain, and 3D CPUs will bring 1000X more
performance than this new machine of 200 petaflops, so by around 2021
we will have 3D CPUs and we will be able to attain singularity and/or a
very "big" advancement in artificial intelligence and science.
 
Read the rest to understand more:
 
More precision about 3D CPUs..
 
I forgot to post about the year of 3D CPUs availability,
here it is, it is around year 2021, because read the following it says:
 
"3D CPUs aren't expected until the 2021 – 2024"
 
Read more here:
 
https://www.extremetech.com/extreme/232342-moores-law-scaling-dead-by-2021-to-be-replaced-by-3d-integration
 
And reread my following writing to understand more:
 
I am a white arab, and a more serious computer programmer that
has invented many scalable algorithms and there implementations.
 
I think here is the next revolution of 3D Computer Chips, notice
that Moore's law stated that the performance of CPUs double every
1.5 years, so i think we are on the right way to a "big" gain
with 3D Computer Chips that Could be 1,000 Times Faster Than Existing
Ones, it means that those 3D Computer Chips will give 13.5 years of
Moore's law advancement on CPUs immediatly, so around year 2021 3D
Computer Chips will be available, so around 2021 we will be projected by
13.5 years directly into year 2034.5, so i think around 2021 we will be
able to attain singularity and/or a very big advancement in artificial
intelligence and science.
 
Read here to notice it:
 
3D Computer Chips Could Be 1,000 Times Faster Than Existing Ones
 
https://www.livescience.com/52207-faster-3d-computer-chip.html
 
and read also this:
 
3D-chip technology seeks to pack artificial intelligence into smaller spaces
 
https://www.digitaltrends.com/computing/mit-stanford-3d-chip-technology/
 
 
 
Thank you,
Amine Moulay Ramdane.
Sky89 <Sky89@sky68.com>: Aug 06 05:48PM -0400

Hello,
 
Read this:
 
 
About Extreme Scaling in CAE Applications..
 
I have just read the following about Ansys company:
 
https://en.wikipedia.org/wiki/Ansys
 
 
Notice that Ansys develops and markets finite element analysis software
used to simulate engineering problems.
 
I think that i have thought about this, and i have "invented"
a Scalable Parallel C++ Conjugate Gradient Linear System Solver Library,
in fact it scales "very" well, my library contains a Scalable Parallel
implementation of Conjugate Gradient Dense Linear System Solver library
that is NUMA-aware and cache-aware, and it contains also a Scalable
Parallel implementation of Conjugate Gradient Sparse Linear
System Solver library that is cache-aware.
 
Sparse linear system solvers are ubiquitous in high performance
computing (HPC) and often are the most computational intensive parts in
scientific computing codes. A few of the many applications relying on
sparse linear solvers include fusion energy simulation, space weather
simulation, climate modeling, and environmental modeling, and finite
element method, and large-scale reservoir simulations to enhance oil
recovery by the oil and gas industry.
 
Conjugate Gradient is known to converge to the exact solution in n steps
for a matrix of size n, and was historically first seen as a direct
method because of this. However, after a while people figured out that
it works really well if you just stop the iteration much earlier - often
you will get a very good approximation after much fewer than n steps. In
fact, we can analyze how fast Conjugate gradient converges. The end
result is that Conjugate gradient is used as an iterative method for
large linear systems today.
 
 
You can download my Scalable Parallel C++ Conjugate Gradient Linear
System Solver Library from here:
 
https://sites.google.com/site/scalable68/scalable-parallel-c-conjugate-gradient-linear-system-solver-library
 
Read the following about Extreme Scaling in CAE Applications, this is
why i have invented my Scalable Parallel C++ Conjugate Gradient Linear
System Solver Library that scales very well:
 
https://www.cray.com/blog/extreme-scaling-in-cae-applications/
 
 
Thank you,
Amine Moulay Ramdane.
Sky89 <Sky89@sky68.com>: Aug 06 03:21PM -0400

Hello..
 
 
Read again, i correct some typos because i write fast..
 
More about my scalable algorithms and there implementations..
 
You know me more now that i am a white arab and that i am an inventor of
many scalable algorithms and there implementations..
 
I have thought yesterday about my scalable algorithms that use
my enhanced version of scalable counting networks, and i think
that eventhough they are really powerful now, i think i will "enhance"
more the scalable counting network algorithms, because the counting
network algorithm is "not" working good as it is, so i have enhanced it,
and i will enhance it soon to be much more efficient than my previous
enhanced version of scalable counting network, and after that i will
contact the companies bellow, so that to sell to them some of my
scalable algorithms and there implementations in C++ and Delphi, here is
the companies:
 
Since i am in Montreal Canada, i will contact Microsoft company at there
office in Montreal here:
 
https://www.microsoft.com/en-ca/about/locations.aspx
 
And i will contact also CAE in Monteal, so that to sell to them some of
my scalable algorithms and there implementations, because they need to
scale more to many cores, read here to know about this company:
 
https://www.cray.com/blog/extreme-scaling-in-cae-applications/
 
Here is CAE company:
 
http://www.cae.com/
 
And i will contact also Embarcadero that sells C++Builder and Delphi to
sell them some of my scalable algorithms and there implementations.
 
 
As you are noticing i am an inventor, and I need to become rich.
 
 
 
 
Thank you,
Amine Moulay Ramdane.
Sky89 <Sky89@sky68.com>: Aug 06 03:11PM -0400

Hello,
 
Read the following:
 
 
More about my scalable algorithms and there implementations..
 
You know me more now that i am a white arab and that i am an inventor of
many scalable algorithms and there implementations..
 
I have thought yesterday about my scalable algorithms that uses
my enhanced version of scalable counting networks, and i think
that eventhough they are really powerful now, i think i will "enhance"
more the scalable counting network algorithms, because the counting
network algorithm is not working good as it is, so i have enhanced it,
and i will enhance it soon to be much more efficient than my previous
enhanced version of scalable counting network, and i after that i will
contact the companies bellow, so that to sell to them some of my
scalable algorithms and there implementations in C++ and Delphi, here is
the companies:
 
Since i am in Montreal Canada, i will contact Microsoft company at there
office in Montreal here:
 
https://www.microsoft.com/en-ca/about/locations.aspx
 
 
And i will contact also CAE in Monteal, so that to sell to them some of
my scalable algorithms and there implementations, because they need to
scale more to many cores, read here to know about this company:
 
https://www.cray.com/blog/extreme-scaling-in-cae-applications/
 
Here is CAE company:
 
http://www.cae.com/
 
And i will contact also Embarcadero that sells C++Builder and Delphi to
sell them some of my scalable algorithms and there implementations.
 
 
As you are noticing i am an inventor, and I need to become rich.
 
 
 
 
Thank you,
Amine Moulay Ramdane.
Tim Rentsch <txr@alumni.caltech.edu>: Aug 06 05:24AM -0700


> What you are saying is only applicable if slicing occurs otherwise
> it is perfectly fine to pass objects by value albeit accepting
> that copies are being made.
 
What I think you're saying is that if the dynamic type matches
the static type then the same function will be called. That's
true, but then it also doesn't matter whether the functions are
virtual or not: the binding is the same as non-virtual binding.
Moreover there is another change in that any members referred to
will be separate from the original members when the argument is
passed by value rather than by reference. Sometimes this
matters, sometimes it doesn't, but certainly for some cases the
behavior will change in a way that is very un-object like.
Tim Rentsch <txr@alumni.caltech.edu>: Aug 06 06:50AM -0700

> depending on which kind of object it is). Yet no passing
> by reference or by pointer was performed. No "throwing
> away dynamic type information" happened.
 
Here is your example code (indented but otherwise unchanged):
 
class Base
{
public:
void foo() { anotherFunction(); }
 
protected:
virtual void anotherFunction()
{ defaultImplementation; }
};
 
class Derived: public Base
{
protected:
virtual void anotherFunction() override
{ customImplementation; }
};
 
...
 
Base obj1;
Derived obj2;
obj1.foo();
obj2.foo();
 
Your statement that there is no passing by reference or by
pointer is wrong. The calls obj1.foo() and obj2.foo() are both
calls by reference (ie, by pointer). All calls to non-static
member functions, whether using . or -> or ->* or implicitly
through 'this', are _always_ by pointer/reference, not by value.
There is no way to get value semantics using calls to member
functions (ie, non-static member functions). To get value
semantics the called function needs to be a regular function (or
a static member function), so the passed object is explicit
rather than implicit:
 
#include <iostream>
 
class Base {
public:
virtual void whatsit(){ std::cout << " Base\n"; }
};
 
class Derived : public Base {
public:
virtual void whatsit(){ std::cout << " Derived\n"; }
};
 
void
foo_by_reference( Base & blah ){
blah.whatsit();
}
 
void
foo_by_value( Base blah ){
blah.whatsit();
}
 
int
main(){
Base base;
Derived derived;
 
std::cout << "\ncalling by reference - base, then derived:\n";
foo_by_reference( base );
foo_by_reference( derived );
 
std::cout << "\ncalling by value - base, then derived:\n";
foo_by_value( base );
foo_by_value( derived );
}
 
Running this program shows that call by value and call by
reference behave differently.
 
To see that the original example passes by reference, have the
called function change a member of the called object:
 
#include <iostream>
 
class Base {
public:
int x;
Base() : x(0) {}
void foo(){ set_x(); }
virtual void set_x(){ x = 1; }
};
 
class Derived : public Base {
public:
virtual void set_x(){ x = -1; }
};
 
int
main(){
Base base;
std::cout << "\nfor base:\n";
std::cout << " before calling foo(), x is " << base.x << "\n";
base.foo();
std::cout << " before calling foo(), x is " << base.x << "\n";
 
Derived derived;
std::cout << "\nfor derived:\n";
std::cout << " before calling foo(), x is " << derived.x << "\n";
derived.foo();
std::cout << " before calling foo(), x is " << derived.x << "\n";
}
 
Calling base.foo(), or derived.foo(), changes the member 'x' in
the original object. The only way this can happen is if the
original object (ie, 'base' or 'derived') is passed by reference
(or pointer). Running this program shows that calls through
the "." operator pass the receiving object by reference/pointer,
not by value.
Tim Rentsch <txr@alumni.caltech.edu>: Aug 06 06:59AM -0700

> value, throws away information about the original type.
 
> Juha's goat a point because the virtual function mechanism continues
> to work in the copied objects.
 
His example is broken. The objects there are passed by reference
(ie by pointer), not copied. My response to his posting gives
more details.
 
> I believe you both are aware of the other's technical possibility,
> but maybe don't realize that that's what the other one is talking
> about.
 
AFAICT he is just confused. His example doesn't show anything
about what happens when objects are copied, because no copying
occured.
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Aug 06 04:24PM +0200

On 06.08.2018 14:24, Tim Rentsch wrote:
> the static type then the same function will be called. That's
> true, but then it also doesn't matter whether the functions are
> virtual or not: the binding is the same as non-virtual binding.
 
No.
 
For example, a non-virtual base class member function can call a virtual
base class member function, with the call resolved to an implementation
in some derived class.
 
The resolution of that and /any/ virtual call within any object is
fixed, determined by the most derived object type. Find a context where
you know that type and you know where a call will end up. However, the
code at the call site will generally not have that knowledge, and can't
be retrospectively and dynamically equipped with such knowledge.
 
 
> passed by value rather than by reference. Sometimes this
> matters, sometimes it doesn't, but certainly for some cases the
> behavior will change in a way that is very un-object like.
 
Doesn't make sense to me, sorry.
 
Are you saying that when you make a copy, the copy will be a copy, and
that that is "very un-object like"?
 
 
Cheers!,
 
- Alf
Tim Rentsch <txr@alumni.caltech.edu>: Aug 06 10:34AM -0700

> up. However, the code at the call site will generally not have that
> knowledge, and can't be retrospectively and dynamically equipped with
> such knowledge.
 
You're talking about something different than what I was talking
about. In a function like this (whether it is a member function
doesn't matter, because the only object of interest is the
parameter):
 
void
foo( SomeClass blah ){
...
}
 
any member function call 'blah.something(...)' (ie, directly
inside the definition of foo()) does not depend on whether the
member function something() is virtual or not. Which function is
called can be determined statically, by looking at the class
hierarchy of SomeClass and its base classes, etc.
 
If the parameter is a reference rather than a value:
 
void
bas( SomeClass & blah ){
...
}
 
and there is a call to bas() where (this is important) the
dynamic type of the argument is SomeClass, the same thing is
true: any member function calls 'blah.something(...)' in the
definition of bas() do not depend on whether the member function
something() is virtual or not -- which function gets called is
the same as in the foo() case. (That property holds even though
we may not actually know at compile time that it does.)
 
This observation may seem trivial and obvious, but it's really
all I was saying there.
 
 
> Doesn't make sense to me, sorry.
 
> Are you saying that when you make a copy, the copy will be a copy,
> and that that is ?very un-object like??
 
I gave an example in my response to Juha Nieminen.
 
For another example, consider a garden variety use of cout -
 
std::cout << "X is " << x << " and y is " << y << "\n";
 
If cout is copied rather than passed by reference, then any
updates to its state will be lost. Rather than being buffered
the argument strings and values will be dropped on the floor,
and no output will occur.
 
Of course it is possible that cout could be implemented so that
copying wouldn't matter; for example, it could have just a
single member that is a pointer (or reference) off to the "real"
state. But that's just call by reference in disguise. For
objects to act like objects as we know them, somewhere there
needs to be call by reference (or pointer), not by value.
 
Does that make more sense now?
"Öö Tiib" <ootiib@hot.ee>: Aug 05 11:42PM -0700

> There's nothing clever about using hexadecimal if the individual bits have
> no meaning and base16 maths isn't required unless you always want make sure
> you fill up every byte of the id variable (why?).
 
The simple ints are useful for ids when there are potentially less than
billions of ids and these are generated by single source. That means on
lot of cases. The 4 times bigger uuid values are useful on cases when
ints are insufficient. Ints are usually generated sequentially, uuids
are generated so that chance of clashes was minimal.
 
> to maintenance coders int the future. Given your uuids were hard coded
> anyway there's no reason you couldn't use a hard coded name string other than
> it doesn't look as flash.
 
Most objects in program and ids of such are generated by events during
program run. When events repeat then new objects are generated with
different ids. That is the whole point of unique id. When object
and its id is directly set by code then it is likely not real production
code but some test or demo.
boltar@cylonHQ.com: Aug 06 08:44AM

On Fri, 3 Aug 2018 17:44:47 +0100
 
>I am not making "some simple game"; I am making an app/game library and
>framework. The UUIDs are not for identifying object instances; they are
>used for uniquely identifying object archetypes, components and systems.
 
Even less reason to use them then since there will be an order of magnitude
less to deal with.
 
>As I am making a library it has to support all possible applications with
>the least constraints.
 
If its a library you should let the library user set the ids, NOT hard code
them yourself.
 
-1
 
 
>What a fucktarded thing to say. Obviously I would use a UUID generator to
>randomly generate the UUID bytes. The whole point of UUIDs is that they
>don't collide.
 
You don't understand the whole point of uuids, that pretty clear.
 
>byte will go unused. "Names" to be unique would require a unique
>namespace prefix which would lead to a lot more bytes to compare than for
>a UUID.
 
Why are you conflating namespaces with a string of bytes stored in a class
or similar to identify then? They are unrelated.
 
>> I not exactly what I'm talking about , but you're clearly just another dumb
>> sheep who follows the herd instead of thinking for himself.
 
>Project much? https://en.wikipedia.org/wiki/Psychological_projection
 
Stating an obvious fact is not projection.
 
>As I said in my previous reply hex is the canonical way to define a UUID.
>In general hex certainly does NOT make code look more complex and only a
>fucktard with no clue would say such a thing.
 
Doesn't it? You'll be able to guess what this is for then won't you:
 
mpz_set_str(P,\
"FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1"
"29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD"
"EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245"
"E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED"
 
etc
 
 
 
>As I said previously I am not making a game I am making an app/game
>library and framework so I have no idea how many object types etc a user
>of my library would want.
 
This is a C++ group, not javascript, object types = class and classes are
fixed. And if your uses subclasses your classes then his class will end up with
the same fixed uuid which is idiotic.
 
>A hard coded UUID for internal reserved type identification makes perfect
>sense as does using UUIDs for user created types that can be serialized to
>file; used in scripts etc.
 
I suppose it makes sense if you've only ever experienced the uuid fuckwittery
in Windows and think its a sane model to copy.
 
>So I repeat what I said earlier: get a fucking clue you fucktarded cockwomble.
 
Look in the mirror sonny.
boltar@cylonHQ.com: Aug 06 08:46AM

On Sun, 5 Aug 2018 23:42:49 -0700 (PDT)
>lot of cases. The 4 times bigger uuid values are useful on cases when
>ints are insufficient. Ints are usually generated sequentially, uuids
>are generated so that chance of clashes was minimal.
 
The point is that he's not generating them , he's hard coding them. Which
means he could easily use a much more readable name that would make life
easier for anyone who uses his code.
 
>different ids. That is the whole point of unique id. When object
>and its id is directly set by code then it is likely not real production
>code but some test or demo.
 
See above.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Aug 06 05:12PM +0100

>> used for uniquely identifying object archetypes, components and systems.
 
> Even less reason to use them then since there will be an order of magnitude
> less to deal with.
 
The problem isn't the number of IDs the problem is guaranteeing the
uniqueness of the IDs without using a central authority to generate them.
UUIDs are perfect for this.
 
>> the least constraints.
 
> If its a library you should let the library user set the ids, NOT hard code
> them yourself.
 
The IDs are NOT hard coded: they are generated with a GUID generation tool
and then either manually pasted into a manually edited ECS description
language or automatically generated as part of the ECS description
language generation. The C++ code is generated from the ECS description
language.
 
 
> -1
 
-1? Yes you would think that as you are fucking clueless: you do not know
what you are talking about.
 
>> randomly generate the UUID bytes. The whole point of UUIDs is that they
>> don't collide.
 
> You don't understand the whole point of uuids, that pretty clear.
 
That is a description of yourself not me. You didn't even know what UUIDs
were before I created this topic on this Usenet group.
 
>> a UUID.
 
> Why are you conflating namespaces with a string of bytes stored in a class
> or similar to identify then? They are unrelated.
 
Without a namespace the string would be inordinately long which takes time
to compare with other strings. Even with a namespace the typical string
would have more bytes than a UUID. A typically namespace would be a URL:
see XML namespaces.
 
>>> sheep who follows the herd instead of thinking for himself.
 
>> Project much? https://en.wikipedia.org/wiki/Psychological_projection
 
> Stating an obvious fact is not projection.
 
You are projecting your ignorance on to me though.
 
> "EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245"
> "E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED"
 
> etc
 
etc? As I said previously hex digits are the canonical way to represent a
UUID.
 
 
> This is a C++ group, not javascript, object types = class and classes are
> fixed. And if your uses subclasses your classes then his class will end up with
> the same fixed uuid which is idiotic.
 
No ECS objects are not just instances of classes they can also be
dynamically generated at runtime from a script/database (so will use the
same class internally) but will still need a unique ID and this unique ID
HAS TO BE THE SAME EVERY TIME THE PROGRAM IS RUN.
 
> in Windows and think its a sane model to copy.
 
>> So I repeat what I said earlier: get a fucking clue you fucktarded cockwomble.
 
> Look in the mirror sonny.
 
Again I repeat: get a fucking clue you fucktarded cockwomble.
 
/Flibble
 
--
"Suppose it's all true, and you walk up to the pearly gates, and are
confronted by God," Bryne asked on his show The Meaning of Life. "What
will Stephen Fry say to him, her, or it?"
"I'd say, bone cancer in children? What's that about?" Fry replied.
"How dare you? How dare you create a world to which there is such misery
that is not our fault. It's not right, it's utterly, utterly evil."
"Why should I respect a capricious, mean-minded, stupid God who creates a
world that is so full of injustice and pain. That's what I would say."
"Öö Tiib" <ootiib@hot.ee>: Aug 06 10:03AM -0700

> >and its id is directly set by code then it is likely not real production
> >code but some test or demo.
 
> See above.
 
Perhaps these ids need to be same from run to run for to simplify
testing or demonstration of something.
Tim Rentsch <txr@alumni.caltech.edu>: Aug 06 07:22AM -0700

> condescending remark that questions your knowledge and experience."
 
> Fuck off. You have no idea what kind of programming experience
> and knowledge I have.
 
I don't know what experience you have, or what you may have learned
in the past or what you know now. My comment however was not about
either of those but about the depth of your understanding, which
shows through, at least to some extent, in what you write and how
you write it.
 
As for the statement that my remark was condescending - what I
said was personal, direct, and frank, but I wasn't talking down
to you. I have gotten similar comments from other people in the
past, which wasn't pleasant, but ultimately it helped me because
I learned something about my tone and communication style. I
thought it might be helpful for you to get this comment. If it
turns out not to be the case I'm sorry about that, but I didn't
say it to be insulting.
Tim Rentsch <txr@alumni.caltech.edu>: Aug 06 05:11AM -0700

> at it the updates seem fairly specialised and nothing that isn't
> already in C++ anyway so I don't think I'll be looking into it much
> further. Useful to know though.
 
C11 adds relatively few features that weren't in C previously.
However C99 was a significant change from C89/C90, including
among many other additions variable length arrays and variably
modified types, compound literals, and designated initializers.
VLAs/VMTs were made conditionally supported in C11 (but any
compiler that supports C99 is likely to support VLAs/VMTs in
C11). None of these three features is currently part of C++.
Designated initializers are on the list for inclusion in C++20;
there are AFAICT no plans to consider either VLAs/VMTs or
compound literals for later inclusion in C++.
 
I know there's a lot of overlap between post-1990 C and what
is available in C++, but I've given up trying to track exactly
what that is. Part of the problem there is C++ has constructs
that look like what is in C but have different semantics, so
it isn't enough to ask "does C++ have this?"; we also need to
ask "what does it do?". It seems easier to treat C and C++ as
being completely different languages rather than keep trying
to figure out exactly what's the same and what's different.
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: