The Dao Programming Language
daoscript.org
daoscript.org
道: found it on the Chinese version.
I just realized that you asked the question probably because of the LLVM-based JIT compiler for Dao. This JIT compiler actually does not deal with GC at all, it just compiles consecutive segments of VM instructions into functions that will be called by the VM. Only a subset of the total VM instructions are compilable this way. It was intended for programs with a significant amount of numeric computation.
B. Do the concurrent features allow shared memory parallelism?
I currently use Lua if I need an embedded scripting language for a personal project and the one thing that annoys me is that Lua cannot utilize multiple cores effectively.
The language is stable now in terms of features, there will be no more significant changes in the language in the forseeable future. However, the document on the website is a bit outdated, I will update it in the coming days.
As for the implementation, I cannot say for sure, but I believe it is sufficient stable now. My colleagues and I have been using Dao to develop commercial product prototype in the past half year, the only tricky problems we experienced had something to do with the wrapping of a game engine. All (no many actually) other problems are quite trivial. After solving the problems related to the wrapping, the product prototype has been working quite smoothly.
However, our use may not have covered all the features of Dao, so there could be some parts less stable than the parts we have been using. But since we are actually using Dao in real products, we are obviously obliged to make it as stable as possible:)
> B. Do the concurrent features allow shared memory parallelism?
Yes.
I know that the language has been around for years, though.
Has anyone here every used it?
It's probably easiest to just use V8 for any new projects, it's the fastest / most maintained and the scripting API isn't really that much more complicated. Plus basically everyone knows JS these days. https://github.com/v8/v8/wiki/Getting%20Started%20with%20Emb...
Although Dao does have good concurrency/async features; V8 isn't really POSIX thread safe.
Random links which have Dao in them: http://lambda-the-ultimate.org/node/2085 https://github.com/r-lyeh/scriptorium https://stackoverflow.com/questions/2526300/list-of-lua-deri... http://lua-users.org/lists/lua-l/2009-03/msg00137.html https://developers.slashdot.org/story/13/05/29/0225227/dao-a... http://www.devtopics.com/dao-obscure-programming-language-of...
Maybe you should consider changing the name, at very list just so you don't get dismissed when reading the title alone in any post, newsletter, w/e.
if( DaoMake::IsDir( "DaoJIT" ) ) modules.AddDirectory( "JIT", "DaoJIT" );
then it will be included in the building. After building, you can add "-j" option in the command line to turn on jit.However, this module has not been tested for some time. It could be broken. It depends on older versions of LLVM, which is unfortunately not available on my laptop, so I cannot verify it now.
Dao is a lightweight and optionally typed programming language with many advanced features. It includes features that can make concurrent programming very simple. It provides well designed programming interfaces for easy embedding and extending.
That's a shame, I'd love to get into it.
EDIT: Ignore me
https://github.com/daokoder/dao/ Last commit was 3 days ago
Project seems relatively active in general: https://github.com/daokoder/dao/graphs/commit-activity