git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Davide Libenzi <davidel@xmailserver.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Peter TB Brett <peter@peter-b.co.uk>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: git 0.99.7b doesn't build on Cygwin
Date: Sat, 24 Sep 2005 12:12:38 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.63.0509241129300.31327@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.58.0509241102450.3308@g5.osdl.org>

On Sat, 24 Sep 2005, Linus Torvalds wrote:

>
>
> On Fri, 23 Sep 2005, Davide Libenzi wrote:
>>
>> If you have only to run diff/patch, just use the native Win32 CreateProcess().
>> You abstract that on a git_exec(), and you use fork/exec on Unix and
>> CreateProcess() on Winblows. If fork() is slow on Cygwin, fork+exec is
>> pathetic. They do all that work to give you a fork(), and you throw it
>> away with an exec().
>
> CreateProcess doesn't work all that well, since we want to dup file
> descriptors around and close them in the child.

You can do that (dup stuff and pass them around) even with CreateProcess(),
if you want. Yes, the interface sucks (zillions of parameters/flags) ;)



> In general, CreateProcess() is a totally crap interface. I realize it's
> common (and especially in the VMS/Windows world it's how things are done),
> but hey, at that point it's better if somebody just waits until git is
> stable, and just makes a totally separate "git for windows" thing. The
> interfaces are certainly simple. There's no point in trying to maintain
> one tree.
>
> However, vfork() really _is_ a nice interface. It's faster even on UNIX,
> and at least in theory it should be possible to do an efficient vfork()
> implementation on top of crap like windows. Does cygwin support that well?
>
> Yes, git uses lots of filesystem stuff, and they suck under windows. Maybe
> cygwin adds its own overhead, but from everything I've ever been able to
> tell, filesystem access sucks under Windows regardless of any cygwin
> stuff. Add to an already slow FS interface the fact that virus checkers
> tend to hook into it and make it _even_slower_, and hey, you have a truly
> sucky OS.

I also realized that git plays/handles with unix permissions too, and this 
might make the "interface layer" not so small. Dunno about vfork() on 
Cygwin, but if you really care about performance on Windows, I'd rather 
remove the external program execution and use an in-process diff library.



- Davide

  reply	other threads:[~2005-09-24 19:10 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-23 13:33 git 0.99.7b doesn't build on Cygwin Peter TB Brett
2005-09-23 13:44 ` Johannes Schindelin
2005-09-23 13:50   ` Peter TB Brett
2005-09-23 22:08     ` Martin Langhoff
2005-09-23 22:34       ` Petr Baudis
2005-09-24  0:09   ` Linus Torvalds
2005-09-24  0:43     ` Linus Torvalds
2005-09-25  7:52       ` Junio C Hamano
2005-09-25 15:47         ` Implementing diff, was " Johannes Schindelin
2005-09-25 16:08           ` Davide Libenzi
2005-09-25 17:00             ` Linus Torvalds
2005-09-25 19:16               ` Davide Libenzi
2005-09-24  1:13     ` Johannes Schindelin
2005-09-24  2:46       ` Linus Torvalds
2005-09-24  3:04         ` Junio C Hamano
2005-09-24  5:26         ` Davide Libenzi
2005-09-24 18:10           ` Linus Torvalds
2005-09-24 19:12             ` Davide Libenzi [this message]
2005-09-24 20:31               ` Junio C Hamano
2005-09-24 21:28                 ` Davide Libenzi
2005-09-24 21:46                   ` Junio C Hamano
2005-09-24 21:47                   ` Junio C Hamano
2005-09-24 21:52                     ` Davide Libenzi
2005-09-24 22:26                   ` Linus Torvalds
2005-09-24 22:27                     ` Linus Torvalds
2005-09-25 16:59                       ` Linus Torvalds
2005-09-26 19:33                       ` Jon Loeliger
2005-09-26 20:23                         ` Junio C Hamano
2005-09-24 22:41                     ` Davide Libenzi
2005-09-25 19:59                       ` Giuseppe Bilotta
2005-09-26  4:57                         ` Junio C Hamano
2005-09-26  5:05                         ` Davide Libenzi
2005-09-26 11:00                           ` Giuseppe Bilotta
2005-09-26 21:54                           ` H. Peter Anvin
2005-09-26 22:03                             ` Davide Libenzi
2005-09-26 22:15                               ` H. Peter Anvin
2005-09-25  3:04                 ` Daniel Barkalow
2005-09-24  5:11     ` Davide Libenzi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.63.0509241129300.31327@localhost.localdomain \
    --to=davidel@xmailserver.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=peter@peter-b.co.uk \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).