<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><tt>Dear Sir/Madam</tt></p>
    <p><tt><br>
      </tt></p>
    <p><tt>Our company</tt><tt>, 4Js software, has developed an SQL data
        base software that runs under different operating systems:
        Windows, Linux, Mac OS X. This software compiles each SQL
        statement into a C program that is compiled "on the fly" and
        executed by our JIT, Just In Time compiler.</tt></p>
    <p><tt>We wanted to port it to Apple's iOS, and spent a lot of time
        retargetting the JIT for supporting the ARM 64 CPU, but to our
        surprise, when everything was ready, we learned that Apple iOS
        forbids software to generate dynamically an executable.</tt></p>
    <p><tt>After several months of reflections we think we can get
        around this problem  by using a C interpreter. Instead of
        compiling it to machine code, we would pass the generated C
        program to  a C interpreter that would interpret the C program.</tt></p>
    <p><tt>After looking at several interpreters, we think that the llvm
        based CLING interpreter could do the job. To test these ideas,
        we have recompiled the llvm/Clang system in a small linux/ARM64
        based machine. Our preliminary tests seem to work and cling is
        able to load the generated program.<br>
      </tt></p>
    <p><tt>There are several possible problems that we see.</tt></p>
    <p><tt><br>
      </tt></p>
    <p><tt>The first and most obvious one is the incredible size of the
        CLING interpreter (200MB stripped). Our whole data base is 80MB
        stripped. We are targetting an Apple iPad, boosted with 1TO
        SSD/6GB RAM. What would be the minimum requirements for CLING in
        terms of RAM size?</tt></p>
    <p><tt>The second question is that we have still concerns over the
        overall approach. Do you see any problems with this
        architecture? Can it work on principle?</tt></p>
    <p><tt>The third question concerns the feasibility of our JIT
        generating byte codes for the LLVM interpreter, boosting
        performance and reducing RAM footprint. Would that be a better
        solution than using the CLING interpreter? Is that possible
        within Apple's iOS?</tt></p>
    <p><tt>And yet another question is the need to modify the CLING
        interpreter so that it receives its input from a character
        buffer instead of a file, and other small tweaks. Is that
        possible?</tt></p>
    <p><tt>Are there any copyright issues? Are we allowed to embed the
        llvm software into our system? Of course we would publish any
        modifications done to the source code.<br>
      </tt></p>
    <p><tt>We thank you in advance for any answers to the questions
        above.</tt></p>
    <p><tt><br>
      </tt></p>
    <p><tt>Yours sincerely</tt></p>
    <p><tt><br>
      </tt></p>
    <p><tt>Jacob Navia</tt></p>
    <p><tt>iOS Project Manager</tt></p>
    <p><tt>4Js Software. <a class="moz-txt-link-freetext" href="https://4js.com">https://4js.com</a></tt><tt><br>
      </tt><tt><span class="w8qArf" style="font-weight: bolder;
          caret-color: rgb(34, 34, 34); color: rgb(34, 34, 34);
          font-style: normal; font-variant-caps: normal; letter-spacing:
          normal; text-align: left; text-indent: 0px; text-transform:
          none; white-space: normal; word-spacing: 0px;
          -moz-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
          text-decoration: none;"><span class="Apple-converted-space"></span></span></tt><tt><span
          class="LrzXr" style="caret-color: rgb(34, 34, 34); color:
          rgb(34, 34, 34); font-style: normal; font-variant-caps:
          normal; font-weight: normal; letter-spacing: normal;
          text-align: left; text-indent: 0px; text-transform: none;
          white-space: normal; word-spacing: 0px; -moz-text-size-adjust:
          auto; -webkit-text-stroke-width: 0px; text-decoration: none;">28
          Quai Gallieni, 92150 Suresnes</span></tt></p>
    <p><tt><span class="LrzXr" style="caret-color: rgb(34, 34, 34);
          color: rgb(34, 34, 34); font-family: arial, sans-serif;
          font-style: normal; font-variant-caps: normal; font-weight:
          normal; letter-spacing: normal; orphans: auto; text-align:
          left; text-indent: 0px; text-transform: none; white-space:
          normal; widows: auto; word-spacing: 0px;
          -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
          0px; text-decoration: none;"><tt>FRANCE</tt><br>
        </span></tt></p>
  </body>
</html>