expose strlen from Foreign.C.String

Viktor Dukhovni ietf-dane at dukhovni.org
Thu Jan 21 04:02:20 UTC 2021


> On Jan 21, 2021, at 1:39 AM, chessai <chessai1996 at gmail.com> wrote:
>> On Wed, Jan 20, 2021, 17:01 Viktor Dukhovni <ietf-dane at dukhovni.org> wrote:
>>>  On Wed, Jan 20, 2021 at 09:54:30AM -0800, chessai wrote:
>>> 
>>>  I've wanted the following before:
>>>  
>>>  foreign import ccall unsafe "strlen"
>>>    cstringLength# :: Addr# -> Int#
>>>  
>>>  cstringLength :: CString -> Int
>>>  cstringLength (Ptr s) = I# (cstringLength# s)
>>>  
>>>  A natural place for this seems to be Foreign.C.String.
>> 
>> Why a new FFI call, rather than `cstringLength#` from ghc-prim: GHC.CString
>> (as of GHC 9.0.1):
> 
> I forgot about that addition. In that case we would just need the lifted wrapper

No worries, sure the lifted wrapper makes sense, and Foreign.C.String does
look like a reasonable place in which to define, and from which to export it.

-- 
	Viktor.



More information about the Libraries mailing list