To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxtOpen lugnet.robotics.nxt in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / 780
779  |  781
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
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR