<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>I think it’s some setting deep inside javac.  I am not sure if it can be overridden or not.  I will pass you the logs, and you can try some files for yourself, now that you have a Java code generator <span style='font-family:"Segoe UI Emoji",sans-serif'>😊</span>.  You can exercise your code generator to see if we can get any more examples compiled.  But really, I think your reflection loader will solve the issue.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>$ sh noncompiled.sh | xargs -L 1 -P 8 javac -J-Xss16m -J-Xmx4096M 2> javacerrors.txt</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>$ cat noncompiled.sh</p><p class=MsoNormal>find . -name '*.java'| grep -v " "| sed 's/\.java$/.class/'| xargs ls 2>&1| grep "No such file or directory" | awk '{ print $4; }'| sed "s/^'\.\///" | sed "s/\.class':/.java/"</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I think the stack overflows were resolved.  Attached are JavaCErrors.zip remaining. (336MB)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Maybe try removing tabs?  LOL</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Are we ready to move to python yet?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Friday, March 24, 2017 2:04 AM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:x3d@web3d.org">x3d@web3d.org</a>; <a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a><br><b>Subject: </b>Re: X3DJSAIL apps. Generating and compiling Java. Avoiding code toolarge.</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 3/23/2017 6:58 PM, yottzumm@gmail.com wrote:</p><p class=MsoNormal>> So many of my last few hundred files have Java compiler errors are “code to large.”  This is because I am generating all the Java in one main method.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Can you increase your memory/stack/heap to the process?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> Suggestions for breaking this up into multiple methods are welcome.  Note that much of the code is now in a single humongous statement, so it could be difficult or easy to break up.  I was thinking breaking at a certain number of levels of X3D, or perhaps every “new.”</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Breaking at each new, or upon discovery of a very large attribute, is possible.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> I’m also overflowing the javac stack in some cases.  This is a concern, and may require another compiler?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>some hints about memory for building with Ant can be found at</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                Savage Developer Guide: Ant</p><p class=MsoNormal>                https://savage.nps.edu/Savage/developers.html#Ant</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>i.e. ANT_OPTS=-Xss16m -Xmx4096M</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>These are just pass-through values to the underlying JVM, you can also read about them from console:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>javac -help -X</p><p class=MsoNormal>======================================================</p><p class=MsoNormal>Usage: javac <options> <source files></p><p class=MsoNormal>where possible options include:</p><p class=MsoNormal>   -g                         Generate all debugging info</p><p class=MsoNormal>   -g:none                    Generate no debugging info</p><p class=MsoNormal>   -g:{lines,vars,source}     Generate only some debugging info</p><p class=MsoNormal>   -nowarn                    Generate no warnings</p><p class=MsoNormal>   -verbose                   Output messages about what the compiler is doing</p><p class=MsoNormal>   -deprecation               Output source locations where deprecated APIs are used</p><p class=MsoNormal>   -classpath <path>          Specify where to find user class files and annotation processors</p><p class=MsoNormal>   -cp <path>                 Specify where to find user class files and annotation processors</p><p class=MsoNormal>   -sourcepath <path>         Specify where to find input source files</p><p class=MsoNormal>   -bootclasspath <path>      Override location of bootstrap class files</p><p class=MsoNormal>   -extdirs <dirs>            Override location of installed extensions</p><p class=MsoNormal>   -endorseddirs <dirs>       Override location of endorsed standards path</p><p class=MsoNormal>   -proc:{none,only}          Control whether annotation processing and/or compilation is done.</p><p class=MsoNormal>   -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process</p><p class=MsoNormal>   -processorpath <path>      Specify where to find annotation processors</p><p class=MsoNormal>   -parameters                Generate metadata for reflection on method parameters</p><p class=MsoNormal>   -d <directory>             Specify where to place generated class files</p><p class=MsoNormal>   -s <directory>             Specify where to place generated source files</p><p class=MsoNormal>   -h <directory>             Specify where to place generated native header files</p><p class=MsoNormal>   -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files</p><p class=MsoNormal>   -encoding <encoding>       Specify character encoding used by source files</p><p class=MsoNormal>   -source <release>          Provide source compatibility with specified release</p><p class=MsoNormal>   -target <release>          Generate class files for specific VM version</p><p class=MsoNormal>   -profile <profile>         Check that API used is available in the specified profile</p><p class=MsoNormal>   -version                   Version information</p><p class=MsoNormal>   -help                      Print a synopsis of standard options</p><p class=MsoNormal>   -Akey[=value]              Options to pass to annotation processors</p><p class=MsoNormal>   -X                         Print a synopsis of nonstandard options</p><p class=MsoNormal>   -J<flag>                   Pass <flag> directly to the runtime system</p><p class=MsoNormal>   -Werror                    Terminate compilation if warnings occur</p><p class=MsoNormal>   @<filename>                Read options and filenames from file</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>   -Xlint                     Enable recommended warnings</p><p class=MsoNormal>   -Xlint:{all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-auxiliaryclass,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overloads,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings</p><p class=MsoNormal>   -Xdoclint                  Enable recommended checks for problems in javadoc comments</p><p class=MsoNormal>   -Xdoclint:(all|none|[-]<group>)[/<access>]</p><p class=MsoNormal>         Enable or disable specific checks for problems in javadoc comments,</p><p class=MsoNormal>         where <group> is one of accessibility, html, missing, reference, or syntax,</p><p class=MsoNormal>         and <access> is one of public, protected, package, or private.</p><p class=MsoNormal>   -Xbootclasspath/p:<path>   Prepend to the bootstrap class path</p><p class=MsoNormal>   -Xbootclasspath/a:<path>   Append to the bootstrap class path</p><p class=MsoNormal>   -Xbootclasspath:<path>     Override location of bootstrap class files</p><p class=MsoNormal>   -Djava.ext.dirs=<dirs>     Override location of installed extensions</p><p class=MsoNormal>   -Djava.endorsed.dirs=<dirs> Override location of endorsed standards path</p><p class=MsoNormal>   -Xmaxerrs <number>         Set the maximum number of errors to print</p><p class=MsoNormal>   -Xmaxwarns <number>        Set the maximum number of warnings to print</p><p class=MsoNormal>   -Xstdout <filename>        Redirect standard output</p><p class=MsoNormal>   -Xprint                    Print out a textual representation of specified types</p><p class=MsoNormal>   -XprintRounds              Print information about rounds of annotation processing</p><p class=MsoNormal>   -XprintProcessorInfo       Print information about which annotations a processor is asked to process</p><p class=MsoNormal>   -Xprefer:{source,newer}    Specify which file to read when both a source file and class file are found for an implicitly compiled class</p><p class=MsoNormal>   -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files</p><p class=MsoNormal>   -Xplugin:"name args"       Name and optional arguments for a plug-in to be run</p><p class=MsoNormal>   -Xdiags:{compact,verbose}  Select a diagnostic mode</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>These options are non-standard and subject to change without notice.</p><p class=MsoNormal>======================================================</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzc</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>