<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.o)</div><div>  "_serialPortReadIntoByName", referenced from:</div><div>      _primitiveSerialPortReadByName in SerialPlugin.lib(SerialPlugin.o)</div><div>  "_serialPortWriteFromByName", referenced from:</div><div>      _primitiveSerialPortWriteByName in SerialPlugin.lib(SerialPlugin.o)</div></div><div><br></div><div>The implementations are missing in both platforms/Mac OS/plugins/SerialPlugin/sqMacSerialPort.c and platforms/iOS/plugins/SerialPlugin/sqMacSerialPort.c.  They are there in platforms/unix/plugins/SerialPlugin/sqUnixSerial.c and platforms/win32/plugins/SerialPlugin/sqWin32SerialPort.c.</div><div><br></div><div>:-(</div><div><br></div></div><div class="gmail_extra"><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/<wbr>VMMaker/VMMaker.oscog-ul.2354.<wbr>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-<wbr>785fbefbc570<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>><wbr>primitiveSerialPortOpenByName:<wbr>baudRate:stopBitsType:<wbr>parityType:dataBits:<wbr>inFlowControlType:<wbr>outFlowControlType:xOnByte:<wbr>xOffByte: (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: '<wbr>primitiveSerialPortOpenByName'<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>><wbr>primitiveSerialPortReadByName:<wbr>into:startingAt: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: '<wbr>primitiveSerialPortReadByName'<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>><wbr>primitiveSerialPortWriteByName<wbr>:from: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: '<wbr>primitiveSerialPortWriteByName<wbr>'<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(<wbr>port, count, arrayPtr)' ].<br>
<br>
        self free: port.<br>
<br>
        ^ bytesWritten asSmallIntegerObj!<br>
<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>