BricxCC/NBC test release 2011-07-19
Posted: 19 Jul 2011, 13:36
I have uploaded a new test release zip with updated help files and pdf documentation. I am updating the online html pages at the present time. There are additional optimizations performed at level 3 and 4. Please test at level 3 for sure (the new optimizations) and at level 4 (optimizations that were already in the compiler but formerly at level 3) if you are daring. I have also optimized the optimizations so the compiler should feel a bit faster than it used to when you are using optimization levels > 1.
I have run a number of regression tests but it is not impossible that I have overlooked something. Please let me know if you run into any regressions. I hope to have this all rolled up into an official release later this week. If I get some help testing at optimization level 3 I may move those into level 2 if there do not appear to be any regressions/defects.
Here are the release notes for the current NBC and BricxCC test releases:
version 3.3.8.10
---------------
- NBC 1.2.1.r5
- Changed ROPS line highlighting to only be on while stepping through the code line by line.
- Watch window changes and joystick tool enhancements
- Fixed incorrect gettick help content
- Help updates for JoystickMessageType, JoystickMessageRead, SysRandomEx, rand, and srand API functions.
- Fixed text clipping defect in enhanced NBC/NXC firmware 1.31
- Added a new random number generator system call to enhanced NBC/NXC firmware 1.31
- ARROP enhanced firmware opcode fixes for floating point arrays
- Changed ARROP to base float/signed/unsigned calculations on output type rather than input type
- RS485 firmware changes to report more information from CommHSCheckStatus system call
Version 1.2.1.r5 (2011-07-19)
-----------------------------
- Cross platform updates for Linux (FPC/Lazarus)
- Added support for Dexter Industries DiGPS sensor
- Fixed typo defect in glPyramid API function
- Fixed defect with the inline keyword being used with a function prototype.
- Fixed defect with uninitialized strings not being valid strings (i.e., they are
not null terminated) which crashes string opcodes in the firmware.
- Changed the way that I2CBytes works (readlsbytes* in nxtdefs.h) so that there
is not a minimum of 15 ms overhead.
- Fixed infinite loop bug in structure declaration when unexpected characters are present.
- Fixed definition for several Remote* API functions which sent direct/system commands
to other NXT devices via Bluetooth or RS-485
- Fixes for rand() and RAND_MAX and _Random in NXTDefs.h
- Test program additions and updates
- Changes to PF Combo and Raw API functions.
- Added JoystickMessageType structure and JoystickMessageRead API function.
- Added support for new RandomEx system call with rand() and srand()
- Changed code in doAsm to set the statement type if the block contains
__GENRETVAL__ so that the RegisterName function returns the right register name.
- Changed __SeedRandomEx to reset the ReSeed flag back to FALSE so that the
__RandomEx function does not have to set it before calling the RandomEx system call function.
- Added support for static variables.
- Changed RS485CheckStatus, RS485DataAvailable, and RS485SendingData API functions to return
byte values (number of bytes being sent or available to read) rather than booleans.
- Updates to example programs for RS485 firmware fixes and API changes as well as the new
rand() and srand() API functions.
- Fixed bug with assigning a negative constant to an unsigned long variable.
- Fixed bug where static variables in inline functions were not being statically initialized.
- Added BranchComp, BranchTest, ArrayIndex, and ArrayReplace macros to NXCDefs.h
- Modified code generated for the repeat loop so that it has less overhead
- Changes to fix problems with using the wrong stack variables for unsigned types
- Added support for nested compif/compelse/compend compiler directives.
- Changes to speed up code optimizations.
- Additional code optimizations for array helper temporaries and other opcodes.
I have run a number of regression tests but it is not impossible that I have overlooked something. Please let me know if you run into any regressions. I hope to have this all rolled up into an official release later this week. If I get some help testing at optimization level 3 I may move those into level 2 if there do not appear to be any regressions/defects.
Here are the release notes for the current NBC and BricxCC test releases:
version 3.3.8.10
---------------
- NBC 1.2.1.r5
- Changed ROPS line highlighting to only be on while stepping through the code line by line.
- Watch window changes and joystick tool enhancements
- Fixed incorrect gettick help content
- Help updates for JoystickMessageType, JoystickMessageRead, SysRandomEx, rand, and srand API functions.
- Fixed text clipping defect in enhanced NBC/NXC firmware 1.31
- Added a new random number generator system call to enhanced NBC/NXC firmware 1.31
- ARROP enhanced firmware opcode fixes for floating point arrays
- Changed ARROP to base float/signed/unsigned calculations on output type rather than input type
- RS485 firmware changes to report more information from CommHSCheckStatus system call
Version 1.2.1.r5 (2011-07-19)
-----------------------------
- Cross platform updates for Linux (FPC/Lazarus)
- Added support for Dexter Industries DiGPS sensor
- Fixed typo defect in glPyramid API function
- Fixed defect with the inline keyword being used with a function prototype.
- Fixed defect with uninitialized strings not being valid strings (i.e., they are
not null terminated) which crashes string opcodes in the firmware.
- Changed the way that I2CBytes works (readlsbytes* in nxtdefs.h) so that there
is not a minimum of 15 ms overhead.
- Fixed infinite loop bug in structure declaration when unexpected characters are present.
- Fixed definition for several Remote* API functions which sent direct/system commands
to other NXT devices via Bluetooth or RS-485
- Fixes for rand() and RAND_MAX and _Random in NXTDefs.h
- Test program additions and updates
- Changes to PF Combo and Raw API functions.
- Added JoystickMessageType structure and JoystickMessageRead API function.
- Added support for new RandomEx system call with rand() and srand()
- Changed code in doAsm to set the statement type if the block contains
__GENRETVAL__ so that the RegisterName function returns the right register name.
- Changed __SeedRandomEx to reset the ReSeed flag back to FALSE so that the
__RandomEx function does not have to set it before calling the RandomEx system call function.
- Added support for static variables.
- Changed RS485CheckStatus, RS485DataAvailable, and RS485SendingData API functions to return
byte values (number of bytes being sent or available to read) rather than booleans.
- Updates to example programs for RS485 firmware fixes and API changes as well as the new
rand() and srand() API functions.
- Fixed bug with assigning a negative constant to an unsigned long variable.
- Fixed bug where static variables in inline functions were not being statically initialized.
- Added BranchComp, BranchTest, ArrayIndex, and ArrayReplace macros to NXCDefs.h
- Modified code generated for the repeat loop so that it has less overhead
- Changes to fix problems with using the wrong stack variables for unsigned types
- Added support for nested compif/compelse/compend compiler directives.
- Changes to speed up code optimizations.
- Additional code optimizations for array helper temporaries and other opcodes.