<div dir="ltr">Hi Javier,<div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 18, 2018 at 7:50 AM, Javier Diaz-Reinoso <span dir="ltr"><<a href="mailto:javier_diaz_r@mac.com" target="_blank">javier_diaz_r@mac.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div style="word-wrap:break-word;line-break:after-white-space">I am not sure if the code of MacOS for "support arbitrary serial speeds" is valid in Linux, the code in pyserial (<a href="https://github.com/pyserial/pyserial/blob/master/serial/serialposix.py" target="_blank">https://github.com/pyserial/<wbr>pyserial/blob/master/serial/<wbr>serialposix.py</a>) is:<div><br><div><blockquote type="cite"><table class="m_-4650674343502318605js-file-line-container m_-4650674343502318605highlight m_-4650674343502318605tab-size" style="box-sizing:border-box;border-spacing:0px;border-collapse:collapse;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605LC179" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap"><span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">elif</span> plat[:<span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">6</span>] <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">==</span> <span class="m_-4650674343502318605pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="m_-4650674343502318605pl-pds" style="box-sizing:border-box">'</span>darwin<span class="m_-4650674343502318605pl-pds" style="box-sizing:border-box">'</span></span>:   <span class="m_-4650674343502318605pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="m_-4650674343502318605pl-c" style="box-sizing:border-box">#</span> OS X</span></td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L180" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC180" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">    <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">import</span> array</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L181" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC181" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">    <span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">IOSSIOSPEED</span> <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> <span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)"><span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">0x</span>80045402</span>  <span class="m_-4650674343502318605pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="m_-4650674343502318605pl-c" style="box-sizing:border-box">#</span> _IOW('T', 2, speed_t)</span></td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L182" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC182" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">
</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L183" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC183" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">    <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">class</span> <span class="m_-4650674343502318605pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">PlatformSpecific</span>(<span class="m_-4650674343502318605pl-e" style="box-sizing:border-box;color:rgb(111,66,193)">PlatformSpeci<wbr>ficBase</span>):</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L184" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC184" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">        osx_version <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> os.uname()[<span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">2</span>].split(<span class="m_-4650674343502318605pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="m_-4650674343502318605pl-pds" style="box-sizing:border-box">'</span>.<span class="m_-4650674343502318605pl-pds" style="box-sizing:border-box">'</span></span>)</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L185" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC185" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">        <span class="m_-4650674343502318605pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="m_-4650674343502318605pl-c" style="box-sizing:border-box">#</span> Tiger or above can support arbitrary serial speeds</span></td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L186" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC186" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">        <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">if</span> <span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">int</span>(osx_version[<span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">0</span>]) <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">>=</span> <span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">8</span>:</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L187" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC187" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">            <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">def</span> <span class="m_-4650674343502318605pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">_set_special_baudrate</span>(<span class="m_-4650674343502318605pl-smi" style="box-sizing:border-box">self</span>, <span class="m_-4650674343502318605pl-smi" style="box-sizing:border-box">baudrate</span>):</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L188" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC188" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">                <span class="m_-4650674343502318605pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="m_-4650674343502318605pl-c" style="box-sizing:border-box">#</span> use IOKit-specific call to set up high speeds</span></td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L189" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC189" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">                buf <span class="m_-4650674343502318605pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> array.array(<span class="m_-4650674343502318605pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="m_-4650674343502318605pl-pds" style="box-sizing:border-box">'</span>i<span class="m_-4650674343502318605pl-pds" style="box-sizing:border-box">'</span></span>, [baudrate])</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L190" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-4650674343502318605LC190" class="m_-4650674343502318605js-file-line m_-4650674343502318605blob-code-inner m_-4650674343502318605blob-code" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre-wrap">                fcntl.ioctl(<span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">self</span>.fd, <span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">IOSSIOSPEED</span>, buf, <span class="m_-4650674343502318605pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">1</span>)</td></tr><tr style="box-sizing:border-box"><td id="m_-4650674343502318605L191" class="m_-4650674343502318605blob-num m_-4650674343502318605js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td></tr></tbody></table><br></blockquote><div>can the equivalent in C work in linux or the other unix?.</div></div></div></div></blockquote><div><br></div><div>It should be able to, right?  It's just an ioctl.  Can you try and see and commit the results to opensmalltalk/vm, e.g. as a pull request?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><div><div><div><br></div><div>At the moment I only use SqPronterface in mac (MacBook Pro or iBook G4) connected to an Arduino Mega controlling a Prusa  Mendel printer.</div><div><br></div><div><br><blockquote type="cite"><div>On 18 Mar 2018, at 05:29, Guillermo Polito <<a href="mailto:guillermopolito@gmail.com" target="_blank">guillermopolito@gmail.com</a>> wrote:</div><br class="m_-4650674343502318605Apple-interchange-newline"><div><div dir="ltr">Hi,<div><br></div><div>I've seen also some hiccups with that. I had students that could not use serial port on mac to connect to arduinos and they had to default to a linux virtual box or similar to work... :/</div><div><br></div><div>If there is an easy way to replace the "unimplemented" serial port by the unix one without duplicating the code that would be already an improvement by large and I would reaaaally be greatful. Then if there are bugs with reading speed, fixing one would suffice to fix both :).</div><div><br></div><div>I can offer myself to test on osx arduinos and maybe connecting to an xbox controller.</div><div><br></div><div>Tx!</div><div>Guille</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Mar 17, 2018 at 7:03 PM, Javier Diaz-Reinoso <span dir="ltr"><<a href="mailto:javier_diaz_r@mac.com" target="_blank">javier_diaz_r@mac.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div style="word-wrap:break-word;line-break:after-white-space">Yes that is right, you can use sqUnixSerial.c instead of the sqMacSerialPort.c but there are limitation about the maximum speed, I have a hacked version of sqUnixSerial.c using the the same way that pyserial use, using this file my program sqPronterface works well at 250000 bps in intel mac, and a maximum of  230400 bps in ppc mac:<div><br></div><div></div></div><br><div style="word-wrap:break-word;line-break:after-white-space"><div><br><div><br><blockquote type="cite"><div>On 17 Mar 2018, at 03:02, Clément Bera <<a href="mailto:bera.clement@gmail.com" target="_blank">bera.clement@gmail.com</a>> wrote:</div><br class="m_-4650674343502318605m_6843991583188390134Apple-interchange-newline"><div><br class="m_-4650674343502318605m_6843991583188390134Apple-interchange-newline"><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="gmail_quote" style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">On Sat, Mar 17, 2018 at 1:09 AM, Levente Uzonyi<span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:leves@caesar.elte.hu" target="_blank">leves@caesar.elte.hu</a>></span><span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span><wbr>wrote:<br><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"> <br>Hi Eliot,<br><br>I wonder how the Pharo builds handle those. Because these have always been enabled there.<br>Also, these primitives are from the original SqueakVM branch (interpreter), so there should be problems as well if the primitives are missing.<br><br>Levente<br><br>On Fri, 16 Mar 2018, Eliot Miranda wrote:<br><br><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">Hi Levente,<br>   no need for any action on your part.  I see that the Serial Port primitives are essentially unimplemented on Mac OS so it is trivial to provide null implementations for the "ByName" ones.<br></blockquote></blockquote><div><br></div><div>Last time I talked with the people using the SerialPort plugin they said on Mac they use the linux plugin since the Mac plugin is not implemented, the linux plugin is, and the linux plugin works on all unix systems including Mac.</div><div><br></div><div> </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"><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"><br>On Fri, Mar 16, 2018 at 3:46 PM, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Hi Levente,<br>   <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>when I try and build on Mac OS X I get this:<br><br> <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>"_serialPortOpenByName", referenced from:<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>_primitiveSerialPortOpenByNa<wbr>me in SerialPlugin.lib(SerialPlugin.<wbr>o)<br> <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>"_serialPortReadIntoByName", referenced from:<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>_primitiveSerialPortReadByNa<wbr>me in SerialPlugin.lib(SerialPlugin.<wbr>o)<br> <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>"_serialPortWriteFromByName"<wbr>, referenced from:<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>_primitiveSerialPortWriteByN<wbr>ame in SerialPlugin.lib(SerialPlugin.<wbr>o)<br><br>The implementations are missing in both platforms/Mac OS/plugins/SerialPlugin/sqMacS<wbr>erialPort.c and platforms/iOS/plugins/SerialPl<wbr>ugin/sqMacSerialPort.c.  They are there in<br>platforms/unix/plugins/SerialP<wbr>lugin/sqUnixSerial.c and platforms/win32/plugins/Serial<wbr>Plugin/sqWin32SerialPort.c.<br><br>:-(<br><br><br>On Sat, Mar 10, 2018 at 1:58 PM, <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> wrote:<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Levente Uzonyi uploaded a new version of VMMaker to project VM Maker:<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span><a href="http://source.squeak.org/VMMaker/VMMaker.oscog-ul.2354.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMM<wbr>aker/VMMaker.oscog-ul.2354.mcz</a><br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>==================== Summary ====================<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Name: VMMaker.oscog-ul.2354<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Author: ul<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Time: 10 March 2018, 10:56:45.349653 pm<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>UUID: b8f3192d-2b33-4a5d-83f9-785fbe<wbr>fbc570<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Ancestors: VMMaker.oscog-eem.2353<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Restored SerialPlugin's *byName* primitives on non-PharoVM VMs.<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>=============== Diff against VMMaker.oscog-eem.2353 ===============<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Item was changed:<br>       <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>----- Method: SerialPlugin>>primitiveSerialP<wbr>ortOpenByName:baudRate:stopBit<wbr>sType:parityType:dataBits:inFl<wbr>owControlType:outFlowControlTy<wbr>pe:xOnByte:xOffByte: (in category 'primitives') -----<br>       <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>primitiveSerialPortOpenByNam<wbr>e: portName baudRate: baudRate stopBitsType: stopBitsType parityType: parityType dataBits: dataBits inFlowControlType: inFlowControl outFlowControlType:<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>outFlowControl xOnByte: xOnChar xOffByte: xOffChar<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>-       <option: #PharoVM><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span><var: #port type: 'char *'><br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>| port portNameSize |<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self primitive: 'primitiveSerialPortOpenByName<wbr>'<br>                     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>parameters: #(String SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger ).<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self cCode: 'memcpy(port, portName, portNameSize)'.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self cCode: 'serialPortOpenByName(<br>                             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>port, baudRate, stopBitsType, parityType, dataBits,<br>                             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>inFlowControl, outFlowControl, xOnChar, xOffChar)'.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self free: port.!<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Item was changed:<br>       <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>----- Method: SerialPlugin>>primitiveSerialP<wbr>ortReadByName:into:startingAt:<wbr>count: (in category 'primitives') -----<br>       <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>primitiveSerialPortReadByNam<wbr>e: portName into: array startingAt: startIndex count: count<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>-       <option: #PharoVM><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span><var: #port type: 'char *'><br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>| port portNameSize bytesRead arrayPtr |<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self primitive: 'primitiveSerialPortReadByName<wbr>'<br>                     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>parameters: #(String  ByteArray SmallInteger SmallInteger ).<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>interpreterProxy success: (startIndex >= 1 and: [startIndex + count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>"adjust for zero-origin indexing"<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self cCode: 'memcpy(port, portName, portNameSize)'.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>arrayPtr := array + startIndex - 1.<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>bytesRead := self cCode: 'serialPortReadIntoByName( port, count, arrayPtr)'.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self free: port.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>^ bytesRead asSmallIntegerObj!<br><br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>Item was changed:<br>       <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>----- Method: SerialPlugin>>primitiveSerialP<wbr>ortWriteByName:from:startingAt<wbr>:count: (in category 'primitives') -----<br>       <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>primitiveSerialPortWriteByNa<wbr>me: portName from: array startingAt: startIndex count: count<br>     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>-       <option: #PharoVM><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span><var: #port type: 'char *'><br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>| bytesWritten arrayPtr portNameSize port |<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self primitive: 'primitiveSerialPortWriteByNam<wbr>e'<br>                     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>parameters: #(String ByteArray SmallInteger SmallInteger ).<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self cCode: 'memcpy(port, portName, portNameSize)'.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>interpreterProxy success: (startIndex >= 1 and: [startIndex + count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).<br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>interpreterProxy failed<br>                     <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>ifFalse: [arrayPtr := array + startIndex - 1.<br>                             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>bytesWritten := self cCode: 'serialPortWriteFromByName(por<wbr>t, count, arrayPtr)' ].<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>self free: port.<br><br>             <span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span>^ bytesWritten asSmallIntegerObj!<br><br><br><br><br>--<br>_,,,^..^,,,_<br>best, Eliot<br><br><br><br><br>--<br>_,,,^..^,,,_<br>best, Eliot<br><br></blockquote><br></blockquote></div><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br clear="all" style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><span style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">--<span class="m_-4650674343502318605m_6843991583188390134Apple-converted-space"> </span></span><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="m_-4650674343502318605m_6843991583188390134gmail_signature" data-smartmail="gmail_signature" style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><span style="font-size:12.8px">Clément Béra<br></span><span style="color:rgb(0,0,238)"><a href="https://clementbera.github.io/" target="_blank">https://clementbera.github.io/</a></span><div style="font-size:12.8px"><a href="https://clementbera.wordpress.com/" target="_blank">https://clementbera.wordpress.<wbr>com/</a></div></div></div></div></div></div></div></blockquote></div><br></div></div><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-4650674343502318605gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><table cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tbody>
<tr>
<td valign="top" style="width:86.0px;height:84.0px;border-style:solid;border-width:0.0px 1.0px 0.0px 0.0px;border-color:transparent #000000 transparent transparent;padding:4.0px 4.0px 4.0px 4.0px"><div style="margin:0px;min-height:14px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica"> </font><span style="font-family:Helvetica;font-size:10px"> </span><span style="font-family:Helvetica;font-size:10px"> </span><img src="https://www.cristal.univ-lille.fr//videos/presentation.jpg" width="200" height="112"><img src="https://intranet.cnrs.fr/Cnrs_pratique/communiquer/guides/PublishingImages/CNRS-filaire-Bichro-CMJN.jpg" alt="" style="font-size:12.8px;margin:5px" width="96" height="96"></div>















</td><td valign="top" style="width:378.0px;height:84.0px;border-style:solid;border-width:0.0px 0.0px 0.0px 1.0px;border-color:transparent transparent transparent #000000;padding:4.0px 4.0px 4.0px 4.0px"><div style="margin:0px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica">Guille Polito</font></div><div style="margin:0px"><span style="font-family:Helvetica;font-size:10px">Research Engineer</span></div><p style="margin:0px;font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;min-height:10px"><font></font><br class="m_-4650674343502318605webkit-block-placeholder"></p><div style="margin:0px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica">Centre de Recherche en Informatique, Signal et Automatique de Lille</font></div><div style="margin:0px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica">CRIStAL - UMR 9189</font></div><div style="margin:0px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica">French National Center for Scientific Research - <font><u><a href="http://www.cnrs.fr/" target="_blank">http://www.cnrs.fr</a></u></font></font></div><div style="margin:0px;font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;min-height:10px"><br></div><div style="margin:0px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica"><b>Web:</b> <a href="http://guillep.github.io/" target="_blank"><font><u>http://guillep.github.io</u></font></a></font></div><div style="margin:0px"><font face="Helvetica" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica"><b>Phone: </b><a href="tel:+33%206%2052%2070%2066%2013" value="+33652706613" target="_blank">+33 06 52 70 66 13</a></font></div>
</td>
</tr>
</tbody>
</table></div></div></div></div>
</div>
</div></blockquote></div><br></div></div></div><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="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></div>