"Chris M. Thomasson" <invalid_chris_thomasson@invalid.invalid>: Jun 19 06:48PM -0700 On 6/19/2018 9:42 AM, Rick C. Hodgin wrote: > If you have any desire to communicate with me, and I with you, then > remove profanity from your posts. > I'm fine with your decision either way, Lew. How exactly do the letters Gaak! = profanity? |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jun 19 09:54PM -0400 On 6/19/2018 9:48 PM, Chris M. Thomasson wrote: > How exactly do the letters Gaak! = profanity? How do you come into a mature thread and not read to the end before posting a response? -- Rick C. Hodgin |
Joe Pfeiffer <pfeiffer@cs.nmsu.edu>: Jun 19 08:37PM -0600 > finished: > While lnPass should only ever be valid, what do you think about > a need to test the unexpected condition with the "default:" ? That's how you find bugs in your code. Do it. |
jameskuyper@alumni.caltech.edu: Jun 19 08:53PM -0700 On Tuesday, June 19, 2018 at 2:16:51 PM UTC-4, Rick C. Hodgin wrote: > > to the rules of usenet etiquette about using appropriate forums to > > discuss your religious beliefs. > The things I teach people are not religion. It hardly matters whether or not you acknowledge the religious nature of the beliefs you're teaching. Either way, what you are teaching is off-topic here. Even if the things you believe were true, it would still be the case that there would need to be appropriate places to discuss things other than the truth of those beliefs; places where it would, in fact, be inappropriate, and in fact, downright rude, to discuss those matters - and this is one of those places. In the real world where the truth of your beliefs is strongly disputed by many others, there definitely needs to be a place (more accurately, MANY places) where it's inappropriate to argue over the validity of such beliefs, just for the sake of the general peace. |
Christian Gollwitzer <auriocus@gmx.de>: Jun 20 07:15AM +0200 Am 20.06.18 um 03:48 schrieb Chris M. Thomasson: >> remove profanity from your posts. >> I'm fine with your decision either way, Lew. > How exactly do the letters Gaak! = profanity? It's not the Gaak, it's the "WTF" that he has omitted from the quote (indicated by an ellipsis). Still doesn't make sense to me to plonk anyone because of this. Strangely, he has responded to Flibble's posts afterwards, so it seems he hasn't fulfilled has promise to plonk everybody who posts WTF. WTF WTF WTF! Holy smoke! ;) Christian |
gazelle@shell.xmission.com (Kenny McCormack): Jun 20 06:16AM In article <pgcnu6$fkp$1@dont-email.me>, >he hasn't fulfilled has promise to plonk everybody who posts WTF. >WTF WTF WTF! Holy smoke! ;) > Christian To be plonked by RCH is indeed an honor. -- Nov 4, 2008 - the day when everything went from being Clinton's fault to being Obama's fault. |
gazelle@shell.xmission.com (Kenny McCormack): Jun 20 07:03AM In article <43333e22-9a71-42d5-90f5-d7095f188753@googlegroups.com>, >any more respect than you give to other people, and you pay no respect >to the rules of usenet etiquette about using appropriate forums to >discuss your religious beliefs. RCH is entirely within his rights to state that unless you send him $1000, he won't talk to you. He can make whatever conditions he likes. As can you. As can I. Incidentally, lots of people on TV do exactly this - and people fall for it. These people are often called "televangelists". -- Atheism: It's like being the only sober person in the car, and nobody will let you drive. |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jun 20 07:06AM -0400 On 6/20/2018 1:15 AM, Christian Gollwitzer wrote: > [snip] You separate yourself, Christian (and others) because you choose by your own choices to make yourself an enemy of God by disparaging another human being. You disrespect the one pointing you to the One who can save your soul. You choose to reject His guidance for your life to love one another and help one another. All people were created in the image and likeness of God. But not all people will be saved. Those who reject Him will be damned (and to attack His creation, your fellow human beings, is to reject Him). Those who humble themselves, repent, ask forgiveness for their sin, they are the ones who will be saved. They are the ones who seek to serve Him in this world, to point others to Him, to teach of His ways so that others may hear and be saved. This world is being divided into two camps: saved, unsaved. It is becoming so very clear which side everyone is on by their actions and choices. You may think you simply "get rid of Rick" in a case like this, but what you have really done is rid yourself of eternity. By making the choice to disparage me, you are disparaging God (see below), and in so doing you maintain your enemy-of-God status, unrepentant, and literally on your way to judgment and Hellfire after you leave this world. BTW, this is not just about disparaging me, but rather doing so to any person world-wide, for we were all created in His image: https://www.biblegateway.com/passage/?search=Matthew+25%3A32-40&version=KJV These things I teach ... they are not my own. I repeat His words, and even more importantly, I point you to His words to STUDY THEM FOR YOURSELF! I do not want or ask you to take my word for it. I ask you to examine for yourself if what I say is true. You will not only find it is, but you will find the source of all truth, and the wellspring of life eternal. ----- *plonk* If you want to be restored, you know how to email me. I will require no more than an apology, and the promise to not treat me with such disrespect in the future. -- Rick C. Hodgin |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jun 20 07:25AM -0400 > ... Either way, what you are teaching is off-topic here. There's a hierarchy of authority, James. Jesus said in Matthew 28:18 that all authority in Heaven and Earth has been given Him. He then commands us to go forth and teach all nations. https://www.biblegateway.com/passage/?search=Matthew+28%3A18&version=KJV 18 And Jesus came and spake unto them, saying, All power is given unto me in heaven and in earth. 19 Go ye therefore, and teach all nations, baptizing them in the name of the Father, and of the Son, and of the Holy Ghost: To bring this into our terms: If you were an employee, and your co-worker or boss told you to do X, but the president of the company told you to do Y ... what would you do? > Even if the things you believe were true, it would still be the > case that there would need to be appropriate places to discuss > things other than the truth of those beliefs; I'm trying to teach you, James. Nobody knows when they will die. The message is, therefore, an imperative to all people. Nobody will enter into eternal life alive (in Heaven with God) unless they are forgiven for their sin and born again. Only Jesus can do this, which manes there are no inappropriate public forums to teach it. I hope someday you understand this. If you do, you'll understand why our best efforts to teach often fall on not only deaf ears, but rebellious ears. It's because of what John 6:44 teaches below: > be a place (more accurately, MANY places) where it's inappropriate > to argue over the validity of such beliefs, just for the sake of > the general peace. I don't argue with people, James. I teach. It's up to the person to receive it, for nobody can come to Christ unless God the Father first draw them. It requires a movement of the spirit to bring that new life into existence, for it is not a work of the flesh: https://www.biblegateway.com/passage/?search=John+6%3A44&version=KJV 44 No man can come to me, except the Father which hath sent me draw him: and I will raise him up at the last day. Please consider these words. I don't write them just to espouse. I'm trying to teach you the truth ... that you have need to be forgiven or your entire eternal future will be horrendous for you. -- Rick C. Hodgin |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jun 20 08:23AM -0400 On 6/19/2018 10:37 PM, Joe Pfeiffer wrote: >> While lnPass should only ever be valid, what do you think about >> a need to test the unexpected condition with the "default:" ? > That's how you find bugs in your code. Do it. That's the answer. Thank you. -- Rick C. Hodgin |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jun 20 08:27AM -0400 On 6/20/2018 3:03 AM, Kenny McCormack wrote: > Incidentally, lots of people on TV do exactly this - and people fall for > it. These people are often called "televangelists". God guide us to be discerning, Kenny. Those who are disciples of Christ teach others to be the same way. Not everyone who calls upon the name of the Lord will be saved, but he who does the will of the Father, meaning they take up their cross and follow Him daily. We are servants, ambassadors, royal priests, and our mission is to go out and teach others that they too can become servants, ambassadors, and royal priests of Him here in this world. It's a true change that's being described, Kenny. It's not religion. It's a fundamental re-wiring from the inside out. It is literally what Jesus calls, "Being born again." You were born once into your flesh. When Jesus saves you, you are born into spirit. You can't see the spirit, but the change is manifested in your life by the way your insides work. You then hate the things you used to love, and love the things you used to hate. It's a full change of polarity. A true reversal, because the spirit seeks the things of God, and the flesh seeks the things of this world, all of which are in sin, and all of which lead to our soul's destruction in Hell. Read John 3. You must be born again of the spirit to be saved. https://www.biblegateway.com/passage/?search=John+3&version=KJV If the KJV translation is too difficult to read, use a more modern translation, but then come back to the KJV for a better translation. -- Rick C. Hodgin |
scott@slp53.sl.home (Scott Lurndal): Jun 20 01:01PM >All people were created in the image and likeness of a god. Actually, all people evolved from collections of amino acids. So the rest of your thesis is null and void. Take it somewhere else. |
David Brown <david.brown@hesbynett.no>: Jun 20 04:12PM +0200 On 20/06/18 14:23, Rick C. Hodgin wrote: >>> a need to test the unexpected condition with the "default:" ? >> That's how you find bugs in your code. Do it. > That's the answer. Thank you. It is /an/ answer - but not /the/ answer. And it is not a good answer. (If my post here seems critical, it is critical of Joe's post - not yours.) The best way to avoid bugs in the code is to program in a way that reduces the likelihood of them occurring in the first place. This kind of switch-in-a-loop is generally a poor structure to use, because it is easy to get mixed up and write incorrect code. If you can clearly see that "pass" is always valid then there is no need for code to handle invalid values. And if you can't clearly see that "pass" is always valid, then re-write the code until you can. What you are doing here is writing code that should never be called, which can never be tested, and /if/ something has gone wrong in the program to give you an invalid "pass", it will cover up the problem so you can't find it. It is /not/ "how you find bugs in your code" - it is how you hide bugs and cause yourself bigger problems in the future. |
Ben Bacarisse <ben.usenet@bsb.me.uk>: Jun 20 03:39PM +0100 >>>> a need to test the unexpected condition with the "default:" ? >>> That's how you find bugs in your code. Do it. >> That's the answer. Thank you. <snip> > program to give you an invalid "pass", it will cover up the problem so > you can't find it. It is /not/ "how you find bugs in your code" - it is > how you hide bugs and cause yourself bigger problems in the future. I agree. The default case only exists because the structure permits the cases to become synchronised from the loop. Writing // code unique to pass 1 code_common_to_all_passes(...); // code unique to pass 2 code_common_to_all_passes(...); // code unique to pass 3 code_common_to_all_passes(...); is shorter and more explicit. If the number of passes needs to be easily changed, I'd write for (size_t n = 0; n < sizeof pass_fn/sizeof *pass_fn; n++) { pass_fn[n](...); // Code common to all passes goes here // maybe still wrapped in a function. } As general rule for people starting out in programming, I'd say that whenever you are pondering the merits of some code structure that you are not sure about, ask yourself first if more functions would help. -- Ben. |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jun 20 10:48AM -0400 On 6/20/2018 10:12 AM, David Brown wrote: >>> That's how you find bugs in your code. Do it. >> That's the answer. Thank you. > It is /an/ answer - but not /the/ answer. And it is not a good answer. I disagree. To not have that code in there introduces the possibility of there being an unexpected error at runtime which causes a crash, and the cause of the crash may then be unknown as it may propagate to some other point which calls something which crashes there and you don't know the true source or root of the issue. To have the default: code in there would do very little (mildly pollute the instruction cache with typically unused opcodes, but those could be minimized by simply having a call instruction in there), and it would give root diagnostic information when something goes awry. I am totally on board with Joe's concept here. I think it's brilliant. It's a correct philosophy in my judgment, and I intend to incorporate it at all points in my development in moving forward. I may even add a compiler switch to CAlive to enable this kind of auto- identifying of unspecified code without having to type them in when some- thing like my example (without a default:) is given, or a way to at least catch all passes that are un-tested, such as: if (a == 1) { // code here } else if (a == 5) { // code here } In this case there's no else {..} block there. The switch would auto- inject an else {..} block in there and have it call a function with line information allowing that location to be trapped and observed. It's all useful information, and it's another tool in the toolbox. ----- I know you disagree. I won't debate you. It won't affect you anyway because it's going to be in CAlive, and you'll never use CAlive ... so don't let it bother you. -- Rick C. Hodgin |
Joe Pfeiffer <pfeiffer@cs.nmsu.edu>: Jun 20 09:04AM -0600 > cause of the crash may then be unknown as it may propagate to some other > point which calls something which crashes there and you don't know the > true source or root of the issue. Note that my response was only to the question as asked, and other people pointed out that the switch-in-a-loop is a bad idea in the first place. My response also wasn't clear enough, as it wasn't explicit enough about what to do in the default: case. Just to make sure there's no confusion, when I said it was a way to find bugs in your code I meant that what should happen in that case is an error exit. It should *not* be used (as others suggested I meant it to be used) to cover up errors. |
David Brown <david.brown@hesbynett.no>: Jun 20 08:06AM +0200 On 19/06/18 22:28, Chris Vine wrote: > Somewhat like a template function in C++ but with more boilerplate. > The macros themselves would still be unhygienic but that wouldn't > matter here. By "unhygienic", do you mean they don't act like functions in the way they handle parameters with side effects, or have multiple statements to cause trouble in conditionals or loops without braces? No, the "max" macro is not "unhygienic" - it is perfectly safe. It is fine to worry about function-like macros that have risks, like the traditional C "max" (or "MAX") macro. But labelling safe macros as "unhygienic" sounds like prejudice. (The "make_max" is a utility macro to reduce typing and the risk of copy-and-paste errors - it is not a function-like macro.) |
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jun 20 12:07PM +0100 On Wed, 20 Jun 2018 08:06:27 +0200 > prejudice. > (The "make_max" is a utility macro to reduce typing and the risk of > copy-and-paste errors - it is not a function-like macro.) By "unhygienic" I mean that C89/90 macros (and as I understand it from your example, also C11 macros) are "cut and paste" pre-processor macros. Such macros systems are by definition unhygienic macro systems. A macro system is generally called unhygienic when it does not bind identifiers in the way that functions do: in particular when it binds identifiers at the call site and not the definition site and when it injects its own identifier names into the call site; in short, when it does something at macro expansion time which could cause identifier names to be accidentally captured or shadowed. It is wrong to say that the problem arising from invoking: #define max(a,b) (((a) >= (b)) ? (a) : (b)) with (++a,++b) arguments is due to lack of hygiene in that sense. Instead, the lack of hygience in C macros makes it more difficult to resolve the problem in the traditional way, by initializing local variables at the beginning of the macro definition to simulate eager evaluation of the arguments. The vagaries of C syntax with respect to statement blocks also contributes to that. However, not all code that unhygienic macro systems emit is unsafe. Where they are used to construct inline functions ('make_max' in your example), and to hand off directly to such an inline function ('max' in your example), that usage is safe. It is safe because inline functions are hygienic. 'max' is just the textual substitution of a function call, so unwanted identifier capture is irrelevant. That particular use of the macro is hygienic. The only criticism of your macro that one could make is that the the binding of the '>' operator is taken at the point at which the 'make_max' macro is called and not at the point where that macro is defined. That is not something that would bother me. (It might bother some who are especially firm advocates of hygienic macro systsms.) In summary, all your code seems to do is to act like a template function. That's fine. |
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Jun 20 12:17PM +0100 On Wed, 20 Jun 2018 12:07:53 +0100 Chris Vine <chris@cvine--nospam--.freeserve.co.uk> wrote: [snip] > 'make_max' macro is called and not at the point where that macro is > defined. That is not something that would bother me. (It might bother > some who are especially firm advocates of hygienic macro systsms.) And of course in C, as opposed to C++, you cannot (I believe, I don't know C as well as you) rebind operator > anyway, so it's not a problem. |
David Brown <david.brown@hesbynett.no>: Jun 20 02:13PM +0200 On 20/06/18 13:07, Chris Vine wrote: > from your example, also C11 macros) are "cut and paste" pre-processor > macros. Such macros systems are by definition unhygienic macro > systems. All C and C++ macros are based on text substitution - "cut and paste" macros. No, that does not make them "by definition unhygienic" - at best, you are defining "unhygienic" as "what C macros are", which is not at all helpful. > when it injects its own identifier names into the call site; in short, > when it does something at macro expansion time which could cause > identifier names to be accidentally captured or shadowed. To me, "unhygienic" would mean there is a potential problem or hazard with a particular macro - /not/ that all macros are "unhygienic" because /some/ macros could have problems. > are hygienic. 'max' is just the textual substitution of a function > call, so unwanted identifier capture is irrelevant. That particular use > of the macro is hygienic. The macro "max" as I gave it is hygienic - it is safe to use in most practical ways, similar to a function. > 'make_max' macro is called and not at the point where that macro is > defined. That is not something that would bother me. (It might bother > some who are especially firm advocates of hygienic macro systsms.) We are talking about /C/ here. Operators are "bound" when the post-processed source is compiled. I don't know what languages you have in mind with "hygienic macros", but I think what you are talking about is "functions" or perhaps "templates", not macros. In C, there are many sorts of macros for many kinds of usage. For function-like macros, you can divide them into two groups - "safe" ones that treat parameters with side-effects in a similar manner to functions, and "unsafe" ones that can cause trouble. (There is also the issue of multi-statement macros having trouble with conditionals and loops without braces - usually that can be avoided by the "do {} while (0)" idiom.) If you want to call these two types of function-like macros "hygienic" and "unhygienic", that's okay. |
David Brown <david.brown@hesbynett.no>: Jun 20 03:57PM +0200 On 20/06/18 13:17, Chris Vine wrote: >> some who are especially firm advocates of hygienic macro systsms.) > And of course in C, as opposed to C++, you cannot (I believe, I don't > know C as well as you) rebind operator > anyway, so it's not a problem. You can't "rebind" it in C++ either - unless perhaps you mean having a virtual operator> member for a class. |
boltar@cylonHQ.com: Jun 20 08:39AM On Tue, 19 Jun 2018 15:52:39 -0400 >> So fill us in on what it is you do as a job then? My guess is you don't have >> one, you're a student. >you'd be wrong and this is not about me. Not willing to tell us? Unemployed maybe? >as for win8, it flopped for a few reasons, which you don't appear to >understand at all, ultimately forcing steve ballmer to 'retire' (aka >fired). No, it flopped for 1 reason only and that was the metro interface which was absolutely and truly hopeless on a desktop. And while balmer ultimately carried the can, it was that arrogant idiot sinofsky who was actually responsible for it. At least he had the grace to resign before he was fired too. |
"Mayayana" <mayayana@invalid.nospam>: Jun 20 09:28AM -0400 <boltar@cylonHQ.com> wrote | >you'd be wrong and this is not about me. | | Not willing to tell us? Unemployed maybe? | You don't seem to know about nospam. He's a compulsive arguer who frequents many groups. As long as you answer him he'll come back with some kind of correction or disagreement. Say the sky is blue and he'll say, "Not always". Say peanut butter is high in fat and he'll say, "Idiot. It's one of the most nutritious foods." His rebuttals are always frivolous and combative, but usually have enough truth in them (in some context or other) that it appears he could possibly be a coherent thinker. There's been speculation that nospam may actually be a bot being run by some sadistic research psychologists studying conversation patterns, because the rebuttals are always the same, always pointless, usually peppered with misinformation, often just answering back with your own statement, twisted in some way. Yet it bears an uncanny resemblance to reason. So proceed at your own risk. And only if you have no other plans until long after the cows come home. :) |
boltar@cylonHQ.com: Jun 20 01:49PM On Wed, 20 Jun 2018 09:28:09 -0400 > So proceed at your own risk. And only if you have no >other plans until long after the cows come home. :) Its ok, I consider winding up trolls a cybersport :) |
Cholo Lennon <chololennon@hotmail.com>: Jun 20 03:00AM -0300 On 06/19/2018 03:17 PM, Lynn McGuire wrote: > plans for his C++" > https://www.theregister.co.uk/2018/06/18/bjarne_stroustrup_c_plus_plus/ > "Language creator calls proposals 'insanity'" Nice article from The Reg about BS's letter. I love C++, I've using it since 1991, but IMHO BS comes too late with his warning... C++ is already a monster, an unmanageable monster (really powerful and getting better, but too big, too difficult to learn, too many gotchas, bad tools...) :-( -- Cholo Lennon Bs.As. ARG |
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:
Post a Comment