Monday, June 4, 2018

Digest for comp.lang.c++@googlegroups.com - 25 updates in 5 topics

woodbrian77@gmail.com: Jun 03 05:04PM -0700

On Sunday, June 3, 2018 at 3:26:57 PM UTC-5, Daniel wrote:
> group/onwards
 
> https://github.com/Ebenezer-group/onwards/issues
 
> Unless there's another explanation ...
 
Joseph had dreams about the future and shared his dreams
with his brothers. They reacted badly and thought about
killing him. They wound up selling him as a slave. They
had a baseless hatred against their brother.
 
When I started working on my software in 1999, it wasn't
obvious that ++C would remain one of best languages for
software development. It also wasn't obvious that an
on-line approach (cloud computing) would become so
important. So I say "thanks G-d" for helping me get
those and other things right.
 
https://www.biblestudytools.com/john/passage/?q=john+15:18-25
 
 
Brian
Ebenezer Enterprises
http://webEbenezer.net
Daniel <danielaparker@gmail.com>: Jun 03 06:11PM -0700

On Sunday, June 3, 2018 at 6:25:24 PM UTC-4, Ian Collins wrote:
 
> Would you consider writing a detailed design to bridge the gap between
> what the user asks for and the code as sampling the specification?
 
Probably not anymore :-) Because I don't want to, and don't have to.
 
> If where is the conceit? If no, how does a requirement written in prose
> differ from one written in code?
 
I work mostly on financial trading and risk projects. The specification
such as it is consists of a wide variety of business documents, technical
notes that can be expected to contain errors, dozens of matlab scipts,
spreadsheets and VBA code, interview notes, business processes (a guy runs
over to a Bloomberg terminal and downloads some data daily) and much else. I
regard this collective body of artifacts as the "specification", to be
reflected upon and used as the basis for a computer application.
 
In general I would say that a requirement written in prose is easier to read
and think about than one written in code. It's nice to have specifications
written in a formal notation such as BNF, but even that requires some
supplementary prose.
> these ended up being a subset of the actual test cases for the code. So
> the tests were more detailed than the formal detailed design; at least
> until they were fed back into the design.
 
If you're generating test cases from the clauses in formal notation, I don't see how that's test first.
 
Best regards,
Daniel
seeplus <boardmounrt@gmail.com>: Jun 03 06:58PM -0700


> Brian
> Ebenezer Enterprises
> http://webEbenezer.net
 
So you have a robot snipping away the cancer around your prostate gland....
Would you prefer:
- The programmer thought long and hard and decided not to
use "auto" in this case OR:
 
- Just prayed to a mythical faery that some divine inspired snipping
"for loop" should work .... somehow?
Ian Collins <ian-news@hotmail.com>: Jun 04 02:14PM +1200

On 04/06/18 13:11, Daniel wrote:
 
>> Would you consider writing a detailed design to bridge the gap between
>> what the user asks for and the code as sampling the specification?
 
> Probably not anymore :-) Because I don't want to, and don't have to.
 
Me too, thanks to tests :)
 
> and think about than one written in code. It's nice to have specifications
> written in a formal notation such as BNF, but even that requires some
> supplementary prose.
 
It is also something a typical customer, or in our case, product
specialists and UX team lack the skills to produce. Even when written
in formal notation, you still can't guarantee a written specification
truly reflects the code.
 
I also believe most programmers fall asleep way sooner reading
requirements that reading code..
 
>> the tests were more detailed than the formal detailed design; at least
>> until they were fed back into the design.
 
> If you're generating test cases from the clauses in formal notation, I don't see how that's test first.
 
Well the test cases were empty prototypes that did come before the code...
 
This was an investigation into generating documentation with validated
links between clauses in the various layers. The test case was just the
final step to verify that each clause had a test.
 
--
Ian.
Juha Nieminen <nospam@thanks.invalid>: Jun 04 07:12AM

> On 02/06/18 14:17, Mr Flibble wrote:
>> I see Ian Collins is on his TDD high horse again. Fecking clueless.
 
> Feel free to write code that you don't know works.
 
I think that TDD is poorly suited for the kind of programming I do,
which is graphically-heavy video games.
 
How exactly do you write a unit test for "this sprite should appear
here, and its fragment shader should make it look like this"?
 
There are certain things that could ostensibly be automatically tested,
but the machinery required to do that feels excessively laborious and
complicated to implement. Such as something like "when the projectile
shot by the player hits this enemy sprite, it should launch this particle
effect and run this fragment shader". I suppose theoretically that could
be automatically tested, but the code required for it would be quite
complicated.
 
Another thing I have noticed about TDD is that it's difficult to test
the behavior of private member functions (without exposing them to
outside code, breaking object-oriented modularity design.) Essentially
you would need to add testing code to the class itself, which I think
isn't something TDD is supposed to do.
David Brown <david.brown@hesbynett.no>: Jun 04 09:12AM +0200

> with his brothers. They reacted badly and thought about
> killing him. They wound up selling him as a slave. They
> had a baseless hatred against their brother.
 
Are you trying to say you think people hate you? They don't - not as
far as I can see. I dislike some of your opinions (like your
homophobia), and I advise against mixing personal philosophies and
religion with professional work, but I certainly don't /hate/ you. I
would not be trying to give you advice if I did!
 
Or are you saying people are afraid of your dreams? If so, that is
utter nonsense. You can see what people think of your online code
generator plans - the reaction is /not/ one of fear.
 
Or are you simply showing your megalomania again? You have previously
claimed to be a second Noah and Jesus's appointed vice-president on
earth with special responsibilities for C++. So maybe being merely a
reincarnated Joseph is progress.
 
"But the fact that some geniuses were laughed at does not imply that all
who are laughed at are geniuses. They laughed at Columbus, they laughed
at Fulton, they laughed at the Wright Brothers. But they also laughed at
Bozo the Clown." Carl Sagan
 
 
 
> When I started working on my software in 1999, it wasn't
> obvious that ++C would remain one of best languages for
> software development.
 
It was a solid bet at the time that C++ would remain popular for a good
while to come. Not a sure bet, but a reasonable one. And it was a
self-fulfilling prophesy, because every second programmer the world over
made exactly the same bet.
 
> It also wasn't obvious that an
> on-line approach (cloud computing) would become so
> important.
 
Betting on online code generation in 1999 would certainly have been a
bold move. Betting on online "something" or "the internet" was not
unreasonable.
 
But while cloud computing is important, online code generation is almost
entirely irrelevant.
 
> So I say "thanks G-d" for helping me get
> those and other things right.
 
Thank whoever you want for your successes (but don't forget to blame
them equally for your failures or disappointments). Just don't expect
others to hold the same views. And if you want to get any customers,
you might want to tell them that it was in fact /you/ who had the ideas
and wrote the code. No potential customer is going to want code written
by your god - they will only come to you for code /you/ wrote.
Ian Collins <ian-news@hotmail.com>: Jun 04 07:49PM +1200

On 04/06/18 19:12, Juha Nieminen wrote:
 
>> Feel free to write code that you don't know works.
 
> I think that TDD is poorly suited for the kind of programming I do,
> which is graphically-heavy video games.
 
I have never worked in that field, so I can't really comment.
 
> How exactly do you write a unit test for "this sprite should appear
> here, and its fragment shader should make it look like this"?
 
Our UI teams do unit test similar component functionality, but again
that is not my area.
 
> effect and run this fragment shader". I suppose theoretically that could
> be automatically tested, but the code required for it would be quite
> complicated.
 
Some of our test support infrastructure is very complex, but it only had
to be written once and it is very widely used, so the investment was
worth while. If the code doesn't have a long lifetime, it might not be
worth the cost. We have a considerable amount of legacy (early 2000s)
code which was never designed for test, if the code was, testing would
be much easier.
 
> outside code, breaking object-oriented modularity design.) Essentially
> you would need to add testing code to the class itself, which I think
> isn't something TDD is supposed to do.
 
If the functionality can't be tested through the public interface, the
usual approach (which often occurs when working with existing code) is
to extract the private member function functionality into a class and
test that. This does, surprisingly often, produce a useful reusable
component.
 
--
Ian.
leigh.v.johnston@googlemail.com: Jun 04 04:22AM -0700

On Monday, June 4, 2018 at 8:49:54 AM UTC+1, Ian Collins wrote:
> to extract the private member function functionality into a class and
> test that. This does, surprisingly often, produce a useful reusable
> component.
 
Reducing encapsulation in the process. I have said before that TDD is the enemy of encapsulation and therefore by extension an enemy of good design as encapsulation is an important design principle.
 
/Leigh
James Kuyper <jameskuyper@alumni.caltech.edu>: Jun 04 11:54AM -0400

On 06/03/2018 09:26 AM, Daniel wrote:
> nonsensical to talk about "100" percent coverage unless you're talking
> about software verified through mathematical proof, and if you're
> talking about that, you're not talking about C++.
 
I worked for awhile under a requirement that our unit tests provide 100%
coverage of our code - but I strongly suspect that what we were talking
about was involved different numbers in the numerator and denominator of
the fraction that is being converted to 100% than what you're apparently
thinking of. In our case, the denominator was the number of
full-expressions in the code. To this number was added any
sub-expressions that were not guaranteed to be executed when the
containing expression was executed (such as b and c in a?b:c, or b in
a&&b). The numerator was the number of such expressions which should be
executed by the unit test if the code was correct (this is obviously not
black-box testing, which we also did).
This was combined with other requirements, such as the requirement that
if a branch in the code depends upon the value of an integer expression,
there must be at least two cases where that branch is tested; one where
the expression should have the minimum possible value that should cause
the high branch to be chosen, and one where it should have the maximum
possible value that should cause the low branch to be chosen. This
principle was extended in the obvious fashion for switch() statements.
For purposes of this requirement, empty branches (such as if(a) b();)
are treated as if there were an expression-statement on the missing
branch (if(a) b(); else dummy();). Furthermore, there was a requirement
that if two test cases caused different expressions to be executed, the
test cases must be set up so that whether or not those expressions were
executed causes a detectable difference in the test results.
 
Was creating such thorough tests was "the best use of [my] time to keep
[my] software free of defects"? Well, our defect rate rose significantly
when management stopped requiring that we do such detailed testing, and
started pressuring us to make deliveries too quickly to allow such
testing to be done, so I suspect that the answer is "yes".
 
> approached through unit tests, I'm thinking particularly of
> simulation, where we need to run code for hours and calculate the
> statistical properties of outcomes.
 
I would be very surprised to learn that the "T" in TDD referred only to
unit tests. I would assume that if a requirement involved the
interaction of a program with the external environment (for instance,
there is a requirement that, under certain circumstances, a missile must
be fired), the corresponding test would include evaluating the impact on
the external environment (i.e. confirming that the missile (or at least,
a dummy missile) was actually fired).
James Kuyper <jameskuyper@alumni.caltech.edu>: Jun 04 12:03PM -0400

On 06/04/2018 03:12 AM, Juha Nieminen wrote:
>> On 02/06/18 14:17, Mr Flibble wrote:
>>> I see Ian Collins is on his TDD high horse again. Fecking clueless.
 
>> Feel free to write code that you don't know works.
...
> Another thing I have noticed about TDD is that it's difficult to test
> the behavior of private member functions (without exposing them to
> outside code, breaking object-oriented modularity design.
 
You test the private member function by calling whichever public
functions call it, directly or indirectly. If execution of the private
member function is needed to achieve some required result, it's always
possible to perform such a test, by checking to see whether that
required result occurred. If execution of a private member function has
no testable consequences, then that private member function isn't
actually needed.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Jun 04 05:16PM +0100

On 04/06/2018 17:03, James Kuyper wrote:
> ... If execution of a private member function has
> no testable consequences, then that private member function isn't
> actually needed.
 
False. A private member function is allowed to call other private member
functions without the need to maintain a class invariant; these other
private member functions may indeed have no testable consequences unless
taken together with the other private member functions that call them.
 
TDD is the enemy of encapsulation ergo TDD is the enemy of good (object
oriented) software design.
 
/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."
legalize+jeeves@mail.xmission.com (Richard): Jun 04 05:01PM

[Please do not mail me a copy of your followup]
 
Ian Collins <ian-news@hotmail.com> spake the secret code
 
>On 02/06/18 14:17, Mr Flibble wrote:
>> I see Ian Collins is on his TDD high horse again. Fecking clueless.
 
>Feel free to write code that you don't know works.
 
From his high horse it's much easier to hit the ball with his polo mallet :-).
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
legalize+jeeves@mail.xmission.com (Richard): Jun 04 05:09PM

[Please do not mail me a copy of your followup]
 
Jorgen Grahn <grahn+nntp@snipabacken.se> spake the secret code
>> test passes.
 
>That's certainly the impression I got too, from reading Beck's book
>once. His argument seemed weak to me.
 
In a language like C++ where we have to contend with build systems and
compilers and linkers and their funny ways, getting code to a
syntactically correct state can be non-trivial at times. Going in
small steps, e.g. from compilation error to failing test to passing
test is one way to avoid making stupid mistakes. In my experience
with doing TDD in C++, the "satisfy the compiler" or "satisfy the
build system" steps generally only happen at the start of a new
library or executable. In those situations, making sure my build
system is setup correctly is a useful small step. When working on
adding new features to existing code that was written with TDD, it's
not usually necessary to proceed in those smaller steps. Experts take
larger steps than novices.
 
I've developed code without TDD for decades before I adopted TDD. I
certainly know how to do it both ways and for an existing code base,
it may simply be less work to do things the "old way" than adopt TDD
because there might be too much decoupling needed to do strict TDD.
However, having done it both ways for a number of years, I have found
that I am more productive with TDD than without it. I find my bugs
faster and spend less time doing long tedious integration debugging
sessions. (I've been in a tedious integration debugging session for
about two weeks right now at work.)
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
James Kuyper <jameskuyper@alumni.caltech.edu>: Jun 04 01:34PM -0400

On 06/04/2018 12:16 PM, Mr Flibble wrote:
...
> functions without the need to maintain a class invariant; these other
> private member functions may indeed have no testable consequences unless
> taken together with the other private member fun
 
So perform a test that takes them together with the other private member
functions (which must also, of course, be invoked indirectly). What's
the problem? The important thing isn't how the code is subdivided into
individual functions, whether public or private. The important thing is
what the code actually does. If you can stub out a private member
function without producing any testable failure to meet requirements,
you don't need that function to meet requirements - it's inherently and
by definition that simple.
For example, consider a private function which is intended to meet the
requirement that it cause a visit to the user by the Invisible Pink Unicorn
<https://en.wikipedia.org/wiki/Invisible_Pink_Unicorn>. By Her very
nature, it's inherently impossible to prove whether or not She has
visited, so there would be no testable consequences of stubbing out that
function. But for precisely the same reason, there's no problem with
delivering that code with the function still stubbed out.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Jun 04 06:54PM +0100

On 04/06/2018 18:34, James Kuyper wrote:
> function without producing any testable failure to meet requirements,
> you don't need that function to meet requirements - it's inherently and
> by definition that simple.
 
In a word: bullshit. Private member functions don't have to be testable in
isolation BY DESIGN but that doesn't mean they can removed. If you don't
get this then you are beyond help: your designs must be a mess.
 
> visited, so there would be no testable consequences of stubbing out that
> function. But for precisely the same reason, there's no problem with
> delivering that code with the function still stubbed out.
 
I've seen a lot of bad analogies in my day but that just takes the
biscuit. You really are clueless mate. I suggest you do a bit of reading
starting with a read about class invariants and encapsulation.
 
/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."
cross@spitfire.i.gajendra.net (Dan Cross): Jun 04 06:01PM

In article <fnj2arFn9lqU1@mid.individual.net>,
 
>> Works in what sense?
 
>Works as in does what the detailed design (the tests) says it is
>supposed to do.
 
"Test as design" is an attempt to respond to the reality that a
detailed design document (in the waterfall sense) is destined to
become hopelessly out of date in very short order. But it does
not follow that this is the only way to document a "design", nor
that it is even a good way to do so (let alone sufficient for
long-term maintenance). Tests can certainly perform some
documentary function, but they fall far short of the sort of
design that may be required for non-trivial software.
 
The example was brought up of implementing IETF standards; in
that case, an RFC is sort of like a design document for a
protocol (yes, there are RFCs for other sorts of things, but
let's keep it simple). I hope we could all agree that if a
protocol were described by a series of tests, that would be a
poor way to communicate a description of the protocol sufficient
for an implementer; I would argue it would be so opaque as to be
insufficient.
 
>> people that talk about "100 percent" test coverage?
 
>No, in software, there is always the unexpected. But I do strive to
>minimise the unexpected through test coverage.
 
Test coverage is neither necessary nor sufficient for minimizing
the unexpected. Unit tests are useful as an easy to use and
easy to understand communication medium for verifying that
software behaves in an expected way in the context of a highly
controlled testing environment, but of course there are other
ways to do that. However, often those ways aren't easy to use
without special training; testing provides a nice balance as a
platform for shaking a lot of bugs out of the tree. This is
presumably why it is so popular.
 
However, it is manifestly insufficient: suppose I have a bit of
code that is succeptible to perturbations of various kinds in
the execution environment: for example, it may be subject to
tight timing guarantees. How does one probe that in the context
of a unit test? Or perhaps I need some guarantee of time
complexity for an algorithm as applied to some user-provided
data. Unit testing is awkward at best for this purpose.
 
>initially, but the time saved in chasing down bugs, retesting after
>changes or stepping through code in a debugger pays off pretty quickly.
>Tests are an investment in the future of the code.
 
This conflates the utility of a robust body of unit tests with
the practice of TDD. The former is undeniably useful; but the
latter is only useful as a means to the former and it is
trivially not the only such means.
 
>> and if you're talking about that, you're not talking about C++.
 
>I don't think anyone claims otherwise. See the last point in the link I
>posted.
 
Proponents of TDD in the Martin, Beck, Jeffries sense really do
try and push it too far. I wrote about this some time ago:
http://pub.gajendra.net/2012/09/stone_age
 
See, for example, Martin's comments here:
https://sites.google.com/site/unclebobconsultingllc/home/articles/echoes-from-the-stone-age
 
(The first comment on his page is pretty spot-on.)
 
See also this post, and look for Martin's comment:
http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.html
 
There, Martin tries to make a vague analogy connecting Ron
Jeffries's failure to produce a working sudoku solver to kind of
martial arts mysticism, wherein Jeffries is a venerable master
engaging in a mysterious kind of exercise that's so abstruse as
to be essentially unknowable to all but the most senior of the
initiated. I call shenanigans: Ron Jeffries simply didn't know
what he was doing and while yes, it took some courage to fail
publicly, the inescapable conclusion is that TDD is insufficient
as a design paradigm.
 
Peter Seibel's blog post is required reading on this debacle:
https://gigamonkeys.wordpress.com/2009/10/05/coders-unit-testing/
 
>> statistical properties of outcomes.
 
>That's correct, there should always be multiple levels of testing, again
> I don't think anyone claims otherwise.
 
They most certainly do; repeatedly and in public. It might be
that they do not believe it themselves, and are only saying so
because they are (most commonly) consultants and authors who are
trying to sell engagements and books.
 
But there's a certain kind of cultish devotion that arises from
this that's unsettling: it's the sort of fervent devotion of the
converted, who claim that, "if you just genuflected THIS way..."
then all would be well.
 
The bottom line: unit testing seems to sit at a local maxima on
the cost/benefit curve, but there are many ways to get similar
quality results. However, unit testing is insufficient to
ensure that software is correct and responsive in all respects
and TDD, in particular, seems like something of an oversold fad.
 
- Dan C.
James Kuyper <jameskuyper@alumni.caltech.edu>: Jun 04 02:11PM -0400

On 06/04/2018 01:54 PM, Mr Flibble wrote:
> On 04/06/2018 18:34, James Kuyper wrote:
...
 
> In a word: bullshit. Private member functions don't have to be testable in
> isolation BY DESIGN but that doesn't mean they can removed. If you don't
> get this then you are beyond help: your designs must be a mess.
 
So, don't test them in isolation. Just because they can only be tested
in conjunction with other functions doesn't mean they can't be tested.
 
 
> I've seen a lot of bad analogies in my day but that just takes the
> biscuit. You really are clueless mate. I suggest you do a bit of reading
> starting with a read about class invariants and encapsulation.
 
I'll have a better idea of what you mean by that claim with a specific
example. Please give me the simplest example you can create of a
requirement, and a complete program meeting that requirement, which
makes use of a private member function whose behavior is necessary to
meet requirement, where the entire program's ability to meet that
requirement is untestable.
scott@slp53.sl.home (Scott Lurndal): Jun 04 02:51PM

>> the return address in the first word of the target function (e.g. PDP-8)
>> or on a stack (Burroughs/IBM mainframes).
 
>The branch instruction is a small part of the cost.
 
Aside from any cache related costs (not a problem in the 70's), what
additional costs are there in your concept of 70's functions?
legalize+jeeves@mail.xmission.com (Richard): Jun 04 04:57PM

[Please do not mail me a copy of your followup]
 
bart4858@gmail.com spake the secret code
> T z;
 
>Then that relationship is lost, and it will need more maintenance to
>ensure they stay the same type.
 
This is really just a missing abstraction. If you want a 3D point,
make a type for it. It's zero-overhead in C++ and allows you to
express the idea directly in code.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Bart <bc@freeuk.com>: Jun 04 06:05PM +0100

On 04/06/2018 17:57, Richard wrote:
>> ensure they stay the same type.
 
> This is really just a missing abstraction. If you want a 3D point,
> make a type for it.
 
The 3 values might form a vector with those three components, but
usually they won't or you have other reasons for independent access to
the variables.
 
But even suppose you did encapsulate them into a type; the problem
doesn't go away: do you declare them inside that type with one T and 3
names, or three Ts?
 
--
bartc
legalize+jeeves@mail.xmission.com (Richard): Jun 04 05:12PM

[Please do not mail me a copy of your followup]
 
Bart <bc@freeuk.com> spake the secret code
 
>But even suppose you did encapsulate them into a type; the problem
>doesn't go away: do you declare them inside that type with one T and 3
>names, or three Ts?
 
It's irrelevant at that point because the abstraction makes it clear
that they all belong together.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Juha Nieminen <nospam@thanks.invalid>: Jun 04 07:01AM

> for(long l1=0; l1<300000000; l1++);
 
Never, ever use a busyloop for anything.
 
You have zero control over how long it will actually take (it could very
well take exactly 0 seconds because the compiler could just see that the
loop isn't doing anything and optimize it away), and even when it's not
optimized away, you will be using the CPU core at 100% for doing
absolutely nothing.
 
Busyloops were common in 8-bit consoles and home computers, and extremely
early PC's (often because there was no alternative), but have been a bad
idea since forever.
legalize+jeeves@mail.xmission.com (Richard): Jun 04 05:00PM

[Please do not mail me a copy of your followup]
 
bintom <binoythomas1108@gmail.com> spake the secret code
 
>I noticed that there are no library functions in Dev C++ to display a
>blinking message. So I wrote this function, which I hope does the job
>for any oneout there.
 
It doesn't work on my LA36.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Juha Nieminen <nospam@thanks.invalid>: Jun 04 07:04AM

> to make things somewhat clear ;c and make a bit of foam...
> i think 'Object Oriented Programming' when you sue it - making
> objects passing pointers
 
Object-oriented programming doesn't necessitate passing objects by pointer.
Real Troll <real.troll@trolls.com>: Jun 03 07:59PM -0400

On 03/06/2018 21:26, Daniel wrote:
 
> https://gith
 
> Unless there's another explanation ...
 
> Daniel
 
Another explanation is that nobody is using that crap. He's just
wasting time doing something that nobody is interested in. It's like
people writing compilers for C. Nobody wants their crap. We have VS,
Embarcadero, G++ (minGW) so why bother with something that is not likely
to be any better.
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: