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