IDE 1.8.0 Released -- update: 1.8.10

There's something weird going on with 1.8.8 preferences. As previous poster stated the fullscreen is wonky but so is the opening of the last sketch used. It now opens with a empty sketch where in 1.8.7 it opened the last used. Reverting back to 1.8.7.

  • MacOSX: added touch bar support

1.8.8 seems to be broken for me. OS 10.9.5/MacbookPro 13.3" from 2012 (i.e. no touch bar)

Symptoms : IDE starts up, loads boards etc, opens window to default sketch and immediately quit.

Looks like added touch bar support broke IDE for older Macs without touch bar; (reverting to 1.8.7 resolved the problem)

Debug shows :

dyld: Registered code signature for /private/var/folders/x_/n1mc8xx08v51kc006s6fgwqh0000gp/T/libJTouchBar.dylib4651976256396159074
2018-12-11 11:55:18.880 Arduino[1676:507] -[NSApplicationAWT setAutomaticCustomizeTouchBarMenuItemEnabled:]: unrecognized selector sent to instance 0x7fcfa8d04900
2018-12-11 11:55:18.882 Arduino[1676:507] Apple AWT Internal Exception: -[NSApplicationAWT setAutomaticCustomizeTouchBarMenuItemEnabled:]: unrecognized selector sent to instance 0x7fcfa8d04900
2018-12-11 11:55:18.882 Arduino[1676:507] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplicationAWT setAutomaticCustomizeTouchBarMenuItemEnabled:]: unrecognized selector sent to instance 0x7fcfa8d04900'

PAULC5:

  • MacOSX: added touch bar support

1.8.8 seems to be broken for me. OS 10.9.5/MacbookPro 13.3" from 2012 (i.e. no touch bar)

Symptoms : IDE starts up, loads boards etc, opens window to default sketch and immediately quit.

Looks like added touch bar support broke IDE for older Macs without touch bar; (reverting to 1.8.7 resolved the problem)

I think you diagnosed the problem correctly. The Arduino developers have already been notified of this bug and have made a fix:

If you want to try it out, you can install the Arduino IDE hourly build:

The hourly build is primarily intended for beta testing and may not be as stable as the production releases. However, the fix of this bug is only one of two significant changes made to the IDE's code since the 1.8.8 release so I think it should be just as good as 1.8.8, except without the touch bar bug.

pert:
I think you diagnosed the problem correctly. The Arduino developers have already been notified of this bug and have made a fix:
Arduino 1.8.8 crashes on startup - Mac OSX 10.11.6 (El C.) · Issue #8274 · arduino/Arduino · GitHub

Excellent, thanks !

It seems that the Wifi firmware updater isn't working properly on IDE 1.8.8. I was attempting to update my new WINC 1500 and the only firmware offered is the Model A (19.4.4) not the current version of Model B (19.5.4). I ran IDE 1.8.7 on my older MacBook and it offered versions from 19.4.4 up to the required version of 19.5.4.

I downloaded the nightly build and it also does not offer the correct firmware versions.

I was able to update the firmware correctly with the 1.8.7 version, just wanted to let everyone know of this issue.

Thanks,
Carroll

IDE

Fixed: command line parsing of version parameters when installing cores/libraries
Platform indexes are now downloaded using https
Fixed: on some newer linux distrubitions, NPE when loading GTK look-and-feel without libgtk2 installed
MacOSX: added touch bar support
MacOSX: do not exit app after closing last window
Fixed: serial monitor timestamps not always printed. Thanks @nitram509
Kill active programmer if still alive after closing last IDE window
Fixed: "Export compiled binary" now works also with unsaved sketches
Improved automatic port re-selection after upload
Added scroller to "INCOMPATIBLE" examples menu

Wifi Firmware
Added firmware upgrade for NINA-based boards

DaveAhrendt:
There's something weird going on with 1.8.8 preferences. As previous poster stated the fullscreen is wonky but so is the opening of the last sketch used. It now opens with a empty sketch where in 1.8.7 it opened the last used. Reverting back to 1.8.7.

Thanks for reporting this. There is now a proposed fix:

Test builds are available at the link above if you want to try it out.

Hey team arduino I have a problem in uploading code to my arduino uno r3 and I am doing this in Windows 7 and I also checked your help box and done exactly given there to update driver installation. I only found unknown sources and tried to update it but my windows in online search send a message that 'Windows is unable to find driver software for your unknown device

Vaibhav2710:
I have a problem in uploading code to my arduino uno r3

Provide a detailed explanation of the problem.

Vaibhav2710:
Plz help me

Don't do that. It will only make us less likely to help you.

I downloaded the new version but suddenly " while (Serial.available()==0){ } " stopped working so I uninstalled and kept working on the older version if someone can help it would be so thankful

Kshehab91:
I downloaded the new version but suddenly " while (Serial.available()==0){ } " stopped working so I uninstalled and kept working on the older version if someone can help it would be so thankful

Which version is the older version?

Kshehab91:
I downloaded the new version but suddenly " while (Serial.available()==0){ } " stopped working so I uninstalled and kept working on the older version if someone can help it would be so thankful

We'll resolve this issue here:
http://forum.arduino.cc/index.php?topic=591792

I can't add a label as the very last item in the main loop.

This works:

void loop() {
  // put your main code here, to run repeatedly:
label:
delay(1);
}

This doesn't:

void loop() {
  // put your main code here, to run repeatedly:
label:
}

The error message is:

exit status 1
expected primary-expression before '}' token

I wanted to use goto (yeah, I know goto is considered harmful) in order to break out of a deeply nested loop and go to the very end of the sketch, where nothing more should be done.

Another thing: if I enable code folding, fold a function with an error inside it, and compile, the IDE will mark the very top line of the sketch as erroneous (in pink) rather than the actual line with the error.
I wish that it would either mark the first line of the function itself, or automatically unfold the function and then mark the correct line. As it is now I have to hunt for the broken function.

A related question: is there a shortcut to fold or unfold all code at the same time?

a label should have some code after it. if you want to leave the loop, just return it:

void loop() {
  if(something) {
  return;
}
somethingElse(); // somethingElse will not be call if something is true

Also, dont know your code, but you should try reverse condition check to avoid deep if nesting using return statement.

void myFunction() {

  if (contiotion1) {
    if (condition2) {
      doSomething();
    }
  }
}

could be:

void myFunction() {

  if (!contiotion1) {
    return;
  }
  if (!condition2) {
    return;
  }
  doSomething();
}

Finally, you should have start another tread in the forum instead...

regards. Nitrof

GalFisk:
I wanted to use goto (yeah, I know goto is considered harmful) in order to break out of a deeply nested loop and go to the very end of the sketch, where nothing more should be done.

Are you aware that once you reach the end of the loop function, it will just run the loop over again? If you really do want to do nothing more ever, you can use this line of code:

while(true) {}  // endless loop that does nothing

GalFisk:
Another thing: if I enable code folding, fold a function with an error inside it, and compile, the IDE will mark the very top line of the sketch as erroneous (in pink) rather than the actual line with the error.
I wish that it would either mark the first line of the function itself, or automatically unfold the function and then mark the correct line. As it is now I have to hunt for the broken function.

I have reported this to the Arduino developers:

Thanks for letting us know of the issue.

GalFisk:
A related question: is there a shortcut to fold or unfold all code at the same time?

Not that I know of (I'd be interested to hear if there is one). You can fold or unfold all via Right Click > Folding > Collapse/Expand All Folds

I'm new and I've only used 1.8.8. I thought the issue was bug in the IDE, since the sample code in the Arduino reference (goto - Arduino Reference) shows an example that ends with a label, and says nothing about the limitations.
I guess the reference could do with a slight update instead.

Sorry if I wasn't clear: I don't need the Arduino to halt, I just didn't need to put any more code after the label, and thought that it was odd that it then failed.

The actual code is a bunch of for loops that create different counters used to coordinate different parts of an old LCD. At the center of it all, the content of an array is being output to the LCD, and there is a condition to goto the outside of everything whenever the array is exhausted.

I don't have the current code here, but here is a simpler version of what I tried to write.

void loop() {
  // put your main code here, to run repeatedly:
  int counter=0;
  for (byte c=0; c<10; c++) {   // Cycle chips
    LCD1.chipSelect(1 << c);
    for (byte b=0; b<4; b++)  {   // Cycle banks
      LCD1.setBank(b);
      for (byte a=0; a<50; a++) {   // Cycle address
        LCD1.writeData(font[counter]);
        counter++;
        if (counter>sizeof(font)) goto quit;
      }
    }
  }
quit:
}

if (counter>sizeof(font)) return; that's it...

nitrof:

if (counter>sizeof(font)) return;

that's it...

Nice, thanks.

Another issue: if my computer has been up for a few days with the IDE always running, in and out of sleep mode (S1 suspend only, no S3) I'll start to get random, intermittent compile errors, the error message indicating a segfault in the compiler (apologies for not having the actual error message at hand). A compilation can work fine just to fail during the next attempt, fail consistently, or fail according to changes in the code (the first time this happened, it failed whenever I used a 0xsomething or 0bsomething literal, but decimal worked fine - until it suddenly started failing at everything).
Is this a known issue, and if not, how can I best report it?

1 Like

GalFisk:
the error message indicating a segfault in the compiler

I can't say for certain without seeing the actual error output, but I suspect it's this:

This bug is specific to the 5.4.0-atmel3.6.1-arduino2 version of avr-gcc used by Arduino AVR Boards 1.6.22 and newer. It has been reported here:

Here's the traditional workaround:

  • Tools > Board > Boards Manager
  • Wait for downloads to finish.
  • When you move the mouse pointer over "Arduino AVR Boards", you will see a "Select version" dropdown menu appear. Select "1.6.21".
  • Click "Install".
  • Wait for installation to finish.
  • Click "Close".

Due to a bug, this workaround doesn't work with Arduino IDE 1.8.6, but it will work with any other version of the Arduino IDE.

If you have File > Preferences > Check for updates on startup checked, the Arduino IDE may occasionally notify you that a new version of Arduino AVR Boards is available, you'll need to refrain from updating back to the new Arduino AVR Boards version, otherwise you'll be back to seeing the segmentation fault error again.

Alternate workaround:
One of the Arduino developers recently worked on this and claims to have fixed it. There is a special beta testing hardware package you can install via the Arduino IDE's Boards Manager that has the fix:

  • (In the Arduino IDE) File > Preferences
  • In the "Additional Boards Manager URLs" field, enter: http://downloads.arduino.cc/packages/package_avr_7.3.0_index.json If you already have an additional Boards Manager URL in that field, you can separate multiple URLs with commas or click the button on the right side of the field to open a dialog that allows you to add each on its own line.
  • Click "OK"
  • Tools > Board > Boards Manager
  • Wait for the downloads to finish
  • Click on "Arduino AVR Boards by Arduino"
  • Click the "Update" button.
  • Wait for the update to finish.
  • Click "Close".

GalFisk:
how can I best report it?

As you can see, this particular issue has already been thoroughly reported and addressed. However, you seem to be very good at spotting issues and willing to make the effort to report them so that we can improve the Arduino project. I do try to transfer issues reported on the forum to the places where the Arduino developers will see them, but I only do this when I can reproduce the issue so it's best when the original user reports it to them directly. Here, you will find a guide with links to where any given issue topic should be reported, as well as what the required information is:

The most important points:

  • If it's a software problem, make sure the problem still occurs using the latest version. In the case of the Arduino IDE, this means you need to download and test with a fresh copy of the Hourly Build.
  • Do a search of the relevant issue tracker to make sure the issue hasn't already been reported.

You can make a very significant contribution to the Arduino project by submitting high quality issue reports.

BTW, I do have it on my "to do" list to investigate the goto reference page example code issue you reported in a previous reply.