Name: Anonymous 2015-05-30 14:04
I want my future game to execute scripts (written in my own small language) which are to be distributed in compiled form. Also, I can infer types for all variables, so I think it will make sense to choose a VM tailored for static code execution.
I do not want to distribute the compiler to compile the scripts on the fly, and I also do not want to have much hassle building scripts for all supported platforms.
Desired properties:
* execute statically typed code
* while having a ``dynamic'' type
* easy support for string operations: concatenation, substring slices (start offset, length),
* easy support for lists and hashes that map strings to ``dynamic'' values
* good hassle-free FFI as the scripts are going to use library functions I provide in the C code
* open source of course
Preferred properties:
* JIT
VMs I have looked into:
* CLR - microsoft shit, bloated, do not want
* JVM - same shit, annoying to distribute
* Parrot - hard to compile to, no static typing
* CPython - no static typing, slow,
* PyPy - slow,
* LuaJIT - no static typing
* LLVM - incredibly hard to use
I lean towards compiling to LLVM bitcode though. What would you choose?
I do not want to distribute the compiler to compile the scripts on the fly, and I also do not want to have much hassle building scripts for all supported platforms.
Desired properties:
* execute statically typed code
* while having a ``dynamic'' type
* easy support for string operations: concatenation, substring slices (start offset, length),
* easy support for lists and hashes that map strings to ``dynamic'' values
* good hassle-free FFI as the scripts are going to use library functions I provide in the C code
* open source of course
Preferred properties:
* JIT
VMs I have looked into:
* CLR - microsoft shit, bloated, do not want
* JVM - same shit, annoying to distribute
* Parrot - hard to compile to, no static typing
* CPython - no static typing, slow,
* PyPy - slow,
* LuaJIT - no static typing
* LLVM - incredibly hard to use
I lean towards compiling to LLVM bitcode though. What would you choose?