Porting Go's strings package to C
antonz.org
antonz.org
>Still not quite as fast as Go, but it's close. Honestly, I don't know why the memchr-based implementation is still slower than Go's assembly here, but I decided not to pursue it any further.
Libc call overhead. Your version is using an already-fast memchr, but it still has to cross a general libc boundary and then do the pointer/index around it.
Index with a 1-byte needle collapses to IndexByte, and on arm64 that goes into Go asm.
Additionally Limbo also carries the lessons learnt out of Alef failure in Plan 9.
C => Alef (abandoned) => Limbo => Go
^
Oberon => Oberon-2 /
Anyone schooled in compilers and language design knows how to differentiate language, semantics and implementations.> Anyone schooled in compilers and language design knows how to differentiate language, semantics and implementations.
I'm not sure what your point is. not one of these languages have semantic innovation—I suppose you could argue the `go` keyword is, but even that feels facetious.
Alef never saw the light of the day outside some programmer offices.