ANN: Dao Language v.0.9.6-beta is release!

Colin J. Williams cjw at sympatico.ca
Tue Nov 29 14:24:29 CET 2005


phoolimin at gmail.com wrote:
> Dear all,
> 
> This is just to let you know that the lastest version Dao language is
> released.
> This Dao was previously called Tao, and now is changed to Dao to avoid
> confusion
> with another Tao langauge. There are a number of new features
> implemented in
> this version, of which the most important one is the supporting for
> multi-threaded
> programming. A new concurrent garbage collector is also implemented to
> for the
> multi-threaded interpreter. Now unicode is also supported for string
> manipulation
> and regular expression (regex) matching etc. The algorithm for regex
> matching
> is enhanced with fixing of a few bugs which prevent finding the most
> reasonable
> matching in some case, and allowing reverse matching from the end of
> string.
> The interface for creating Dao plugin in C++ is further simplified and
> matured.
> Of course, many bugs are also fixed. For more information,
> please visite: http://www.xdao.org.
> 
> By the way, a console named DaoConsole with graphical user interface is
> also released.
> 
> With best regards,
> 
> Limin Fu
> 
> -----------------------------
> ChangLog for this release:
> -----------------------------
> 
> + : added
> ! : changed
> * : fixed
> - : removed
> 
> MULTITHREADING:
> +	Multi-threaded programming is supported as a kernel feature of
> 	Dao language. Posix thread library is used in the implementation.
> 	And the thread API in Dao is similar to that in Posix thread.
> 	Parts of the Dao interpreter is re-structured for multithreading.
> +	A novel concurrent garbage collector based on reference counting
> 	is implemented to support multithreading.
> +	A upper bound for GC amount is applied to prevent memory "avalanche",
> 	where mutators generate garbage faster than GC can collect them.
> 	gcmin(), gcmax().
> 
> UNICODE:
> +	UNICODE is supported. String quotated with double quotation symbol
> 	is internally represented as Wide Character String(WCS), while string
> 	quotated with single quotation symbol is internally represented
> 	Multi Bytes String(MBS). Corresponding operations on WCS is also
> 	supported.
> 
> REGEX:
> +	Regex reverse matching is supported.
> +	Now internal representation of Regex uses both MBS and WCS for both
> 	efficiency and proper matching character class for unicode. When a
> 	regex is applied to MBS or WCS, the corresponding representation is
> 	used.
> +	Regex datatype is added, a regex pattern can be compiled and stored
> 	for later use, by using: define regex: rgx = /\d+\w/;
> 	or, rgx = regex( "\\d+\\w" );
> +	New character class abbreviations \u and \U are added for unicode.
> +	Customized character class abbreviations are support. Users can
> define
> 	their own character class abbreviations by:
> 	define regex: \2 = [WhateverChars];
> !	Algorithm for regex matching is modified to extend matching when
> 	possible, and is also modified to match regex group correctly.
> 
> NUMERIC ARRAY:
> +	Specification of precision in numeric array enumeration is supported:
> 	num=[@{numtype} array];
> !	Transpose operator(right operator) is changed from ' to ~.
> -	Function convolute() for numeric arrays is removed.
> 
> EXTENDING AND EMBEDDING:
> +	Some abstract classes are added for supporting easy embedding
> 	of Dao interpreter ( the daoMain.cpp source file is an example
> 	for embedding ).
> +	Some wrapper classes for Dao data objects are provide in daoType.h
> 	to faciliate the using of Dao data objects in plugins or other
> 	programs in which Dao is embedded.
> !	A new technique is implemented to allow more tranparent passing
> 	data between Dao interpreter and C++ modules. Creation of shadow
> 	classes is also supported by the way.
> 
> IO:
> +	Instead of using STL stream classes, new DaoStream classes are
> 	added mainly for handling unicode in many places.
> +	For file IO, more open modes such as "rwat" are supported, and
> 	more methods such as eof(), seek(), tell() ... are implemented.
> 	read() is enhanced such that it can read until meeting EOF.
> 
> OTHERS:
> +	Multi inheritance is supported for OOP. And the passing parameters
> 	and calling to parent constructor is simplified.
> +	Negative subindex is supported for string.
> +	Added a feature that allows using Alternate KeyWord (*.akw) to
> 	write Dao scripts in non-english languages. The only requirement
> 	is the character encoding for the .akw file must be the same as the
> 	script files.
> !	Variable scope specification keyword "global" is added; keyword
> 	"extern" is remove; keyword "share" is changed to "shared"
> !	Data states are added for constant and frozen data. Now a const
> 	data is a really const, and can not be modified anymore. Function
> 	freeze() is added to freeze some data structures as well as those
> 	are reachable from them, to prevent them from being modified;
> 	And defreeze() is added to defreeze them.
> !	The using namespace is simplified(compile(),eval(),source()).
> 
How does Dao compare with Python?  What does Dao permit one to do which 
cannot conveniently be done in Python?

Colin W.



More information about the Python-list mailing list