|
|
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 1496 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 |
fu: Fixed and updated
There was a minor bug in storing returned value in the DaoVmProcess structure. Now it is fixed and up ... (Sep.07,23:43)
klabim: ...
Ok, I found it. It can be so easy by reading the documentation :- ). I have overseen the keyword glob ... (Aug.21,18:09)
|