* memrchr() implementation
@ 2011-07-29 4:33 Tay Ray Chuan
2011-07-29 4:40 ` Jeff King
2011-07-29 4:47 ` Jonathan Nieder
0 siblings, 2 replies; 3+ messages in thread
From: Tay Ray Chuan @ 2011-07-29 4:33 UTC (permalink / raw)
To: Git Mailing List; +Cc: Junio C Hamano, Jeff King, Jonathan Nieder
Hi,
I'm writing a patch that requires the use of memrchr(). [1] As far as
I know, memrchr() is non-standard.
So what's the best way to get git to use memrchr()?
I was thinking of getting git to use glibc's implementation if glibc
is present, if not, use a naive implementation included in git's code
base [2].
--
Footnotes:
[1] For those interested, it's regarding content trimming to speed out
diffs. You can see memrchr() in use at
https://github.com/rctay/git/blob/tg%2Fgsoc-diff%2Ftrim-ends/xdiff/xprepare.c#L203
[2] (ISC-style license)
http://www.sudo.ws/repos/sudo/file/c1ab4b940980/compat/memrchr.c
--
Cheers,
Ray Chuan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: memrchr() implementation
2011-07-29 4:33 memrchr() implementation Tay Ray Chuan
@ 2011-07-29 4:40 ` Jeff King
2011-07-29 4:47 ` Jonathan Nieder
1 sibling, 0 replies; 3+ messages in thread
From: Jeff King @ 2011-07-29 4:40 UTC (permalink / raw)
To: Tay Ray Chuan; +Cc: Git Mailing List, Junio C Hamano, Jonathan Nieder
On Fri, Jul 29, 2011 at 12:33:01PM +0800, Tay Ray Chuan wrote:
> I'm writing a patch that requires the use of memrchr(). [1] As far as
> I know, memrchr() is non-standard.
Yep.
> So what's the best way to get git to use memrchr()?
>
> I was thinking of getting git to use glibc's implementation if glibc
> is present, if not, use a naive implementation included in git's code
> base [2].
Yeah, that's our usual strategy; see how strchrnul is implemented for an
example.
Since you are doing this for speed and not ease-of-use, I assume you are
benchmarking stock git versus glibc's optimized memrchr. I'd be curious
to see a comparison to your naive implementation, too, just to
double-check that your attempt at speeding up doesn't make things worse
on non-glibc platforms.
-Peff
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: memrchr() implementation
2011-07-29 4:33 memrchr() implementation Tay Ray Chuan
2011-07-29 4:40 ` Jeff King
@ 2011-07-29 4:47 ` Jonathan Nieder
1 sibling, 0 replies; 3+ messages in thread
From: Jonathan Nieder @ 2011-07-29 4:47 UTC (permalink / raw)
To: Tay Ray Chuan; +Cc: Git Mailing List, Junio C Hamano, Jeff King
Hi,
Tay Ray Chuan wrote:
> So what's the best way to get git to use memrchr()?
In my very humble opinion: [1].
> I was thinking of getting git to use glibc's implementation if glibc
> is present, if not, use a naive implementation included in git's code
> base [2].
Sounds reasonable.
> [2] (ISC-style license)
> http://www.sudo.ws/repos/sudo/file/c1ab4b940980/compat/memrchr.c
For something simple as this, I'd prefer to avoid a differently
licensed (even ISC-licensed) file.
It might also be worth convincing the folks at
http://austingroupbugs.net/ to standardize the interface so there
could be optimized implementations of memrchr on more platforms over
time.
Thanks,
Jonathan
[1] http://thread.gmane.org/gmane.comp.version-control.git/159081/focus=159121
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-07-29 4:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-29 4:33 memrchr() implementation Tay Ray Chuan
2011-07-29 4:40 ` Jeff King
2011-07-29 4:47 ` Jonathan Nieder
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.