Home Demos Forum Research Guide
Viewing topic in forum 'announcements'
back to topic list

Dana v160
Dana v160 consolidates the upgrades in v159, fixing a few leftover issues and providing some enhanced compiler performance.

Syntax model update

We've updated the syntax model to better handle the use of return statements in void functions. In previous syntax models a return statement would automatically consume the next expression as part of the return, unless that return statement was followed by a semicolon. Because semicolons are no longer needed, this left an ambiguity of whether or not "return" should then automatically use the following expression as the return value. We've therefore updated the syntax model to check if the function containing the return actually has a return value - if it does, return consumes the following expression for use as the return value, otherwise it does not.

Adaptation procedure simplified

We've changed the way in which runtime adaptation is driven by meta-systems, removing the need to do "commitTransfer" operations. The commitTransfer procedure used perform a more complex task, but over successive language updates this task has become much simpler and the role of commitTransfer is difficult to understand. Because its actual operation is now very simple, it can in fact unambiguously be performed by the required-provided interface assignment that would always preceed a commitTransfer. We've therefore moved this logic as an automated side-effect of the assignment, thereby removing the necessity of commitTransfer.

Old code will still work just fine, but we'd advise migrating adapation code to match the new, simplified procedure. The simplified adaptation procedure that you should now use is listed at

Further updates to runtime adaptation support are currently at the top of our priority list and more changes will be coming here soon.

New operation: dana.isConnected

Finally, we often get requests for an operation that can check whether or not a particular required interface is connected to anything at runtime. While we were a little reluctant to introduce such an operation (because in many cases you should have this information in your meta-system), there are some edge cases where it's useful to directly ask the runtime for this status. We've therefore added the operation dana.isConnected(), to which a required interface can be passed.
We'd advise you to use this operation only in places where there's really no other way to get this information, otherwise it's likely that you're doing something not quite right.

Happy coding :-)
by barry on 2016-01-15 00:13:59 (0 replies)

© Francis Research Ltd. 2018