*) which thread synchronization primitives are there?
See http://nekovm.org/doc/mt and http://nekovm.org/doc/view/thread
for threading information. The library supports message queues and
locks out of the box.
*) how is data input/output supported?
There are File IO functions documented at http://nekovm.org/doc/view/
file. There's also an interface to the host system, see http://
nekovm.org/doc/view/sys.
*) is socket programming supported?
Yes, see http://nekovm.org/doc/view/socket
*) is char/string handling supported? translation to/from unicode?
Neko strings are fixed-length immutable byte arrays. There are quiet
a few string builtin functions (http://nekovm.org/doc/view/builtins)
as well as library functions (http://nekovm.org/doc/view/string) and
UTF8 handling functions (http://nekovm.org/doc/view/utf8).
*) is interfacing to some native code possible?
Absolutely, see the Foreign Function Interface documentation at
http://nekovm.org/doc/ffi for more information. The VM is designed
with this sort of extensibility in mind, and includes an "abstract"
type used to hold some piece of C data.
I'm not sure regarding your other questions, but I've found Neko to
be a pleasure to work with. Using code generation in an intermediate
language instead of bytecode generation helps immensely with
prototyping, bootstrapping and debugging. The dynamic typing also
makes it incredibly easy to target for a latently typed language, and
the flexibility of it's object system allows for some pretty cool
features.
-Justin Bonnar
--
Neko : One VM to run them all
(http://nekovm.org)