IDE 1.6.6 is now available for download

arkhipenko:
I would like to add to the above that the decision to exclude function prototype creation from preprocessing broke compilation of most of my sketches (which compiled perfectly fine under 1.6.5 avr 1.6.8 ).

I just checked a bunch of my sketches and they all work on either version. I don't define function prototypes in any of them. Can you provide a minimal sketch that demonstrates this issue?

pert:
I just checked a bunch of my sketches and they all work on either version. I don't define function prototypes in any of them. Can you provide a minimal sketch that demonstrates this issue?

Sure! Each and every example of the TaskScheduler library now does not compile.

Task definitions include reference to the callback method(s), which are coded later in the sketch.
I realize I should have been providing function prototypes already, but it used to work, and now it would not without additional changes...

Scheduler_example:17: error: 't1Callback' was not declared in this scope

 Task t1(2000, 10, &t1Callback);

                    ^

Scheduler_example:18: error: 't2Callback' was not declared in this scope

 Task t2(3000, -1, &t2Callback);

                    ^

Scheduler_example:19: error: 't3Callback' was not declared in this scope

 Task t3(5000, -1, &t3Callback);

                    ^

exit status 1
't1Callback' was not declared in this scope

Even this simple sketch just prints the first character to the display, i have tried everything so i think i have to use 1.6.5 until this is fixed

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);

void setup()
{
  lcd.init(); 
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}

arkhipenko:
the decision to exclude function prototype creation from preprocessing

The preprocessor still creates function prototypes but it changed the order in which things are done. Using your library as an example, this code compiles in 1.6.6:

#include <TaskScheduler.h>
void test() {}
Task t1(2000, 10, &test);
void setup() {}
void loop() {}

but this doesn’t:

#include <TaskScheduler.h>
Task t1(2000, 10, &test);
void test() {}
void setup() {}
void loop() {}

but even if you switched to the first code, this doesn’t compile in 1.6.5 or 1.6.6:

#include <TaskScheduler.h>
void test() {
  t1.isFirstIteration();
}
Task t1(2000, 10, &test);
void setup() {}
void loop() {}

That’s unfortunate arduino-builder doesn’t correctly process your example sketches. I think it would be reasonable to report this issue to Issues · arduino/arduino-builder · GitHub and see if they consider it a bug. If my library was affected by this I’d go ahead and add the prototypes anyway because even if the issue is fixed it will still be a while before a new version is released and everyone stops using 1.6.6.

Hi Federico Fissore,
maybe i need a litte after after installation of 1.6.6.

All files under c:/user/AppData/Arduino/ are compete removed.
Firmata is 2.4.4.
Libraries deleted and installed again.

I now have always this message.

WARNING: Category '' in library FastCRC is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library OneWire is not valid. Setting to 'Uncategorized'

What is wrong??
Thx
Oli

I have several sketches using the TimedAction library from the Arduino Playground, and found they won’t compile with IDE 1.6.6. It looks like the problem is with the function pointer in the constructor.

#include <TimedAction.h>

TimedAction timedAction = TimedAction(1000, blink);

void setup(){
  timedAction.enable();
}

void loop(){
  timedAction.check();
}

void blink(){
  // do stuff
}

The following error appears when compiling:

Arduino: 1.6.6 (Windows 7), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

TATest:3: error: 'blink' was not declared in this scope

 TimedAction timedAction = TimedAction(1000, blink);

                                             ^
exit status 1
'blink' was not declared in this scope

The library works fine in IDE 1.6.0. Any ideas?

I should point out that TimedAction is shown here mainly because it easily demonstrates the problem; the concern is more about why this seems to be broken now in IDE 1.6.6. Function pointers are passed in other libraries as well. Any help would be appreciated.

kschulz:
the problem is with the function pointer in the constructor.

That's the same issue that arkhipenko ran into. To fix it add the line:

void blink();

above the line:

TimedAction timedAction = TimedAction(1000, blink);

This is called a function prototype. Arduino IDE automatically generates function prototypes but in version 1.6.6 it doesn't do it soon enough to prevent the error. So any time you run into this error you just need to make a similar change.

Arduino IDE automatically generates function prototypes but in version 1.6.6 it doesn't do it soon enough to prevent the error.

Given that error, I should've tried adding a function prototype.

Works perfect, thanks pert!

olistack:
WARNING: Category '' in library FastCRC is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library OneWire is not valid. Setting to 'Uncategorized'
What is wrong??

Those warnings can be safely ignored. They are caused by the author of the library not specifying a category in their library.properties file which is used only for organizing libraries by topic in Library Manager.

olistack:
WARNING: Category '' in library FastCRC is not valid. Setting to 'Uncategorized'

I submitted a fix for this issue to the library repository at GitHub - FrankBoesing/FastCRC: Fast CRC library for PC and ARDUINO and it has already been accepted! So if you reinstall from the master branch(not the 1.0 release) then that will fix that warning.

olistack:
WARNING: Category '' in library OneWire is not valid. Setting to 'Uncategorized'

If you are using the OneWire library from: GitHub - PaulStoffregen/OneWire: Library for Dallas/Maxim 1-Wire Chips it has already been fixed though again you will want to install from master rather than the version 2.3 release.

A little update on my issue, it seems that it is the library LiquidCrystal_I2C that is not working correctly with 1.6.6

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:66:6: warning: unused parameter 'cols' [-Wunused-parameter]

 void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {

      ^

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:307:6: warning: unused parameter 'cmdDelay' [-Wunused-parameter]

 void LiquidCrystal_I2C::setDelay (int cmdDelay,int charDelay) {}

      ^

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:307:6: warning: unused parameter 'charDelay' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:310:9: warning: unused parameter 'graphtype' [-Wunused-parameter]

 uint8_t LiquidCrystal_I2C::init_bargraph(uint8_t graphtype){return 0;}

         ^

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:6: warning: unused parameter 'row' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_col_end){}

      ^

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:6: warning: unused parameter 'column' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:6: warning: unused parameter 'len' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:311:6: warning: unused parameter 'pixel_col_end' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:6: warning: unused parameter 'row' [-Wunused-parameter]

 void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_row_end){}

      ^

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:6: warning: unused parameter 'column' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:6: warning: unused parameter 'len' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:312:6: warning: unused parameter 'pixel_row_end' [-Wunused-parameter]

C:\Users\hugin\Documents\Arduino\libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp:313:6: warning: unused parameter 'new_val' [-Wunused-parameter]

 void LiquidCrystal_I2C::setContrast(uint8_t new_val){}

      ^

i get these warnings when i upload the sketch with 1.6.5 and 1.6.6, but it works without a problem in 1.6.5

this is the library i use GitHub - johnrickman/LiquidCrystal_I2C: LiquidCrystal Arduino library for the DFRobot I2C LCD displays

Hello, just installed IDE 1.6.6 Win10 and immediately got some errors (mainly about libraries incompatibility) which I've managed to fix, thanks God. However there is a one still existing with any sketch I try to upload or compile, even with the simpliest Blink sketch from examples:

Arduino: 1.6.6 (Windows 10), TD: 1.26-beta3, Board: "Arduino/Genuino Uno"

avr-gcc: error: C:\Users\Dima\AppData\Local\Temp\build08e4957f02c018eb579e11ddc64f9701.tmp/core\core.a: No such file or directory

exit status 1
Error compiling.

I did check the mentioned directory and found that core.a file is located this path:

C:\Users\Dima\AppData\Local\Temp\build08e4957f02c018eb579e11ddc64f9701.tmp/core.a

Then I tried to cut/paste it into .../core subdirectory but it disappears from there back to original place each time and error appears again and again.

What is wrong with it? I really need IDE workable for my projects completion and would appreciate any fast fixing idea very much! Many thanks!

vadpol:
avr-gcc: error: C:\Users\Dima\AppData\Local\Temp\build08e4957f02c018eb579e11ddc64f9701.tmp/core\core.a: No such file or directory

Give this a try, it helped someone else with a similar problem:
Close the Arduino IDE
Rename C:\Users\Dima\AppData\Local\Arduino15 to C:\Users\Dima\AppData\Local\Arduino15.bak
Reopen the Arduino IDE
Tools > Board > Boards Manager...
Click on Arduino AVR Boards
Click on Update
Try compiling Blink again and let me know what happens. If you want to get your old preferences settings back you can copy C:\Users\Dima\AppData\Local\Arduino15.bak\preferences.txt to C:\Users\Dima\AppData\Local\Arduino15

Hi folks and pert,
thanks for your fast response.
FastCRC is fixed and OneWire Lib properties are fixed by me.
Now it's oke.

Best regard
Oli

Just did it, actually no improvement, just got back libraries mistakes again on top...

Arduino: 1.6.6 (Windows 10), TD: 1.26-beta3, Board: "Arduino/Genuino Uno"

WARNING: Category '' in library EEPROM is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SPI is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SoftwareSerial is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library Wire is not valid. Setting to 'Uncategorized'
avr-gcc: error: C:\Users\Dima\AppData\Local\Temp\build08e4957f02c018eb579e11ddc64f9701.tmp/core\core.a: No such file or directory

exit status 1
Error compiling.

vadpol:
WARNING: Category '' in library EEPROM is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SPI is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SoftwareSerial is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library Wire is not valid. Setting to 'Uncategorized'

Sorry to hear. That's strange that you're getting those warnings because the libraries included with Arduino AVR Boards and with Arduino 1.6.6 all have their categories set correctly. Do you have copies of them in your {sketchbook}/libraries folder? You should be able to get back to where you were before by deleting C:\Users\Dima\AppData\Local\Arduino15 and renaming C:\Users\Dima\AppData\Local\Arduino15.bak to C:\Users\Dima\AppData\Local\Arduino15

Got it back to previous Arduino15 folder. Problems with libraries disappeared but core.a mistake still remains…

Arduino: 1.6.6 (Windows 10), TD: 1.26-beta3, Board: “Arduino/Genuino Uno”

avr-gcc: error: C:\Users\Dima\AppData\Local\Temp\build08e4957f02c018eb579e11ddc64f9701.tmp/core\core.a: No such file or directory

exit status 1
Error compiling.

Maybe it would be better to roll back to previous IDE version as this one seems to be still raw? Or is there some other more simple idea still? Would appreciate it very much!

You can try to uninstall and then reinstall Arduino IDE 1.6.6. You can also try if you did the Windows installer option before then try the Windows ZIP file instead(or vice versa). Hopefully Federico Fissore will be back here tomorrow and might be able to help you out more.

OK, thanks a lot for your efforts, let's see what could be done else without re-installing. Many thanks so far!

Still playing with the issue... Just downloaded zip version of IDE, unzipped it in a separate folder (not installing). Then clicked on exe file and... everything works fine! But clicking the icon on the desktop still recalls previously installed exe file and error is still there in this case. Replacing of the 'old' exe file with unzipped one gives no effect, core.a error remains. Most of all the full re-installation of IDE will help, but root clause of the error is nice to find...