< prev index next >

doc/panama_foreign.html

Print this page

        

*** 1,150 **** - <!DOCTYPE html> - <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> - <head> - <meta charset="utf-8" /> - <meta name="generator" content="pandoc" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> - <title>Using Panama “foreign” JDK</title> - <style type="text/css"> - code{white-space: pre-wrap;} - span.smallcaps{font-variant: small-caps;} - span.underline{text-decoration: underline;} - div.column{display: inline-block; vertical-align: top; width: 50%;} - </style> - <style type="text/css"> - a.sourceLine { display: inline-block; line-height: 1.25; } - a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } - a.sourceLine:empty { height: 1.2em; } - .sourceCode { overflow: visible; } - code.sourceCode { white-space: pre; position: relative; } - div.sourceCode { margin: 1em 0; } - pre.sourceCode { margin: 0; } - @media screen { - div.sourceCode { overflow: auto; } - } - @media print { - code.sourceCode { white-space: pre-wrap; } - a.sourceLine { text-indent: -1em; padding-left: 1em; } - } - pre.numberSource a.sourceLine - { position: relative; left: -4em; } - pre.numberSource a.sourceLine::before - { content: attr(data-line-number); - position: relative; left: -1em; text-align: right; vertical-align: baseline; - border: none; pointer-events: all; display: inline-block; - -webkit-touch-callout: none; -webkit-user-select: none; - -khtml-user-select: none; -moz-user-select: none; - -ms-user-select: none; user-select: none; - padding: 0 4px; width: 4em; - color: #aaaaaa; - } - pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } - div.sourceCode - { } - @media screen { - a.sourceLine::before { text-decoration: underline; } - } - code span.al { color: #ff0000; font-weight: bold; } /* Alert */ - code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ - code span.at { color: #7d9029; } /* Attribute */ - code span.bn { color: #40a070; } /* BaseN */ - code span.bu { } /* BuiltIn */ - code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ - code span.ch { color: #4070a0; } /* Char */ - code span.cn { color: #880000; } /* Constant */ - code span.co { color: #60a0b0; font-style: italic; } /* Comment */ - code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ - code span.do { color: #ba2121; font-style: italic; } /* Documentation */ - code span.dt { color: #902000; } /* DataType */ - code span.dv { color: #40a070; } /* DecVal */ - code span.er { color: #ff0000; font-weight: bold; } /* Error */ - code span.ex { } /* Extension */ - code span.fl { color: #40a070; } /* Float */ - code span.fu { color: #06287e; } /* Function */ - code span.im { } /* Import */ - code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ - code span.kw { color: #007020; font-weight: bold; } /* Keyword */ - code span.op { color: #666666; } /* Operator */ - code span.ot { color: #007020; } /* Other */ - code span.pp { color: #bc7a00; } /* Preprocessor */ - code span.sc { color: #4070a0; } /* SpecialChar */ - code span.ss { color: #bb6688; } /* SpecialString */ - code span.st { color: #4070a0; } /* String */ - code span.va { color: #19177c; } /* Variable */ - code span.vs { color: #4070a0; } /* VerbatimString */ - code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ - </style> - <link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" /> - <!--[if lt IE 9]> - <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> - <![endif]--> - </head> - <body> - <header> - <h1 class="title">Using Panama “foreign” JDK</h1> - </header> - <nav id="TOC"> - <ul> - <li><a href="#using-panama-foreign-jdk">Using Panama “foreign” JDK</a><ul> - <li><a href="#embedding-python-interpreter-in-your-java-program-mac-os">Embedding Python interpreter in your Java program (Mac OS)</a><ul> - <li><a href="#jextract-a-jar-file-for-python.h">jextract a Jar file for Python.h</a></li> - <li><a href="#java-program-that-uses-extracted-python-interface">Java program that uses extracted Python interface</a></li> - <li><a href="#running-the-java-code-that-calls-python-interpreter">Running the Java code that calls Python interpreter</a></li> - </ul></li> - <li><a href="#embedding-python-interpreter-in-your-java-program-ubuntu-16.04">Embedding Python interpreter in your Java program (Ubuntu 16.04)</a><ul> - <li><a href="#jextract-a-jar-file-for-python.h-1">jextract a Jar file for Python.h</a></li> - <li><a href="#compiling-and-running-python-java-example">Compiling and Running Python Java example</a></li> - </ul></li> - <li><a href="#using-blas-library">Using BLAS library</a><ul> - <li><a href="#installing-openblas-mac-os">Installing OpenBLAS (Mac OS)</a></li> - <li><a href="#installing-openblas-ubuntu-16.04">Installing OpenBLAS (Ubuntu 16.04)</a></li> - <li><a href="#jextracting-cblas.h-macos">jextracting cblas.h (MacOS)</a></li> - <li><a href="#jextracting-cblas.h-ubuntu-16.04">jextracting cblas.h (Ubuntu 16.04)</a></li> - <li><a href="#java-sample-code-that-uses-cblas-library">Java sample code that uses cblas library</a></li> - <li><a href="#compiling-and-running-the-above-cblas-samples">Compiling and running the above cblas samples</a></li> - </ul></li> - <li><a href="#using-lapack-library-ubuntu">Using LAPACK library (Ubuntu)</a><ul> - <li><a href="#jextracting-clapack.h-ubuntu-16.04">jextracting clapack.h (Ubuntu 16.04)</a></li> - <li><a href="#java-sample-code-that-uses-lapack-library">Java sample code that uses LAPACK library</a></li> - <li><a href="#compiling-and-running-the-above-lapack-sample">Compiling and running the above LAPACK sample</a></li> - </ul></li> - <li><a href="#using-lapack-library-mac-os">Using LAPACK library (Mac OS)</a><ul> - <li><a href="#jextracting-lapacke.h">jextracting lapacke.h</a></li> - <li><a href="#java-sample-code-that-uses-lapack-library-1">Java sample code that uses LAPACK library</a></li> - <li><a href="#compiling-and-running-the-above-lapack-sample-1">Compiling and running the above LAPACK sample</a></li> - </ul></li> - <li><a href="#using-libproc-library-to-list-processes-from-java-mac-os">Using libproc library to list processes from Java (Mac OS)</a><ul> - <li><a href="#jextract-a-jar-file-for-libproc.h">jextract a jar file for libproc.h</a></li> - <li><a href="#java-program-that-uses-libproc-to-list-processes">Java program that uses libproc to list processes</a></li> - <li><a href="#running-the-java-code-that-uses-libproc">Running the Java code that uses libproc</a></li> - </ul></li> - <li><a href="#using-readline-library-from-java-code-mac-os">Using readline library from Java code (Mac OS)</a><ul> - <li><a href="#jextract-a-jar-file-for-readline.h">jextract a jar file for readline.h</a></li> - <li><a href="#java-code-that-uses-readline">Java code that uses readline</a></li> - <li><a href="#running-the-java-code-that-uses-readline">Running the java code that uses readline</a></li> - </ul></li> - <li><a href="#using-unistd.h-from-java-code-linux">Using unistd.h from Java code (Linux)</a><ul> - <li><a href="#jextract-a-jar-file-for-unistd.h">jextract a jar file for unistd.h</a></li> - <li><a href="#java-code-that-calls-getpid">Java code that calls getpid</a></li> - <li><a href="#running-the-java-code-that-uses-getpid">Running the Java code that uses getpid</a></li> - </ul></li> - <li><a href="#using-opengl-graphic-library-ubuntu-16.04">Using OpenGL graphic library (Ubuntu 16.04)</a><ul> - <li><a href="#installing-opengl-ubuntu-16.04">Installing OpenGL (Ubuntu 16.04)</a></li> - <li><a href="#jextracting-opengl-ubuntu-16.04">jextracting OpenGL (Ubuntu 16.04)</a></li> - <li><a href="#java-sample-code-that-uses-the-opengl-library">Java sample code that uses the OpenGL library</a></li> - <li><a href="#running-the-java-code-that-uses-opengl">Running the Java code that uses OpenGL</a></li> - </ul></li> - <li><a href="#using-tensorflow-c-api-mac-os">Using TensorFlow C API (Mac OS)</a><ul> - <li><a href="#installing-libtensorflow">Installing libtensorflow</a></li> - <li><a href="#jextracting-libtensorflow-c_api.h">jextracting libtensorflow c_api.h</a></li> - <li><a href="#java-sample-code-that-uses-tensorflow-library">Java sample code that uses tensorflow library</a></li> - <li><a href="#compiling-and-running-the-above-tensorflow-sample">Compiling and running the above TensorFlow sample</a></li> - </ul></li> - </ul></li> - </ul> - </nav> <h1 id="using-panama-foreign-jdk">Using Panama “foreign” JDK</h1> <p>There are two ways to get a panama foreign branch JDK.</p> <ol type="1"> <li>Locally build “foreign” branch of panama repo <a href="http://hg.openjdk.java.net/panama/dev/" class="uri">http://hg.openjdk.java.net/panama/dev/</a></li> <li>Download pre-built panama “foreign” early access binaries from <a href="http://jdk.java.net/panama/" class="uri">http://jdk.java.net/panama/</a></li> --- 1,5 ----
*** 160,170 **** <div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb1-1" data-line-number="1"></a> <a class="sourceLine" id="cb1-2" data-line-number="2"><span class="ex">jextract</span> -l python2.7 \</a> <a class="sourceLine" id="cb1-3" data-line-number="3"> -rpath /System/Library/Frameworks/Python.framework/Versions/2.7/lib \</a> <a class="sourceLine" id="cb1-4" data-line-number="4"> --exclude-symbols .*_FromFormatV<span class="dt">\|</span>_.*<span class="dt">\|</span>PyOS_vsnprintf<span class="dt">\|</span>.*_VaParse.*<span class="dt">\|</span>.*_VaBuild.*<span class="dt">\|</span>PyBuffer_SizeFromFormat<span class="dt">\|</span>vasprintf<span class="dt">\|</span>vfprintf<span class="dt">\|</span>vprintf<span class="dt">\|</span>vsprintf \</a> <a class="sourceLine" id="cb1-5" data-line-number="5"> -t org.python \</a> ! <a class="sourceLine" id="cb1-6" data-line-number="6"> /usr/include/stdio.h /usr/include/stdlib.h /usr/include/python2.7/Python.h \</a> <a class="sourceLine" id="cb1-7" data-line-number="7"> -o python.jar</a></code></pre></div> <h3 id="java-program-that-uses-extracted-python-interface">Java program that uses extracted Python interface</h3> <div class="sourceCode" id="cb2"><pre class="sourceCode java"><code class="sourceCode java"><a class="sourceLine" id="cb2-1" data-line-number="1"></a> <a class="sourceLine" id="cb2-2" data-line-number="2"><span class="co">// import java.foreign packages</span></a> <a class="sourceLine" id="cb2-3" data-line-number="3"><span class="kw">import</span><span class="im"> java.foreign.Libraries;</span></a> --- 15,25 ---- <div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb1-1" data-line-number="1"></a> <a class="sourceLine" id="cb1-2" data-line-number="2"><span class="ex">jextract</span> -l python2.7 \</a> <a class="sourceLine" id="cb1-3" data-line-number="3"> -rpath /System/Library/Frameworks/Python.framework/Versions/2.7/lib \</a> <a class="sourceLine" id="cb1-4" data-line-number="4"> --exclude-symbols .*_FromFormatV<span class="dt">\|</span>_.*<span class="dt">\|</span>PyOS_vsnprintf<span class="dt">\|</span>.*_VaParse.*<span class="dt">\|</span>.*_VaBuild.*<span class="dt">\|</span>PyBuffer_SizeFromFormat<span class="dt">\|</span>vasprintf<span class="dt">\|</span>vfprintf<span class="dt">\|</span>vprintf<span class="dt">\|</span>vsprintf \</a> <a class="sourceLine" id="cb1-5" data-line-number="5"> -t org.python \</a> ! <a class="sourceLine" id="cb1-6" data-line-number="6"> /usr/include/python2.7/Python.h \</a> <a class="sourceLine" id="cb1-7" data-line-number="7"> -o python.jar</a></code></pre></div> <h3 id="java-program-that-uses-extracted-python-interface">Java program that uses extracted Python interface</h3> <div class="sourceCode" id="cb2"><pre class="sourceCode java"><code class="sourceCode java"><a class="sourceLine" id="cb2-1" data-line-number="1"></a> <a class="sourceLine" id="cb2-2" data-line-number="2"><span class="co">// import java.foreign packages</span></a> <a class="sourceLine" id="cb2-3" data-line-number="3"><span class="kw">import</span><span class="im"> java.foreign.Libraries;</span></a>
*** 196,206 **** <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb4-1" data-line-number="1"></a> <a class="sourceLine" id="cb4-2" data-line-number="2"><span class="ex">jextract</span> -l python2.7 \</a> <a class="sourceLine" id="cb4-3" data-line-number="3"> -rpath /usr/lib/python2.7/config-x86_64-linux-gnu \</a> <a class="sourceLine" id="cb4-4" data-line-number="4"> --exclude-symbols .*_FromFormatV<span class="dt">\|</span>_.*<span class="dt">\|</span>PyOS_vsnprintf<span class="dt">\|</span>.*_VaParse.*<span class="dt">\|</span>.*_VaBuild.*<span class="dt">\|</span>PyBuffer_SizeFromFormat<span class="dt">\|</span>vasprintf<span class="dt">\|</span>vfprintf<span class="dt">\|</span>vprintf<span class="dt">\|</span>vsprintf \</a> <a class="sourceLine" id="cb4-5" data-line-number="5"> -t org.python \</a> ! <a class="sourceLine" id="cb4-6" data-line-number="6"> /usr/include/stdio.h /usr/include/stdlib.h /usr/include/python2.7/Python.h \</a> <a class="sourceLine" id="cb4-7" data-line-number="7"> -o python.jar</a></code></pre></div> <h3 id="compiling-and-running-python-java-example">Compiling and Running Python Java example</h3> <p>Follow the instructions from the Mac OS section</p> <h2 id="using-blas-library">Using BLAS library</h2> <p>BLAS is a popular library that allows fast matrix and vector computation: <a href="http://www.netlib.org/blas/" class="uri">http://www.netlib.org/blas/</a>.</p> --- 51,61 ---- <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb4-1" data-line-number="1"></a> <a class="sourceLine" id="cb4-2" data-line-number="2"><span class="ex">jextract</span> -l python2.7 \</a> <a class="sourceLine" id="cb4-3" data-line-number="3"> -rpath /usr/lib/python2.7/config-x86_64-linux-gnu \</a> <a class="sourceLine" id="cb4-4" data-line-number="4"> --exclude-symbols .*_FromFormatV<span class="dt">\|</span>_.*<span class="dt">\|</span>PyOS_vsnprintf<span class="dt">\|</span>.*_VaParse.*<span class="dt">\|</span>.*_VaBuild.*<span class="dt">\|</span>PyBuffer_SizeFromFormat<span class="dt">\|</span>vasprintf<span class="dt">\|</span>vfprintf<span class="dt">\|</span>vprintf<span class="dt">\|</span>vsprintf \</a> <a class="sourceLine" id="cb4-5" data-line-number="5"> -t org.python \</a> ! <a class="sourceLine" id="cb4-6" data-line-number="6"> /usr/include/python2.7/Python.h \</a> <a class="sourceLine" id="cb4-7" data-line-number="7"> -o python.jar</a></code></pre></div> <h3 id="compiling-and-running-python-java-example">Compiling and Running Python Java example</h3> <p>Follow the instructions from the Mac OS section</p> <h2 id="using-blas-library">Using BLAS library</h2> <p>BLAS is a popular library that allows fast matrix and vector computation: <a href="http://www.netlib.org/blas/" class="uri">http://www.netlib.org/blas/</a>.</p>
*** 484,498 **** <div class="sourceCode" id="cb18"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb18-1" data-line-number="1"></a> <a class="sourceLine" id="cb18-2" data-line-number="2"><span class="ex">javac</span> -cp libproc.jar LibprocMain.java</a> <a class="sourceLine" id="cb18-3" data-line-number="3"></a> <a class="sourceLine" id="cb18-4" data-line-number="4"><span class="ex">java</span> -cp libproc.jar:. LibprocMain</a></code></pre></div> <h2 id="using-readline-library-from-java-code-mac-os">Using readline library from Java code (Mac OS)</h2> <h3 id="jextract-a-jar-file-for-readline.h">jextract a jar file for readline.h</h3> <div class="sourceCode" id="cb19"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb19-1" data-line-number="1"></a> <a class="sourceLine" id="cb19-2" data-line-number="2"><span class="ex">jextract</span> -l readline -rpath /usr/local/opt/readline/lib/ \</a> <a class="sourceLine" id="cb19-3" data-line-number="3"> -t org.unix \</a> ! <a class="sourceLine" id="cb19-4" data-line-number="4"> /usr/include/readline/readline.h /usr/include/_stdio.h \</a> <a class="sourceLine" id="cb19-5" data-line-number="5"> --exclude-symbol readline_echoing_p -o readline.jar</a></code></pre></div> <h3 id="java-code-that-uses-readline">Java code that uses readline</h3> <div class="sourceCode" id="cb20"><pre class="sourceCode java"><code class="sourceCode java"><a class="sourceLine" id="cb20-1" data-line-number="1"></a> <a class="sourceLine" id="cb20-2" data-line-number="2"><span class="kw">import</span><span class="im"> java.foreign.*;</span></a> <a class="sourceLine" id="cb20-3" data-line-number="3"><span class="kw">import</span><span class="im"> java.foreign.memory.*;</span></a> --- 339,354 ---- <div class="sourceCode" id="cb18"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb18-1" data-line-number="1"></a> <a class="sourceLine" id="cb18-2" data-line-number="2"><span class="ex">javac</span> -cp libproc.jar LibprocMain.java</a> <a class="sourceLine" id="cb18-3" data-line-number="3"></a> <a class="sourceLine" id="cb18-4" data-line-number="4"><span class="ex">java</span> -cp libproc.jar:. LibprocMain</a></code></pre></div> <h2 id="using-readline-library-from-java-code-mac-os">Using readline library from Java code (Mac OS)</h2> + <h3 id="note-this-sample-fails-because-of-too-big-utf-8-string-in-nativeheader-annotation">Note: This sample fails because of too big UTF-8 String in NativeHeader annotation</h3> <h3 id="jextract-a-jar-file-for-readline.h">jextract a jar file for readline.h</h3> <div class="sourceCode" id="cb19"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb19-1" data-line-number="1"></a> <a class="sourceLine" id="cb19-2" data-line-number="2"><span class="ex">jextract</span> -l readline -rpath /usr/local/opt/readline/lib/ \</a> <a class="sourceLine" id="cb19-3" data-line-number="3"> -t org.unix \</a> ! <a class="sourceLine" id="cb19-4" data-line-number="4"> /usr/include/readline/readline.h \</a> <a class="sourceLine" id="cb19-5" data-line-number="5"> --exclude-symbol readline_echoing_p -o readline.jar</a></code></pre></div> <h3 id="java-code-that-uses-readline">Java code that uses readline</h3> <div class="sourceCode" id="cb20"><pre class="sourceCode java"><code class="sourceCode java"><a class="sourceLine" id="cb20-1" data-line-number="1"></a> <a class="sourceLine" id="cb20-2" data-line-number="2"><span class="kw">import</span><span class="im"> java.foreign.*;</span></a> <a class="sourceLine" id="cb20-3" data-line-number="3"><span class="kw">import</span><span class="im"> java.foreign.memory.*;</span></a>
*** 782,788 **** <h3 id="compiling-and-running-the-above-tensorflow-sample">Compiling and running the above TensorFlow sample</h3> <div class="sourceCode" id="cb33"><pre class="sourceCode sh"><code class="sourceCode bash"><a class="sourceLine" id="cb33-1" data-line-number="1"></a> <a class="sourceLine" id="cb33-2" data-line-number="2"><span class="ex">javac</span> -cp tf.jar TensorFlowExample.java</a> <a class="sourceLine" id="cb33-3" data-line-number="3"></a> <a class="sourceLine" id="cb33-4" data-line-number="4"><span class="ex">java</span> -cp tf.jar:. TensorFlowExample</a></code></pre></div> - </body> - </html> --- 638,642 ----
< prev index next >