I have followed the instructions in https://github.com/trampgeek/moodle-qtype_coderunner?tab=readme-ov-file#supporting-or-implementing-new-languages
to be able to support scala for exam questions. i have installed and tested scala and scalac on on the jobeinabox Docker container
i then have setup the following run_spec in the scala_in_python question template
{ "memorylimit": 1000, "numprocs": 128 }
And have explore a wide range of JVM settings, but no luck so far
scalac -J-Xrs -J-Xmx256m -J-Xss256k -J-XX:CompressedClassSpaceSize=64m -J-XX:MetaspaceSize=64m -J-XX:MaxMetaspaceSize=96m -J-XX:ParallelGCThreads=1 -J-XX:CICompilerCount=2 prog.scala
I am always getting an out-of-memory error during compilation, or even worse (Could not allocate compressed class space: 67108864 bytes).
This is with a 1-line hello world program
object HelloWorld extends App{println("yes :-)")}
What would you recommend to make this work?
Thanks, Renaud
Als Antwort auf Renaud Richardet
Re: scala_via_python: OOM when compiling with scalac
von Richard Lobb -
The JVM is a notorious memory gobbler, and it's difficult to run it under Linux ulimit memory restrictions, even without the complication of running it on top of Python. Try simply setting the Jobe memory limit to 0, which turns off the ulimit on memory, and removing all the memory limits on the scalac command. You should be able to trust the JVM to manage memory itself, at least sufficiently to prevent the Jobe from thrashing. You can add back JVM memory limits later if you have load problems on Jobe.
Als Antwort auf Richard Lobb
Re: scala_via_python: OOM when compiling with scalac
von Renaud Richardet -
Many thanks Richard for your prompt answer.
With your guidance, I managed to make it work. I've documented my solution here https://gist.github.com/renaud/a2b90fe8cc3f1d0451c4b65a00a93260
Greetings from Switzerland, Renaud
With your guidance, I managed to make it work. I've documented my solution here https://gist.github.com/renaud/a2b90fe8cc3f1d0451c4b65a00a93260
Greetings from Switzerland, Renaud