Next

Prev

Prev-tail

Tail

Up

Chapter 32
Release Notes

This chapter lists the user-visible changes in Urbi SDK releases.

32.1 Urbi SDK 2.6

Released on 2011-01-06.

This release features several deep changes that are not user visible, but which provide significant optimizations. Several bugs have been fixed too.

32.1.1 Fixes

32.1.2 Optimizations

32.1.3 New Features

32.1.4 Documentation

32.2 Urbi SDK 2.5

Released on 2010-12-07.

32.2.1 Fixes

32.2.2 New Features

32.2.3 Changes

32.2.4 Documentation

32.3 Urbi SDK 2.4

Released on 2010-10-20.

32.3.1 Fixes

32.3.2 New Features

32.3.3 Documentation

32.4 Urbi SDK 2.3

Released on 2010-09-28.

32.4.1 Fixes

32.4.2 New Features

32.5 Urbi SDK 2.2

Released on 2010-08-23.

32.5.1 Fixes

32.5.2 New Features

32.5.3 Documentation

32.6 Urbi SDK 2.1

Released on 2010-07-08.

32.6.1 Fixes

32.6.2 New Features

32.6.3 Optimization

32.6.4 Documentation

32.7 Urbi SDK 2.0.3

Released on 2010-05-28.

32.7.1 New Features

32.7.2 Fixes

32.7.3 Documentation

32.8 Urbi SDK 2.0.2

Released on 2010-05-06.

32.8.1 urbiscript

32.8.2 Fixes

32.8.3 Documentation

32.9 Urbi SDK 2.0.1

Released on 2010-05-03.

32.9.1 urbiscript

32.9.2 Documentation

32.9.3 Fixes

32.10 Urbi SDK 2.0

Released on 2010-04-09.

32.10.1 urbiscript

32.10.1.1 Changes

32.10.1.2 New features

32.10.2 UObjects

32.10.3 Documentation

32.11 Urbi SDK 2.0 RC 4

Released on 2010-01-29.

32.11.1 urbiscript

32.11.1.1 Changes

32.11.1.2 New objects

32.11.1.3 New features

32.11.2 UObjects

32.12 Urbi SDK 2.0 RC 3

Released on 2010-01-13.

32.12.1 urbiscript

32.12.1.1 Fixes

32.12.1.2 Changes

32.12.2 Documentation

32.13 Urbi SDK 2.0 RC 2

Released on 2009-11-30.

This release candidate includes many fixes and improvements that are not reported below. The following list is by no means exhaustive.

32.13.1 Optimization

The urbiscript engine was considerably optimized in both space and time.

32.13.2 urbiscript

32.13.2.1 New constructs

32.13.2.2 New objects

32.13.2.3 New features

32.13.2.4 Fixes

32.13.2.5 Deprecations

32.13.2.6 Changes

32.13.3 UObjects

32.13.4 Documentation

The documentation was fixed, completed, and extended. Its layout was also improved. Changes include, but are not limited to:

32.13.5 Various

32.14 Urbi SDK 2.0 RC 1

Released on 2009-04-03.

32.14.1 Auxiliary programs

32.14.2 urbiscript

32.14.2.1 Syntax of events

The keyword emit is deprecated in favor of !.



Deprecated Updated


emit e;

e!;

emit e(a);

e!(a);

emit e ~ 1s;

e! ~ 1s;

emit e(a) ~ 1s;

e!(a) ~ 1s;



The ? construct is changed for symmetry.



Deprecated Updated


at (?e)

at (e?)

at (?e(var a))

at (e?(var a))

at (?e(var a) if 0 <= a)

at (e?(var a) if 0 <= a)

at (?e(2))

at (e?(2))

This syntax for sending and receiving is traditional and can be found in various programming languages.

32.14.2.2 Changes

32.14.2.3 Fixes

32.14.3 URBI Remote SDK

The API for plugged-in UObjects is not thread safe, and never was: calls to the API must be done only in the very same thread that runs the Urbi code. Assertions (run-time failures) are now triggered for invalid calls.

32.14.4 Documentation

Extended documentation on: Comparable (Section 21.7), Orderable (Section 21.40).

32.15 Urbi SDK 2.0 beta 4

Released on 2009-03-03.

32.15.1 Documentation

An initial sketch of documentation (a tutorial, and the language and library specifications) is included.

32.15.2 urbiscript

32.15.2.1 Bug fixes

32.15.2.2 Changes

32.15.3 Programs

32.15.3.1 Environment variables

The environment variable URBI_ROOT denotes the directory which is the root of the tree into which Urbi was installed. It corresponds to the ”prefix” in GNU Autoconf parlance, and defaults to ‘/usr/local’ under Unix. urbiscript library files are expected to be in ¡URBI_ROOT¿/share/gostai/urbi.

The environment variable URBI_PATH, which allows to specify a colon-separated list of directories into which urbiscript files are looked-up, may extend or override URBI_ROOT. Any superfluous colon denotes the place where the URBI_ROOT path is taken into account.

32.15.3.2 Scripting

To enable writing (batch) scripts seamlessly in Urbi, urbi-console -f’/‘--fast’ is now renamed as ‘-F’/‘--fast’. Please, never use short options in batch programs, as they are likely to change.

Two new option pairs, ‘-e’/‘--expression’ and ‘-f’/‘--file’, plus the ability to reach the command line arguments from Urbi make it possible to write simple batch Urbi programs. For instance:

 
$ cat demo 
#! /usr/bin/env urbi-console 
cout << System.arguments; 
shutdown; 
 
$ ./demo 1 2 3 | grep output 
[00000004:output] ["1", "2", "3"]  

32.15.3.3 urbi-console

urbi-console is now a simple wrapper around urbi-launch. Running

 
urbi-console arg1 arg2...  

is equivalent to running

 
urbi-launch --start -- arg1 arg2...  

32.15.3.4 Auxiliary programs

The command line interface of urbi-sendbin has been updated. urbi-send now supports ‘-e’/‘--expression’ and ‘-f’/‘--file’. For instance

 
$ urbi-send -e var x; -e "x = $value;" -e shutdown;  

32.16 Urbi SDK 2.0 beta 3

Released on 2009-01-05.

32.16.1 Documentation

A new document, ‘FAQ.txt’, addresses the questions most frequently asked by our users during the beta-test period.

32.16.2 urbiscript

32.16.2.1 Fixes

32.16.2.2 Changes

32.16.3 UObjects

32.16.4 Auxiliary programs

urbi-launch
Now, options for urbi-launch are separated from options to give to the underlying program (in remote and start modes) by using ‘--’. Use ‘urbi-launch --help’ to get the full usage information.

32.17 Urbi SDK 2.0 beta 2

Released on 2008-11-03.

32.17.1 urbiscript

32.17.2 Standard library

32.17.3 UObjects

”UVar::type()” method.
It is now possible to get the type of a ”UVar” by calling its ”type()” method, which returns a ”UDataType” (see ‘urbi/uvalue.hh’ for the types declarations).

32.17.4 Run-time

Stack exhaustion check on Windows

As was done on GNU/Linux already, stack exhaustion condition is detected on Windows, for example in the case of an infinite recursion. In this case, SchedulingError will be raised and can be caught.

Errors from the trajectory generator are propagated

If the trajectory generator throws an exception, for example because it cannot assign the result of its computation to a non-existent variable, the error is propagated and the generator is stopped:

 
xx = 20 ampli:5 sin:10s; 
[00002140:error] !!! lookup failed: xx  

32.17.5 Bug fixes

Support for Windows shares

Previous versions of the kernel could not be launched from a Windows remote directory whose name is starting with two slashes such as ‘//share/some/dir’.

Implement ”UVar::syncValue()” in plugged uobjects

Calling ”syncValue()” on a ”UVar” from a plugged UObject resulted in a link error. This method is now implemented, but does nothing as there is nothing to do. However, its presence is required to be able to use the same UObject in both remote and engine modes.

”isdef” works again

The support for k1 compatibility function ”isdef” was broken in the case of composed names or variables whose content was ”void”. Note that we do not recommend using ”isdef” at all. Slots related methods such as ”getSlot”, ”hasSlot”, ”locateSlot”, or ”slotNames” have much cleaner semantics.

”__name” macro

In some cases, the __name macro could not be used with plugged uobjects, for example in the following expression:

 
send(__name + ".val = 1;");  
This has been fixed. __name contains a valid slot name of uobjects.

32.17.6 Auxiliary programs

The sample programs demonstrating the SDK Remote, i.e., how to write a client for the Urbi server, have been renamed from urbi* to urbi-*. For instance urbisend is now spelled urbi-send.

Besides, their interfaces are being overhauled to be more consistent with the Urbi command-line tool-box. For instance while urbisend used to require exactly two arguments (host-name, file to send), it now supports options (e.g., ‘--help’, ‘--port’ to specify the port etc.), and as many files as provided on the command line.