Currently supported languages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The first column is the language (in alphabetic order), the second column is the GPMI module you need to load. Language Module name Working Instance Memory version Safe (2) leak (1) bash cli yes yes no * lua lua yes yes no 5.1 scheme guile yes yes 650k 1.8 stutter (4) stutter yes yes 3k todo pascal ghli yes ?? ?? todo perl perl yes with ithreads (3) 120k 5.* php php yes no ?? todo python python yes no 800k 2.5 ruby ruby yes no 670k 1.8 tcl tcl yes yes 210k 8.4 (1) We estimated the bytes of memory that is leaking by using example-scripts with the given language together with valgrind. GPMI itself is not leaking, we can estabilsh that by trying lua (which is very well programmed, memory-wise) and the cli module which runs the actual script in a separate process. Of course the memory it is 'leaking' most of the time is just memory that isn't free'd after we requested a destroy. Still we consider this as a bad thing, although the memory is automaticly freed by the system after the program shuts down. So those numbers are just indications how good a language is in cleaning up after itself. (2) If a language is instance safe, we mean we can launch multiple instances of the same language at the same time, without messing around with the other instances. For example, I can have 2 variables 'foo' in both instances, with different values. They never know of eachother that the other is running. If it is known a language doesn't support it, we protected the code against multiple instances being active at the same time. (3) You can compile Perl with or without ithreads. When you do it without ithreads, perl isn't instance safe. When you do it with ithreads, it is no problem at all. (4) A lisp dialect.