Mercurial > docs > master
comparison discussion.roff @ 124:3d30fd938aa9
Spellchecking.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Sat, 30 Jun 2012 15:05:06 +0200 |
parents | 740f4128dea7 |
children | 0e102cec0c73 |
comparison
equal
deleted
inserted
replaced
123:740f4128dea7 | 124:3d30fd938aa9 |
---|---|
2682 Problems became visible when | 2682 Problems became visible when |
2683 .Cl "anno -list -number 42 | 2683 .Cl "anno -list -number 42 |
2684 worked on the current message instead on message number 42, | 2684 worked on the current message instead on message number 42, |
2685 and | 2685 and |
2686 .Cl "anno -list -number l:5 | 2686 .Cl "anno -list -number l:5 |
2687 did not work on the last five messages but failed with the misterious | 2687 did not work on the last five messages but failed with the mysterious |
2688 error message: ``anno: missing argument to -list''. | 2688 error message: ``anno: missing argument to -list''. |
2689 Yet, the invocation matched the specification in the man page. | 2689 Yet, the invocation matched the specification in the man page. |
2690 There, the correct use of | 2690 There, the correct use of |
2691 .Sw -number | 2691 .Sw -number |
2692 was defined as being | 2692 was defined as being |
2997 (These numbers and the ones in the following text ignore the MH library | 2997 (These numbers and the ones in the following text ignore the MH library |
2998 as well as shell scripts and multiple names for the same program.) | 2998 as well as shell scripts and multiple names for the same program.) |
2999 .P | 2999 .P |
3000 Splitting the source code of a large program into multiple files can | 3000 Splitting the source code of a large program into multiple files can |
3001 increase the readability of its source code. | 3001 increase the readability of its source code. |
3002 Most of the mmh tools, however, are simple and staight-forward programs. | 3002 Most of the mmh tools, however, are simple and straight-forward programs. |
3003 With the exception of the MIME handling tools, | 3003 With the exception of the MIME handling tools, |
3004 .Pn pick | 3004 .Pn pick |
3005 is the largest tools. | 3005 is the largest tools. |
3006 It contains 1\|037 lines of source code (measured with | 3006 It contains 1\|037 lines of source code (measured with |
3007 .Pn sloccount ), excluding the MH library. | 3007 .Pn sloccount ), excluding the MH library. |
3015 source files seldom leads to better readability. | 3015 source files seldom leads to better readability. |
3016 For such tools, splitting makes sense | 3016 For such tools, splitting makes sense |
3017 when parts of the code are reused in other programs, | 3017 when parts of the code are reused in other programs, |
3018 and the reused code fragment is not general enough | 3018 and the reused code fragment is not general enough |
3019 for including it in the MH library, | 3019 for including it in the MH library, |
3020 or, if the code has depencencies on a library that only few programs need. | 3020 or, if the code has dependencies on a library that only few programs need. |
3021 .Fn uip/packsbr.c , | 3021 .Fn uip/packsbr.c , |
3022 for instance, provides the core program logic for the | 3022 for instance, provides the core program logic for the |
3023 .Pn packf | 3023 .Pn packf |
3024 and | 3024 and |
3025 .Pn rcvpack | 3025 .Pn rcvpack |
3129 I learned about the easy and the difficult parts. | 3129 I learned about the easy and the difficult parts. |
3130 Code is easy to understand if: | 3130 Code is easy to understand if: |
3131 .BU | 3131 .BU |
3132 The influenced code area is small | 3132 The influenced code area is small |
3133 .BU | 3133 .BU |
3134 The boundaries are stictly defined | 3134 The boundaries are strictly defined |
3135 .BU | 3135 .BU |
3136 The code is written straight-forward | 3136 The code is written straight-forward |
3137 .P | 3137 .P |
3138 .\" XXX move this paragraph somewhere else? | 3138 .\" XXX move this paragraph somewhere else? |
3139 Reading | 3139 Reading |
3216 On systems where | 3216 On systems where |
3217 .Fu fork() | 3217 .Fu fork() |
3218 and | 3218 and |
3219 .Fu exec() | 3219 .Fu exec() |
3220 are expensive, the quicker response might be noticable. | 3220 are expensive, the quicker response might be noticable. |
3221 In the old times, sacrifying readability and conceptional beauty for speed | 3221 In the old times, sacrificing readability and conceptional beauty for |
3222 might even have been a must to prevent MH from being unusably slow. | 3222 speed might even have been a must to prevent MH from being unusably slow. |
3223 Whatever the reasons had been, today they are gone. | 3223 Whatever the reasons had been, today they are gone. |
3224 No longer should we sacrifice readability or conceptional beauty. | 3224 No longer should we sacrifice readability or conceptional beauty. |
3225 No longer should we violate the Unix philosophy's ``one tool, one job'' | 3225 No longer should we violate the Unix philosophy's ``one tool, one job'' |
3226 guideline. | 3226 guideline. |
3227 No longer should we keep speed improvements that became unnecessary. | 3227 No longer should we keep speed improvements that became unnecessary. |
3250 One disadvantage needs to be taken with this change: | 3250 One disadvantage needs to be taken with this change: |
3251 The compiler can no longer check the integrity of the interfaces. | 3251 The compiler can no longer check the integrity of the interfaces. |
3252 By changing the command line interfaces of tools, it is | 3252 By changing the command line interfaces of tools, it is |
3253 the developer's job to adjust the invocations of these tools as well. | 3253 the developer's job to adjust the invocations of these tools as well. |
3254 As this is a manual task and regression tests, which could detect such | 3254 As this is a manual task and regression tests, which could detect such |
3255 problems, are not availabe yet, it is prone to errors. | 3255 problems, are not available yet, it is prone to errors. |
3256 These errors will not be detected at compile time but at run time. | 3256 These errors will not be detected at compile time but at run time. |
3257 Installing regression tests is a task left to do. | 3257 Installing regression tests is a task left to do. |
3258 In the best case, a uniform way of invoking tools from other tools | 3258 In the best case, a uniform way of invoking tools from other tools |
3259 can be developed to allow automated testing at compile time. | 3259 can be developed to allow automated testing at compile time. |
3260 | 3260 |