Discussion:
Groovy on VMS x86-64
(too old to reply)
Arne Vajhøj
2023-10-18 00:12:52 UTC
Permalink
Just tested. Groovy 4.x works fine on VMS x86-64.

groovy.com:

$ p1 = f$edit(p1, "UPCASE")
$ clz = ""
$ if p1 .eqs. "RUN" then clz = "groovy.ui.GroovyMain"
$ if p1 .eqs. "COMPILE" then clz =
"org.codehaus.groovy.tools.FileSystemCompiler"
$ if p1 .eqs. "CONSOLE" then clz = groovy.ui.Console"
$ if p1 .eqs. "SHELL" then clz = "org.codehaus.groovy.tools.shell.Main"
$ parent = "/disk2/arne/groovy"
$ ver = "4.0.12"
$ groovyhome = "''parent'/groovy-''ver'"
$ xmx = "''groovy_xmx'"
$ if xmx .eqs. "" then xmx = "256m"
$ cp = "''groovy_cp'"
$ if cp .eqs. "" then cp = "."
$ java -
"-Xmx''xmx'" -
"-Dprogram.name"="" -
"-Dgroovy.home"="''groovyhome'" -
"-Dtools.jar"="/sys$sysdevice/sys0/syscommon/java$80/lib/tools.jar" -
"-Dgroovy.starter.conf"="''groovyhome'/conf/groovy-starter.conf" -
"-Dscript.name"="''p2'" -
-classpath "''groovyhome'/lib/groovy-''ver'.jar" -
"org.codehaus.groovy.tools.GroovyStarter" -
--main "''clz'" -
--conf "''groovyhome'/conf/groovy-starter.conf" -
--classpath "''cp'" -
'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8'
$ if p1 .eqs. "COMPILE" then write sys$output "Run with java -cp
.:''groovyhome'/lib/* <main-class>"
$ exit

groovydef.com:

$ defdir = f$env("default")
$ groovy :== @'defdir'groovy run
$ groovyc :== @'defdir'groovy compile
$ groovyconsole :== @'defdir'groovy console
$ groovysh :== @'defdir'groovy shell
$ exit

test:

$ type test.groovy
println("It works!")
$ groovy test.groovy
It works!
$ groovyc test.groovy
Run with java -cp .:/disk2/arne/groovy/groovy-4.0.12/lib/* <main-class>
$ java -cp .:/disk2/arne/groovy/groovy-4.0.12/lib/* TEST
It works!

Arne
Arne Vajhøj
2023-10-18 00:23:57 UTC
Permalink
Post by Arne Vajhøj
Just tested. Groovy 4.x works fine on VMS x86-64.
For those that don't know Groovy, then it is a JVM
language.

I consider it a tier 3 language in usage (tier 1: JavaScript,
Python and Java; tier 2: C, C++, C#, PHP).

Depending on your preference you can use it as:
- a scripting language with a Java like syntax
- a Java replacement with a more compact syntax

It is a pretty powerful language and the advanced
constructs can be tricky to master, but one can also
keep it simple and easy.

A significant part of Groovy usage is for web
development via the Grails framework.

One of the more fun facts is that:
- 1.00f is a float
- 1.00d is a double
- 1.00 is a BigDecimal

Arne
Jake Hamby (Solid State Jake)
2023-10-18 02:57:39 UTC
Permalink
Post by Arne Vajhøj
Post by Arne Vajhøj
Just tested. Groovy 4.x works fine on VMS x86-64.
For those that don't know Groovy, then it is a JVM
language.
I consider it a tier 3 language in usage (tier 1: JavaScript,
Python and Java; tier 2: C, C++, C#, PHP).
- a scripting language with a Java like syntax
- a Java replacement with a more compact syntax
It is a pretty powerful language and the advanced
constructs can be tricky to master, but one can also
keep it simple and easy.
A significant part of Groovy usage is for web
development via the Grails framework.
- 1.00f is a float
- 1.00d is a double
- 1.00 is a BigDecimal
Arne
The OpenJDK port is quite solid. I discovered that my Java benchmarks could be sped up by 2-3x by increasing MIN_WSMAX and my user WSMAX to as large as possible, which ended up being 4000000 pagelets, or just under 2 GiB. If I try to set it much larger, AUTOGEN will fail in its calculations for the different memory regions.

I'll post again with the updated Renaissance JVM test suite results because the WSMAX setting made such a big difference. Since several of the benchmarks that Phoronix Test Suite uses are based on Scala, like the "dotty" compiler and Akka Actors (which is partly based on Erlang and is quite cool), so I've started looking seriously at Scala as a "better Java than Java". I already have experience with Kotlin, but Scala seems better suited for server apps.

Jake
Arne Vajhøj
2023-10-18 03:53:43 UTC
Permalink
Post by Jake Hamby (Solid State Jake)
The OpenJDK port is quite solid.
Yes.
Post by Jake Hamby (Solid State Jake)
I discovered that my Java benchmarks
could be sped up by 2-3x by increasing MIN_WSMAX and my user WSMAX to
as large as possible, which ended up being 4000000 pagelets, or just
under 2 GiB. If I try to set it much larger, AUTOGEN will fail in its
calculations for the different memory regions.
I'll post again with the updated Renaissance JVM test suite results
because the WSMAX setting made such a big difference.
I assume this is only for benchmarks with large heap.
Post by Jake Hamby (Solid State Jake)
Since several
of the benchmarks that Phoronix Test Suite uses are based on Scala,
like the "dotty" compiler and Akka Actors (which is partly based on
Erlang and is quite cool), so I've started looking seriously at Scala
as a "better Java than Java". I already have experience with Kotlin,
but Scala seems better suited for server apps.
Scala runs fine on VMS x86-64.

Tested with 2.13.11.

(I don't think the latest 3.x runs on Java 8 and besides
I don't like Scala 3.x)

scala.com:

$ p1 = f$edit(p1, "UPCASE")
$ clz = ""
$ if p1 .eqs. "COMPILE" then clz = "scala.tools.nsc.Main"
$ if p1 .eqs. "RUNNER" then clz = "scala.tools.nsc.MainGenericRunner"
$ if p1 .eqs. "DOC" then clz = "scala.tools.nsc.ScalaDoc"
$ if p1 .eqs. "PRINT" then clz = "scala.tools.scalap.Main"
$ parent = "/disk2/arne/scala"
$ ver = "2.13.11"
$ scalahome = "''parent'/scala-''ver'"
$ xmx = "''scala_xmx'"
$ if xmx .eqs. "" then xmx = "256m"
$ java -
"-Xmx''xmx'" -
"-Dscala.home=''scalahome'" -
"-Dscala.usejavacp=true" -
-cp "''scalahome'/lib/*" -
"''clz'" -
'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8'
$ if p1 .eqs. "COMPILE" then write sys$output "Run with java -cp
.:''scalahome'/lib/* <main-class>"
$ exit

scaladef.com:

$ defdir = f$env("default")
$ scalac :== @'defdir'scala.com compile
$ scala :== @'defdir'scala.com runner
$ scaladoc :== @'defdir'scala.com doc
$ scalap :== @'defdir'scala.com print
$ exit

Test:

$ type test.scala
object test {
def main(args: Array[String]): Unit = {
println("It works!")
}
}
$ scala test.scala
It works!
$ scalac test.scala
$ java -cp .:/disk2/arne/scala/scala-2.13.11/lib/* test
It works!

Arne
Arne Vajhøj
2024-02-25 20:10:12 UTC
Permalink
Post by Arne Vajhøj
Just tested. Groovy 4.x works fine on VMS x86-64.
It works fine on VMS Itanium and VMS x86-64 with Java 8.

It does not work on VMS Alpha as it has only Java 5.

But I did a little research. Groovy 2.2 runs on
Java 5 and therefore on VMS Alpha.

Get the jar files and stuff them in [.lib],
copy groovy-starter.conf from a newer Groovy to
[.conf] and use the same groovy.com (customized
for location, version and Java) and groovydef.com.

And it works.

$ dir [...]

Directory DISK2:[ARNE.groovy]

groovy-2_2_2.DIR;1 groovy.com;1 groovydef.com;1

Total of 3 files.

Directory DISK2:[ARNE.groovy.groovy-2_2_2]

conf.DIR;1 lib.DIR;1

Total of 2 files.

Directory DISK2:[ARNE.groovy.groovy-2_2_2.conf]

groovy-starter.conf;1

Total of 1 file.

Directory DISK2:[ARNE.groovy.groovy-2_2_2.lib]

antlr-2_7_7.jar;1 asm-4_1.jar;1 asm-analysis-4_1.jar;1
asm-commons-4_1.jar;1 asm-tree-4_1.jar;1
asm-util-4_1.jar;1
commons-cli-1_1.jar;1 groovy-2_2_0.jar;1
groovy-2_2_2.jar;1

Total of 9 files.

Grand total of 4 directories, 15 files.

Obviously Groovy 2.2 does not have the same features
as Groovy 4.0, because the update sequence
2.2 -> 2.3 -> 2.4 -> 2.5 -> 3.0 -> 4.0 did add some
useful stuff, but 2.2 is what is possible on VMS Alpha.

Arne

Loading...