Hi Levente,
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.
On Fri, Mar 16, 2018 at 3:46 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Levente,
when I try and build on Mac OS X I get this:
"_serialPortOpenByName", referenced from: _primitiveSerialPortOpenByName in SerialPlugin.lib(SerialPlugin.o) "_serialPortReadIntoByName", referenced from: _primitiveSerialPortReadByName in SerialPlugin.lib(SerialPlugin.o) "_serialPortWriteFromByName", referenced from: _primitiveSerialPortWriteByName in SerialPlugin.lib(SerialPlugin.o)
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.
:-(
On Sat, Mar 10, 2018 at 1:58 PM, commits@source.squeak.org wrote:
Levente Uzonyi uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-ul.2354.mcz
==================== Summary ====================
Name: VMMaker.oscog-ul.2354 Author: ul Time: 10 March 2018, 10:56:45.349653 pm UUID: b8f3192d-2b33-4a5d-83f9-785fbefbc570 Ancestors: VMMaker.oscog-eem.2353
Restored SerialPlugin's *byName* primitives on non-PharoVM VMs.
=============== Diff against VMMaker.oscog-eem.2353 ===============
Item was changed: ----- Method: SerialPlugin>>primitiveSerialPortOpenByName:baudRate: stopBitsType:parityType:dataBits:inFlowControlType:out FlowControlType:xOnByte:xOffByte: (in category 'primitives') ----- primitiveSerialPortOpenByName: portName baudRate: baudRate stopBitsType: stopBitsType parityType: parityType dataBits: dataBits inFlowControlType: inFlowControl outFlowControlType: outFlowControl xOnByte: xOnChar xOffByte: xOffChar
<option: #PharoVM> <var: #port type: 'char *'> | port portNameSize | self primitive: 'primitiveSerialPortOpenByName' parameters: #(String SmallInteger SmallInteger
SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger SmallInteger ).
portNameSize := interpreterProxy slotSizeOf: (portName asOop:
String). port := self cCode: 'calloc(portNameSize+1, sizeof(char))'. self cCode: 'memcpy(port, portName, portNameSize)'.
self cCode: 'serialPortOpenByName( port, baudRate, stopBitsType, parityType,
dataBits, inFlowControl, outFlowControl, xOnChar, xOffChar)'.
self free: port.!
Item was changed: ----- Method: SerialPlugin>>primitiveSerialP ortReadByName:into:startingAt:count: (in category 'primitives') ----- primitiveSerialPortReadByName: portName into: array startingAt: startIndex count: count
<option: #PharoVM> <var: #port type: 'char *'> | port portNameSize bytesRead arrayPtr | self primitive: 'primitiveSerialPortReadByName' parameters: #(String ByteArray SmallInteger SmallInteger
).
interpreterProxy success: (startIndex >= 1 and: [startIndex +
count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]). "adjust for zero-origin indexing"
portNameSize := interpreterProxy slotSizeOf: (portName asOop:
String). port := self cCode: 'calloc(portNameSize+1, sizeof(char))'. self cCode: 'memcpy(port, portName, portNameSize)'.
arrayPtr := array + startIndex - 1. bytesRead := self cCode: 'serialPortReadIntoByName( port, count,
arrayPtr)'.
self free: port. ^ bytesRead asSmallIntegerObj!
Item was changed: ----- Method: SerialPlugin>>primitiveSerialPortWriteByName:from:startingAt:count: (in category 'primitives') ----- primitiveSerialPortWriteByName: portName from: array startingAt: startIndex count: count
<option: #PharoVM> <var: #port type: 'char *'> | bytesWritten arrayPtr portNameSize port | self primitive: 'primitiveSerialPortWriteByName' parameters: #(String ByteArray SmallInteger SmallInteger
).
portNameSize := interpreterProxy slotSizeOf: (portName asOop:
String). port := self cCode: 'calloc(portNameSize+1, sizeof(char))'. self cCode: 'memcpy(port, portName, portNameSize)'.
interpreterProxy success: (startIndex >= 1 and: [startIndex +
count - 1 <= (interpreterProxy byteSizeOf: array cPtrAsOop)]). interpreterProxy failed ifFalse: [arrayPtr := array + startIndex - 1. bytesWritten := self cCode: 'serialPortWriteFromByName(port, count, arrayPtr)' ].
self free: port. ^ bytesWritten asSmallIntegerObj!
-- _,,,^..^,,,_ best, Eliot