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


Groups > sci.electronics.design > #447745

Re: Arduino / compilers on uC

From David Brown <david.brown@hesbynett.no>
Newsgroups sci.electronics.design
Subject Re: Arduino / compilers on uC
Date 2017-02-15 17:15 +0100
Organization A noiseless patient Spider
Message-ID <o81uo9$6up$1@dont-email.me> (permalink)
References (1 earlier) <c_adnU0ZfJfJtD7FnZ2dnUU7-UOdnZ2d@giganews.com> <13338043-8eab-470f-b41d-966b1acc03dc@googlegroups.com> <o815fq$d18$1@dont-email.me> <d4442049-ab60-4633-a881-a4f7b09eee53@googlegroups.com> <o81qdt$n4p$1@dont-email.me>

Show all headers | View raw


On 15/02/17 16:02, David Brown wrote:
> On 15/02/17 14:57, dagmargoodboat@yahoo.com wrote:
>> On Wednesday, February 15, 2017 at 4:04:44 AM UTC-5, David Brown wrote:
>>> On 14/02/17 22:46, dagmargoodboat@yahoo.com wrote:
>>>> On Tuesday, February 14, 2017 at 10:59:24 AM UTC-5, Tim Wescott wrote:
>>>>> On Mon, 06 Feb 2017 15:43:44 -0800, dagmargoodboat wrote:
>>>>>
> <snip>
>>>>>
>>>>> I haven't read the whole thread, but clearly there are one or two 
>>>>> elements missing from "get a trustworthy compiler and a trustworthy set 
>>>>> of libraries, then trust the optimizer".  (And it's not "trust the 
>>>>> optimizer").
>>>>
>>>> I was mostly posting about the output quality of the tool chain, and only
>>>> incidentally about the compiler bug (that seems to have captured all the
>>>> attention).
>>>
>>> And you were wrong on both accounts.  You got inefficient code, and you
>>> had a bug in your code.  That's fair enough - not many people write
>>> perfect code every time, and sometimes it is hard to figure out what
>>> went wrong.  But you blamed the toolchain quality and compiler bugs -
>>> the toolchain (compiler, library, assembler, linker) is not at fault here.
>>>
>>> First, your inefficient code for port output is due to the Arduino
>>> system's abstraction layers.
>>
>> No it isn't. The example I gave was, that's true. But having looked at
>> more of the generated code, it's not particularly efficient on this
>> 8-bit machine.
> 
> There are certainly some areas where the code generated by avr-gcc is
> not as good as it could be.  Part of that is limitations of the AVR
> architecture (inefficient pointers, no SP+index addressing), part of it
> is limitations of the gcc architecture (such as register allocation
> being done in "int" sizes, leading to sub-optimal register usage for
> 8-bit data), and part of it is due to there only being a few people
> working on the avr port of gcc, and they simply don't have the capacity
> to tune the compiler as well as they would like.  It is also the case
> that code generation can be quite sensitive to a number of compiler
> options - perhaps the Arduino software hides these.
> 
> Anyway, all I can say for sure here is that the inefficient code sample
> you gave is primarily due to Arduino's abstraction layers, and that when
> I change a port output in my own AVR C code, the generated assembly is
> optimal.
> 
>>
>>>  That is part of the cost of using the
>>> flexible Arduino system.  You can well say that the Arduino libraries
>>> are less efficient than they could be, or less well documented than they
>>> should be - I have no argument there.  But you cannot compare assembly
>>> for setting a fixed output pin to code that uses run-time configurable
>>> choices of pins.  It is an apples to grocery shop comparison.  For the
>>> same task - turning on a fixed output pin - the compiler will generate
>>> the same optimal code as you would write by hand in assembly.
>>>
>>> Secondly, your "compiler error" was your misunderstanding of how "bool"
>>> works in C++ (or _Bool in C), leading to a mistake in sanitizing data
>>> from an external source.  Again, the Arduino system may have made it
>>> harder to figure out the problem, but the compiler was not at fault.
>>>
>>> Development is hard - sometimes we hit problems that we do not
>>> understand.  But the way forward is to ask "why is this happening?", not
>>> complain "/I/ can't be wrong - the tools are bad".
>>>
>>>>
>>>> I still maintain the compiler's wrong to only let me modify (at most) one
>>>> bit of a boolean, but then later *itself* use all eight bits to decide if
>>>> the variable is 'true' or 'false.'
>>>
>>> No, you are wrong here.  Complain to the C standards committee that
>>> wrote C99, or the C++ designers that introduced "bool" (which C's _Bool
>>> copies).
>>
>> Assume 'b' contains 0xff.  What should the following code segment print?
>>
> 
> I can't assume "b" contains 0xff, because at this point there is no "b".
> 
>> bool b;
>> word w;
>>
>> w = (word) b;
>> w &= 1;
>>
>> println(w);
> 
> If this is within a function, then "b" is not initialised - I expect to
> see a warning indicating this on the "w = (word) b;" line.  (If the
> Arduino software does not make it extremely simple to enable -Wall
> warnings, then it is a poor system indeed.)
> 
> I expect "w &= 1;" to do nothing, assuming optimisation is enabled.
> 
> The call to "println(w)" will therefore write whatever happened to be in
> the registers at the time.  Of course, the compiler is also free to omit
> the call entirely - the program has undefined behaviour, and the
> compiler can do anything it wants.
> 
> What you do not understand here is that there is /no/ way to make "b"
> contain 0xff in a legal C program.  It can't happen.  You have to cheat
> - and if you cheat, you cannot expect the compiler to see that.  It is
> /your/ responsibility to ensure that a variable is properly initialised
> before you attempt to read from it.  This can be done by normal C
> initialisation or assignment.  If you use pointer casts, memcpy, inline
> assembly, unions, and other methods to set the variable such a way that
> you have put an invalid value in the variable, then your program is
> broken - /you/ broke it by allowing undefined behaviour.  You cannot
> expect the compiler to figure out how /you/ broke the rules behind its
> back, and then to take that into account.
> 
> 
> 

Just for fun, I've downloaded the latest Atmel packaging of avr-gcc
(version 3.5.4, with avr-gcc version 4.9.2).  I tested this source,
compiled with:

avr-gcc -c b.c -Wall -Wextra -Os -Wa,-ahlsd=b.lst

Look at the generated object code.  No matter how much you add
"volatile", or try to muck about with forcing an invalid value into "b",
the "w &= 1;" is omitted as redundant.  The compiler generates a warning
message for test1:

b.c: In function 'test1':
b.c:13:4: warning: 'b' is used uninitialized in this function
[-Wuninitialized]
  w = (word) b;

The listing file below shows the generated assembly.  It is entirely
correct, with the only inefficiency being the loading of r24:r25 with 0
in test1 (the compiler could have skipped that).


// b.c
#include <stdbool.h>
#include <stdint.h>

typedef uint16_t word;

extern void println(word w);

void test1(void) {
	bool b;
	word w;
	
	w = (word) b;
	w &= 1;
	
	println(w);
}

void test2(void) {
	extern bool bx;
	word w;
	
	w = (word) bx;
	w &= 1;
	
	println(w);
}

void test3(void) {
	extern volatile bool bv;
	word w;
	
	w = (word) bv;
	w &= 1;
	
	println(w);
}

void test4(void) {
	extern volatile bool bv;
	word w;
	
	*(volatile uint8_t*) &bv = 2;
	
	w = (word) bv;
	w &= 1;
	
	println(w);
}

void test5(void) {
	volatile union { bool b; uint8_t u; } bu;
	word w;
	
	bu.u = 2;
	
	w = (word) bu.b;
	w &= 1;
	
	println(w);
}



GAS LISTING /tmp/ccVWdIy0.s 			page 1


   1               		.file	"b.c"
   2               	__SP_H__ = 0x3e
   3               	__SP_L__ = 0x3d
   4               	__SREG__ = 0x3f
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   7               		.text
   8               	.global	test1
  10               	test1:
  11               	/* prologue: function */
  12               	/* frame size = 0 */
  13               	/* stack size = 0 */
  14               	.L__stack_usage = 0
  15 0000 80E0      		ldi r24,0
  16 0002 90E0      		ldi r25,0
  17 0004 00C0      		rjmp println
  19               	.global	test2
  21               	test2:
  22               	/* prologue: function */
  23               	/* frame size = 0 */
  24               	/* stack size = 0 */
  25               	.L__stack_usage = 0
  26 0006 8091 0000 		lds r24,bx
  27 000a 90E0      		ldi r25,0
  28 000c 00C0      		rjmp println
  30               	.global	test3
  32               	test3:
  33               	/* prologue: function */
  34               	/* frame size = 0 */
  35               	/* stack size = 0 */
  36               	.L__stack_usage = 0
  37 000e 8091 0000 		lds r24,bv
  38 0012 90E0      		ldi r25,0
  39 0014 00C0      		rjmp println
  41               	.global	test4
  43               	test4:
  44               	/* prologue: function */
  45               	/* frame size = 0 */
  46               	/* stack size = 0 */
  47               	.L__stack_usage = 0
  48 0016 82E0      		ldi r24,lo8(2)
  49 0018 8093 0000 		sts bv,r24
  50 001c 8091 0000 		lds r24,bv
  51 0020 90E0      		ldi r25,0
  52 0022 00C0      		rjmp println
  54               	.global	test5
  56               	test5:
  57 0024 CF93      		push r28
  58 0026 DF93      		push r29
  59 0028 1F92      		push __zero_reg__
  60 002a CDB7      		in r28,__SP_L__
  61 002c DEB7      		in r29,__SP_H__
  62               	/* prologue: function */
  63               	/* frame size = 1 */
  64               	/* stack size = 3 */
  65               	.L__stack_usage = 3
  66 002e 82E0      		ldi r24,lo8(2)
GAS LISTING /tmp/ccVWdIy0.s 			page 2


  67 0030 8983      		std Y+1,r24
  68 0032 8981      		ldd r24,Y+1
  69 0034 90E0      		ldi r25,0
  70 0036 00D0      		rcall println
  71               	/* epilogue start */
  72 0038 0F90      		pop __tmp_reg__
  73 003a DF91      		pop r29
  74 003c CF91      		pop r28
  75 003e 0895      		ret
  77               		.ident	"GCC: (AVR_8_bit_GNU_Toolchain_3.5.4_1709)
4.9.2"
GAS LISTING /tmp/ccVWdIy0.s 			page 3


DEFINED SYMBOLS
                            *ABS*:0000000000000000 b.c
     /tmp/ccVWdIy0.s:2      *ABS*:000000000000003e __SP_H__
     /tmp/ccVWdIy0.s:3      *ABS*:000000000000003d __SP_L__
     /tmp/ccVWdIy0.s:4      *ABS*:000000000000003f __SREG__
     /tmp/ccVWdIy0.s:5      *ABS*:0000000000000000 __tmp_reg__
     /tmp/ccVWdIy0.s:6      *ABS*:0000000000000001 __zero_reg__
     /tmp/ccVWdIy0.s:10     .text:0000000000000000 test1
     /tmp/ccVWdIy0.s:21     .text:0000000000000006 test2
     /tmp/ccVWdIy0.s:32     .text:000000000000000e test3
     /tmp/ccVWdIy0.s:43     .text:0000000000000016 test4
     /tmp/ccVWdIy0.s:56     .text:0000000000000024 test5

UNDEFINED SYMBOLS
println
bx
bv

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