* [PATCH 00/28] clean-ups of static functions and returns @ 2006-08-14 20:17 David Rientjes 2006-08-14 20:33 ` Jakub Narebski 2006-08-14 23:05 ` Junio C Hamano 0 siblings, 2 replies; 10+ messages in thread From: David Rientjes @ 2006-08-14 20:17 UTC (permalink / raw) To: git This patch series cleans up a number of static function returns that are either meaningless or could be more efficiently written. David ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 20:17 [PATCH 00/28] clean-ups of static functions and returns David Rientjes @ 2006-08-14 20:33 ` Jakub Narebski 2006-08-14 20:47 ` David Rientjes 2006-08-14 23:05 ` Junio C Hamano 1 sibling, 1 reply; 10+ messages in thread From: Jakub Narebski @ 2006-08-14 20:33 UTC (permalink / raw) To: git David Rientjes wrote: > This patch series cleans up a number of static function returns that are either > meaningless or could be more efficiently written. Could you please make description of patch series email to be parent (ancestor) of all patches emails, i.e. for patches either to be chain-replied to introduction email, or all be replies to introduction email. It makes for easier reading/viewing/applying/ignoring the series. Thanks in advance -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 20:33 ` Jakub Narebski @ 2006-08-14 20:47 ` David Rientjes 2006-08-14 20:59 ` Johannes Schindelin 0 siblings, 1 reply; 10+ messages in thread From: David Rientjes @ 2006-08-14 20:47 UTC (permalink / raw) To: Jakub Narebski; +Cc: git On Mon, 14 Aug 2006, Jakub Narebski wrote: > Could you please make description of patch series email to be parent > (ancestor) of all patches emails, i.e. for patches either to be > chain-replied to introduction email, or all be replies to introduction > email. > > It makes for easier reading/viewing/applying/ignoring the series. > Sure, but you might also want to include this request explicitly in Documentation/SubmittingPatches. David ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 20:47 ` David Rientjes @ 2006-08-14 20:59 ` Johannes Schindelin 2006-08-14 21:22 ` Jakub Narebski 0 siblings, 1 reply; 10+ messages in thread From: Johannes Schindelin @ 2006-08-14 20:59 UTC (permalink / raw) To: David Rientjes; +Cc: Jakub Narebski, git Hi, On Mon, 14 Aug 2006, David Rientjes wrote: > On Mon, 14 Aug 2006, Jakub Narebski wrote: > > Could you please make description of patch series email to be parent > > (ancestor) of all patches emails, i.e. for patches either to be > > chain-replied to introduction email, or all be replies to introduction > > email. > > > > It makes for easier reading/viewing/applying/ignoring the series. > > > > Sure, but you might also want to include this request explicitly in > Documentation/SubmittingPatches. Well... there are people (like yours truly), who still hack there mails in pine, and who do not use git-send-email (I had too many problems with Perl, and git-send-email _is_ in Perl)... For me, it would be an undue burden. Ciao, Dscho ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 20:59 ` Johannes Schindelin @ 2006-08-14 21:22 ` Jakub Narebski 0 siblings, 0 replies; 10+ messages in thread From: Jakub Narebski @ 2006-08-14 21:22 UTC (permalink / raw) To: git Johannes Schindelin wrote: > On Mon, 14 Aug 2006, David Rientjes wrote: > >> On Mon, 14 Aug 2006, Jakub Narebski wrote: >> > Could you please make description of patch series email to be parent >> > (ancestor) of all patches emails, i.e. for patches either to be >> > chain-replied to introduction email, or all be replies to introduction >> > email. >> > >> > It makes for easier reading/viewing/applying/ignoring the series. >> > >> >> Sure, but you might also want to include this request explicitly in >> Documentation/SubmittingPatches. > > Well... there are people (like yours truly), who still hack there mails in > pine, and who do not use git-send-email (I had too many problems with > Perl, and git-send-email _is_ in Perl)... For me, it would be an undue > burden. I also not always use git-send-email (because of the box connection to the net); mu latest series of patches was send using KMail; still it is not that hard to send patches as reply to introductory letter, or chain-replied; just reply-all (without quoting) from your "sent" folder. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 20:17 [PATCH 00/28] clean-ups of static functions and returns David Rientjes 2006-08-14 20:33 ` Jakub Narebski @ 2006-08-14 23:05 ` Junio C Hamano 2006-08-14 23:30 ` David Rientjes 1 sibling, 1 reply; 10+ messages in thread From: Junio C Hamano @ 2006-08-14 23:05 UTC (permalink / raw) To: David Rientjes; +Cc: git David Rientjes <rientjes@google.com> writes: > This patch series cleans up a number of static function > returns that are either meaningless or could be more > efficiently written. Interesting. Did you use some automated tool to spot them? I see two categories of changes in your series. * Making stricter error checking in the future harder. There are three classes, but the lines between them are fuzzy. [PATCH 04/28] builtin-diff.c cleanup [PATCH 06/28] make cmd_log_walk void [PATCH 07/28] builtin-mailinfo.c cleanup [PATCH 09/28] makes prune_dir void [PATCH 11/28] makes append_ref and show_indepedent void [PATCH 12/28] makes generate_tar void [PATCH 13/28] builtin-unpack-objects.c cleanup [PATCH 14/28] make do_reupdate void [PATCH 16/28] daemon.c cleanup [PATCH 17/28] makes diff_cache void [PATCH 19/28] makes finish_pack void [PATCH 20/28] makes fetch_pack void [PATCH 23/28] makes peek_remote void The callers of the first group check their return values, so we could make error checking of these functions stricter in the future without affecting the rest of the code. The ones that currently die() (or usage()) could be made into more libified form to return error codes. So I do not think it is worth doing these. [PATCH 03/28] makes checkout_all void [PATCH 15/28] makes sha1flush void [PATCH 21/28] makes fsck_dir void [PATCH 25/28] makes pack_objects void [PATCH 27/28] makes track_tree_refs void [PATCH 28/28] makes upload_pack void The callers of the second group do not check their return values, so making them void for now is fine, but if we wanted to make error checking of these functions stricter in the future, we would need to change them back and update the callers. [PATCH 02/28] makes pprint_tag void [PATCH 26/28] makes show_entry void These, strictly speaking, fall in the second category, but I do not think of a reasonable graceful error return case from them. show_entry() dies when it cannot continue upon encountering a corrupt tree, which I think is reasonable. So I think the change to make these void makes sense. I said the lines between these three categories are fuzzy. If we look at the functions more closely, I am reasonably sure that we would find some from the first and the second categories do not have a reasonable graceful error return case from them, in which case making them void would become reasonable like you did. * Style and readability. [PATCH 01/28] blame.c return cleanup [PATCH 05/28] builtin-grep.c cleanup [PATCH 08/28] remove conditional return [PATCH 10/28] builtin-push.c cleanup [PATCH 15/28] makes sha1flush void [PATCH 18/28] diff.c cleanup [PATCH 22/28] http-push.c cleanup [PATCH 24/28] read-cache.c cleanup Most of them use the well established idiom, "return !!(something)", and I think they are fine (15/28 do not even need !! -- the function already returns 0 or 1). I personally feel the original is more readable for 08/28. Of course, this distinction is subjective. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 23:05 ` Junio C Hamano @ 2006-08-14 23:30 ` David Rientjes 2006-08-15 1:04 ` Junio C Hamano 0 siblings, 1 reply; 10+ messages in thread From: David Rientjes @ 2006-08-14 23:30 UTC (permalink / raw) To: Junio C Hamano; +Cc: git On Mon, 14 Aug 2006, Junio C Hamano wrote: > Interesting. Did you use some automated tool to spot them? > No, these changes are from my own personal tree that optimizes everything for speed since I am working with terabytes of data. I only submitted changes that I thought would be beneficial for your project as well. > * Making stricter error checking in the future harder. There > are three classes, but the lines between them are fuzzy. > > [PATCH 04/28] builtin-diff.c cleanup > [PATCH 06/28] make cmd_log_walk void > [PATCH 07/28] builtin-mailinfo.c cleanup > [PATCH 09/28] makes prune_dir void > [PATCH 11/28] makes append_ref and show_indepedent void > [PATCH 12/28] makes generate_tar void > [PATCH 13/28] builtin-unpack-objects.c cleanup > [PATCH 14/28] make do_reupdate void > [PATCH 16/28] daemon.c cleanup > [PATCH 17/28] makes diff_cache void > [PATCH 19/28] makes finish_pack void > [PATCH 20/28] makes fetch_pack void > [PATCH 23/28] makes peek_remote void > > The callers of the first group check their return values, so > we could make error checking of these functions stricter in > the future without affecting the rest of the code. The ones > that currently die() (or usage()) could be made into more > libified form to return error codes. > > So I do not think it is worth doing these. > I disagree. Having static functions return ints that are the same for _every_ code path and are checked against upon return is never good style. It implies that error checking is already done and the return value is of importance. It also suggests you can program against a specific return value with expected results which are, in fact, true for any return. Additionally, changes in the future will be easier, in my opinion, because a void -> int change is very simple and existant calls need not be changed (their return values are discarded) so that the implementer can make the checks where necessary. I do not understand your point about making error checking of the functions stricter without affecting the rest of the code when int returns are discarded if not assigned upon return. It would certainly be bad style to declare new error codes with a specific meaning without checking all the affected code and we certainly cannot predict this behavior now. David ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-14 23:30 ` David Rientjes @ 2006-08-15 1:04 ` Junio C Hamano 2006-08-15 1:40 ` trajce nedev 0 siblings, 1 reply; 10+ messages in thread From: Junio C Hamano @ 2006-08-15 1:04 UTC (permalink / raw) To: David Rientjes; +Cc: git David Rientjes <rientjes@google.com> writes: > On Mon, 14 Aug 2006, Junio C Hamano wrote: > >> Interesting. Did you use some automated tool to spot them? >> > > No, these changes are from my own personal tree that optimizes everything for > speed since I am working with terabytes of data. I only submitted changes that > I thought would be beneficial for your project as well. > >> * Making stricter error checking in the future harder. There >> are three classes, but the lines between them are fuzzy. >> >> [PATCH 04/28] builtin-diff.c cleanup >>... >> [PATCH 23/28] makes peek_remote void >> >> The callers of the first group check their return values, so >> we could make error checking of these functions stricter in >> the future without affecting the rest of the code. The ones >> that currently die() (or usage()) could be made into more >> libified form to return error codes. >> >> So I do not think it is worth doing these. > > I disagree. Having static functions return ints that are the > same for _every_ code path and are checked against upon return > is never good style. It implies that error checking is > already done and the return value is of importance. I would agree with your above statement about the second group, but not the ones listed in the first group, whose callers are prepared to receive error returns. It just happens that these callees do not currently detect errors, but some of them certainly could be improved to return errors, instead of just calling die(). ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-15 1:04 ` Junio C Hamano @ 2006-08-15 1:40 ` trajce nedev 2006-08-15 1:54 ` Junio C Hamano 0 siblings, 1 reply; 10+ messages in thread From: trajce nedev @ 2006-08-15 1:40 UTC (permalink / raw) To: junkio; +Cc: git So you're just going to continue passing numbers around in the hope that someday they'll be used for something? Trajce Nedev >From: Junio C Hamano <junkio@cox.net> >To: David Rientjes <rientjes@google.com> >CC: git@vger.kernel.org >Subject: Re: [PATCH 00/28] clean-ups of static functions and returns >Date: Mon, 14 Aug 2006 18:04:24 -0700 > >David Rientjes <rientjes@google.com> writes: > > > On Mon, 14 Aug 2006, Junio C Hamano wrote: > > > >> Interesting. Did you use some automated tool to spot them? > >> > > > > No, these changes are from my own personal tree that optimizes >everything for > > speed since I am working with terabytes of data. I only submitted >changes that > > I thought would be beneficial for your project as well. > > > >> * Making stricter error checking in the future harder. There > >> are three classes, but the lines between them are fuzzy. > >> > >> [PATCH 04/28] builtin-diff.c cleanup > >>... > >> [PATCH 23/28] makes peek_remote void > >> > >> The callers of the first group check their return values, so > >> we could make error checking of these functions stricter in > >> the future without affecting the rest of the code. The ones > >> that currently die() (or usage()) could be made into more > >> libified form to return error codes. > >> > >> So I do not think it is worth doing these. > > > > I disagree. Having static functions return ints that are the > > same for _every_ code path and are checked against upon return > > is never good style. It implies that error checking is > > already done and the return value is of importance. > >I would agree with your above statement about the second group, >but not the ones listed in the first group, whose callers are >prepared to receive error returns. It just happens that these >callees do not currently detect errors, but some of them >certainly could be improved to return errors, instead of just >calling die(). > >- >To unsubscribe from this list: send the line "unsubscribe git" in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 00/28] clean-ups of static functions and returns 2006-08-15 1:40 ` trajce nedev @ 2006-08-15 1:54 ` Junio C Hamano 0 siblings, 0 replies; 10+ messages in thread From: Junio C Hamano @ 2006-08-15 1:54 UTC (permalink / raw) To: trajce nedev; +Cc: git "trajce nedev" <trajcenedev@hotmail.com> writes: > So you're just going to continue passing numbers around in the hope > that someday they'll be used for something? > > Trajce Nedev It is more like "fearing someday we might modify the callees and they may start returning error codes". Admittedly, "someday" has a tendency not to come, but making the callees void and changing the callers who are already checking the error codes to ignore what are returned from them somehow feel backwards and pushing that someday further into the future. Either patches to implement the error checking in the callees, or arguments that particular callees the series touch do not have reasonably graceful error return path are welcome (the former advocating against and the latter advocating for the application of the patch). ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-08-15 1:55 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-08-14 20:17 [PATCH 00/28] clean-ups of static functions and returns David Rientjes 2006-08-14 20:33 ` Jakub Narebski 2006-08-14 20:47 ` David Rientjes 2006-08-14 20:59 ` Johannes Schindelin 2006-08-14 21:22 ` Jakub Narebski 2006-08-14 23:05 ` Junio C Hamano 2006-08-14 23:30 ` David Rientjes 2006-08-15 1:04 ` Junio C Hamano 2006-08-15 1:40 ` trajce nedev 2006-08-15 1:54 ` Junio C Hamano
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 NNTP newsgroup(s).