*) 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)

Reply via email to