|
|
Other versions: 1.0
What's new in Dao 1.1 (released on 2009-09-19)
New features:
- Some built-in methods for functional programming (such as map(), reduce() etc.);
- Some built-in functional style methods for data construction (such as string(), list() etc.)
- Some math functions are also supported as built-in functions;
- Enhanced switch-case statement;
- New do{}while() statement;
- Tail call optimization;
- Type checking operators: ?=, ?<, and the associated VM instruction DVM_CHECK;
- Operation asserting operator: ??, to check if the last operation is successful,
and/or provide an alternative if not successful;
- Automatic inheritance of constructors from single parent class/cdata;
- DaoVmSpace_AddVirtualFile(), and daoMainv.c to support packing script files into the Dao
interpreter executable.
- Parameter passing by reference, and constant parameters;
Important enhancement and changes:
- Keywords for declaring local/global constant, variables, instance variables;
- Class definition: class body no longer allows statements;
- Syntax for operator overloading;
- Proper parsing >> in type names, and >= after type names, such as:
list<list<int>>, a : list<int>= {} ;
- Storage for local variables as references;
- Decreased GC frequency to greatly decrease the GC overhead for singel threaded version;
- Improved GC by freeing more data directly, and by add tuple type to GC scanning process;
- Reduced tuple creation when possible;
- Revised type and function preparation methods for loading C modules;
- Some C/C++ interface functions are moved from type DaoVmSpace to DaoNameSpace;
- math.rand(), math.rand_gaussian() now take a parameter which is multiply to the
standard distribution (even and normal);
- Constant number literal should now use 'D' to mark double precision instead of
using double '0';
- "stdio" is changed to "io", and "stdio" is kept as an alias to "io" for compatiblity;
- "stdlib" is changed to "std", and "stdlib" is kept as an alias to "std" for compatiblity;
- "stdio.print/printf/println" are changed to "io.write/writef/writeln", aliases are kept
for compatiblity;
- Passing parameter as references for simple data types is back;
- Now max() and min() methods of list and array return a tuple to include the value and index;
And for list, a larger range of types are allowed for comparison;
- Improved cast to tuples;
- Disabled duplication of C functions, and disable data copying for parameters passed to C functions;
There are also a number of bug fixings.
The autobind.dao tool is also improved.
view count 1411 times
created at 2009-03-06, 13:47 GMT modified at 2009-09-20, 02:15 GMT
|
| | | | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
fu: Many thanks
(Jul.04,04:29)
klabim: fixed
Hi,
great, now my test works now :- ). (Jun.30,17:51)
|