Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #72813

Re: two's complement idea

From Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups comp.lang.c++
Subject Re: two's complement idea
Date 2020-04-04 12:37 -0700
Organization A noiseless patient Spider
Message-ID <86o8s7nit1.fsf@linuxsc.com> (permalink)
References (15 earlier) <r0mn3f$gml$1@dont-email.me> <865zg7hpux.fsf@linuxsc.com> <r3t10p$mt3$1@dont-email.me> <86mu7u6kzx.fsf@linuxsc.com> <r655s9$7oj$1@dont-email.me>

Show all headers | View raw


Paavo Helde <myfirstname@osa.pri.ee> writes:

> On 2.04.2020 17:05, Tim Rentsch wrote:
>
>> Paavo Helde <myfirstname@osa.pri.ee> writes:
>>
>>> On 15.02.2020 16:44, Tim Rentsch wrote:
>>>
>>>> Paavo Helde <myfirstname@osa.pri.ee> writes:
>>>>
>>>>> On 27.01.2020 12:20, Tim Rentsch wrote:
>>>>>
>>>>>> Paavo Helde <myfirstname@osa.pri.ee> writes:
>>>>>>
>>>>>>> On 25.01.2020 16:58, Bart wrote:
>>>>>>>
>>>>>>>> How would C++ help here, to avoid either that extra logic, or
>>>>>>>> the use of that goto?  Here's the current outline (for_each_pwq
>>>>>>>> is a macro expanding to a regular for-header):
>>>>>>>>
>>>>>>>>        L:
>>>>>>>>           A;
>>>>>>>>           for (...) {
>>>>>>>>              B;
>>>>>>>>              if (C) continue;
>>>>>>>>              D;
>>>>>>>>              goto L;
>>>>>>>>           }
>>
>> [...]
>>
>>>>> BTW, in my own code I have several times encountered similar awkward
>>>>> "backward goto" scenarios needed only for unlocking a mutex.  And the
>>>>> result has always been a mess I'm afraid.
>>>>
>>>> That's interesting.  Is that always because of pending destructor
>>>> behavior?  If it is, that suggests that the RAII pattern using
>>>> standard constructor/destructor semantics has some shortcomings,
>>>> which may indicate a need for other behavior choices.  For example,
>>>> the funky() function above could be writeable using a new 'creturn'
>>>> construct, written as
>>>>
>>>>       creturn  funky();
>>>>
>>>> where 'creturn' means first run any pending destructors, and only
>>>> after they finish execute the (implied) return statement.
>>>
>>> This would mess up the lifetime rules of automatic variables, meaning
>>> that their lifetime would not match the visual scope any more.  I'm
>>> sure this would do more harm than good.
>>>
>>> Also, such 'creturn' would not solve the initial problems, at least
>>> not in cases I have had.  Effectively, what is needed is to release a
>>> mutex lock temporarily in some circumstances, do something out of the
>>> mutex lock, then enter the lock again.  Logically this is a task for a
>>> single function, any 'return' or 'creturn' would split this task into
>>> two functions, which is a bit convoluted, which I think you already
>>> mentioned above.
>>>
>>>
>>>> Doing
>>>> that avoids all the nested locking problems, and also makes the
>>>> apparent "tail call" be a true tail call, and so could be optimized
>>>> to reuse the stack frame.  What other kinds of constructs might make
>>>> your troublesome mutex uses more tractable?
>>>
>>> What would help in my case would be a command like 'retry' or
>>> restart' which would destroy all automatic variables in the function
>>> and restart the function again.  It would be equivalent to a 'goto' to
>>> a label in the start of the function, [...]
>>
>> It is rather amusing that you didn't like creturn, and then
>> describe a construct that behaves just the way a creturn would,
>> except the retry/restart construct is less general than creturn.
>
> That's because the main problem with the current solution (goto) is
> that it is too general.  That's the reason why more restricted
> statements (break and continue) exist even though they could be
> replaced by goto-s.

goto is unstructured.  return (and creturn) is structured.

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-28 12:19 -0800
  Re: two's complement idea "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2019-11-29 00:14 +0100
    Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2019-11-29 09:15 +0100
      Re: two's complement idea Bo Persson <bo@bo-persson.se> - 2019-11-29 10:58 +0100
        Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2019-11-29 12:49 +0100
    Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-12-07 07:53 -0800
      Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2019-12-07 08:22 -0800
        Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-10 20:44 -0800
          Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-10 23:44 -0800
            Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-14 07:08 -0800
              Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-14 08:42 -0800
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-21 02:09 -0800
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-21 05:14 -0800
                Re: two's complement idea Daniel <danielaparker@gmail.com> - 2020-01-21 13:08 -0800
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-22 00:07 -0500
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-21 23:21 -0800
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-22 01:51 -0800
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-22 11:28 +0100
                Re: two's complement idea Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 11:52 +0100
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-22 04:47 -0800
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-04-02 07:19 -0700
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-04-02 08:07 -0700
                Re: two's complement idea boltar@nowhere.org - 2020-01-21 16:44 +0000
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-21 20:01 +0000
                Re: two's complement idea boltar@nowhere.org - 2020-01-22 11:26 +0000
                Re: two's complement idea Christian Gollwitzer <auriocus@gmx.de> - 2020-01-22 20:04 +0100
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-22 11:30 -0800
                Re: two's complement idea Chris Vine <chris@cvine--nospam--.freeserve.co.uk> - 2020-01-22 19:57 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-23 10:03 +1300
                Re: two's complement idea boltar@nowhere.org - 2020-01-23 09:24 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-24 07:29 +1300
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-23 10:03 +1300
                Re: two's complement idea "Fred. Zwarts" <F.Zwarts@KVI.nl> - 2020-01-23 10:09 +0100
                Re: two's complement idea boltar@nowhere.org - 2020-01-23 09:29 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 01:08 +0000
                Re: two's complement idea boltar@nowhere.org - 2020-01-24 12:27 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 01:06 +0000
                Re: two's complement idea Bo Persson <bo@bo-persson.se> - 2020-01-24 10:07 +0100
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-24 11:36 +0200
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-24 17:34 -0800
                Re: two's complement idea Siri Cruise <chine.bleu@yahoo.com> - 2020-01-24 17:57 -0800
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 12:19 +0000
                Re: two's complement idea Bo Persson <bo@bo-persson.se> - 2020-01-24 14:19 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 14:11 +0000
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-24 17:26 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-24 17:35 +0000
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-24 22:27 +0200
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-24 23:21 -0500
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-25 11:06 +1300
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-24 22:12 +0000
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-24 23:24 -0500
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-25 09:04 +0000
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-25 04:15 -0800
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 19:55 +0100
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 00:05 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 01:19 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-25 19:50 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 11:57 +0000
                Re: two's complement idea Chris Vine <chris@cvine--nospam--.freeserve.co.uk> - 2020-01-25 13:42 +0000
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 14:58 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 07:58 +1300
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 20:34 +0100
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-25 12:41 -0800
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-26 16:08 +0200
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 02:20 -0800
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-27 15:03 +0200
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-15 06:44 -0800
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-03-06 10:18 +0200
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-04-02 07:05 -0700
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-04-02 20:03 +0300
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-04-04 12:37 -0700
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 07:45 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 19:56 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 09:49 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 21:33 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 11:00 +1300
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-25 22:23 +0000
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-26 11:46 +1300
                Re: two's complement idea Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-26 10:55 +0200
                Re: two's complement idea Öö Tiib <ootiib@hot.ee> - 2020-01-26 03:47 -0800
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 01:28 -0800
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-25 22:22 +0000
                Re: two's complement idea James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-25 18:24 -0500
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 12:54 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-26 12:44 +0000
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 14:58 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-26 14:53 +0000
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 19:10 +0100
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-26 13:20 -0600
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-26 20:51 +0000
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-26 21:02 -0600
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-26 19:06 -0800
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-27 18:50 +0000
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-27 14:18 -0600
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-27 22:13 +0100
                Re: two's complement idea Bart <bc@freeuk.com> - 2020-01-27 21:38 +0000
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-27 19:37 -0600
                Re: two's complement idea Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-01-27 19:15 -0800
                Re: two's complement idea "Fred. Zwarts" <F.Zwarts@KVI.nl> - 2020-01-28 11:45 +0100
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-27 16:31 +1300
                Re: two's complement idea Manfred <noname@add.invalid> - 2020-01-26 18:50 +0100
                Re: two's complement idea Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-01-26 18:57 +0000
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 20:46 +0100
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-26 13:14 -0600
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-26 22:15 +0100
                Re: two's complement idea Robert Wessel <robertwessel2@yahoo.com> - 2020-01-27 21:06 -0600
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-28 13:08 +0100
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 01:50 -0800
                Re: two's complement idea Ian Collins <ian-news@hotmail.com> - 2020-01-27 08:21 +1300
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 20:14 +0100
                Re: two's complement idea David Brown <david.brown@hesbynett.no> - 2020-01-25 20:12 +0100
                Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 07:48 -0800
                Re: two's complement idea Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-18 18:46 +0100

csiph-web