digama0 / mmj2

mmj2 GUI Proof Assistant for the Metamath project
GNU General Public License v2.0
72 stars 25 forks source link

java.lang.OutOfMemoryError: Java heap space for set.mm #8

Open ghost opened 6 years ago

ghost commented 6 years ago

I'm using Mac. I followed the Mac OS-X instructions in QuickStart.html. I downloaded http://us2.metamath.org:88/ocat/mmj2/mmj2.zip. I extracted to Users/Userone. I also downloaded http://us2.metamath.org:8888/metamath/set.mm and put it in Users/Userone/metamath.

I right-click on MacMMJ2.command. I choose Open With > Terminal.app.

I get an error: java.lang.OutOfMemoryError: Java heap space

QuickStart.html says set.mm is 6 MB. The one I downloaded is 32.3 MB. Perhaps that's the problem.

Here's the full output:

Jareds-MacBook-Pro:~ jared$ /Users/mmj2/mmj2jar/MacMMJ2.command ; exit;
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

CommandLineArguments.displayArgumentOptionReport():

Hi! I am mmj2 v2.5.1 as of 29-Dec-2016.
Visit https://github.com/digama0/mmj2/ or
http://code.google.com/p/metamath-mmj2/
for support or bug reports.

  Command Line Arguments:
    Arg #1 = RunParms.txt
    Arg #2 = Y
    Arg #3 = /users/Userone/mmj2jar/
    Arg #4 = /users/Userone/metamath/
    Arg #5 = 
    Arg #6 = 

  [3] mmj2Path     = /users/Userone/mmj2jar (e.g. /Users/Userone/mmj2jar/YourFile.xyz)
  [4] metamathPath = /users/Userone/metamath (e.g. /Users/Userone/metamath/YourFile.xyz)
  [5] svcPath      = null (e.g. /Users/jared/YourFile.xyz)
  [1] runParmFile  = /Users/Userone/mmj2jar/RunParms.txt
  [2] displayMMJ2FailPopupWindow 
                   = true

***END CommandLineArguments.displayArgumentOptionReport()***

I-UT-0015 **** Processing RunParmFile Command #1 = LoadFile,set.mm
I-UT-0015 **** Processing RunParmFile Command #2 = VerifyProof,*
I-UT-0015 **** Processing RunParmFile Command #3 = Parse,* 
Java heap space
java.lang.OutOfMemoryError: Java heap space
    at mmj.verify.EarleyParser.initArrays(EarleyParser.java:1013)
    at mmj.verify.EarleyParser.reInitArrays(EarleyParser.java:943)
    at mmj.verify.EarleyParser.parseExpr(EarleyParser.java:274)
    at mmj.verify.Grammar.grammaticalParseSyntaxExpr(Grammar.java:732)
    at mmj.verify.GrammarAmbiguity.basicAmbiguityEdits(GrammarAmbiguity.java:208)
    at mmj.verify.Grammar.initializeGrammarTables(Grammar.java:1014)
    at mmj.verify.Grammar.initializeGrammar(Grammar.java:704)
    at mmj.util.GrammarBoss.initializeGrammar(GrammarBoss.java:288)
    at mmj.util.GrammarBoss.doParse(GrammarBoss.java:242)
    at mmj.util.GrammarBoss$$Lambda$36/935044096.run(Unknown Source)
    at mmj.util.Boss.lambda$0(Boss.java:107)
    at mmj.util.Boss$$Lambda$7/960604060.getAsBoolean(Unknown Source)
    at mmj.util.Boss.doRunParmCommand(Boss.java:121)
    at mmj.util.BatchFramework.executeRunParmCommand(BatchFramework.java:281)
    at mmj.util.BatchFramework.runIt(BatchFramework.java:223)
    at mmj.util.BatchMMJ2.main(BatchMMJ2.java:53)
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:3236)
    at sun.misc.Resource.getBytes(Resource.java:117)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:462)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at mmj.pa.AuxFrameGUI.<init>(AuxFrameGUI.java:61)
    at mmj.util.MMJ2FailPopupWindow.showAuxFrameGUI(MMJ2FailPopupWindow.java:229)
    at mmj.util.MMJ2FailPopupWindow.displayFailMessage(MMJ2FailPopupWindow.java:119)
    at mmj.util.BatchFramework.runIt(BatchFramework.java:243)
    at mmj.util.BatchMMJ2.main(BatchMMJ2.java:53)
: command not found/MacMMJ2.command: line 2: 
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

I assume I can increase JVM memory. But I assume you want your software to just work out of the box, so I'm letting you know :) (Alternatively let me know what I'm doing wrong)

ghost commented 6 years ago

Greetings @JaredMathis! Glad to hear of another Mac mmj2 user.

Thank you for taking the time to carefully input the issue.

Two candidate "solutions".

1) try the mmj2 v.2.5.2 version. It is obtained from the mmj2 "master", which is like 1.5 years ahead of 2.5.1. but hasn't gone through the final process of releasing the software. Just download it from github to obtain an mmj2.zip that is almost, but not quite, entirely similar to v.2.5.1.

try that. but

2) which java are you running? i installed jdk-8u181-macosx-x64.dmg two weeks ago (Sep 2018).

On my machine, a lowly MacMini (late 2014) with 8GB RAM, I have no problems and I'm not specifying any '-' parameters such as -incgc or memory.

Please let me know if