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


Groups > sci.electronics.design > #447567

Re: Arduino / compilers on uC

Subject Re: Arduino / compilers on uC
Newsgroups sci.electronics.design
References (7 earlier) <Wh0nA.89206$8K.21381@fx46.am4> <o7shtm$9o$1@dont-email.me> <WhkoA.440018$sc6.92372@fx25.am4> <o7ske5$9su$1@dont-email.me> <2ImdnXcSYNtISzzFnZ2dnUU7-c_NnZ2d@supernews.com>
From Tom Gardner <spamjunk@blueyonder.co.uk>
Message-ID <_KloA.810509$SP.403937@fx43.am4> (permalink)
Organization virginmedia.com
Date 2017-02-13 17:09 +0000

Show all headers | View raw


On 13/02/17 15:55, Phil Hobbs wrote:
> On 02/13/2017 10:49 AM, David Brown wrote:
>> On 13/02/17 16:29, Tom Gardner wrote:
>>> On 13/02/17 15:06, David Brown wrote:
>>>> On 09/02/17 16:55, Tom Gardner wrote:
>>>>> On 09/02/17 13:42, dagmargoodboat@yahoo.com wrote:
>>>>>> On Tuesday, February 7, 2017 at 3:00:05 AM UTC-5, Tom Gardner wrote:
>>>>>>> On 07/02/17 04:14, dagmargoodboat@yahoo.com wrote:
>>>>>>>> On Monday, February 6, 2017 at 10:08:19 PM UTC-5, Clifford Heath
>>>>>>>> wrote:
>>>>>>>
>>>>>>>> You're not understanding--I'm fully aware that I can go so far as to
>>>>>>>> embed
>>>>>>>> assembly if I choose.
>>>>>>>>
>>>>>>>> The fact that the compiler is jumping though hoops to map virtual
>>>>>>>> pin numbers
>>>>>>>> to physical ports and pins is exactly my point: it's solving
>>>>>>>> problems that
>>>>>>>> a human programmer wouldn't have to.  I'd just read-modify-write the
>>>>>>>> port
>>>>>>>> with the appropriate mask.
>>>>>>>>
>>>>>>>> BUT, what the naive users have and use, is layers and layers
>>>>>>>> abstracted from
>>>>>>>> the hardware doing the actual work.
>>>>>>>
>>>>>>> That's a major objective of libraries and
>>>>>>> environments in general.
>>>>>>
>>>>>> To an extent, true. More often my aim in using a pre-written
>>>>>> function is
>>>>>> to avoid repeating the work, not avoiding understanding the task.
>>>>>>
>>>>>> 'C' was conceived as a portable assembly language, so it's bizarre and
>>>>>> ironic that this portable 'assembly' doesn't guarantee the size of its
>>>>>> basic variables--that's one of the most basic elements of
>>>>>> assembly-level
>>>>>> programming.
>>>>>
>>>>> Porting C code has /always/ been very difficult, and required
>>>>> arcane knowledge and extreme care; start by considering
>>>>> "porting" from twos complement to ones complement machines.
>>>>
>>>> No, porting C code is not necessarily difficult.  C makes it quite clear
>>>> what behaviour is full specified by the C standards, what is
>>>> implementation-specified (i.e., different compiler implementations can
>>>> do things in different ways, but they have to tell you their choices in
>>>> their documentation), and what is undefined (i.e., the standards make no
>>>> comment on what happens).
>>>>
>>>> If your code relies only on standards specified behaviour, and you use
>>>> conforming compilers, "porting" is just a matter of re-compiling.
>>>>
>>>> If your code relies on implementation-defined behaviour, then porting is
>>>> a matter of checking that the new compiler fits your requirements.
>>>>
>>>> If your code relies on undefined behaviour, you should fix the code
>>>> before you even think about porting.
>>>>
>>>> Now, it is certainly the case that a good deal of code relies on
>>>> implementation-dependent behaviour.  And much of that does so in a /bad/
>>>> way (such as making assumptions about the size of an "int"), making code
>>>> porting difficult, rather than in a /good/ way (such as using
>>>> implementation-dependent sized integer types).  That is a problem with
>>>> the way C code is written, rather than a problem with C itself - and C99
>>>> included useful changes to make it easier to write good portable code.
>>>
>>> While true, that argument has always struck me as unhelpfully
>>> splitting hairs.
>>
>> If you write code that assumes it is safe to store a pointer in an int,
>> then you will have more problems porting it than if you store your
>> pointer in an intptr_t.  If you write code that assumes an int is
>> 32-bits, then you will have more problems than if you use an int32_t (or
>> your own home-made equivalent type pre-C99 - then you only need to
>> change one definition in your code).
>>
>>>
>>> Gurus are different, of course, but are in limited supply.
>>>
>>>
>>>>> But from the late 80s onwards it has been unsuccessfully
>>>>> straddling two stools: that of a general purpose high level
>>>>> language for applications and also for low-level near-the-silicon
>>>>> "system/firmware" code. Consider that multithreading behaviour
>>>>> is (was?) explicitly left undefined or implementation dependent,
>>>>> but POSIX thread implementations relied on that behaviour.
>>>>
>>>> C has been, and continues to be, remarkably successful for such an
>>>> "unsuccessful" language.
>>>
>>> Strawman argument: I've never said C is "unsuccessful", and
>>> I didn't above.
>>
>> Fair enough.  You said it "has been unsuccessfully straddling two
>> stools".  However, it has, in fact, been remarkably successful for both
>> purposes.  It has been pushed out from many "general purpose high-level
>> language for application" uses - mainly because there are alternatives
>> that give far better productivity rather than because C is so bad for
>> the purpose.  And C reigns supreme for "low-level near-the-silicon" code.
>>
>>>
>>>
>>>>> Maybe having a memory model will help, but it is astoundingly
>>>>> difficult to get that right across multiple architectures.
>>>>
>>>> That is why much of it is left undefined by the C standards.
>>>> Nonetheless, people seem to manage.
>>>
>>> Emphasis on "seem", especially with XP and TDD programming
>>> practices. Multithreading errors are notoriously difficult
>>> to reliably provoke during testing. As a hardware engineer,
>>> it has always surprised me how many such errors are made
>>> by most programmers.
>>
>> You can't get multi-threading correct by trial and error - you have to
>> know what you are doing.  That applies in all languages.  C gives you no
>> help there (though some C compilers do, with tools like gcc/clang's
>> sanitizers), and certainly some other languages make it easier to get
>> multi-threading right.
>
> Thread support is finally getting someplace reasonable, it looks like.
> BITD you just had to use 'volatile' and boatloads of mutexes, and hope
> the undefined behaviour you were forced to rely on stayed consistent
> from release to release.

Yes, and let's hope so - but in this respect I'm a
"kick the tyres" guy. I suspect it will be quite a
few years before the problems are apparent and
ironed out.

It is notable that Java, even though having a much
better starting point and more decades of experiences,
had to revise its memory model after ~10 years. Very
few developers noticed.

Back to sci.electronics.design | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 15:43 -0800
  Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-07 10:58 +1100
    Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-06 19:09 -0500
    Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 18:30 -0800
      Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-06 21:43 -0500
        Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 19:02 -0800
          Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-06 23:26 -0500
            Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 21:05 -0800
      Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-07 13:55 +1100
        Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 20:00 -0800
          Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-07 19:31 +1100
          Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-07 10:29 +0100
            Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-07 07:39 -0800
              Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-08 12:24 +0100
                Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-09 08:36 -0800
                Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-10 08:15 +1100
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 15:37 +0100
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 15:35 +0100
          Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-07 08:05 -0800
            Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-08 12:30 +0100
  Re: Arduino / compilers on uC mrdarrett@gmail.com - 2017-02-06 15:59 -0800
  Re: Arduino / compilers on uC Lasse Langwadt Christensen <langwadt@fonz.dk> - 2017-02-06 16:04 -0800
    Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 18:41 -0800
      Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-07 14:08 +1100
        Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 20:14 -0800
          Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-07 08:00 +0000
            Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-09 05:42 -0800
              Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-09 15:07 +0100
                Re: Arduino / compilers on uC Lasse Langwadt Christensen <langwadt@fonz.dk> - 2017-02-09 09:54 -0800
              Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-09 15:55 +0000
                Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-09 08:46 -0800
                Re: Arduino / compilers on uC Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-02-09 14:42 -0500
                Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-11 06:54 -0800
                Re: Arduino / compilers on uC pcdhobbs@gmail.com - 2017-02-11 07:31 -0800
                Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-11 07:59 -0800
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-11 17:01 +0000
                Re: Arduino / compilers on uC pcdhobbs@gmail.com - 2017-02-11 12:52 -0800
                Re: Arduino / compilers on uC krw@notreal.com - 2017-02-11 18:46 -0500
                Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-12 10:20 +1100
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 16:07 +0100
                Re: Arduino / compilers on uC Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-02-09 14:16 -0500
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-09 22:39 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 16:06 +0100
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-13 15:29 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 16:49 +0100
                Re: Arduino / compilers on uC Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-02-13 10:55 -0500
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-13 17:09 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-14 09:49 +0100
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-13 16:07 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-14 10:01 +0100
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-14 09:49 +0000
                Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-17 04:21 +1100
                Re: Arduino / compilers on uC pcdhobbs@gmail.com - 2017-02-16 14:47 -0800
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-17 00:17 +0000
          Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-07 19:49 +1100
            Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-09 06:22 -0800
          Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-07 10:42 +0100
            Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-09 06:57 -0800
              Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-09 16:12 +0100
              Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-10 08:24 +1100
  Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-06 19:08 -0500
    Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 18:47 -0800
      Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-06 21:51 -0500
        Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 20:39 -0800
          Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 20:55 -0800
            Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-07 20:05 +1100
              Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-08 12:26 -0500
                Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-08 12:32 -0500
                Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-09 08:31 +1100
                Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-09 08:21 +1100
                Re: Arduino / compilers on uC Lasse Langwadt Christensen <langwadt@fonz.dk> - 2017-02-08 13:33 -0800
          Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-07 08:15 +0000
            Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-09 05:51 -0800
              Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-09 16:22 +0000
                Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-09 16:45 -0500
                Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-09 16:51 -0500
                Re: Arduino / compilers on uC Clifford Heath <no.spam@please.net> - 2017-02-10 09:11 +1100
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-09 22:45 +0000
                Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-15 10:11 -0500
          Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-07 10:57 +0100
      Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-07 08:07 +0000
        Re: Arduino / compilers on uC rickman <gnuarm@gmail.com> - 2017-02-07 04:01 -0500
          Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-07 09:40 +0000
            Re: Arduino / compilers on uC rickman <gnuarm@gmail.com> - 2017-02-07 05:52 -0500
              Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-07 11:26 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-07 12:58 +0100
                Re: Arduino / compilers on uC Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-02-09 14:52 -0500
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-09 22:47 +0000
              Re: Arduino / compilers on uC bitrex <bitrex@de.lete.earthlink.net> - 2017-02-09 14:00 -0500
                Re: Arduino / compilers on uC Tim Wescott <seemywebsite@myfooter.really> - 2017-02-09 13:24 -0600
      Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-07 10:52 +0100
    Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-07 10:50 +0100
  Re: Arduino / compilers on uC rickman <gnuarm@gmail.com> - 2017-02-06 19:49 -0500
  Re: Arduino / compilers on uC "David Eather" <eather@tpg.com.au> - 2017-02-07 12:45 +1000
    Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-06 18:51 -0800
      Re: Arduino / compilers on uC "David Eather" <eather@tpg.com.au> - 2017-02-08 06:35 +1000
        Re: Arduino / compilers on uC "David Eather" <eather@tpg.com.au> - 2017-02-08 06:44 +1000
      Re: Arduino / compilers on uC M Philbrook <jamie_ka1lpa@charter.net> - 2017-02-07 17:11 -0500
        Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-08 12:40 +0100
          Re: Arduino / compilers on uC pcdhobbs@gmail.com - 2017-02-08 07:01 -0800
            Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-08 17:25 +0100
              Re: Arduino / compilers on uC jack4747@gmail.com - 2017-02-09 06:51 -0800
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-09 16:41 +0100
                Re: Arduino / compilers on uC M Philbrook <jamie_ka1lpa@charter.net> - 2017-02-09 19:44 -0500
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 16:14 +0100
                Re: Arduino / compilers on uC John Devereux <john@devereux.me.uk> - 2017-02-16 12:57 +0000
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-16 14:11 +0000
                Re: Arduino / compilers on uC John Devereux <john@devereux.me.uk> - 2017-02-16 14:40 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-16 15:58 +0100
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-16 15:56 +0000
                Re: Arduino / compilers on uC John Devereux <john@devereux.me.uk> - 2017-02-16 16:45 +0000
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-16 17:18 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-17 14:59 +0100
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-17 14:24 +0000
                Re: Arduino / compilers on uC Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2017-02-17 21:07 +0200
                Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-17 20:16 +0000
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-17 23:28 +0100
                Re: Arduino / compilers on uC Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-02-17 10:21 -0500
                Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-17 16:34 +0100
                Re: Arduino / compilers on uC M Philbrook <jamie_ka1lpa@charter.net> - 2017-02-09 19:43 -0500
  Re: Arduino / compilers on uC Tim Wescott <tim@seemywebsite.com> - 2017-02-10 10:41 -0600
    Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-11 07:06 -0800
      Re: Arduino / compilers on uC Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-02-11 17:09 +0000
    Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-13 16:28 +0100
  Re: Arduino / compilers on uC Tim Wescott <tim@seemywebsite.com> - 2017-02-14 09:59 -0600
    Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-14 13:46 -0800
      Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-15 10:04 +0100
        Re: Arduino / compilers on uC dagmargoodboat@yahoo.com - 2017-02-15 05:57 -0800
          Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-15 16:02 +0100
            Re: Arduino / compilers on uC David Brown <david.brown@hesbynett.no> - 2017-02-15 17:15 +0100
          Re: Arduino / compilers on uC Tim Wescott <tim@seemywebsite.com> - 2017-02-16 14:19 -0600

csiph-web