{"thread":{"id":"45441","subject":"GSoC Project | Convert interactive rebase to C","startedAt":"2017-03-20T16:44:46Z","lastAt":"2017-03-28T06:27:41Z","messageCount":9,"participants":["Ivan Tham","Stefan Beller","Johannes Schindelin","Inaw Tham","Pickfire","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"314683","messageId":"20170320164154.xBcU6rG0C%pickfire@riseup.net","threadId":"45441","inReplyTo":null,"subject":"GSoC Project | Convert interactive rebase to C","fromName":"Ivan Tham","fromEmail":"pickfire@riseup.net","sentAt":"2017-03-20T16:41:54Z","receivedAt":"2017-03-20T16:44:46Z","isPatch":false,"sender":{"key":"pickfire@riseup.net","avatar":null},"body":"Hi everyone,\n\nI am Ivan Tham. Currently studying in Computer Science in APIIT Malaysia. I am\ninterested particapate in Google Summer of Code 2017 under git organization. I\nwould like to attempt \"Add more builtin patterns for userdiff\" particularly for\nshell for my microproject.\n\nI am interested to work on \"Convert interactive rebase to C\" aiming to port\nmost builtins stuff to C in which we can reduce the size of git. Additionally,\nI would also like to convert scripts to builtins as an additional milestone.\n\nWhat do you think of these projects? Would it collide with\n[Valery Tolstov's Shell to Builtins proposal][0]?\n\n[0]: https://public-inbox.org/git/1489145258.10535.0@smtp.yandex.ru/\n\n"},{"id":"314690","messageId":"CAGZ79kbF+O6tgn-4ivmOza3QGA4oFyJS=9eGHYZ1HQgw6+rEtQ@mail.gmail.com","threadId":"45441","inReplyTo":"20170320164154.xBcU6rG0C%pickfire@riseup.net","subject":"Re: GSoC Project | Convert interactive rebase to C","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-03-20T17:41:48Z","receivedAt":"2017-03-20T17:41:54Z","isPatch":false,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n> Hi everyone,\n>\n> I am Ivan Tham. Currently studying in Computer Science in APIIT Malaysia. I am\n> interested particapate in Google Summer of Code 2017 under git organization. I\n> would like to attempt \"Add more builtin patterns for userdiff\" particularly for\n> shell for my microproject.\n\nI'd love to see proper shell support!\nAlthough there is already some support for shell (by looking at diffs\non our test\nsuite) ? So I am not sure what there is left to do? Can you clarify what you're\ntrying there?\n\n> I am interested to work on \"Convert interactive rebase to C\"\n\n+cc Johannes, who recently worked on rebase and the sequencer.\n\n>  aiming to port\n> most builtins stuff to C in which we can reduce the size of git. Additionally,\n> I would also like to convert scripts to builtins as an additional milestone.\n>\n> What do you think of these projects? Would it collide with\n> [Valery Tolstov's Shell to Builtins proposal][0]?\n\nCurious why all people ask about colliding with Valerys proposal here?\nI do not think it would collide, as submodules and rebase are very different\nareas of the code base.\n\nThanks,\nStefan\n\n>\n> [0]: https://public-inbox.org/git/1489145258.10535.0@smtp.yandex.ru/\n>\n"},{"id":"314778","messageId":"20170321060526.sXz0cdJwc%pickfire@riseup.net","threadId":"45441","inReplyTo":"CAGZ79kbF+O6tgn-4ivmOza3QGA4oFyJS=9eGHYZ1HQgw6+rEtQ@mail.gmail.com","subject":"Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Ivan Tham","fromEmail":"pickfire@riseup.net","sentAt":"2017-03-21T06:05:26Z","receivedAt":"2017-03-21T06:17:01Z","isPatch":false,"sender":{"key":"pickfire@riseup.net","avatar":null},"body":"Stefan Beller <sbeller@google.com> wrote:\n> On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n> > I am Ivan Tham. Currently studying in Computer Science in APIIT Malaysia. I am\n> > interested particapate in Google Summer of Code 2017 under git organization. I\n> > would like to attempt \"Add more builtin patterns for userdiff\" particularly for\n> > shell for my microproject.\n>\n> I'd love to see proper shell support!\n> Although there is already some support for shell (by looking at diffs\n> on our test\n> suite) ? So I am not sure what there is left to do? Can you clarify what you're\n> trying there?\n>\n> > I am interested to work on \"Convert interactive rebase to C\"\n\nAre you sure about that? From what I had looked into userdiff.c, there is no\nsupport for shell. There just a recent patch for [go patterns][0]. Or perhaps\nI should have rename it as \"userdiff.c: patterns for \"shell\" language\"?\n\n> +cc Johannes, who recently worked on rebase and the sequencer.\n>\n> >  aiming to port\n> > most builtins stuff to C in which we can reduce the size of git. Additionally,\n> > I would also like to convert scripts to builtins as an additional milestone.\n> >\n> > What do you think of these projects? Would it collide with\n> > Valery Tolstov's Shell to Builtins proposal?\n>\n> Curious why all people ask about colliding with Valerys proposal here?\n> I do not think it would collide, as submodules and rebase are very different\n> areas of the code base.\n\n[0]: https://public-inbox.org/git/xmqqk27jvg28.fsf@gitster.mtv.corp.google.com/\n"},{"id":"315122","messageId":"alpine.DEB.2.20.1703231827060.3767@virtualbox","threadId":"45441","inReplyTo":"20170321060526.sXz0cdJwc%pickfire@riseup.net","subject":"Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-03-23T17:30:35Z","receivedAt":"2017-03-23T17:30:58Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Ivan,\n\nOn Tue, 21 Mar 2017, Ivan Tham wrote:\n\n> Stefan Beller <sbeller@google.com> wrote:\n> > On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n> > > I am Ivan Tham. Currently studying in Computer Science in APIIT\n> > > Malaysia. I am interested particapate in Google Summer of Code 2017\n> > > under git organization. I would like to attempt \"Add more builtin\n> > > patterns for userdiff\" particularly for shell for my microproject.\n> >\n> > I'd love to see proper shell support!  Although there is already some\n> > support for shell (by looking at diffs on our test suite) ? So I am\n> > not sure what there is left to do? Can you clarify what you're trying\n> > there?\n> \n> Are you sure about that? From what I had looked into userdiff.c, there\n> is no support for shell. There just a recent patch for [go patterns][0].\n> Or perhaps I should have rename it as \"userdiff.c: patterns for \"shell\"\n> language\"?\n\nI also could not find any shell patterns in the userdiff code...\n\n> > > I am interested to work on \"Convert interactive rebase to C\"\n> >\n> > +cc Johannes, who recently worked on rebase and the sequencer.\n\nGlad you are interested! Please note that large parts of the interactive\nrebase are already in C now, but there is enough work left in that corner.\n\n> > > aiming to port most builtins stuff to C in which we can reduce the\n> > > size of git. Additionally, I would also like to convert scripts to\n> > > builtins as an additional milestone.\n\nCareful. It is a ton of work to get the rebase -i conversion done, and\nthen a ton of work to get it integrated. That will fill 3 months, very\neasily.\n\n> > > What do you think of these projects? Would it collide with Valery\n> > > Tolstov's Shell to Builtins proposal?\n\nI missed that proposal, and could only find submodule-related mails on the\npublic-inbox server. Care to provide a pointer?\n\n> > Curious why all people ask about colliding with Valerys proposal here?\n> > I do not think it would collide, as submodules and rebase are very\n> > different areas of the code base.\n\nIndeed ;-)\n\nCiao,\nJohannes\n"},{"id":"315139","messageId":"CAGZ79kaR6FdoddiZXvSs+xYwGW4cS5r2EuLWNngA5a679puPNw@mail.gmail.com","threadId":"45441","inReplyTo":"alpine.DEB.2.20.1703231827060.3767@virtualbox","subject":"Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-03-23T18:19:50Z","receivedAt":"2017-03-23T18:20:16Z","isPatch":false,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"On Thu, Mar 23, 2017 at 10:30 AM, Johannes Schindelin\n<Johannes.Schindelin@gmx.de> wrote:\n>> Are you sure about that? From what I had looked into userdiff.c, there\n>> is no support for shell. There just a recent patch for [go patterns][0].\n>> Or perhaps I should have rename it as \"userdiff.c: patterns for \"shell\"\n>> language\"?\n>\n> I also could not find any shell patterns in the userdiff code...\n\nSorry for the confusion on my part. I am unfamiliar with that part of the\ndiffing lib. I based my assumption on the output of \"$ git log -p t/\"\nwhich contains hunk headers, that make sense most of the time for shell\ncode.\n\n>\n> Careful. It is a ton of work to get the rebase -i conversion done, and\n> then a ton of work to get it integrated. That will fill 3 months, very\n> easily.\n>\n>> > > What do you think of these projects? Would it collide with Valery\n>> > > Tolstov's Shell to Builtins proposal?\n>\n> I missed that proposal, and could only find submodule-related mails on the\n> public-inbox server. Care to provide a pointer?\n\nWell I don't think it is a full grown proposal, but a confident attempt to\nfind a good starting point :)\ne.g.\nhttps://public-inbox.org/git/1489145258.10535.0@smtp.yandex.ru/\n\n>> > Curious why all people ask about colliding with Valerys proposal here?\n>> > I do not think it would collide, as submodules and rebase are very\n>> > different areas of the code base.\n>\n> Indeed ;-)\n\nAlthough I had some discussion on what the correct behavior of\n\"rebase --recurse-submodules\" in a superproject should be. But this\nsounds like future work after the GSoC is over. ;)\n\nThanks,\nStefan\n"},{"id":"315373","messageId":"20170325021703.Tjq7i-hO7%pickfire@riseup.net","threadId":"45441","inReplyTo":"alpine.DEB.2.20.1703231827060.3767@virtualbox","subject":"Re: Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Inaw Tham","fromEmail":"pickfire@riseup.net","sentAt":"2017-03-25T02:17:03Z","receivedAt":"2017-03-25T02:17:21Z","isPatch":false,"sender":{"key":"pickfire@riseup.net","avatar":null},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> On Tue, 21 Mar 2017, Ivan Tham wrote:\n> > Stefan Beller <sbeller@google.com> wrote:\n> > > On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n> > > > I am Ivan Tham. Currently studying in Computer Science in APIIT\n> > > > Malaysia. I am interested particapate in Google Summer of Code 2017\n> > > > under git organization. I would like to attempt \"Add more builtin\n> > > > patterns for userdiff\" particularly for shell for my microproject.\n> > >\n> > > I'd love to see proper shell support!  Although there is already some\n> > > support for shell (by looking at diffs on our test suite) ? So I am\n> > > not sure what there is left to do? Can you clarify what you're trying\n> > > there?\n> > \n> > Are you sure about that? From what I had looked into userdiff.c, there\n> > is no support for shell. There just a recent patch for [go patterns][0].\n> > Or perhaps I should have rename it as \"userdiff.c: patterns for \"shell\"\n> > language\"?\n> \n> I also could not find any shell patterns in the userdiff code...\n\nThanks a lot for replying me, I thought no one was intereted. :D\n\n> > > > I am interested to work on \"Convert interactive rebase to C\"\n> > >\n> > > +cc Johannes, who recently worked on rebase and the sequencer.\n> \n> Glad you are interested! Please note that large parts of the interactive\n> rebase are already in C now, but there is enough work left in that corner.\n\nGlad to hear that, I would really like to see interactive rebase in C.\n\n> > > > aiming to port most builtins stuff to C in which we can reduce the\n> > > > size of git. Additionally, I would also like to convert scripts to\n> > > > builtins as an additional milestone.\n> \n> Careful. It is a ton of work to get the rebase -i conversion done, and\n> then a ton of work to get it integrated. That will fill 3 months, very\n> easily.\n\nMy main aim is to reduce the extra dependency of perl, but planning to start\nwith rebase, can I make that an optional task where I can help out after I\nhad completed my main task during gsoc?\n\n> > > > What do you think of these projects? Would it collide with Valery\n> > > > Tolstov's Shell to Builtins proposal?\n> \n> I missed that proposal, and could only find submodule-related mails on the\n> public-inbox server. Care to provide a pointer?\n> \n> > > Curious why all people ask about colliding with Valerys proposal here?\n> > > I do not think it would collide, as submodules and rebase are very\n> > > different areas of the code base.\n> \n> Indeed ;-)\n\nCheers,\nIvan Tham\n"},{"id":"315512","messageId":"alpine.DEB.2.20.1703271700130.14958@virtualbox","threadId":"45441","inReplyTo":"20170325021703.Tjq7i-hO7%pickfire@riseup.net","subject":"Re: Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-03-27T15:11:34Z","receivedAt":"2017-03-27T15:12:48Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Ivan,\n\nOn Sat, 25 Mar 2017, Inaw Tham wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> > On Tue, 21 Mar 2017, Ivan Tham wrote:\n> > > Stefan Beller <sbeller@google.com> wrote:\n> > > > On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n> > > >\n> > > > > I am interested to work on \"Convert interactive rebase to C\"\n> > > >\n> > > > +cc Johannes, who recently worked on rebase and the sequencer.\n> > \n> > Glad you are interested! Please note that large parts of the\n> > interactive rebase are already in C now, but there is enough work left\n> > in that corner.\n> \n> Glad to hear that, I would really like to see interactive rebase in C.\n\nPlease note that a notable part already made it into C in v2.12.1. There\nare still a few loose ends to tie, of course; it still makes for a great\nhead start on your project, methinks.\n\n> > > > > aiming to port most builtins stuff to C in which we can reduce\n> > > > > the size of git. Additionally, I would also like to convert\n> > > > > scripts to builtins as an additional milestone.\n> > \n> > Careful. It is a ton of work to get the rebase -i conversion done, and\n> > then a ton of work to get it integrated. That will fill 3 months, very\n> > easily.\n> \n> My main aim is to reduce the extra dependency of perl, but planning to\n> start with rebase, can I make that an optional task where I can help out\n> after I had completed my main task during gsoc?\n\nSure, you can make it an optional task, and I would be very happy if you\nfollowed up on it even after GSoC!\n\nAs far as the Perl dependency is concerned, I actually think there is only\none serious one left: git add -i.\n\nGranted, there is send-email, but it really does not matter all that much\nthese days *except* if you want to use Git to contribute to projects that\nstill use a mailing list-based patch submission process (the ones that\ncome to mind are: Git, Linux and Cygwin). Most Git users actually do not\nsubmit any patches to mailing lists, therefore I tend to ignore this one.\n\nThe rest of the Perl scripts interacts with foreign SCMs (archimport,\ncvsexportcommit, cvsimport, cvsserver, and svn). I *guess* that it would\nbe nice to follow up on the remote-svn work (which has not really gone\nanywhere so far, AFAICT the main driving contributor pursues different\nprojects these days), but IMHO none of these are really needed to run Git.\n\nCiao,\nJohannes\n"},{"id":"315514","messageId":"20170327163108.QoV1fm8z7%pickfire@riseup.net","threadId":"45441","inReplyTo":"alpine.DEB.2.20.1703271700130.14958@virtualbox","subject":"Re: Re: Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Pickfire","fromEmail":"pickfire@riseup.net","sentAt":"2017-03-27T16:31:08Z","receivedAt":"2017-03-27T16:32:36Z","isPatch":false,"sender":{"key":"pickfire@riseup.net","avatar":null},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n\n> On Sat, 25 Mar 2017, Ivan Tham wrote:\n>\n> > Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> > > On Tue, 21 Mar 2017, Ivan Tham wrote:\n> > > > Stefan Beller <sbeller@google.com> wrote:\n> > > > > On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n> > > > >\n> > > > > > I am interested to work on \"Convert interactive rebase to C\"\n> > > > >\n> > > > > +cc Johannes, who recently worked on rebase and the sequencer.\n> > >\n> > > Glad you are interested! Please note that large parts of the\n> > > interactive rebase are already in C now, but there is enough work left\n> > > in that corner.\n> >\n> > Glad to hear that, I would really like to see interactive rebase in C.\n>\n> Please note that a notable part already made it into C in v2.12.1. There\n> are still a few loose ends to tie, of course; it still makes for a great\n> head start on your project, methinks.\n\nAh, that's great.\n\nAnd while I was working on the microproject (shell patterns in user diff),\nI can't produce the output of t/t4034-diff-words.sh manually with:\n\n    mkdir cpp/ && cd cpp/ && git init\n\n    cat > pre <<EOF\n    Foo():x(0&&1){}\n    cout<<\"Hello World!\\n\"<<endl;\n    1 -1e10 0xabcdef 'x'\n    [a] a->b a.b\n    !a ~a a++ a-- a*b a&b\n    a*b a/b a%b\n    a+b a-b\n    a<<b a>>b\n    a<b a<=b a>b a>=b\n    a==b a!=b\n    a&b\n    a^b\n    a|b\n    a&&b\n    a||b\n    a?b:z\n    a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b\n    a,y\n    a::b\n    EOF\n\n    cat > post <<EOF\n    Foo() : x(0&42) { bar(x); }\n    cout<<\"Hello World?\\n\"<<endl;\n    (1) (-1e10) (0xabcdef) 'y'\n    [x] x->y x.y\n    !x ~x x++ x-- x*y x&y\n    x*y x/y x%y\n    x+y x-y\n    x<<y x>>y\n    x<y x<=y x>y x>=y\n    x==y x!=y\n    x&y\n    x^y\n    x|y\n    x&&y\n    x||y\n    x?y:z\n    x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y\n    x,y\n    x::y\n    EOF\n\n    echo '* diff=\"cpp\"' > .gitmodules\n    git diff --no-index --color-words pre post > output\n\nSurprisingly, it shows (which is very different from the expected output):\n\n\u001b[1mdiff --git a/pre b/post\u001b[m\n\u001b[1mindex 23d5c8a..7e8c026 100644\u001b[m\n\u001b[1m--- a/pre\u001b[m\n\u001b[1m+++ b/post\u001b[m\n\u001b[36m@@ -1,19 +1,19 @@\u001b[m\n\u001b[31mFoo():x(0&&1){}\u001b[m\u001b[32mFoo() : x(0&42) { bar(x); }\u001b[m\ncout<<\"Hello \u001b[31mWorld!\\n\"<<endl;\u001b[m\n\u001b[31m1 -1e10 0xabcdef 'x'\u001b[m\n\u001b[31m[a] a->b a.b\u001b[m\n\u001b[31m!a ~a a++ a-- a*b a&b\u001b[m\n\u001b[31ma*b a/b a%b\u001b[m\n\u001b[31ma+b a-b\u001b[m\n\u001b[31ma<<b a>>b\u001b[m\n\u001b[31ma<b a<=b a>b a>=b\u001b[m\n\u001b[31ma==b a!=b\u001b[m\n\u001b[31ma&b\u001b[m\n\u001b[31ma^b\u001b[m\n\u001b[31ma|b\u001b[m\n\u001b[31ma&&b\u001b[m\n\u001b[31ma||b\u001b[m\n\u001b[31ma?b:z\u001b[m\n\u001b[31ma=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b\u001b[m\n\u001b[31ma,y\u001b[m\n\u001b[31ma::b\u001b[m\u001b[32mWorld?\\n\"<<endl;\u001b[m\n\u001b[32m(1) (-1e10) (0xabcdef) 'y'\u001b[m\n\u001b[32m[x] x->y x.y\u001b[m\n\u001b[32m!x ~x x++ x-- x*y x&y\u001b[m\n\u001b[32mx*y x/y x%y\u001b[m\n\u001b[32mx+y x-y\u001b[m\n\u001b[32mx<<y x>>y\u001b[m\n\u001b[32mx<y x<=y x>y x>=y\u001b[m\n\u001b[32mx==y x!=y\u001b[m\n\u001b[32mx&y\u001b[m\n\u001b[32mx^y\u001b[m\n\u001b[32mx|y\u001b[m\n\u001b[32mx&&y\u001b[m\n\u001b[32mx||y\u001b[m\n\u001b[32mx?y:z\u001b[m\n\u001b[32mx=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y\u001b[m\n\u001b[32mx,y\u001b[m\n\u001b[32mx::y\u001b[m\n\nInstead of:\n\n<BOLD>diff --git a/pre b/post<RESET>\n<BOLD>index 23d5c8a..7e8c026 100644<RESET>\n<BOLD>--- a/pre<RESET>\n<BOLD>+++ b/post<RESET>\n<CYAN>@@ -1,19 +1,19 @@<RESET>\nFoo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }\ncout<<\"Hello World<RED>!<RESET><GREEN>?<RESET>\\n\"<<endl;\n<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'\n[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>\n!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>&<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>^<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>|<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>&&<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>||<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z\n<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>\n<RED>a<RESET><GREEN>y<RESET>\n<GREEN>x<RESET>,y\n<RED>a<RESET><GREEN>x<RESET>::<RED>b<RESET><GREEN>y<RESET>\n\nThat's does not just happens to cpp builtins, it happens to bibtex as well.\nIs it that I had missed some configuration since I have tested this on a\nfew machines?\n\n> > > > > > aiming to port most builtins stuff to C in which we can reduce\n> > > > > > the size of git. Additionally, I would also like to convert\n> > > > > > scripts to builtins as an additional milestone.\n> > >\n> > > Careful. It is a ton of work to get the rebase -i conversion done, and\n> > > then a ton of work to get it integrated. That will fill 3 months, very\n> > > easily.\n> >\n> > My main aim is to reduce the extra dependency of perl, but planning to\n> > start with rebase, can I make that an optional task where I can help out\n> > after I had completed my main task during gsoc?\n>\n> Sure, you can make it an optional task, and I would be very happy if you\n> followed up on it even after GSoC!\n\nYes, I can do that as well. I will be happy to have git be smaller. ^^\n\n> As far as the Perl dependency is concerned, I actually think there is only\n> one serious one left: git add -i.\n\nYes, that as well. But basically the core parts first.\n\n> Granted, there is send-email, but it really does not matter all that much\n> these days *except* if you want to use Git to contribute to projects that\n> still use a mailing list-based patch submission process (the ones that\n> come to mind are: Git, Linux and Cygwin). Most Git users actually do not\n> submit any patches to mailing lists, therefore I tend to ignore this one.\n\nI won't ignore that but I will do the others first since some package\nmanager pack it with git but instead let it be a subpackage.\n\n> The rest of the Perl scripts interacts with foreign SCMs (archimport,\n> cvsexportcommit, cvsimport, cvsserver, and svn). I *guess* that it would\n> be nice to follow up on the remote-svn work (which has not really gone\n> anywhere so far, AFAICT the main driving contributor pursues different\n> projects these days), but IMHO none of these are really needed to run Git.\n\nAs far as I have concern, the conversion stuff are rarely runned, I\ndon't think it is worth converting to C.\n\nGood luck and have a nice day!  - Ivan\n"},{"id":"315553","messageId":"CAP8UFD0i8SV0S7ntpTLBLZF1rFRp-ExdOy=V_-v3eWX98BEqLg@mail.gmail.com","threadId":"45441","inReplyTo":"20170327163108.QoV1fm8z7%pickfire@riseup.net","subject":"Re: Re: Re: Re: GSoC Project | Convert interactive rebase to C","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2017-03-28T06:27:24Z","receivedAt":"2017-03-28T06:27:41Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"On Mon, Mar 27, 2017 at 6:31 PM, Pickfire <pickfire@riseup.net> wrote:\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n>\n>> On Sat, 25 Mar 2017, Ivan Tham wrote:\n>>\n>> > Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n>> > > On Tue, 21 Mar 2017, Ivan Tham wrote:\n>> > > > Stefan Beller <sbeller@google.com> wrote:\n>> > > > > On Mon, Mar 20, 2017 at 9:41 AM, Ivan Tham <pickfire@riseup.net> wrote:\n>> > > > >\n>> > > > > > I am interested to work on \"Convert interactive rebase to C\"\n>> > > > >\n>> > > > > +cc Johannes, who recently worked on rebase and the sequencer.\n>> > >\n>> > > Glad you are interested! Please note that large parts of the\n>> > > interactive rebase are already in C now, but there is enough work left\n>> > > in that corner.\n>> >\n>> > Glad to hear that, I would really like to see interactive rebase in C.\n>>\n>> Please note that a notable part already made it into C in v2.12.1. There\n>> are still a few loose ends to tie, of course; it still makes for a great\n>> head start on your project, methinks.\n>\n> Ah, that's great.\n>\n> And while I was working on the microproject (shell patterns in user diff),\n> I can't produce the output of t/t4034-diff-words.sh manually with:\n\nI don't think it's a good idea to discuss a microproject in the same\nthread where a project is discussed.\nI would suggest to move it in another thread where you describe in\nmore details what you want to do and why, what you expect and what\nhappened, and so on.\n\n[...]\n\n> That's does not just happens to cpp builtins, it happens to bibtex as well.\n> Is it that I had missed some configuration since I have tested this on a\n> few machines?\n\nFrom a very quick look the problem seems related to how\ntest_decode_color() is used or not.\n"}]}