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 ---