<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 17 Mar 2018, at 03:02, Clément Bera <<a href="mailto:bera.clement@gmail.com" class="">bera.clement@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-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; -webkit-text-stroke-width: 0px;" class=""><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; -webkit-text-stroke-width: 0px;">On Sat, Mar 17, 2018 at 1:09 AM, Levente Uzonyi<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:leves@caesar.elte.hu" target="_blank" class="">leves@caesar.elte.hu</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><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 class="">Hi Eliot,<br class=""><br class="">I wonder how the Pharo builds handle those. Because these have always been enabled there.<br class="">Also, these primitives are from the original SqueakVM branch (interpreter), so there should be problems as well if the primitives are missing.<br class=""><br class="">Levente<br class=""><br class="">On Fri, 16 Mar 2018, Eliot Miranda wrote:<br class=""><br class=""><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 class="">   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 class=""></blockquote></blockquote><div class=""><br class=""></div><div class="">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 class=""><br class=""></div><div class=""> </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 class="">On Fri, Mar 16, 2018 at 3:46 PM, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank" class="">eliot.miranda@gmail.com</a>> wrote:<br class="">     <span class="Apple-converted-space"> </span>Hi Levente,<br class="">   <span class="Apple-converted-space"> </span>when I try and build on Mac OS X I get this:<br class=""><br class=""> <span class="Apple-converted-space"> </span>"_serialPortOpenByName", referenced from:<br class="">     <span class="Apple-converted-space"> </span>_primitiveSerialPortOpenByName in SerialPlugin.lib(SerialPlugin.<wbr class="">o)<br class=""> <span class="Apple-converted-space"> </span>"_serialPortReadIntoByName", referenced from:<br class="">     <span class="Apple-converted-space"> </span>_primitiveSerialPortReadByName in SerialPlugin.lib(SerialPlugin.<wbr class="">o)<br class=""> <span class="Apple-converted-space"> </span>"_serialPortWriteFromByName", referenced from:<br class="">     <span class="Apple-converted-space"> </span>_primitiveSerialPortWriteByNam<wbr class="">e in SerialPlugin.lib(SerialPlugin.<wbr class="">o)<br class=""><br class="">The implementations are missing in both platforms/Mac OS/plugins/SerialPlugin/sqMacS<wbr class="">erialPort.c and platforms/iOS/plugins/SerialPl<wbr class="">ugin/sqMacSerialPort.c.  They are there in<br class="">platforms/unix/plugins/SerialP<wbr class="">lugin/sqUnixSerial.c and platforms/win32/plugins/Serial<wbr class="">Plugin/sqWin32SerialPort.c.<br class=""><br class="">:-(<br class=""><br class=""><br class="">On Sat, Mar 10, 2018 at 1:58 PM, <<a href="mailto:commits@source.squeak.org" target="_blank" class="">commits@source.squeak.org</a>> wrote:<br class=""><br class="">     <span class="Apple-converted-space"> </span>Levente Uzonyi uploaded a new version of VMMaker to project VM Maker:<br class="">     <span class="Apple-converted-space"> </span><a href="http://source.squeak.org/VMMaker/VMMaker.oscog-ul.2354.mcz" rel="noreferrer" target="_blank" class="">http://source.squeak.org/VMMak<wbr class="">er/VMMaker.oscog-ul.2354.mcz</a><br class=""><br class="">     <span class="Apple-converted-space"> </span>==================== Summary ====================<br class=""><br class="">     <span class="Apple-converted-space"> </span>Name: VMMaker.oscog-ul.2354<br class="">     <span class="Apple-converted-space"> </span>Author: ul<br class="">     <span class="Apple-converted-space"> </span>Time: 10 March 2018, 10:56:45.349653 pm<br class="">     <span class="Apple-converted-space"> </span>UUID: b8f3192d-2b33-4a5d-83f9-785fbe<wbr class="">fbc570<br class="">     <span class="Apple-converted-space"> </span>Ancestors: VMMaker.oscog-eem.2353<br class=""><br class="">     <span class="Apple-converted-space"> </span>Restored SerialPlugin's *byName* primitives on non-PharoVM VMs.<br class=""><br class="">     <span class="Apple-converted-space"> </span>=============== Diff against VMMaker.oscog-eem.2353 ===============<br class=""><br class="">     <span class="Apple-converted-space"> </span>Item was changed:<br class="">       <span class="Apple-converted-space"> </span>----- Method: SerialPlugin>>primitiveSerialP<wbr class="">ortOpenByName:baudRate:<wbr class="">stopBitsType:parityType:<wbr class="">dataBits:inFlowControlType:out<wbr class="">FlowControlType:xOnByte:xOffBy<wbr class="">te: (in category 'primitives') -----<br class="">       <span class="Apple-converted-space"> </span>primitiveSerialPortOpenByName: portName baudRate: baudRate stopBitsType: stopBitsType parityType: parityType dataBits: dataBits inFlowControlType: inFlowControl outFlowControlType:<br class="">     <span class="Apple-converted-space"> </span>outFlowControl xOnByte: xOnChar xOffByte: xOffChar<br class="">     <span class="Apple-converted-space"> </span>-       <option: #PharoVM><br class="">             <span class="Apple-converted-space"> </span><var: #port type: 'char *'><br class=""><br class="">             <span class="Apple-converted-space"> </span>| port portNameSize |<br class=""><br class="">             <span class="Apple-converted-space"> </span>self primitive: 'primitiveSerialPortOpenByName<wbr class="">'<br class="">                     <span class="Apple-converted-space"> </span>parameters: #(String SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger ).<br class=""><br class="">             <span class="Apple-converted-space"> </span>portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br class="">             <span class="Apple-converted-space"> </span>port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br class="">             <span class="Apple-converted-space"> </span>self cCode: 'memcpy(port, portName, portNameSize)'.<br class=""><br class="">             <span class="Apple-converted-space"> </span>self cCode: 'serialPortOpenByName(<br class="">                             <span class="Apple-converted-space"> </span>port, baudRate, stopBitsType, parityType, dataBits,<br class="">                             <span class="Apple-converted-space"> </span>inFlowControl, outFlowControl, xOnChar, xOffChar)'.<br class=""><br class="">             <span class="Apple-converted-space"> </span>self free: port.!<br class=""><br class="">     <span class="Apple-converted-space"> </span>Item was changed:<br class="">       <span class="Apple-converted-space"> </span>----- Method: SerialPlugin>>primitiveSerialP<wbr class="">ortReadByName:into:startingAt:<wbr class="">count: (in category 'primitives') -----<br class="">       <span class="Apple-converted-space"> </span>primitiveSerialPortReadByName: portName into: array startingAt: startIndex count: count<br class="">     <span class="Apple-converted-space"> </span>-       <option: #PharoVM><br class="">             <span class="Apple-converted-space"> </span><var: #port type: 'char *'><br class=""><br class="">             <span class="Apple-converted-space"> </span>| port portNameSize bytesRead arrayPtr |<br class=""><br class="">             <span class="Apple-converted-space"> </span>self primitive: 'primitiveSerialPortReadByName<wbr class="">'<br class="">                     <span class="Apple-converted-space"> </span>parameters: #(String  ByteArray SmallInteger SmallInteger ).<br class=""><br class="">             <span class="Apple-converted-space"> </span>interpreterProxy success: (startIndex >= 1 and: [startIndex + count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).<br class="">             <span class="Apple-converted-space"> </span>"adjust for zero-origin indexing"<br class=""><br class="">             <span class="Apple-converted-space"> </span>portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br class="">             <span class="Apple-converted-space"> </span>port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br class="">             <span class="Apple-converted-space"> </span>self cCode: 'memcpy(port, portName, portNameSize)'.<br class=""><br class="">             <span class="Apple-converted-space"> </span>arrayPtr := array + startIndex - 1.<br class="">             <span class="Apple-converted-space"> </span>bytesRead := self cCode: 'serialPortReadIntoByName( port, count, arrayPtr)'.<br class=""><br class="">             <span class="Apple-converted-space"> </span>self free: port.<br class=""><br class="">             <span class="Apple-converted-space"> </span>^ bytesRead asSmallIntegerObj!<br class=""><br class="">     <span class="Apple-converted-space"> </span>Item was changed:<br class="">       <span class="Apple-converted-space"> </span>----- Method: SerialPlugin>>primitiveSerialP<wbr class="">ortWriteByName:from:<wbr class="">startingAt:count: (in category 'primitives') -----<br class="">       <span class="Apple-converted-space"> </span>primitiveSerialPortWriteByName<wbr class="">: portName from: array startingAt: startIndex count: count<br class="">     <span class="Apple-converted-space"> </span>-       <option: #PharoVM><br class="">             <span class="Apple-converted-space"> </span><var: #port type: 'char *'><br class=""><br class="">             <span class="Apple-converted-space"> </span>| bytesWritten arrayPtr portNameSize port |<br class=""><br class="">             <span class="Apple-converted-space"> </span>self primitive: 'primitiveSerialPortWriteByNam<wbr class="">e'<br class="">                     <span class="Apple-converted-space"> </span>parameters: #(String ByteArray SmallInteger SmallInteger ).<br class=""><br class="">             <span class="Apple-converted-space"> </span>portNameSize := interpreterProxy slotSizeOf: (portName asOop: String).<br class="">             <span class="Apple-converted-space"> </span>port := self cCode: 'calloc(portNameSize+1, sizeof(char))'.<br class="">             <span class="Apple-converted-space"> </span>self cCode: 'memcpy(port, portName, portNameSize)'.<br class=""><br class="">             <span class="Apple-converted-space"> </span>interpreterProxy success: (startIndex >= 1 and: [startIndex + count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]).<br class="">             <span class="Apple-converted-space"> </span>interpreterProxy failed<br class="">                     <span class="Apple-converted-space"> </span>ifFalse: [arrayPtr := array + startIndex - 1.<br class="">                             <span class="Apple-converted-space"> </span>bytesWritten := self cCode: 'serialPortWriteFromByName(por<wbr class="">t, count, arrayPtr)' ].<br class=""><br class="">             <span class="Apple-converted-space"> </span>self free: port.<br class=""><br class="">             <span class="Apple-converted-space"> </span>^ bytesWritten asSmallIntegerObj!<br class=""><br class=""><br class=""><br class=""><br class="">--<br class="">_,,,^..^,,,_<br class="">best, Eliot<br class=""><br class=""><br class=""><br class=""><br class="">--<br class="">_,,,^..^,,,_<br class="">best, Eliot<br class=""><br class=""></blockquote><br class=""></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; -webkit-text-stroke-width: 0px;" class=""><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; -webkit-text-stroke-width: 0px;" class=""><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; -webkit-text-stroke-width: 0px;" class=""><br class=""></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; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-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; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_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; -webkit-text-stroke-width: 0px;"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><span style="font-size: 12.8px;" class="">Clément Béra<br class=""></span><span style="color: rgb(0, 0, 238);" class=""><a href="https://clementbera.github.io/" target="_blank" class="">https://clementbera.github.io/</a></span><div style="font-size: 12.8px;" class=""><a href="https://clementbera.wordpress.com/" target="_blank" class="">https://clementbera.wordpress.com/</a></div></div></div></div></div></div></div></blockquote></div><br class=""></div></body></html>