<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 01/12/2014 07:19 PM, Dan Wilcox
      wrote:<br>
    </div>
    <blockquote
      cite="mid:ABCB2C02-4233-4973-880D-358FCC53D69A@gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      It's not possible to overload the function? aka 1 that takes 5
      args and another that takes 7? From what I can tell, the usual
      style within the pd core has been to add new args to the end so
      that backwards compatibility isn't sacrificed. Then again, I don't
      know the details in this case ...</blockquote>
    <br>
    Well, if Pd-l2ork is sending 7 args to a canvas method "key", then
    it's surely using A_GIMME which allows an arbitrary number of
    arguments for the canvas "key" method.&nbsp; But even if the tcl proc
    that gave the error took variable args in both ico and matju's code
    there'd likely still be a problem: two developers making independent
    changes to the same part of Pd.&nbsp; The problem would just be pushed
    further down the line.&nbsp; (That's a good reason for using type-checked
    args, btw.)<br>
    <br>
    <blockquote
      cite="mid:ABCB2C02-4233-4973-880D-358FCC53D69A@gmail.com"
      type="cite">
      <div><br>
      </div>
      <div>With libpd, so far, we've avoid trying to make any large,
        incompatible changes to the core. Mainly, at least IMO, because
        we do not want to end up diverging to the point to where we'll
        never be able to get said changes upstream. At this point, I'd
        love to sit down with a bunch of you and work out a proposed
        roadmap to separating gui &amp; pd core so that libpd could
        become the standard core between flavors. I haven't delved into
        the core enough to know if that is a foolish idea, but it really
        seems like a great idea to standardize some of the functionality
        ...<br>
      </div>
    </blockquote>
    <br>
    There are two issues:<br>
    1) making libpd the standard core across flavors<br>
    2) separating gui from audio/message system<br>
    <br>
    #1 is fairly easy in theory.&nbsp; It just means declaring by fiat that
    libpd wants to be the standard core between flavors.&nbsp; In practice--
    at least initially-- it's not too difficult either.&nbsp; Just take
    features that you think should be standard and work them into
    libpd.&nbsp; Something non-gui related and uncontroversial like "$@" or
    [initbang] would be a good candidate.<br>
    <br>
    However, "reference implementation" will undoubtedly broaden the
    scope of libpd.&nbsp; For example-- it'd be extremely useful to everyone
    who uses the Pd GUI environment to have refcounted symbols, in order
    to build a decent, robust string manipulation library that doesn't
    require some new type or syntax to learn.&nbsp; If one just magically
    appeared tomorrow it would immensely broaden the scope of what your
    average Pd user could do in the language.&nbsp; However for libpd
    specifically, this would matter very little since the language the
    libpd user is binding to certainly has a decent, robust string
    manipulation library already.&nbsp; That's just one example.&nbsp; There are
    likely many other areas that are orthogonal to embedding Pd in
    another language but important to the general development of Pd.<br>
    <br>
    #2 is hard.&nbsp; Where would you start and how would you proceed?<br>
    <br>
    -Jonathan<br>
    <br>
    <blockquote
      cite="mid:ABCB2C02-4233-4973-880D-358FCC53D69A@gmail.com"
      type="cite">
      <div>
        <div><br>
          <div>
            <div>On Jan 12, 2014, at 5:55 PM, <a moz-do-not-send="true"
                href="mailto:pd-list-request@iem.at">pd-list-request@iem.at</a>
              wrote:</div>
            <br class="Apple-interchange-newline">
            <blockquote type="cite">
              <div style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                margin: 0px;"><span style="font-family: Helvetica;
                  color: rgb(127, 127, 127);"><b>From:<span
                      class="Apple-converted-space">&nbsp;</span></b></span><span
                  style="font-family: Helvetica;">Jonathan Wilkes &lt;<a
                    moz-do-not-send="true"
                    href="mailto:jancsika@yahoo.com">jancsika@yahoo.com</a>&gt;<br>
                </span></div>
              <div style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                margin: 0px;"><span style="font-family: Helvetica;
                  color: rgb(127, 127, 127);"><b>Subject:<span
                      class="Apple-converted-space">&nbsp;</span></b></span><span
                  style="font-family: Helvetica;"><b>Re: [PD] error on
                    canvas while writing in object : tcl error: wrong #
                    args: should be "pdtk_canvas_sendkey name state key
                    iso shift"</b><br>
                </span></div>
              <div style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                margin: 0px;"><span style="font-family: Helvetica;
                  color: rgb(127, 127, 127);"><b>Date:<span
                      class="Apple-converted-space">&nbsp;</span></b></span><span
                  style="font-family: Helvetica;">January 12, 2014 at
                  5:54:49 PM EST<br>
                </span></div>
              <div style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                margin: 0px;"><span style="font-family: Helvetica;
                  color: rgb(127, 127, 127);"><b>To:<span
                      class="Apple-converted-space">&nbsp;</span></b></span><span
                  style="font-family: Helvetica;"><a
                    moz-do-not-send="true" href="mailto:pd-list@iem.at">pd-list@iem.at</a><br>
                </span></div>
              <br style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <br style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <div class="moz-cite-prefix" style="font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">On
                01/12/2014 10:55 AM, Ivica Ico Bukvic wrote:<br>
              </div>
              <blockquote cite="mid:52D2BAE6.4030300@vt.edu" type="cite"
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
                <div class="moz-cite-prefix">Hi,<br>
                  <br>
                  This is because pd-l2ork has recently introduced a way
                  of filtering autorepeat keys so that [key], [keyup],
                  and [keyname] objects only report real key presses (as
                  they should) while other forms of key input (e.g.
                  writing into an object box) still obey the autorepeat.
                  This had to be done in a way that breaks
                  pdtk_canvas_send_key by adding an additional variable
                  and hence library like gridflow that hasn't kept up
                  with pd-l2ork's updates is no longer functioning as it
                  should. Adapting this to pd-l2ork should not take much
                  of an effort--it is just a question of time and who
                  will do it.<br>
                </div>
              </blockquote>
              <br style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <span style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                background-color: rgb(255, 255, 255); float: none;
                display: inline !important;">But notice the error tells
                the user that the proc expects five args, and not seven
                args like your revision of pdtk_canvas_sendkey.&nbsp; This is
                because matju told Gridflow to steal the
                pdtk_canvas_sendkey proc and renamed it to
                pdtk_canvas_sendqui (which is pretty funny in itself),
                and then it sends tcl a brand new pdtk_canvas_sendkey
                proc with 5 args and code that presumably has to do with
                unicode support.&nbsp; I say that because you can find it in
                the Gridflow source file named "unicorn.cxx" (which is
                also funny in itself).</span><br style="font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant: normal; font-weight: normal;
                letter-spacing: normal; line-height: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <br style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <span style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                background-color: rgb(255, 255, 255); float: none;
                display: inline !important;">So if you can figure out
                what it's doing, you can try to merging it into Pd-l2ork
                or at least make it compatible with it.&nbsp; But there are
                probably several other places where matju drilled into
                Pd's walls from the outside, and they probably conflict
                with Pd-l2ork's renovations.&nbsp; (Probably the
                widgetbehavior struct and comment struct conflict.)</span><br
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <br style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;">
              <span style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant: normal; font-weight:
                normal; letter-spacing: normal; line-height: normal;
                orphans: auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                background-color: rgb(255, 255, 255); float: none;
                display: inline !important;">-Jonathan</span></blockquote>
          </div>
          <br>
          <div>
            <span class="Apple-style-span" style="border-collapse:
              separate; color: rgb(0, 0, 0); font-family: Helvetica;
              font-style: normal; font-variant: normal; font-weight:
              normal; letter-spacing: normal; line-height: normal;
              orphans: 2; text-indent: 0px; text-transform: none;
              white-space: normal; widows: 2; word-spacing: 0px;
              border-spacing: 0px; -webkit-text-decorations-in-effect:
              none; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px; ">
              <div style="word-wrap: break-word; -webkit-nbsp-mode:
                space; -webkit-line-break: after-white-space; "><span
                  class="Apple-style-span" style="border-collapse:
                  separate; color: rgb(0, 0, 0); font-family: Helvetica;
                  font-style: normal; font-variant: normal; font-weight:
                  normal; letter-spacing: normal; line-height: normal;
                  orphans: 2; text-indent: 0px; text-transform: none;
                  white-space: normal; widows: 2; word-spacing: 0px;
                  border-spacing: 0px;
                  -webkit-text-decorations-in-effect: none;
                  -webkit-text-size-adjust: auto;
                  -webkit-text-stroke-width: 0px; ">
                  <div style="word-wrap: break-word; -webkit-nbsp-mode:
                    space; -webkit-line-break: after-white-space; ">
                    <div>--------</div>
                    <div>Dan Wilcox</div>
                    <div>@danomatika</div>
                    <div><a moz-do-not-send="true"
                        href="http://danomatika.com">danomatika.com</a></div>
                    <div><a moz-do-not-send="true"
                        href="http://robotcowboy.com">robotcowboy.com</a></div>
                    <div><br>
                    </div>
                  </div>
                </span><br class="Apple-interchange-newline">
              </div>
            </span><br class="Apple-interchange-newline">
            <br class="Apple-interchange-newline">
          </div>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>