See the ":naturalize-gen" method in sbcl/src/code/c-call.lisp,
finally it calls "c-string-to-string" or "%naturalize-c-string" depends
on sb-unicode. Lisp trace confirms this function is called and
Lisp string is returned.
Also see following code in sbcl/src/code/unix.lisp:
(defun unix-gethostname ()
(with-alien ((buf (array char 256)))
(syscall ("gethostname" (* char) int)
(cast buf c-string)
(cast buf (* char)) 256)))
With this patch, HyperDoc works and can be confirmed with trace:
(1) -> )lisp (trace |sockGetStringFrom|)
Value = (|sockGetStringFrom|)
(1) -> 0: (FRICAS-LISP:|sockGetStringFrom| 3)
0: |sockGetStringFrom| returned "(|bcDifferentiate|)"
- Qian