threads / discuss / 18671

Git, C89, and older compilers

Subject: Git, C89, and older compilers

## tl;dr

3 messages between Mar 31, 2009 and Mar 31, 2009.

replies: 2people: 2as markdown or json

Joshua Juran· Mar 31, 2009, 19:26 UTC · lore
Hello,

I'm porting Git to Lamp (Lamp ain't Mac POSIX), a Unix-like environment which runs in classic Mac OS, much like Cygwin.

One of the complications I've run into is that Metrowerks C 2.4.1 (released in 2001) doesn't support some of the constructs git uses, such as initializing an aggregate's member with the address of a local variable, illustrated by the patch below:

diff --git a/builtin-commit.c b/builtin-commit.c
index 46e649c..8b98547 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -605,7 +605,8 @@ static int prepare_to_commit(const char  
*index_file, const c

         if (use_editor) {
                 char index[PATH_MAX];
-               const char *env[2] = { index, NULL };
+               const char *env[2] = { NULL, NULL };
+               env[0] = index;
                 snprintf(index, sizeof(index), "GIT_INDEX_FILE=%s",  
index_file);
                 if (launch_editor(git_path(commit_editmsg), NULL,  
env)) {
                         fprintf(stderr,

Is git intended to compile on a C89 compiler?  In any case, if I  
produce a complete set of patches, will they be applied?

Josh
Jay Soffian· Mar 31, 2009, 21:32 UTC · re: Joshua Juran · lore

Re: Git, C89, and older compilers

On Tue, Mar 31, 2009 at 3:26 PM, Joshua Juran <jjuran@gmail.com> wrote:
> Hello,
>
> I'm porting Git to Lamp (Lamp ain't Mac POSIX), a Unix-like environment
> which runs in classic Mac OS, much like Cygwin.

Call it morbid curiosity, but, why? (If I had to guess, I'd assume a George Mallory answer.)

j.
Joshua Juran· Mar 31, 2009, 22:22 UTC · re: Jay Soffian · lore

Re: Git, C89, and older compilers

On Mar 31, 2009, at 2:32 PM, Jay Soffian wrote:
Show 10 quoted lines
> On Tue, Mar 31, 2009 at 3:26 PM, Joshua Juran <jjuran@gmail.com>  
> wrote:
>> Hello,
>>
>> I'm porting Git to Lamp (Lamp ain't Mac POSIX), a Unix-like  
>> environment
>> which runs in classic Mac OS, much like Cygwin.
>
> Call it morbid curiosity, but, why? (If I had to guess, I'd assume a
> George Mallory answer.)
Well, there's a degree of that.

Even more succinctly, I could add "inertia". I started writing a replacement for Apple's MPW (one that would actually be useful for real work) over ten years ago, and never reached a point where I was ready to quit, even after switching to OS X.

Admittedly, there's an element of retro-programming. I want to see how far I can go with this. (One of my major hurdles will be git's use of fork().)

But there's also a sense of awe and wonder in knowing that I'm (most probably) the only person in the world working on such a project.

Finally, I've begun using it as a research platform. With inspiration from Plan 9, I'm mapping the GUI into the filesystem, so you can write an application as a collection of shell scripts.

Josh

← back to recent threads