Subject:
|
NBC/NXC beta 31 Release
|
Newsgroups:
|
lugnet.robotics.nxt
|
Date:
|
Mon, 2 Jul 2007 17:50:42 GMT
|
Viewed:
|
21432 times
|
| |
| |
I am about ready to release a new beta of NBC/NXC. There are some very
important new features and bug fixes in this release. Here's the current list
of fixes and new features.
Version 1.0.1.b31
-----------------
- Fixes a boolean expression bug which occurred when you used a numeric
variable or constant on its own in a logical AND operation. (e.g.,
if (Nsamps && x < 3)).
- Fixes problems with reference type arguments that are arrays or
user-defined types.
- Fixes problems where the compiler hangs while processing function
parameters.
- Fixes several other struct and array parameter passing problems.
- Fixes NXTDefs.h typo bug in ResetAllTachoCounts.
- Fixes NXCDefs.h typo bug in I2CStatus.
- Tightened up semicolon checking so that the parser complains when they are
required but they are missing.
- Fixed global array initialize when a length expression is specified and an
initial value is also specified. The length, in that case, is now ignored
since the array is statically initialized.
- Fixed a problem with initializing multi-dimensional global or local arrays
where the generated nested variable type declaration was causing an NBC
compiler error.
- Improved parsing of open and close parenthesis so that the compiler will
complain if you have an extra close parenthesis.
- Added code in the NXC compiler to initialize a hidden graphic variables
array and use it when calling the GraphicOut API function so that
parameterized RIC files can be drawn using either GraphicOut or
GraphicOutEx.
- Added support in NBC for RICScript programs which can be used to create
RIC files via a simple text programming language. A source file with a .rs
extension will use the RICScript compiler built into NBC and the output will
be a .ric file if there are no compiler errors.
- Adds the "safecall" keyword to NXC. A function or subroutine declared
with this keyword will automatically be wrapped in Acquire/Release with
a global mutex specific to that function so that multiple threads can
safely call the function without hanging.
- Adds the -safecall command line switch for NXC. If a program is
compiled with this switch on the command line then all function calls
will use the safecall calling convention, i.e., they will be wrapped
in Acquire/Release so that multiple tasks/threads can share the
subroutine safely.
I am hoping to have the release ready for public consumption in a day or two but
I would like to have some people try it out before it is officially released and
let me know if you run into any problems. Due to the increased checking by the
parser you may need to fix your existing code in places where the parser was
previously allowing things to slip by (such as missing semi-colons and extra
unmatched close parenthesis).
The main new features are a safecall keyword and compiler switch which lets you
call subroutines from multiple threads without having to manually wrap the call
in Acquire & Release. If you mark a function as being a safecall function then
the compiler will handle it automatically for you. And if you want all your
functions to be called using the safecall convention then you can simply add the
-safecall switch to the NBC command line.
Also new in NBC b31 as well as in BricxCC's built-in version of b31 there is now
support for the RICScript programming language which lets you create RIC files
via a text-based script. There will be enhancements here that involve importing
a sprite from an external file and things like that but for now it is at least
fully functional and well integrated with the latest BricxCC test release.
If you would like to test the safecall keyword and -safecall command line switch
or if you want to test RICScript then you can download the upcoming b31 release
from the BricxCC website:
http://bricxcc.sourceforge.net/test_release.zip
Email me if you have any questions or if you run into any problems.
I hope to have the b31 release ready for public release by the end of the week
at the latest. So your feedback prior to that timeframe would be greatly
appreciated. Thanks!
John Hansen
|
|
1 Message in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|