I want to use the SYS_ functions on the host machine instead of on the target machine, and following what it said in the user's guide, I used the [hHost] form of calling the machine handle operator (P366 in the Users Guide, chapter 21).
This is not working for me unfortunately; if I try to use SetMachine(hHost), then it complains at runtime that it was expecting a machine handle; if I use [hHost] in each function call, then it fails at compile time:
for any function where I use [hHost] at the start of the line, e.g.
this is acceptable. But if I have to use [hHost] at a different point in the line, e.g.
string pathnow = [hHost]SYS_GetEnv("path")
then it takes what I am doing to be casting to a different datatype the results of the function call, and complains (at compile time) that hHost is not a valid datatype.
Has anybody else experienced this kind of problem, or found a workaround?
a) Usage of the machinehandle operator is incorrectly documented, the Users Guide and the 4test language reference are in direct conflict. They describe bracket form  versus arrow form ->.
Ref: Users Guide bottom of page 366 (and top of page 367) says the arrow form must be at the beginning of the line but the bracket form can be anywhere.
but the 4test language reference top of page 766 (second description from the top) says the bracket form must be at the beginning of the line (directly contradictory).
b) Also, the Silk compiler frequently misinterprets the bracket form as a type cast operator, making it effectively useless.
I have been trying to make use of machine handles, but I have been getting some very strange behaviors, and the conflicting documentation makes it impossible for me to achieve a resolution. I had spent quite a lot of time coding (probably incorrectly) using machinehandles (arrow style) until I noticed the conflict, and decided to stop using them until this issue is resolved. I am presently trying to implement alternative solutions.