ANN: Dao Language v.0.9.6-beta is release!
Colin J. Williams
cjw at sympatico.ca
Tue Nov 29 08:24:29 EST 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