<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Thanks for the reply.<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 09/05/2017 05:35 PM, Ronie Salgado
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAH_rT_qgWQgzOpUMNnFPBiGfWcMhmdZcK7bW5Z8k9b4ZgRd=yA@mail.gmail.com">
      <div dir="ltr">Hello Jimmie,
        <div><br>
        </div>
        <div>On ESUG I only presented it for the innovation award. There
          is no scientific paper on Lowtalk itself yet, because most of
          the work on this front end is recently. I am probably
          submitting.</div>
        <div><br>
        </div>
        <div>There is still the possibility on changing the syntax and
          some of mechanism that are used in Lowtalk, Currently I am
          showing what is possible to do.</div>
        <div><br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span
            style="font-size:12.800000190734863px">What do you believe
            the best mailing list to list ask questions at some point in
            the future?</span></blockquote>
        <div> </div>
        <div>This is a good question. Currently I do not know. This is
          an early work, and there is still a lot more to do. We now
          have to discuss about how to proceed. I have to discuss
          properly with Eliot about how to keep proceeding. I am reusing
          some of his techniques for implementing some parts such as the
          stack to context mapping, and immediates objects.</div>
      </div>
    </blockquote>
    <br>
    Maybe it is unique enough that it would need its own mailing list at
    some point. Unless it became potentially a part of Pharo and thus
    suitable for pharo-dev.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAH_rT_qgWQgzOpUMNnFPBiGfWcMhmdZcK7bW5Z8k9b4ZgRd=yA@mail.gmail.com">
      <div dir="ltr">
        <div>Lowtalk is currently Pharo only, and it is completely
          standalone from the OpenSmalltalk VM. However, I am going to
          make a backend for Lowtalk that uses Lowcode to be able to use
          it inside the current image environment. Both use cases are
          interesting:</div>
        <div>- standalone executables for embedding and soft realtime
          (videogames).</div>
      </div>
    </blockquote>
    <br>
    Would this also be a good way to do mobile, iOS and Android apps?<br>
    <br>
    <blockquote type="cite"
cite="mid:CAH_rT_qgWQgzOpUMNnFPBiGfWcMhmdZcK7bW5Z8k9b4ZgRd=yA@mail.gmail.com">
      <div dir="ltr">
        <div>- keeping the current VM and reusing the in-image
          environment allows to use the full power of the Pharo/Squeak
          environment. In this case, Lowtalk can be used for getting a
          performance boost in numerical intensive software loops (e.g:
          matrix multiplication, typically an O(n^3) algorithm), without
          having to resort to the FFI for calling externally compiled C
          code.</div>
      </div>
    </blockquote>
     <br>
    I am definitely interested in this. I am interested in arrays of
    numbers and doing calculations on those numbers. I was thinking that
    I would be needing to code this in C and call from UFFI. I read your
    message and I thought that it meant I could code in Lowtalk and then
    call the new library via UFFI.<br>
    <br>
    So, what I understand here is that I can code in Lowtalk for the
    Lowcode backend and not require UFFI? At least at some point in the
    future. That sounds awesome.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAH_rT_qgWQgzOpUMNnFPBiGfWcMhmdZcK7bW5Z8k9b4ZgRd=yA@mail.gmail.com">
      <div dir="ltr">
        <div>I want to use Lowtalk in Woden 2 exactly for the second use
          case. Currently in Woden 2 I am using the language described
          in the Lowcode paper. Because the type system introduces
          dependencies on the compilation order, it does not behave well
          with Monticello which I had to patch in Woden 2. With Lowtalk
          I am solving that problem by using standard text files, and
          multiple semantic analysis passes over the AST to define
          circular types lazily. for example:</div>
        <div><br>
        </div>
        <div>Structure named: #LinkedListNode slots: {</div>
        <div> #next => (LinkedListNode pointer).</div>
        <div> #value => (Void pointer)</div>
        <div>}.</div>
      </div>
    </blockquote>
    <br>
    Ok. I was confused in my brief look at GitHub as to whether we were
    programming in the image on with a text editor.<br>
    It would be nice if at some point it could be done from the image.
    Even if it is a with a new editor (possible from the new moldable
    work) understanding Lowtalk and tools to do compilation.<br>
    <br>
    Possibilities are interesting.<br>
    <br>
    Thanks again. I look forward to seeing what happens.<br>
    <br>
    Jimmie<br>
    <br>
    <blockquote type="cite"
cite="mid:CAH_rT_qgWQgzOpUMNnFPBiGfWcMhmdZcK7bW5Z8k9b4ZgRd=yA@mail.gmail.com">
      <div dir="ltr">
        <div>Best regards,</div>
        <div>Ronie</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">2017-09-05 17:02 GMT+02:00 Jimmie <span
            dir="ltr"><<a href="mailto:jlhouchin@gmail.com"
              target="_blank" moz-do-not-send="true">jlhouchin@gmail.com</a>></span>:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
            Hello Ronie,<br>
            <br>
            I think this looks very interesting. I just downloaded your
            paper to read. I look forward to seeing the video of your
            ESUG demonstration.<br>
            <br>
            What do you believe the best mailing list to list ask
            questions at some point in the future?<br>
            <br>
            Thanks again for your work on this interesting project.<span
              class="HOEnZb"><font color="#888888"><br>
                <br>
                Jimmie</font></span>
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                <br>
                <br>
                On 08/30/2017 11:05 AM, Ronie Salgado wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  Hi All,<br>
                  <br>
                  I am finally glad to announce an initial version of my
                  secret experiment, Lowtalk: <a
                    href="https://github.com/ronsaldo/lowtalk"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">https://github.com/ronsaldo/lo<wbr>wtalk</a><br>
                  <br>
                  Lowtalk is a new Smalltalk dialect that generates
                  relocatable binary object code, that can be linked
                  with any C program or used to generate a standalone
                  executable with the C linker. I am designing Lowtalk
                  as a language for video game developing, where
                  performance and multi-threading support is important.
                  The Lowtalk compiler is completely written in Pharo.<br>
                  <br>
                  The main features of Lowtalk are the following:<br>
                  - The compiler is actually a meta circular evaluator,
                  whose features are used for bootstraping the Lowtalk
                  kernel.<br>
                  - The Lowtalk object model, including the layout of
                  the objects is defined in the language itself.<br>
                  - Direct interface with C. There is an almost 1:1
                  mapping between the Lowtalk native types and the C
                  types. There is a syntax extension for calling C
                  functions.<br>
                  -Support for real multi-threading.<br>
                  - The current object model uses automatic reference
                  counting, which is slow, but makes supporting real
                  multi-threading easier.<br>
                  - Immediates are based on the Spur object model.<br>
                  - Partial support for generating debugging information
                  in the DWARF standard. It is possible to place
                  breakpoints and get correct stack traces with gdb.<br>
                  <br>
                  Lowtalk is on the line of my work with Lowcode, and I
                  am planning on making a Lowtalk backend that uses
                  Lowcode. The Lowtalk type system is almost the same as
                  the one that I described at the paper: Lowcode:
                  Extending Pharo with C Types to Improve Performance<br>
                  <br>
                  I will make a video later, and a proper demonstration
                  at ESUG.<br>
                  <br>
                  Best regards,<br>
                  Ronie<br>
                </blockquote>
                <br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>