[EMAIL PROTECTED] 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: > [EMAIL PROTECTED] 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. -- http://mail.python.org/mailman/listinfo/python-list