diff --git a/README.md b/README.md index d63be8a..e8c6aff 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,17 @@ specify the `prefix` environment variable. For example, to install to Below are some system-specific build instructions for this repository; pull requests with steps for other environments are certainly welcome. +([Erhannis:] The easiest way I've found to build this, as of 2022, is to +install Ubuntu 14.04.6 in VirtualBox and follow the Debian 8 instructions. +I think that route gave me the least fuss.) + +There IS a Docker container, which was easier to build: +```bash +cd docker/debian +docker build . +``` +...but as of this writing, I don't yet know how to actually USE it once built, +so until I figure that out, Debian VM remains my recommendation. ### Debian 8 etc: @@ -62,6 +73,207 @@ requests with steps for other environments are certainly welcome. cd /usr/local/src/nestedvm make dist + + + +[Erhannis:] After this point is information reconstituted by people discovering this +repo later, and reading the tests and code and so forth. God speed. + +## Usage + +### Compile C source +`mips-unknown-elf-gcc -O3 -mmemcpy -ffunction-sections -fdata-sections -falign-functions=512 -fno-rename-registers -fno-schedule-insns -fno-delayed-branch -march=mips1 -specs=/usr/local/nestedvm/mips-unknown-elf/lib/crt0-override.spec -I. -Wall -Wno-unused -c -o build/com/test/Test.o test.c` + +### Link to a MIPS binary +`mips-unknown-elf-gcc -o build/com/test/Test.mips build/com/test/Test.o -march=mips1 -specs=/usr/local/nestedvm/mips-unknown-elf/lib/crt0-override.spec --static -Wl,--gc-sections` + +### Compile to a Java class +`java -cp "/usr/local/nestedvm/share/java/nestedvm-compiler.jar:build" org.ibex.nestedvm.Compiler -outformat class -d build com.test.Test build/com/test/Test.mips` + +### Running the resulting Java application +`java -cp /usr/local/nestedvm/share/java/nestedvm-runtime.jar:build com.test.Test` + +### Using the Java classes +You can create a jar around a class `Test` at e.g. `com/test/Test.class` with `jar cf Test.jar com`. +You can then install that jar into your maven local repository with +```bash +mvn install:install-file \ + -Dfile=Test.jar \ + -DgroupId=test.test.test \ + -DartifactId=nestedvm-test-classes \ + -Dversion=0.0.0-SNAPSHOT \ + -Dpackaging=jar +``` +Likewise install a copy of the e.g. unix_runtime.jar with +```bash +mvn install:install-file \ + -Dfile=unix_runtime.jar \ + -DgroupId=org.ibex.nestedvm \ + -Dversion=1.0.0-SNAPSHOT \ + -DartifactId=unix-runtime \ + -Dpackaging=jar +``` +(If you create a jar out of the sources in `src/`, in the same way you'd make one for classes, +you can add +``` + -Dsources=nestedvm_src.jar \ + -Djavadoc=nestedvm_src.jar \ +``` +in the middle of that command to install the sources, as well.) +Once you have those two jars installed to your local maven repo, you can +pull them in as dependencies with +``` +<dependency> + <groupId>org.ibex.nestedvm</groupId> + <artifactId>unix-runtime</artifactId> + <version>1.0.0-SNAPSHOT</version> +</dependency> +<dependency> + <groupId>test.test.test</groupId> + <artifactId>nestedvm-test-classes</artifactId> + <version>0.0.0-SNAPSHOT</version> +</dependency> +``` +You can then run the file in your Java code with e.g. +``` +int result = new Test.run("com.test.Test", new String[]{}); +``` +That's not particularly useful, though. See `src/tests/` for examples of +more intricate usage. I've gone through the tests and filtered +out some use case examples - I haven't tested all of these myself, so +buyer beware. See original tests if you encounter problems. + +#### Calling functions +Given c method +```c +int test(int x) { + return x*4; +} +``` +you can call it from Java if you first prepend it +with a declaration flagged to prevent it being optimized away, like: +```c +int x4(int x) __attribute__((section(".text"))); +int x4(int x) { + return x*4; +} +``` +Then you can call it like: +```java +Test test = new Test(); +test.start(); +int r = test.call("x4",new int[]{17}); +``` +I think there are ways of calling functions with more complicated parameters and returns, +but I don't yet know how. + +#### Piping +If you want to pipe into or out of a program, you can call like +```java +Runtime task = (Runtime) Class.forName("tests.EchoHelper").newInstance(); +task.closeFD(0); +task.closeFD(1); +//task.closeFD(2); +task.addFD(new Runtime.InputOutputStreamFD(sock.getInputStream())); +task.addFD(new Runtime.InputOutputStreamFD(sock.getOutputStream())); +//task.dupFD(1); +int status = task.run(new String[]{"EchoHelper"} ); +``` +stdin, stdout, and stderr are originally created like: +```java +addFD(new TerminalFD(stdin)); +addFD(new TerminalFD(System.out)); +addFD(new TerminalFD(System.err)); +``` + +#### Shared array +Apparently there's an array you can declare in your C code with N elements: +```c +char * user_info[2]; +``` +and access it in C like +```c +char *fontdata; +int fontsize; + +_pause(); // I don't know whether this is necessary or what + +fontdata = user_info[0]; +fontsize = (int)user_info[1]; +``` +You can then access it from Java like +```java +byte[] font = InputStreamToByteArray.convert(new FileInputStream(argv[0])); +int fontAddr = rt.malloc(font.length); +if(fontAddr == 0) throw new Error("malloc() failed"); +rt.copyout(font,fontAddr,font.length); + +rt.setUserInfo(0,fontAddr); +rt.setUserInfo(1,font.length); +``` + +#### Memory management +There's a bunch of memory functions I'm sorta hazy on, like +`malloc`, `free`, `realloc`, `xmalloc`, `xrealloc`, `brk`, `sbrk`, +`memRead`, `memWrite`, `memset`, `memcpy`, +`copyin`, `copyout`, +and some string functions like `cstring`, `utfstring`, and `strdup`. + +#### Pausing +I think you can pass control back to Java at will, by calling `_pause()`. +In C: +```c +extern void _pause(); + +// Then somewhere in code: +_pause(); +``` +In Java, I think: +```java +rt.start(); +boolean exited = rt.execute(); +``` +If exited is false, the code simply paused. (Or maybe something else +happened that had the same result?) + +#### Callback to Java +You can add a callback in Java that your C programs can call. In Java: +```java +rt.setCallJavaCB(new Runtime.CallJavaCB() { + public int call(int a, int b, int c, int d) { + switch(a) { + case 1: return rt.strdup("OS: " + System.getProperty("os.name")); + case 2: return rt.strdup(System.getProperty("os.version")); + case 3: return rt.strdup(new Date().toString()); + case 4: return rt.addFD(new Runtime.InputOutputStreamFD(null,new CustomOS())); + case 5: + System.out.println("In callJava() in Java"); + try { rt.call("backinmips"); } catch(Runtime.CallException e) { } + System.out.println("Back in callJava() in Java"); + return 0; + default: return 0; + } + } +}); +``` +In C: +```c +extern int _call_java(int a, int b, int c, int d); + +// Then somewhere in code: +char *s = (char*)_call_java(i,0,0,0); +``` +It feels a little stilted and cramped, but the former could probably be solved by wrapper +methods, and the latter by passing addresses to structures. It seems sufficient, to me, +if not perfect. + +#### Probably some other stuff +There are probably other things it can do that you'll eventually want to do, which I haven't +covered here and probably don't know about, but I think I covered most of the functions I've +seen. + + + [1]: http://nestedvm.ibex.org/ [2]: http://article.gmane.org/gmane.comp.java.nestedvm/185 [3]: https://github.com/ehrmann/nestedvm diff --git a/doc/ivme04.aux b/doc/ivme04.aux new file mode 100644 index 0000000..3594f45 --- /dev/null +++ b/doc/ivme04.aux @@ -0,0 +1,49 @@ +\relax +\bibstyle{amsplain} +\citation{ibex} +\citation{jni} +\citation{cni} +\citation{j2me} +\citation{msil} +\citation{parrot} +\citation{python} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}\protected@file@percent } +\citation{jazillian} +\citation{mohca} +\citation{c2j} +\citation{capp} +\citation{ephedra} +\@writefile{toc}{\contentsline {section}{\numberline {2}Existing Work}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Source-to-Source Translation}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Human-Assisted Translation}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Partial-Domain Translation}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Source-to-Binary Translation}{2}\protected@file@percent } +\citation{egcsjvm} +\citation{lcc} +\@writefile{toc}{\contentsline {section}{\numberline {3}NestedVM}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Mapping the R2000 onto the JVM}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Binary-to-Source Mode}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Binary-to-Binary Mode}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}The NestedVM Runtime}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}The ANSI C Runtime}{4}\protected@file@percent } +\citation{jmm} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Trampoline transformation necessitated by Java's 64kb method size limit}}{5}\protected@file@percent } +\newlabel{code1}{{1}{5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}The Unix Runtime}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Security Concerns}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Threading}{5}\protected@file@percent } +\citation{hotspot} +\@writefile{toc}{\contentsline {section}{\numberline {5}Optimization and Performance}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Binary-to-Source Mode}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Binary-to-Binary Mode}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Compiler Flags}{7}\protected@file@percent } +\citation{msil} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Overall Performance}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Sample Applications}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}FreeType, {\tt libmspack}, and {\tt libjpeg}}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}The GNU Compiler Collection}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}\TeX and LINPACK}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}\protected@file@percent } +\bibdata{ivme04} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Future Directions}{9}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Availability}{9}\protected@file@percent } diff --git a/doc/ivme04.dvi b/doc/ivme04.dvi new file mode 100644 index 0000000..fd9ff6f Binary files /dev/null and b/doc/ivme04.dvi differ diff --git a/doc/ivme04.log b/doc/ivme04.log new file mode 100644 index 0000000..93542a9 --- /dev/null +++ b/doc/ivme04.log @@ -0,0 +1,1636 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=latex 2021.11.12) 9 FEB 2022 14:24 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**ivme04.tex +(./ivme04.tex +LaTeX2e <2020-02-02> patch level 2 +L3 programming layer <2020-02-14> (./acmconf.cls +Document Class: acmconf 1994/11/27 Alternative LaTeX document class +Bugs to berson@cs.pitt.edu +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2019/12/20 v1.4l Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option) +) +\c@part=\count167 +\c@section=\count168 +\c@subsection=\count169 +\c@subsubsection=\count170 +\c@paragraph=\count171 +\c@subparagraph=\count172 +\c@figure=\count173 +\c@table=\count174 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen134 +) +\@acmtitlebox=\box45 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: dvips.def on input line 105. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/dvips.def +File: dvips.def 2017/06/20 v3.1d Graphics/color driver for dvips +)) +\Gin@req@height=\dimen135 +\Gin@req@width=\dimen136 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty +Package: multicol 2019/12/09 v1.8y multicolumn formatting (FMi) +\c@tracingmulticols=\count175 +\mult@box=\box46 +\multicol@leftmargin=\dimen137 +\c@unbalance=\count176 +\c@collectmore=\count177 +\doublecol@number=\count178 +\multicoltolerance=\count179 +\multicolpretolerance=\count180 +\full@width=\dimen138 +\page@free=\dimen139 +\premulticols=\dimen140 +\postmulticols=\dimen141 +\multicolsep=\skip49 +\multicolbaselineskip=\skip50 +\partial@page=\box47 +\last@line=\box48 +\maxbalancingoverflow=\dimen142 +\mult@rightbox=\box49 +\mult@grightbox=\box50 +\mult@gfirstbox=\box51 +\mult@firstbox=\box52 +\@tempa=\box53 +\@tempa=\box54 +\@tempa=\box55 +\@tempa=\box56 +\@tempa=\box57 +\@tempa=\box58 +\@tempa=\box59 +\@tempa=\box60 +\@tempa=\box61 +\@tempa=\box62 +\@tempa=\box63 +\@tempa=\box64 +\@tempa=\box65 +\@tempa=\box66 +\@tempa=\box67 +\@tempa=\box68 +\@tempa=\box69 +\@tempa=\box70 +\@tempa=\box71 +\@tempa=\box72 +\@tempa=\box73 +\@tempa=\box74 +\@tempa=\box75 +\@tempa=\box76 +\@tempa=\box77 +\@tempa=\box78 +\@tempa=\box79 +\@tempa=\box80 +\@tempa=\box81 +\@tempa=\box82 +\@tempa=\box83 +\@tempa=\box84 +\@tempa=\box85 +\@tempa=\box86 +\@tempa=\box87 +\@tempa=\box88 +\@tempa=\box89 +\c@minrows=\count181 +\c@columnbadness=\count182 +\c@finalcolumnbadness=\count183 +\last@try=\dimen143 +\multicolovershoot=\dimen144 +\multicolundershoot=\dimen145 +\mult@nat@firstbox=\box90 +\colbreak@box=\box91 +\mc@col@check@num=\count184 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks15 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2020/01/20 v2.17e AMS math features +\@mathmargin=\skip51 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks16 +\ex@=\dimen146 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen147 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count185 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count186 +\leftroot@=\count187 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count188 +\DOTSCASE@=\count189 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box92 +\strutbox@=\box93 +\big@size=\dimen148 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count190 +\c@MaxMatrixCols=\count191 +\dotsspace@=\muskip16 +\c@parentequation=\count192 +\dspbrk@lvl=\count193 +\tag@help=\toks17 +\row@=\count194 +\column@=\count195 +\maxfields@=\count196 +\andhelp@=\toks18 +\eqnshift@=\dimen149 +\alignsep@=\dimen150 +\tagshift@=\dimen151 +\tagwidth@=\dimen152 +\totwidth@=\dimen153 +\lineht@=\dimen154 +\@envbody=\toks19 +\multlinegap=\skip52 +\multlinetaggap=\skip53 +\mathdisplay@stack=\toks20 +LaTeX Info: Redefining \[ on input line 2859. +LaTeX Info: Redefining \] on input line 2860. +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty +Package: epsfig 2017/06/25 v1.7b (e)psfig emulation (SPQR) +\epsfxsize=\dimen155 +\epsfysize=\dimen156 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty +Package: alltt 1997/06/16 v2.0g defines alltt environment +) +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/palatino.sty +Package: palatino 2005/04/12 PSNFSS-v9.2a (SPQR) +) +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip17 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) + +! LaTeX Error: File `pstricks.sty' not found. + +Type X to quit or <RETURN> to proceed, +or enter new name. (Default extension: sty) + +Enter file name: ivme04.pdf + +! LaTeX Error: File `ivme04.pdf' not found. + +Type X to quit or <RETURN> to proceed, +or enter new name. (Default extension: pdf) + +Enter file name: + +! LaTeX Error: File `pst-node.sty' not found. + +Type X to quit or <RETURN> to proceed, +or enter new name. (Default extension: sty) + +Enter file name: +(/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty +Package: parskip 2020-01-22 v2.0d non-zero parskip adjustments + +(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +)) +(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count197 +)) +(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty +Package: tabularx 2020/01/15 v2.11c `tabularx' package (DPC) + +(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +Package: array 2019/08/31 v2.4l Tabular extension package (FMi) +\col@sep=\dimen157 +\ar@mcellbox=\box94 +\extrarowheight=\dimen158 +\NC@list=\toks21 +\extratabsurround=\skip54 +\backup@length=\skip55 +\ar@cellbox=\box95 +) +\TX@col@width=\dimen159 +\TX@old@table=\dimen160 +\TX@old@col=\dimen161 +\TX@target=\dimen162 +\TX@delta=\dimen163 +\TX@cols=\count198 +\TX@ftn=\toks22 +) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +File: l3backend-dvips.def 2020-02-03 L3 backend support: dvips +\l__pdf_internal_box=\box96 +\g__pdf_backend_object_int=\count199 +\l__pdf_backend_content_box=\box97 +\l__pdf_backend_model_box=\box98 +\g__pdf_backend_annotation_int=\count266 +\g__pdf_backend_link_int=\count267 +\g__pdf_backend_link_sf_int=\count268 +) +No file ivme04.aux. +\openout1 = `ivme04.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Trying to load font information for OT1+ppl on input line 3 +1. +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd +File: ot1ppl.fd 2001/06/04 font definitions for OT1/ppl. +) +LaTeX Font Info: Trying to load font information for OT1+phv on input line 3 +3. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd +File: ot1phv.fd 2001/06/04 scalable font definitions for OT1/phv. +) +LaTeX Font Info: Trying to load font information for U+msa on input line 33. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 33. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Trying to load font information for OT1+pcr on input line 3 +3. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd +File: ot1pcr.fd 2001/06/04 font definitions for OT1/pcr. +) + +LaTeX Warning: Citation `ibex' on page 1 undefined on input line 58. + + +LaTeX Warning: Citation `jni' on page 1 undefined on input line 77. + + +LaTeX Warning: Citation `cni' on page 1 undefined on input line 77. + + +LaTeX Warning: Citation `j2me' on page 1 undefined on input line 96. + + +LaTeX Warning: Citation `msil' on page 1 undefined on input line 103. + + +LaTeX Warning: Citation `parrot' on page 1 undefined on input line 104. + + +LaTeX Warning: Citation `python' on page 1 undefined on input line 104. + +[1 + + +] +\MyLength=\skip56 + + +! LaTeX Error: Environment psmatrix undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.129 \begin{psmatrix} + [colsep=2,rowsep=0] +? +! Misplaced alignment tab character &. +l.130 & + \\[0pt] +? +! Misplaced alignment tab character &. +l.131 [name=s0]\MyBox{unsafe source} & + [name=s1]\MyBox{safe source} \\[0pt] + +? +! Misplaced alignment tab character &. +l.132 [name=s00]\MyBox{\tt (.c)} & + [name=s11]\MyBox{\tt (.java)} \\[0pt] +? +! Misplaced alignment tab character &. +l.133 & + \\[0pt] +? +! Misplaced alignment tab character &. +l.134 & + \\[0pt] +? +! Misplaced alignment tab character &. +l.135 & + \\[0pt] +? +! Misplaced alignment tab character &. +l.136 [name=b0]\MyBox{machine code} & + [name=b1]\MyBox{safe bytecode} \\[0pt] + +? +! Misplaced alignment tab character &. +l.137 [name=b00]\MyBox{\tt (.o)} & + [name=b11]\MyBox{\tt (.class)} \\ +? +! Misplaced alignment tab character &. +<recently read> & + +l.138 & + \\[0pt] +? c +Type <return> to proceed, S to scroll future error messages, +R to run without stopping, Q to run quietly, +I to insert something, E to edit your file, +1 or ... or 9 to ignore the next 1 to 9 tokens of input, +H for help, X to quit. +? R +OK, entering \nonstopmode... +! Undefined control sequence. +l.139 \psset + {nodesep=5pt,arrows=->} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: \begin{document} ended by \end{psmatrix}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.140 \end{psmatrix} + +Your command was ignored. +Type I <command> <return> to replace it with another command, +or <return> to continue without it. + +! Undefined control sequence. +l.150 \psmatrix + [colsep=2,rowsep=0,nrot=:D] +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Misplaced alignment tab character &. +l.151 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.152 [name=s0]\MyBox{unsafe source} & + [name=s1]\MyBox{safe source} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.153 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.154 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.155 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.156 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.157 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.158 [name=b0]\MyBox{machine code} & + [name=b1]\MyBox{safe bytecode} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.159 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Undefined control sequence. +l.160 \psset + {nodesep=5pt,arrows=->} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.161 \ncline + {s0}{b0}\bput{:U}{\tt gcc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.161 \ncline{s0}{b0}\bput + {:U}{\tt gcc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.162 \ncline + {s1}{b0}\bput{:D}{\tt gcj} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.162 \ncline{s1}{b0}\bput + {:D}{\tt gcj} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.163 \ncline + {s1}{b1}\aput{:U}{\tt javac} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.163 \ncline{s1}{b1}\aput + {:U}{\tt javac} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.164 \ncline + {b1}{b0}\aput{:D}{\tt gcj}\bput{:D}{JITs} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.164 \ncline{b1}{b0}\aput + {:D}{\tt gcj}\bput{:D}{JITs} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.164 \ncline{b1}{b0}\aput{:D}{\tt gcj}\bput + {:D}{JITs} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.165 \endpsmatrix + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +Underfull \hbox (badness 10000) in paragraph at lines 150--167 +\OT1/ppl/m/n/9 nodesep=5pt,arrows=-> s0b0:U\OT1/pcr/m/n/9 gcc \OT1/ppl/m/n/9 s1 +b0:D\OT1/pcr/m/n/9 gcj + [] + + +Underfull \hbox (badness 3769) in paragraph at lines 168--172 +\OT1/ppl/m/n/9 we ex-pand upon in the re-main-der of this sec- + [] + + +Underfull \hbox (badness 1783) in paragraph at lines 175--177 +\OT1/ppl/m/n/9 The most com-mon tech-nique em-ployed is par-tial + [] + +! Undefined control sequence. +l.182 \psmatrix + [colsep=2,rowsep=0,nrot=:U] +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Misplaced alignment tab character &. +l.183 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.184 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.185 [name=s0]\MyBox{unsafe source} & + [name=s1]\MyBox{safe source} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.186 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.187 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.188 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.189 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.190 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.191 [name=b0]\MyBox{machine code} & + [name=b1]\MyBox{safe bytecode} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.192 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Undefined control sequence. +l.193 \psset + {nodesep=5pt,arrows=->} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.194 \ncline + {s0}{s1}\aput{:U}{source-to}\bput{:U}{source} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.194 \ncline{s0}{s1}\aput + {:U}{source-to}\bput{:U}{source} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.194 \ncline{s0}{s1}\aput{:U}{source-to}\bput + {:U}{source} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.195 \ncline + {s1}{b1}\aput{:U}{\tt javac} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.195 \ncline{s1}{b1}\aput + {:U}{\tt javac} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.196 \endpsmatrix + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +Underfull \hbox (badness 10000) in paragraph at lines 182--198 +\OT1/ppl/m/n/9 nodesep=5pt,arrows=-> s0s1:Usource-to:Usource + [] + + +LaTeX Warning: Citation `jazillian' on page 2 undefined on input line 207. + + +Underfull \hbox (badness 2351) in paragraph at lines 207--218 +\OT1/ppl/m/n/9 Jazillian [[]] is a com-mer-cial so-lu-tion which pro- + [] + + +Underfull \hbox (badness 2460) in paragraph at lines 207--218 +\OT1/ppl/m/n/9 source code, but only trans-lates a small por-tion + [] + + +Underfull \hbox (badness 2932) in paragraph at lines 207--218 +\OT1/ppl/m/n/9 of the C lan-guage. Jazil-lian is unique in that + [] + + +Underfull \hbox (badness 1067) in paragraph at lines 207--218 +\OT1/ppl/m/n/9 in ad-di-tion to \OT1/ppl/m/it/9 lan-guage mi-gra-tion\OT1/ppl/m +/n/9 , it also per-forms + [] + + +Underfull \hbox (badness 1546) in paragraph at lines 207--218 +\OT1/ppl/m/it/9 API mi-gra-tion\OT1/ppl/m/n/9 ; for ex-am-ple, Jazil-lian is in +-tel-li-gent + [] + + +Underfull \hbox (badness 4543) in paragraph at lines 207--218 +\OT1/ppl/m/n/9 enough to trans-late ``\OT1/pcr/m/n/9 char* s1 = strcpy(s2)\OT1/ +ppl/m/n/9 '' + [] + + +LaTeX Warning: Citation `mohca' on page 2 undefined on input line 219. + + +LaTeX Warning: Citation `c2j' on page 2 undefined on input line 229. + + +LaTeX Warning: Citation `capp' on page 2 undefined on input line 230. + + +LaTeX Warning: Citation `ephedra' on page 2 undefined on input line 230. + +! Undefined control sequence. +l.262 \psmatrix + [colsep=2,rowsep=0,nrot=:U] +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Misplaced alignment tab character &. +l.263 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.264 [name=s0]\MyBox{unsafe source} & + [name=s1]\MyBox{safe source} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.265 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.266 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.267 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.268 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.269 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.270 [name=b0]\MyBox{machine code} & + [name=b1]\MyBox{safe bytecode} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.271 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Undefined control sequence. +l.272 \psset + {nodesep=5pt,arrows=->} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.273 \ncline + {s0}{b1}\bput{:U}{source-to-binary} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.273 \ncline{s0}{b1}\bput + {:U}{source-to-binary} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.274 \endpsmatrix + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +[2] + +LaTeX Warning: Citation `egcsjvm' on page 3 undefined on input line 278. + + +LaTeX Warning: Citation `lcc' on page 3 undefined on input line 286. + +LaTeX Font Info: Trying to load font information for TS1+ppl on input line 3 +09. +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ppl.fd +File: ts1ppl.fd 2001/06/04 font definitions for TS1/ppl. +) +Underfull \hbox (badness 4013) in paragraph at lines 340--348 +[]\OT1/ppl/m/n/9 NestedVM of-fers to-tal sup-port for all non- + [] + + +Underfull \hbox (badness 1097) in paragraph at lines 340--348 +\OT1/ppl/m/n/9 found on a MIPS \OT1/pcr/m/n/9 R2000 \OT1/ppl/m/n/9 CPU, in-clud +-ing the + [] + + +! LaTeX Error: File `charts/chart5' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.385 ...ile=charts/chart5,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + +[3] +Underfull \hbox (badness 2772) in paragraph at lines 435--439 +\OT1/ppl/m/n/9 The sim-plest op-er-a-tional mode for Nest-edVM is + [] + +! Undefined control sequence. +l.444 \psmatrix + [colsep=2,rowsep=0,nrot=:U] +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Misplaced alignment tab character &. +l.445 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.446 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.447 [name=s0]\MyBox{unsafe source} & + [name=s1]\MyBox{safe source} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.448 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.449 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.450 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.451 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.452 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.453 [name=b0]\MyBox{machine code} & + [name=b1]\MyBox{safe bytecode} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Undefined control sequence. +l.454 \psset + {nodesep=5pt,arrows=->} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.455 \ncline + {s0}{b0}\bput{:U}{\tt gcc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.455 \ncline{s0}{b0}\bput + {:U}{\tt gcc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.456 \ncline + {s1}{b1}\aput{:U}{\tt javac} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.456 \ncline{s1}{b1}\aput + {:U}{\tt javac} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.457 \ncline + {b0}{s1}\naput{\tt NestedVM} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.457 \ncline{b0}{s1}\naput + {\tt NestedVM} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.458 \endpsmatrix + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +Underfull \hbox (badness 10000) in paragraph at lines 444--460 +\OT1/ppl/m/n/9 nodesep=5pt,arrows=-> s0b0:U\OT1/pcr/m/n/9 gcc \OT1/ppl/m/n/9 s1 +b1:U\OT1/pcr/m/n/9 javac + [] + + +Overfull \hbox (37.89pt too wide) in paragraph at lines 462--516 +[]$[]$ + [] + +! Undefined control sequence. +l.546 \psmatrix + [colsep=2,rowsep=0,nrot=:U] +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Misplaced alignment tab character &. +l.547 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.548 [name=s0]\MyBox{unsafe source} & + [name=s1]\MyBox{safe source} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.549 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.550 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.551 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.552 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.553 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.554 [name=b0]\MyBox{machine code} & + [name=b1]\MyBox{safe bytecode} \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Misplaced alignment tab character &. +l.555 & + \\[0pt] +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +! Undefined control sequence. +l.556 \psset + {nodesep=5pt,arrows=->} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.557 \ncline + {s0}{b0}\bput{:U}{\tt gcc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.557 \ncline{s0}{b0}\bput + {:U}{\tt gcc} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.558 \ncline + {b0}{b1}\naput{\tt NestedVM} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.558 \ncline{b0}{b1}\naput + {\tt NestedVM} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.559 \endpsmatrix + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +Underfull \hbox (badness 1418) in paragraph at lines 572--577 +[]\OT1/ppl/m/n/9 Direct com-pi-la-tion to \OT1/pcr/m/n/9 .class \OT1/ppl/m/n/9 +files opens up + [] + + +Underfull \hbox (badness 4120) in paragraph at lines 572--577 +\OT1/ppl/m/n/9 lat-ing MIPS bi-na-ries and load-ing them via + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 572--577 +\OT1/pcr/m/n/9 ClassLoader.fromBytes() \OT1/ppl/m/it/9 at de-ploy-ment + [] + +[4] +Underfull \hbox (badness 5847) in paragraph at lines 642--645 +[]\OT1/ppl/m/n/9 Simple net-work-ing sup-port is pro-vided by the + [] + + +LaTeX Warning: Citation `jmm' on page 5 undefined on input line 674. + + +Underfull \hbox (badness 3439) in paragraph at lines 671--677 +\OT1/ppl/m/n/9 The Nest-edVM run-time cur-rently does not sup- + [] + + +Underfull \hbox (badness 1817) in paragraph at lines 685--693 +[]\OT1/ppl/m/n/9 Complex syn-chro-niza-tion and in-cor-rectly syn-chro- + [] + +[5] + +! LaTeX Error: File `charts/chart4' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.710 ...ile=charts/chart4,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +LaTeX Warning: Reference `code1' on page 6 undefined on input line 715. + + +Underfull \hbox (badness 1092) in paragraph at lines 746--749 +[]\OT1/ppl/m/n/9 This prob-lem was sur-mounted by switch-ing on a + [] + + +LaTeX Warning: Citation `hotspot' on page 6 undefined on input line 752. + + +! LaTeX Error: File `charts/chart1' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.755 ...ile=charts/chart1,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +Underfull \hbox (badness 1990) in paragraph at lines 761--764 +\OT1/ppl/m/n/9 ment can be coded as a \OT1/pcr/m/n/9 TABLESWITCH\OT1/ppl/m/n/9 +, the + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 765--769 +[]\OT1/ppl/m/n/9 Hybrid Interpretive-JIT com-pil-ers such as + [] + + +Underfull \hbox (badness 1609) in paragraph at lines 772--780 +[]\OT1/ppl/m/n/9 After tun-ing method sizes, our next per-for-mance + [] + + +Underfull \hbox (badness 2277) in paragraph at lines 785--794 +\OT1/ppl/m/n/9 and ev-ery branch in-struc-tion's des-ti-na-tion is + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 821--830 +[]\OT1/ppl/m/n/9 One sub-op-ti-mal so-lu-tion was to ex-press con- + [] + + +Underfull \hbox (badness 2990) in paragraph at lines 821--830 +\OT1/ppl/m/n/9 stants as off-sets from a few cen-tral val-ues; for + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 821--830 +\OT1/ppl/m/n/9 ex-am-ple ``\OT1/pcr/m/n/9 pc = N[]0x00010000 + 0x10\OT1/ppl/m/n +/9 '' (where + [] + + +Underfull \hbox (badness 1067) in paragraph at lines 821--830 +\OT1/ppl/m/n/9 di-rectly to \OT1/pcr/m/n/9 .class \OT1/ppl/m/n/9 files (with-ou +t the in-ter-me-di-ate + [] + +[6] + +! LaTeX Error: File `charts/chart3' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.835 ...ile=charts/chart3,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +! LaTeX Error: File `charts/chart9' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.921 ...ile=charts/chart9,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + +[7] +Underfull \hbox (badness 1052) in paragraph at lines 958--964 +\OT1/pcr/m/n/9 -fno-schedule-insns \OT1/ppl/m/n/9 in-struc-tion, \OT1/pcr/m/n/9 + gcc \OT1/ppl/m/n/9 will + [] + + +! LaTeX Error: File `charts/chart10' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.984 ...le=charts/chart10,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +Underfull \hbox (badness 2245) in paragraph at lines 996--1002 +\OT1/ppl/m/n/9 jpeg and writ-ing a tga. The \OT1/pcr/m/n/9 mspack \OT1/ppl/m/n/ +9 test con- + [] + + +! LaTeX Error: File `charts/chart8' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.1003 ...le=charts/chart8,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +! LaTeX Error: File `charts/chart7' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.1005 ...le=charts/chart7,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +! LaTeX Error: File `charts/chart6' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.1007 ...le=charts/chart6,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +Underfull \hbox (badness 1796) in paragraph at lines 1067--1071 +[]\OT1/ppl/m/n/9 The LIN-PACK bench-mark called our at-ten-tion to + [] + + +! LaTeX Error: File `charts/chart11' not found. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.1072 ...e=charts/chart11,height=2.7in,angle=-90} + +I could not locate the file with any of these extensions: +.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps +Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. + + +LaTeX Warning: Citation `msil' on page 8 undefined on input line 1089. + +[8] +No file ivme04.bbl. +[9 + +] (./ivme04.aux) + +LaTeX Warning: There were undefined references. + + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + + ) +Here is how much of TeX's memory you used: + 3176 strings out of 483184 + 41630 string characters out of 5966317 + 299792 words of memory out of 5000000 + 18107 multiletter control sequences out of 15000+600000 + 547137 words of font info for 72 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 32i,14n,31p,814b,363s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on ivme04.dvi (9 pages, 56328 bytes).