[Info-vax] Python for x86?

Arne Vajhøj arne at vajhoej.dk
Wed Apr 19 20:27:15 EDT 2023


On 4/14/2023 7:22 PM, Arne Vajhøj wrote:
> On 4/14/2023 8:19 AM, Simon Clubley wrote:
>> - Python is an excellent way to add automation/scripting capabilities to
>> a wide range of applications.
>>
>> Try doing the following with Perl: :-)
>>
>> https://docs.blender.org/api/current/info_overview.html
> 
> It is possible to embed Perl as well.
> 
> I would say Perl and Python is similar in that regard.
> 
> https://docs.python.org/3/extending/embedding.html
> 
> https://perldoc.perl.org/perlembed

Of course JSR 223 is pretty cool in this regard.

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class EmbeddedScript {
     public static void test(String language, String source) throws 
ScriptException {
         System.out.println(language + ":");
         System.out.print(source);
         ScriptEngineManager sem = new ScriptEngineManager();
         ScriptEngine se = sem.getEngineByName(language);
         se.eval(source);
     }
     public static void main(String[] args) throws ScriptException {
         test("javascript", "for(i = 0; i < 3; i++) {\r\n" +
                            "    print(\"Hi from JavaScript!\")\r\n" +
                            "}\r\n");
         test("python", "for i in range(3):\r\n" +
                        "    print(\"Hi from Python!\")\r\n");
         test("ruby", "for i in 1..3 do\r\n" +
                      "    puts 'Hi from Ruby!'\r\n" +
                      "end\r\n");
         test("php", "<?php\r\n" +
                     "for($i = 0; $i < 3; $i++) {\r\n" +
                     "    echo \"Hi from PHP!\\r\\n\";\r\n" +
                     "}\r\n" +
                     "?>\r\n");
         test("groovy", "for(i in 1..3) {\r\n" +
                        "    println \"Hi from Groovy!\"\r\n" +
                        "}\r\n");
         test("perl", "for(1..3) {\r\n" +
                      "    print(\"Hi from Perl!\\n\");\r\n" +
                      "}\r\n");
         test("lua", "for i = 1,3\r\n" +
                     "do\r\n" +
                     "    print(\"Hi from Lua!\")\r\n" +
                     "end\r\n");
         test("Lisp", "(dotimes (n 3)\r\n" +
                      "    (format t \"Hi from Lisp!~%\"))\r\n");
         test("tcl", "for {set i 0} {$i < 3} {incr i} {\r\n" +
                      "    puts \"Hi from Tcl!\"\r\n" +
                      "}\r\n");
     }
}

outputs:

javascript:
for(i = 0; i < 3; i++) {
     print("Hi from JavaScript!")
}
Hi from JavaScript!
Hi from JavaScript!
Hi from JavaScript!
python:
for i in range(3):
     print("Hi from Python!")
Hi from Python!
Hi from Python!
Hi from Python!
ruby:
for i in 1..3 do
     puts 'Hi from Ruby!'
end
Hi from Ruby!
Hi from Ruby!
Hi from Ruby!
php:
<?php
for($i = 0; $i < 3; $i++) {
     echo "Hi from PHP!\r\n";
}
?>
Hi from PHP!
Hi from PHP!
Hi from PHP!
groovy:
for(i in 1..3) {
     println "Hi from Groovy!"
}
Hi from Groovy!
Hi from Groovy!
Hi from Groovy!
perl:
for(1..3) {
     print("Hi from Perl!\n");
}
Hi from Perl!
Hi from Perl!
Hi from Perl!
lua:
for i = 1,3
do
     print("Hi from Lua!")
end
Hi from Lua!
Hi from Lua!
Hi from Lua!
Lisp:
(dotimes (n 3)
     (format t "Hi from Lisp!~%"))
Hi from Lisp!
Hi from Lisp!
Hi from Lisp!
tcl:
for {set i 0} {$i < 3} {incr i} {
     puts "Hi from Tcl!"
}
Hi from Tcl!
Hi from Tcl!
Hi from Tcl!

PS: You need ABCL, GHroovy, JACL, JRuby, LuaJ, Perlito5 and Quercus
     in classpath.

PPS: Some of the script code may not be optimal - I am not
      familiar with all the languages.

PPPS: everything is pure Java and should run fine on VMS Itanium
       and in the future VMS x86-64 (Java 1.5 on VMS Alpha is too old
       for some of these).

Arne







More information about the Info-vax mailing list