<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hi Eliot, Hi David,<br>
    <br>
    Thanks for your interest in VectorEnginePlugin! It is exciting to
    know that it will be included in official VM builds, as this will
    ensure it is available for everybody, and it avoids the need to
    maintain separate VM builds for this.<br>
    <br>
    Let me explain a little bit why it is not simply maintained as a
    Monticello repository. I wrote and maintain the plugin using Cuis,
    because Cuis has a morphic implementation that is compatible with
    it, and this eases development and testing. Cuis uses the .pck.st
    file format for packages, that is essentially a change set with very
    little additional metadata. Squeak can read .pck.st files without
    trouble.<br>
    <br>
    Cuis can run enough of VMMaker to be able to generate C sources for
    plugins (although it can't generate the full VM or run simulated
    Slang). As Dave said, Squeak can also load VectorEnginePlugin.pck.st
    in a VMMaker Squeak image and generate C sources for it.<br>
    <br>
    Dave, thanks a lot for your offer to commit the generated sources to
    the OpenSmalltalk repo, or alternatively to set up an upstream
    Monticello mirror for VectorEnginePlugin. I haven't used much
    Squeak, VMMaker or Monticello in years, if I tried to do that I'm
    sure I'd make a lot of mistakes!<br>
    <br>
    Finally, if you want to try it for yourself, clone or copy as a zip
    file <a class="moz-txt-link-freetext" href="http://www.github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">http://www.github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a> and run
    it with one of the experimental VMs at <br>
    <a class="moz-txt-link-freetext" href="https://www.dropbox.com/sh/rhkt4ayq24t2xbf/AACDb3mrjMUDB8Mptd-Bi6Zsa?dl=0">https://www.dropbox.com/sh/rhkt4ayq24t2xbf/AACDb3mrjMUDB8Mptd-Bi6Zsa?dl=0</a>
    . VMs are available for LinuxX64, Windows64 and Windows32 (built by
    Gerald Klix), LinuxX64-v3-interpreter (built by Dave) and MacOS
    (built by me).<br>
    <br>
    Once you get Cuis running with a VM that includes
    VectorEnginePlugin, (and using the complete folder structure of that
    GitHub repo), you can do World / Preferences... / Set System Font...
    / DejaVu / DejaVuSans , or, for example, ComputerModern... /
    NeoEuler or ComputerModernConcreteRoman .<br>
    <br>
    Now use center-click to bring a halo on the "About Cuis" window, or
    a Smalltalk browser. Note that in addition to the resize handle,
    there is a zoom handle at the rightCenter and a rotate handle at the
    bottomLeft. Just play with them. Note that the TrueType text is
    rasterized straight from the TrueType Bezier curves spec to the
    Display, at any angle and zoom level (no Form caching at all).<br>
    <br>
    You can also do World / New Morph... / From Alphabetical List /
    M3Exp01Morph . Clone it with the topRight halo handle. See what
    happens when one of them touches another. Other example morphs, like
    M3Exp03Morph and M3Exp05Morph show how little code is needed to draw
    arbitrary shapes, while the framework handles all geometry details
    (such as detecting when the hand touches the morph, in order to drag
    it or open the halo).<br>
    <br>
    If you clone the SVG repo, you can also see how we can read and turn
    into Morph structure some rather complex SVG files.<br>
    <br>
    One interesting note about VectorEnginePlugin is that exactly the
    same algorithm is doing TrueType (meaning that it is good enough for
    text, i.e. better quality than Cairo) and fast enough for SVG
    manipulation and animation.<br>
    <br>
    I hope you like it.<br>
    <br>
    Cheers,<br>
    <pre class="moz-signature" cols="72">-- 
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
    <br>
    <br>
    On 7/21/2021 4:09 PM, Eliot Miranda wrote:
    <blockquote
cite="mid:CAC20JE08JOWYnZs5x9Ne12OK1QBW6Ahg6zDO7N0WiWzyWpqoQQ@mail.gmail.com"
      type="cite">
      <pre wrap="">Hi David, Hi Juan,
</pre>
      <div dir="ltr"><br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Tue, Jul 20, 2021 at 5:48
            PM David T. Lewis <<a moz-do-not-send="true"
              href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin: 0px 0px 0px
            0.8ex; border-left: 1px solid rgb(204, 204, 204);
            padding-left: 1ex;"> <br>
            VectorEnginePlugin is a new plugin by Juan Vuletich that can
            be added to<br>
            standard VM builds as an external plugin. Currently it is
            used principally<br>
            by Cuis, but is applicable to Squeak and related images as
            well.</blockquote>
          <div><br>
          </div>
          <div class="gmail_default" style="font-size: small;">great
            news!</div>
          <blockquote class="gmail_quote" style="margin: 0px 0px 0px
            0.8ex; border-left: 1px solid rgb(204, 204, 204);
            padding-left: 1ex;">
            <br>
            The Smalltalk slang source is hosted at <a
              moz-do-not-send="true"
              href="https://github.com/Cuis-Smalltalk" rel="noreferrer"
              target="_blank">https://github.com/Cuis-Smalltalk</a><br>
            and the package file for fileIn to Cuis or Squeak is<br>
            <a moz-do-not-send="true"
href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Packages/Features/VectorEnginePlugin.pck.st"
              rel="noreferrer" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Packages/Features/VectorEnginePlugin.pck.st</a>.<br>
            <br>
            No external platforms files are required. The plugin source
            can be<br>
            generated from any Cuis or Squeak VMMaker image and is
            portable for any<br>
            platform or VM flavor. Squeak (and hence any VMMaker image)
            already has<br>
            the necessary support for filing in the plugin without
            modification.<br>
            <br>
            The minimal requirement for adding this to the
            opensmalltalk-vm (and traditional<br>
            squeakvm) is to commit the generated sources to
            src/plugins/VectorEnginePlugin/<br>
            and add it to the the various plugins.ext files.<br>
            <br>
            Beyond that, I want to ask in advance how we should support
            VectorEnginePlugin<br>
            moving forward. The simplest thing to do is treat the Cuis
            GitHub repository<br>
            as the upstream repository (which it is), and just check
            generated sources into<br>
            the opensmalltalk-vm and <a moz-do-not-send="true"
              href="http://squeakvm.org" rel="noreferrer"
              target="_blank">squeakvm.org</a> repositories. This
            however is different<br>
            from what we usually do with plugins that live in Monticello
            repositories<br>
            and are loaded into VMMaker images, usually from
            repositories hosted on<br>
            <a moz-do-not-send="true" href="http://source.squeak.org"
              rel="noreferrer" target="_blank">source.squeak.org</a> or
            <a moz-do-not-send="true" href="http://squeaksource.com"
              rel="noreferrer" target="_blank">squeaksource.com</a>.<br>
            <br>
            Are there any preferences or recommendations as to how to
            best handle this?<br>
            I have been tracking the VectorEnginePlugin for some time
            and I'm willing<br>
            to do any administrative things that may be needed,
            including checking in<br>
            generated sources and/or possibly setting up and maintaining
            a Monticello<br>
            mirror of the upstream repository (e.g. a project on
            squeaksource) if<br>
            that is preferred.<br>
          </blockquote>
          <div><br>
          </div>
          <div class="gmail_default" style="font-size: small;">An
            upstream Monticello mirror would be most helpful.  We have a
            tiny script for generating correct histories in exports to
            Monticello from Tonel repositories if it is of help.  I will
            fold the VectorEnginePlugin into the standard builds within
            the next few days (not today, I need some downtime).</div>
          <div class="gmail_default" style="font-size: small;"><br>
          </div>
          <blockquote class="gmail_quote" style="margin: 0px 0px 0px
            0.8ex; border-left: 1px solid rgb(204, 204, 204);
            padding-left: 1ex;">
            <br>
            Thanks for any ideas or suggestions, and thanks to Juan for
            developing<br>
            the new VectorEnginePlugin.<br>
          </blockquote>
          <div><br>
          </div>
          <div class="gmail_default" style="font-size: small;">+1000!!!</div>
          <blockquote class="gmail_quote" style="margin: 0px 0px 0px
            0.8ex; border-left: 1px solid rgb(204, 204, 204);
            padding-left: 1ex;">
            <br>
            Dave<br>
            <br>
          </blockquote>
        </div>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <div dir="ltr" class="gmail_signature">
          <div dir="ltr">
            <div><span style="font-size: small; border-collapse:
                separate;">
                <div>_,,,^..^,,,_<br>
                </div>
                <div>best, Eliot</div>
              </span></div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>