4.Coding.rst (0898782247ae533d1f4e47a06bc5d4870931b284) | 4.Coding.rst (e7b4311ebcac142be28c9fa1b9f63a9d35fc2a92) |
---|---|
1.. _development_coding: 2 3Getting the code right 4====================== 5 6While there is much to be said for a solid and community-oriented design 7process, the proof of any kernel development project is in the resulting 8code. It is the code which will be examined by other developers and merged --- 196 unchanged lines hidden (view full) --- 205 206:: 207 208 So we don't fix bugs by introducing new problems. That way lies 209 madness, and nobody ever knows if you actually make any real 210 progress at all. Is it two steps forwards, one step back, or one 211 step forward and two steps back? 212 | 1.. _development_coding: 2 3Getting the code right 4====================== 5 6While there is much to be said for a solid and community-oriented design 7process, the proof of any kernel development project is in the resulting 8code. It is the code which will be examined by other developers and merged --- 196 unchanged lines hidden (view full) --- 205 206:: 207 208 So we don't fix bugs by introducing new problems. That way lies 209 madness, and nobody ever knows if you actually make any real 210 progress at all. Is it two steps forwards, one step back, or one 211 step forward and two steps back? 212 |
213(http://lwn.net/Articles/243460/). | 213(https://lwn.net/Articles/243460/). |
214 215An especially unwelcome type of regression is any sort of change to the 216user-space ABI. Once an interface has been exported to user space, it must 217be supported indefinitely. This fact makes the creation of user-space 218interfaces particularly challenging: since they cannot be changed in 219incompatible ways, they must be done right the first time. For this 220reason, a great deal of thought, clear documentation, and wide review for 221user-space interfaces is always required. --- 96 unchanged lines hidden (view full) --- 318:ref:`Documentation/dev-tools/coccinelle.rst <devtools_coccinelle>` 319for more information. 320 321Other kinds of portability errors are best found by compiling your code for 322other architectures. If you do not happen to have an S/390 system or a 323Blackfin development board handy, you can still perform the compilation 324step. A large set of cross compilers for x86 systems can be found at 325 | 214 215An especially unwelcome type of regression is any sort of change to the 216user-space ABI. Once an interface has been exported to user space, it must 217be supported indefinitely. This fact makes the creation of user-space 218interfaces particularly challenging: since they cannot be changed in 219incompatible ways, they must be done right the first time. For this 220reason, a great deal of thought, clear documentation, and wide review for 221user-space interfaces is always required. --- 96 unchanged lines hidden (view full) --- 318:ref:`Documentation/dev-tools/coccinelle.rst <devtools_coccinelle>` 319for more information. 320 321Other kinds of portability errors are best found by compiling your code for 322other architectures. If you do not happen to have an S/390 system or a 323Blackfin development board handy, you can still perform the compilation 324step. A large set of cross compilers for x86 systems can be found at 325 |
326 http://www.kernel.org/pub/tools/crosstool/ | 326 https://www.kernel.org/pub/tools/crosstool/ |
327 328Some time spent installing and using these compilers will help avoid 329embarrassment later. 330 331 332Documentation 333------------- 334 --- 89 unchanged lines hidden --- | 327 328Some time spent installing and using these compilers will help avoid 329embarrassment later. 330 331 332Documentation 333------------- 334 --- 89 unchanged lines hidden --- |