<div dir="ltr">Hi Levente,<div><br></div><div>   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.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 16, 2018 at 3:46 PM, Eliot Miranda <span dir="ltr"><<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Levente,<div><br></div><div>    when I try and build on Mac OS X I get this:</div><div><br></div><div><div>  "_serialPortOpenByName", referenced from:</div><div>      _primitiveSerialPortOpenByName in SerialPlugin.lib(SerialPlugin.<wbr>o)</div><div>  "_serialPortReadIntoByName", referenced from:</div><div>      _primitiveSerialPortReadByName in SerialPlugin.lib(SerialPlugin.<wbr>o)</div><div>  "_serialPortWriteFromByName", referenced from:</div><div>      _<wbr>primitiveSerialPortWriteByName in SerialPlugin.lib(SerialPlugin.<wbr>o)</div></div><div><br></div><div>The implementations are missing in both platforms/Mac OS/plugins/SerialPlugin/<wbr>sqMacSerialPort.c and platforms/iOS/plugins/<wbr>SerialPlugin/sqMacSerialPort.<wbr>c.  They are there in platforms/unix/plugins/<wbr>SerialPlugin/sqUnixSerial.c and platforms/win32/plugins/<wbr>SerialPlugin/<wbr>sqWin32SerialPort.c.</div><div><br></div><div>:-(</div><div><br></div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Sat, Mar 10, 2018 at 1:58 PM,  <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Levente Uzonyi uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-ul.2354.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMak<wbr>er/VMMaker.oscog-ul.2354.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-ul.2354<br>
Author: ul<br>
Time: 10 March 2018, 10:56:45.349653 pm<br>
UUID: b8f3192d-2b33-4a5d-83f9-785fbe<wbr>fbc570<br>
Ancestors: VMMaker.oscog-eem.2353<br>
<br>
Restored SerialPlugin's *byName* primitives on non-PharoVM VMs.<br>
<br>
=============== Diff against VMMaker.oscog-eem.2353 ===============<br>
<br>
Item was changed:<br>
  ----- Method: SerialPlugin>>primitiveSerialP<wbr>ortOpenByName:baudRate:<wbr>stopBitsType:parityType:<wbr>dataBits:inFlowControlType:out<wbr>FlowControlType:xOnByte:xOffBy<wbr>te: (in category 'primitives') -----<br>
  primitiveSerialPortOpenByName: portName baudRate: baudRate stopBitsType: stopBitsType parityType: parityType dataBits: dataBits inFlowControlType: inFlowControl outFlowControlType: outFlowControl xOnByte: xOnChar xOffByte: xOffChar<br>
-       <option: #PharoVM><br>
        <var: #port type: 'char *'><br>
<br>
        | port portNameSize |<br>
<br>
        self primitive: 'primitiveSerialPortOpenByName<wbr>'<br>
                parameters: #(String SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger ).<br>
<br>
        portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br>
        port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br>
        self cCode: 'memcpy(port, portName, portNameSize)'.<br>
<br>
        self cCode: 'serialPortOpenByName(<br>
                        port, baudRate, stopBitsType, parityType, dataBits,<br>
                        inFlowControl, outFlowControl, xOnChar, xOffChar)'.<br>
<br>
        self free: port.!<br>
<br>
Item was changed:<br>
  ----- Method: SerialPlugin>>primitiveSerialP<wbr>ortReadByName:into:startingAt:<wbr>count: (in category 'primitives') -----<br>
  primitiveSerialPortReadByName: portName into: array startingAt: startIndex count: count<br>
-       <option: #PharoVM><br>
        <var: #port type: 'char *'><br>
<br>
        | port portNameSize bytesRead arrayPtr |<br>
<br>
        self primitive: 'primitiveSerialPortReadByName<wbr>'<br>
                parameters: #(String  ByteArray SmallInteger SmallInteger ).<br>
<br>
        interpreterProxy success: (startIndex >= 1 and: [startIndex + count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).<br>
        "adjust for zero-origin indexing"<br>
<br>
        portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br>
        port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br>
        self cCode: 'memcpy(port, portName, portNameSize)'.<br>
<br>
        arrayPtr := array + startIndex - 1.<br>
        bytesRead := self cCode: 'serialPortReadIntoByName( port, count, arrayPtr)'.<br>
<br>
        self free: port.<br>
<br>
        ^ bytesRead asSmallIntegerObj!<br>
<br>
Item was changed:<br>
  ----- Method: SerialPlugin>>primitiveSerialP<wbr>ortWriteByName:from:<wbr>startingAt:count: (in category 'primitives') -----<br>
  primitiveSerialPortWriteByName<wbr>: portName from: array startingAt: startIndex count: count<br>
-       <option: #PharoVM><br>
        <var: #port type: 'char *'><br>
<br>
        | bytesWritten arrayPtr portNameSize port |<br>
<br>
        self primitive: 'primitiveSerialPortWriteByNam<wbr>e'<br>
                parameters: #(String ByteArray SmallInteger SmallInteger ).<br>
<br>
        portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br>
        port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br>
        self cCode: 'memcpy(port, portName, portNameSize)'.<br>
<br>
        interpreterProxy success: (startIndex >= 1 and: [startIndex + count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).<br>
        interpreterProxy failed<br>
                ifFalse: [arrayPtr := array + startIndex - 1.<br>
                        bytesWritten := self cCode: 'serialPortWriteFromByName(por<wbr>t, count, arrayPtr)' ].<br>
<br>
        self free: port.<br>
<br>
        ^ bytesWritten asSmallIntegerObj!<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div class="m_5466039244196260276gmail_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>
</font></span></div>
</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>